26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# Developer Map
|
|||
|
|
|
||
|
|
## Module → Test → Verification
|
||
|
|
|
||
|
|
| Module | Tests | When to run |
|
||
|
|
|--------|-------|-------------|
|
||
|
|
| `scanner.py` | `tests/test_scanner.py` | File discovery, metadata extraction |
|
||
|
|
| `parser.py` | `tests/test_parser.py` | Filename parsing changes |
|
||
|
|
| `enrichment.py`, `providers/` | `tests/test_enrichment.py` | TMDB/API changes |
|
||
|
|
| `planner.py` | `tests/test_planner.py` | Operation generation, duplicate resolution |
|
||
|
|
| `executor.py` | `tests/test_executor.py` | File operations, rollback |
|
||
|
|
| `plan_review.py` | `tests/test_plan_review.py` | Review gate, CSV handling |
|
||
|
|
| `commands/*.py` | `tests/test_cli_*.py` | CLI flag/behavior changes |
|
||
|
|
| `analysis.py` | `tests/test_analysis_properties.py` | Property-based tests (Hypothesis) |
|
||
|
|
| Full integration | `pytest` | Before any commit |
|
||
|
|
|
||
|
|
## Adding a New Command
|
||
|
|
|
||
|
|
1. Create module in `src/vlm/commands/`.
|
||
|
|
2. Define with `@click.command()`.
|
||
|
|
3. Import and register in `src/vlm/cli.py` via `main.add_command(...)`.
|
||
|
|
|
||
|
|
## Key Models
|
||
|
|
|
||
|
|
See `src/vlm/models.py`: `VideoFile`, `MovieIdentity`, `SeriesIdentity`, `FileOperation`, `ExecutionPlan`.
|