Files
dl-organizer/AGENTS.md
T
windyboy 976a1fa1d0 docs: Add repository guidelines and code review report
- Add AGENTS.md with comprehensive repository guidelines covering project structure, build/test commands, coding style, testing practices, and commit conventions
- Add REVIEW_REPORT.md documenting code review findings including 4 actionable issues: logging permission errors, incorrect test imports, timezone conversion bugs, and dead error counter code
- Include detailed recommendations for fix prioritization and test evidence from pytest runs
- Provide reference documentation for future development and maintenance workflows
2026-02-09 17:55:34 +08:00

2.4 KiB

Repository Guidelines

Project Structure & Module Organization

  • Core package lives in src/vlm/.
  • CLI entrypoint is src/vlm/cli.py (vlm console script).
  • Functional modules are split by concern: scanning (scanner.py), parsing (parser.py), analysis/planning/execution (analysis.py, planner.py, executor.py), state/reporting/logging (state.py, reports.py, logging_config.py).
  • Tests live in tests/ and mirror feature areas (for example tests/test_scanner.py, tests/test_cli_state.py).
  • Project metadata and tool config are in pyproject.toml.

Build, Test, and Development Commands

  • uv pip install -e . installs the package in editable mode.
  • uv pip install -e ".[dev]" installs dev dependencies (pytest, hypothesis).
  • pytest runs the full test suite.
  • pytest tests/test_logging.py runs a targeted test file during iteration.
  • vlm --help verifies CLI startup and available commands.

Coding Style & Naming Conventions

  • Use Python 3.10+ idioms, 4-space indentation, and PEP 8 naming.
  • Modules/functions/variables: snake_case; classes: PascalCase; constants: UPPER_SNAKE_CASE.
  • Keep modules focused on a single responsibility; prefer small pure helpers in domain modules.
  • Add type hints for public functions and non-trivial internal APIs.
  • No formatter/linter is currently enforced in pyproject.toml; keep style consistent with existing files.

Testing Guidelines

  • Framework: pytest; property-based tests use hypothesis.
  • Naming (enforced in config): files test_*.py, functions test_*, classes Test*.
  • Add/extend tests with each behavior change, including CLI error paths and edge cases.
  • Prefer narrow unit tests for module logic plus targeted CLI integration tests via CliRunner.

Commit & Pull Request Guidelines

  • Current history is minimal; use clear, imperative commit subjects (example: fix logging fallback for unwritable log dir).
  • Keep commits focused; avoid mixing refactors and behavior changes unless tightly coupled.
  • PRs should include: summary, rationale, test evidence (pytest output), and any CLI-visible output changes.
  • Link related issues/tasks when applicable and call out config or migration impacts.

Security & Configuration Tips

  • Do not commit local paths, personal media metadata, or generated state/log artifacts.
  • Validate config changes against vlm --help and at least one end-to-end CLI flow before merging.