Documentation Maintenance¶
This page describes the ongoing maintenance loop for the docs site and how to keep it aligned with the library code.
Local docs commands¶
Install docs dependencies:
uv sync --extra docs
Serve the docs locally:
uv run mkdocs serve
Build the docs site:
uv run mkdocs build --strict
When docs must be updated¶
Update docs whenever a change affects:
- public API names or signatures
- task semantics or evaluation behavior
- feature normalization or matching behavior
- logging output or visualization behavior
- installation or development workflow
At minimum, review:
README.md- the relevant page under
docs/ - any examples affected by the change
docs/planning/DOCS_PROGRESS.mdif the change is documentation work
Source-of-truth rule¶
When docs and code disagree:
- code wins
- docs should be updated to match the current implementation
- if the implementation is wrong, fix the code and the docs together
Primary implementation sources:
src/extraction_testing/config.pysrc/extraction_testing/orchestrator.pysrc/extraction_testing/tests.pysrc/extraction_testing/aligners.pysrc/extraction_testing/utils.pysrc/extraction_testing/metrics.pysrc/extraction_testing/logger.pysrc/extraction_testing/models.pysrc/extraction_testing/visualization.py
Documentation maintenance checklist¶
For any meaningful library change:
- update the relevant docs pages
- update any examples that demonstrate the changed behavior
- review the reference pages for signature or default drift
- run
uv run mkdocs build --strict - if available, run the relevant tests or examples
Publishing workflow¶
The repository uses a GitHub Actions workflow for docs publishing:
- workflow file:
.github/workflows/docs.yml - build command:
uv run mkdocs build --strict - deployment target: GitHub Pages
The deploy job is intended for the main branch, while pull requests should still build the docs to catch regressions before merge.
Common failure modes¶
- page exists in
docs/but is missing frommkdocs.yml - links point to outdated page paths
- examples use stale enum names or constructor fields
- docs describe planned behavior instead of current behavior
- generated API pages drift because supporting hand-authored summaries were not updated
Final QA expectations¶
Before considering docs work complete, try to verify:
- pages exist for all nav entries
- links resolve
- names and terminology are consistent
- examples match current code
- there is no leftover placeholder text