- Follow repository conventions in
.github/copilot-instructions.mdand CONTRIBUTING docs. - Use JustHTML for parsing; do not introduce BeautifulSoup.
- Keep extraction logic centralized in
src/article_extractor/extractor.py; keep CLI/server thin.
- Use
uv runfor all Python commands. - Prefer small, surgical diffs; remove dead code instead of adding layers.
- Avoid hiding errors with broad
try/except. - Do not add summary reports unless explicitly requested.
- Never rewrite or regenerate fixture
expectedoutputs unless the user explicitly asks for fixture updates. - Treat fixtures as golden references; fix extractor code/tests to match fixture intent.
- If fixture content appears inconsistent, stop and ask before mutating fixture files.
- Run:
uv run ruff format . && uv run ruff check --fix . - Run:
timeout 60 uv run pytest -v - Run:
timeout 60 uv run pytest tests/ --cov=src/article_extractor --cov-report=term-missing --cov-fail-under=95 - Run:
uv run article-extractor --help
- Minimum unit test coverage: 95% (target near-100% with MECE tests).
- Always run unit tests with
timeout 60to keep suites fast and detect hangs.
- Store PRP plans in
~/codex-prp-plans(not in-repo). - Update the plan after each phase; keep UTC timestamps with
Zsuffix.
- Do not include local machine details, IPs, or tenant-specific data in code or docs.
- Sanitize any real URLs before committing; use
example.complaceholders.