| Path | Topic / Responsibility | Inspect When | Ignore Unless |
|---|---|---|---|
mloader/cli/ |
Click CLI surface, option handling, presenter output, examples | CLI behavior or public command flags/docs changes | Runtime engine logic only |
mloader/application/ |
Orchestrates application use-cases and command-to-runtime bridges | Request construction, exporter selection, discovery/download flow | Parser/exporter internals |
mloader/domain/ |
Domain models, planning contracts, request/data-shape definitions | Selector semantics, DTO shape, validation rules | CLI-only or pure transport work |
mloader/infrastructure/mangaplus/ |
API gateway/auth, parsing/mapping, discovery + capture validation | API drift, parser/mapping changes, capture/sanity checks | Export/naming-only changes |
mloader/manga_loader/ |
Runtime orchestration, manifest handling, execution pipeline | Download/resume behavior, title/chapter orchestration | Pure CLI formatting changes |
mloader/exporters/ |
Raw/CBZ/PDF output adapters and naming conventions | Output behavior, archive/pdf composition, filename safety | Discovery/parser-only tasks |
mloader/types.py |
Internal protocol/type aliases and shared type signatures | Runtime wiring, test fakes signature alignment | Most feature edits |
tests/ |
Behavioral/regression suites and shared fakes | Any functional change; start nearby tests first | Broad full-suite reads |
scripts/ |
README sync, example verification helpers | Public CLI docs regeneration and example audits | Runtime-only fixes |
docker/ and compose.yaml |
Container packaging, cron entrypoint, runtime args | Deployment/config changes | Download logic changes only |
docs/, README.md, AGENTS.md |
Documentation and contributor guidance | Public behavior/API docs or instructions | Internal algorithm refactors |
| Task Type | Start Here | Then Check |
|---|---|---|
| CLI/frontend changes | mloader/cli/main.py, mloader/cli/command_requests.py, mloader/cli/readme_reference.py |
tests/test_cli_main.py, tests/test_cli_command_requests.py, tests/test_readme_cli_options.py, scripts/sync_readme_cli_reference.py |
| API/backend transport changes | mloader/infrastructure/mangaplus/ (gateway/parsing/mappers/title discovery) |
tests/test_mangaplus_*, tests/test_capture_replay.py, capture fixtures helpers |
| Domain/model changes | mloader/domain/ + mloader/manga_loader/chapter_planning.py |
tests/test_domain_*, tests/test_runtime_chapter_planning.py |
| Download/runtime changes | mloader/manga_loader/, mloader/application/downloads.py, mloader/application/runner.py (if present) |
tests/test_download_execution.py, tests/test_runtime_*, tests/test_downloader_title_assets.py, tests/test_filename_policy.py |
| Exporter/output formatting | mloader/exporters/, mloader/manga_loader/filename_policy.py |
tests/test_exporters.py, tests/test_exporter_base.py |
| Capture/schema changes | mloader/infrastructure/mangaplus/capture*.py, mloader/infrastructure/mangaplus/parsing.py |
tests/test_capture*, replay fixture consumers |
| Build/deploy/config changes | pyproject.toml, docker/, compose.yaml, .github/workflows/ |
tests/test_config_module.py, config checks in CI scripts |
| Docs-only changes | README.md, docs/, AGENTS.md |
scripts/sync_readme_cli_reference.py --check, example verifications |
- Start with the smallest relevant folder and one nearby test file.
- Do not read unrelated modules adjacent to your target area unless required by call graph.
- Avoid generated/vendor/build/cache directories by default.
- Read tests nearest to changed code before expanding scope.
- Avoid replay fixture payloads unless parser/capture/schema work requires them.
- Summarize findings before opening additional distant files.
- Keep edits minimal; prefer one-file-at-a-time changes for clarity.
pyproject.toml: package metadata, dependencies, test/type/lint config.mloader/__main__.py: command entrypoint wiring.mloader/cli/main.py: top-level click interface and option defaults.mloader/application/requests.py: request building + defaulting.mloader/application/downloads.py: runtime/application handoff and downloader factory wiring.mloader/manga_loader/init.py: public facade for programmatic usage.mloader/manga_loader/runner.pyandmloader/manga_loader/download_execution.py: runtime orchestration.mloader/infrastructure/mangaplus/: API transport/parsing/discovery.mloader/exporters/: output implementations and naming behavior.tests/cli_fakes.py,tests/http_fakes.py: canonical behavior doubles.scripts/sync_readme_cli_reference.py: documentation synchronization for CLI tables.docker/Dockerfile,docker/start-cron.sh,compose.yaml: deployment execution path.
mloader/response_pb2.py/.pyi: generated protobuf artifacts; regenerate only for schema work.tests/fixtures/api_captures/**/*, capture baselines, and other replay payload binaries/json.mloader/.env, local auth/cache files, and output directories (mloader_downloads/,capture/,captures/) unless task demands.- Tool/build artifacts:
.venv/,.pytest_cache/,.ruff_cache/,.uv-cache/,dist/,build/,*.egg-info/. - IDE/local state:
.idea/,app_textures/,code_cache/. uv.lock: read/update only for dependency/version tasks.
- Classify the request type.
- Inspect only the smallest relevant module set first.
- Read nearby tests and test doubles before behavioral edits.
- Make minimal, targeted changes.
- Run targeted checks; include
uv run ty check mloader scripts testsfor typed contract changes. - Expand context only if required dependencies are missing.
- All required headings exist in this order.
- Repo map and routing stay repository-specific (not generic).
- Ignore-by-default paths are explicit and practical.
- Recommendations are concise (table + short bullets).
- Open follow-ups list any uncertain areas for human confirmation.
Run this complete sequence to mirror CI parity:
uv run ty check mloader scripts testsuv run ruff check .uv run ruff format --check .uv run pytest --cov=mloader --cov-report=term-missing --cov-fail-under=100uv run mloader --verify-capture-schema tests/fixtures/api_captures/baseline --verify-capture-baseline tests/fixtures/api_captures/baselineuv run python scripts/sync_readme_cli_reference.py --checkuv run pytest -q tests/test_readme_cli_options.py tests/test_cli_readme_reference.pyuv run python scripts/verify_readme_examples.py