28 lines
1.0 KiB
Markdown
28 lines
1.0 KiB
Markdown
# Analyze Command
|
|
|
|
## Problem
|
|
|
|
The health and matching engines are only Python APIs. Users need one safe command
|
|
that summarizes library integrity without first interpreting CSV files.
|
|
|
|
## Architecture
|
|
|
|
`serato-doctor analyze` reuses the existing configured crate parser and filesystem
|
|
scanner, then prints the immutable health report. The original no-command mode is
|
|
retained as the report-producing scan workflow.
|
|
|
|
Analyze mode does not create CSV or text reports. Both modes remain read-only with
|
|
respect to Serato crates, databases, and music files.
|
|
|
|
## Edge Cases
|
|
|
|
- A library with no references displays `Not assessed` rather than a false score.
|
|
- Historical roots continue to work through repeatable `--reference-root` flags.
|
|
- Normal output remains separate from optional diagnostic logging.
|
|
- Existing scripts that invoke the CLI without a subcommand remain compatible.
|
|
|
|
## Verification
|
|
|
|
Tests prove the legacy five-line output and reports remain unchanged, while analyze
|
|
prints health metrics and does not create output files.
|