Add read-only analyze command
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user