- Keep each change focused on the requested behavior; do not refactor unrelated code.
- Preserve upstream attribution in package metadata, documentation, and notices.
- Do not edit
role_test/unless a test explicitly requires a fixture change. - Do not modify
CLAIMS.mdunless the task explicitly requests it. - Follow existing patterns and reuse existing utilities before adding abstractions.
- Read the affected code and nearby tests before editing.
- Add or update tests when behavior changes; keep fixtures minimal.
- Use the real CLI and its documented options when validating behavior. Do not invent shell tests or claim checks pass without running them.
- Do not hide lint, type-check, or test failures. Report failures with their command output and distinguish pre-existing failures from new ones when verified.
Set up the development environment, then run the applicable checks from the repository root:
uv sync --group dev
uv run pytest
uv run ruff check .
uv run mypy docsibleRun the source-only duplication scan when it is useful:
npx --yes jscpd docsible --pattern "**/*.py"jscpd is informational, not a zero-threshold gate. Current baseline (2026-09-13): 17 clones and 1.02% duplicated lines (down from 21 / 1.30%). Update this baseline only after reviewing intentional duplication — the current grouping and the one known dedup candidate (role_orchestrator._render_documentation ↔ role_analysis.render_analyzed_role) are recorded in CLAIMS.md.
uv run pytestpasses with 1215 tests (3 xpassed).uv run ruff check .reports no findings.uv run mypy docsiblereports no issues.
Treat these results as a starting point, not permission to introduce additional failures.