# 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`.