Detects documentation drift after code changes and opens PRs with fixes. Automatic. Precise. Zero manual work.
Every drift type includes a confidence score so reviewers can prioritize.
Detects when function parameters or return types changed but docs still show the old signature.
createUser(name, email)
createUser(name)
Finds documentation referencing functions, classes, or types that no longer exist in the codebase.
getUserById() // deleted
Catches symbols that were renamed in code but docs still reference the old name.
getUsers → fetchUsers
Spots code examples in docs that call functions with wrong parameters or outdated patterns.
connect(host, port)
connect({ host, port })
From PR merge to docs fix in seconds. No full-repo scans — only processes what changed.
A pull request merges into your repo. GitHub sends a webhook event.
Doqtor parses the diff and extracts changed functions, parameters, and types using AST analysis.
Scans your configured documentation paths for references to the changed symbols.
Compares code changes against docs to find mismatches, with confidence scoring for each.
Generates patches and opens a pull request with the documentation fixes for your review.
$ npm install -g @doqtor/cli
# Initialize config
$ doqtor init
# Check for drift
$ doqtor check
# Apply fixes
$ doqtor fix
# Preview without applying
$ doqtor fix --dry-run
# Clone and configure
$ git clone https://github.com/cachevector/doqtor.git
$ cd doqtor
$ cp .env.example .env
# Edit .env with your GitHub App credentials
$ bun install
# Start the webhook server
$ bun run --cwd apps/backend dev
The backend listens for pull_request.closed webhook events and runs the full pipeline when a PR is merged.
Read the full documentation to set up doqtor for your project.