Core Review Agent

Documentation Reviewer AI Agent

Keeps your docs in sync with your code

Outdated documentation is worse than no documentation — it actively misleads. Documentation Reviewer catches when code changes make docs wrong.

What Documentation Reviewer Catches

The silent bugs — documentation that lies

Outdated Documentation

Docs that describe old behavior — the most dangerous kind of documentation

Stale READMEOld API examplesDeprecated params documented

Missing API Docs

Public functions and endpoints without proper documentation

Undocumented exportsMissing param descriptionsNo return type docs

Misleading Comments

Comments that say one thing while code does another — worse than no comments

Outdated TODOsWrong explanationsCopy-paste comments

OpenAPI/Swagger Drift

API docs that don't match actual endpoints — the #1 cause of integration failures

Wrong response schemaMissing endpointsOutdated auth docs

Component Docs Sync

Storybook and component documentation that doesn't reflect props changes

Missing propsWrong defaultsOutdated examples

Type Definition Mismatch

TypeDoc/JSDoc types that lie about actual interfaces and signatures

Optional marked requiredWrong genericsMissing union types

Documentation Types Covered

Every place where docs and code can drift apart

JSDoc / TSDoc

Function and method documentation

README files

Project and package overviews

Inline comments

Code explanations and TODOs

API documentation

Endpoint descriptions and examples

Type definitions

Interface and type comments

Changelog entries

Version history accuracy

Unique Metric

Documentation Debt Score

Just like technical debt, documentation debt accumulates silently. We give your codebase a Documentation Health Score — a single number that shows how much your docs have drifted from reality.

Track documentation freshness over time
Identify files that changed without doc updates
Prioritize what to fix first

Documentation Health

73/100

README.md

Last updated 45 days ago, code changed 12 times since

src/api/

3 endpoints undocumented

CHANGELOG.md

Missing entries for v2.3.0, v2.3.1

src/utils/

8 exported functions without JSDoc

Trend this month-5 points
Framework-Aware

Deep Framework Knowledge

Not just generic doc checks — we understand your framework's documentation patterns

Next.js / React

  • Component prop documentation
  • Hook usage examples
  • Route handler descriptions
  • Middleware docs

NestJS / Express

  • Swagger decorators sync
  • DTO documentation
  • Controller method docs
  • Module descriptions

FastAPI / Django

  • Pydantic model docstrings
  • Endpoint descriptions
  • Response schemas
  • Query param docs

GraphQL

  • Schema descriptions
  • Resolver documentation
  • Type definitions
  • Mutation/Query docs
AI Suggestion

For function processPayment(amount, currency, options):

/**
 * Processes a payment transaction
 * @param amount - Payment amount in cents (integer)
 * @param currency - ISO 4217 currency code
 * @param options - Processing options
 * @param options.idempotencyKey - Unique key
 * @param options.metadata - Custom key-value pairs
 * @returns Promise<PaymentResult>
 * @throws PaymentError if declined
 */
AI-Powered

Not Just Detection — Generation

When we find missing or outdated documentation, we don't just report it — we generate the fix. AI analyzes your function signatures, return types, and usage patterns to suggest accurate documentation.

Auto-Generate JSDoc

Creates documentation from function signatures and types

Update Existing Docs

Patches outdated documentation to match current code

Catching Documentation Drift

Real examples of docs that needed updating

Outdated Parameter Documentation

Outdated
/**
 * Fetches user by ID
 * @param id - User ID
 * @param includeDeleted - Include soft-deleted users
 */
async function getUser(id: string, options?: GetUserOptions) {
  // includeDeleted moved to options object 3 months ago
  // but JSDoc still shows old signature
}

JSDoc shows old signature with positional param

Updated
/**
 * Fetches user by ID
 * @param id - User ID
 * @param options - Query options
 * @param options.includeDeleted - Include soft-deleted users
 * @param options.fields - Fields to select
 */
async function getUser(id: string, options?: GetUserOptions) {
  // Documentation matches actual signature
}

Update to match current options object pattern

Misleading Comment

Outdated
// Retry 3 times with exponential backoff
async function fetchWithRetry(url: string) {
  const MAX_RETRIES = 5  // Changed from 3
  const response = await fetch(url)
  // Actually no retry logic implemented anymore
  return response
}

Comment describes retry logic that doesn't exist

Updated
// Simple fetch wrapper, no retry logic
// For retries, use fetchWithRetry from @/lib/http
async function simpleFetch(url: string) {
  const response = await fetch(url)
  return response
}

Comment reflects actual behavior

README Drift

Outdated
## Installation
```bash
npm install
npm run setup  # This script was removed
```

## Environment Variables
- `DATABASE_URL` - PostgreSQL connection
- `REDIS_URL` - Redis connection  # We switched to in-memory cache

README references removed script and old Redis config

Updated
## Installation
```bash
npm install
```

## Environment Variables
- `DATABASE_URL` - PostgreSQL connection string
- `CACHE_TTL` - Cache duration in seconds (default: 3600)

Documentation reflects current setup process

Semantic Analysis

How Documentation Reviewer Works

Documentation Reviewer doesn't just check if docs exist — it verifies they match what the code actually does. When you change a function signature, it flags the JSDoc.

Semantic Matching

Compares what docs say vs what code does

Change Detection

Notices when code changes invalidate nearby docs

Update Suggestions

Provides specific text to fix documentation

Analysis Pipeline

1

Compare Code & Docs

Checks if documentation matches actual implementation

2

Detect Changes

Identifies when code changes invalidate existing docs

3

Flag Mismatches

Reports documentation that could mislead developers

4

Suggest Updates

Provides specific text to bring docs up to date

Why Documentation Accuracy Matters

Bad docs cost more than no docs

Faster Debugging

Accurate docs mean developers don't waste hours chasing false leads

Better Onboarding

New developers can trust what they read instead of guessing

API Trust

Users can rely on your API docs without trial and error

Every code change is a chance for docs to drift.
Documentation Reviewer catches it every time.

Documentation Debt Is Everywhere

These issues slip through every day — until now

65%

of README files are outdated within 6 months

40%

of JSDoc comments don't match function signatures

3.2h

average time wasted debugging due to wrong docs

80%

of API docs miss at least one required field

Keep Docs and Code
In Sync

Let Documentation Reviewer catch drift before it misleads. Free for 14 days, no credit card required.

JSDoc validation
README sync
Comment accuracy