Tie docs to the code they describe, and yell when one moves without the other. Plugs into any repo.
Project description
documate
documate generates documentation from your code (an overview, one page per module, and an API reference from your docstrings) and fails CI when those docs stop matching the code.
Install
uv tool install documate # or: pipx install documate / pip install documate
--ai additionally needs the claude CLI on your PATH. Everything else is stdlib.
Use
cd your-repo
documate --init # first run: create a config, then generate the docs
documate # generate or refresh docs/, then gate them
| Command | What it does |
|---|---|
documate |
index, write or refresh docs/, then gate it |
documate --check |
gate only, writes nothing (for CI and pre-commit) |
documate --watch |
regenerate on every save |
documate --html |
also render a static site into site/ |
documate --ai [MODEL] |
draft missing docstrings with a model, then re-verify |
documate --stats |
show coverage, documentation lines, and model spend |
Run documate path/to/repo to document any repo. Run documate --help for the full list.
What it writes
docs/README.md: an overview with a dependency map, coverage, entry points, and hotspots.docs/ARCHITECTURE.md: the whole system on one page.docs/architecture/<module>.md: one page per module (docstring, dependencies, call-flow, symbols).
The gate
documate --check exits non-zero when:
- Generated pages are out of date. Run
documateto refresh them. - A hand-written page points at code that no longer exists.
- A hand-written page describes code that changed since
--basebut was not updated.
Install the pre-commit hook once:
git config core.hooksPath hooks
It regenerates and stages the generated pages on every commit. In CI, run documate --check
with fetch-depth: 0 on actions/checkout.
Authored pages
Write Markdown under docs/ and anchor it to the code it documents:
<!-- documents: sym:build_model -->
documate --check then fails if that code changes and the page does not. Add a sig:
fingerprint after the symbol to pin the page to the exact source.
Configuration
documate --init writes documate.config.json. Override only what you need:
{
"docs_dir": "docs",
"site_dir": "site",
"skip_dirs": ["/generated/"],
"default_base": "main"
}
License
MIT. The engine in src/documate/_engine/ is vendored from code-review-graph (MIT).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file documate-0.2.1.tar.gz.
File metadata
- Download URL: documate-0.2.1.tar.gz
- Upload date:
- Size: 9.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
154b0d75b455b06587da7002984615ccb0c62e3ec10b77b8478a580522c06102
|
|
| MD5 |
18e1b36dfc8453ac46d0c40927d3de4b
|
|
| BLAKE2b-256 |
0e7472c693cb79e4071bb6c5ff1c6561e19966b05fe6f94e743c6e16331d431f
|
File details
Details for the file documate-0.2.1-py3-none-any.whl.
File metadata
- Download URL: documate-0.2.1-py3-none-any.whl
- Upload date:
- Size: 209.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed10ff59274f4e9ce6f1f1724bee7cd77cc431b527e7af3cbe1435519ca272df
|
|
| MD5 |
182d7bb48c57e1e3566473f9d6acab9d
|
|
| BLAKE2b-256 |
98bcb126893f65e951f79eec91fedeb67d20f15df9e07bbdac511cefc5c454a8
|