Drift on merge
Live code paths compared to the docs that describe them.
Documentation drift detection
Code merges without doc updates create drift. Moxie re-checks on every merge, flags gaps, and packages fixes into one weekly reviewable PR.
What you get
Live code paths compared to the docs that describe them.
See what is undocumented before onboarding or agents hit it.
One scoped docs PR per week - review and merge when ready.
Breaking changes flagged amber. Cosmetic churn is recorded but never becomes a PR.
The corrected index serves Cursor, Claude Code, and Codex the same context over MCP.
Jump from the index to source citations even when a page is stale.
How it works
Install the app on the repos you want watched.
Baseline docs and conventions from source.
Every merge re-checks. Gaps accumulate in the workspace.
Approve or edit the weekly docs PR.
The problem
It is rarely one big event. A pull request renames a service, changes a default, or removes an endpoint, and the doc that describes it stays exactly as it was. Each gap is forgivable on its own. Together they are why nobody trusts the wiki — and why an agent reading those docs writes code against a system that no longer exists.
The architecture page still points at a path that moved three refactors ago.
A function grew a required argument; the doc's example still calls it the old way.
The API reference lists a route that now 404s, and an agent keeps recommending it.
The onboarding guide's install sequence fails halfway through, so new hires debug it in Slack.
AGENTS.md documents the old test runner, so the agent confidently runs the wrong command.
How detection works
Moxie indexes the repository when you connect it, then re-checks the affected surface on every merge, comparing the current code against the docs that cite it. The detectors run in a fixed priority order, and each page carries at most one finding — the highest-priority one that fired — so you get a single clear signal, not a pile of overlapping warnings.
A doc cites a source file whose change altered what the doc claims. The diff-backed signal, and the only one Moxie grades for severity.
A generated page has too little substance for the size of the subsystem it covers.
A route handler or exported helper exists with no page describing it — the gap a new hire or an agent hits first.
A file diverges from a convention Moxie detected elsewhere in the same repo.
A doc references source paths that no longer exist while its own file is still in the tree.
Signal, not noise
Not every change that touches a documented file is worth a pull request. For stale-content findings, Moxie classifies the change and acts on the classification — and anything still too noisy for your team can be dismissed, muted for 7 or 30 days, or turned off per detector for the whole repo.
Breaking
Alters an API, signature, route shape, or behavior the doc explicitly describes. Queued for a fix.
Behavioral
A backward-compatible change such as a new field or an added branch. Flagged for review.
Cosmetic
Formatting, comments, internal renames. Recorded for reporting, but never opens a PR.
The output
On Pro and Team plans, the fixes Moxie is confident about arrive as one docs-only pull request each week — not a stream of separate PRs, and never an auto-merge. Between Cleanup PRs, every finding is already visible in the workspace and posted to the relevant GitHub pull request as an advisory check.
Advisory checks (Moxie Docs / Documentation) stay informational unless you require them in branch protection, where they become a hard merge gate.
At a glance
Process helps for a while, then loses to delivery pressure. Coupling the check to the merge is what holds.
Quarterly doc days
PR doc checklist
Moxie
Quarterly doc days
PR doc checklist
Moxie
Quarterly doc days
PR doc checklist
Moxie
Quarterly doc days
PR doc checklist
Moxie
Quarterly doc days
PR doc checklist
Moxie
| Quarterly doc days | PR doc checklist | Moxie | |
|---|---|---|---|
| Cadence | Quarterly, if it survives crunch | Every PR, if the author remembers | Every merge, automatically |
| Catches renames and deletions | Only what someone happens to notice | The author's judgment on the day | Checked against the source paths each doc cites |
| Reviewer effort | A full rewrite sprint | An extra checkbox on every PR | One scoped docs PR to approve |
| Keeps up with AI-written code | No | Rarely | Yes — re-checks on every merge |
| Serves agents current context | No | No | Same index, over MCP |
FAQ
Get started
Connect a repository and the first index shows you what is already stale and undocumented. 14-day trial, no charge today.