Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate project documentation from codebase analysis — ARCHITECTURE.md, API_ENDPOINTS.md, DATABASE_SCHEMA.md. Reads source code, schema files, routes, and config to produce accurate, structured docs. Use when starting a project, onboarding contributors, or when docs are missing or stale. Triggers: 'generate docs', 'document architecture', 'create api docs', 'document schema', 'project documentation', 'write architecture doc'.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 4% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-06 | ✓→✗ | ▼ Worse | 94% | 0% |
Generate structured project documentation by analysing the codebase. Produces docs that reflect the actual code, not aspirational architecture.
Scan the project root to determine what kind of project this is:
| Indicator | Project Type | |-----------|-------------| | wrangler.jsonc / wrangler.toml | Cloudflare Worker | | vite.config.ts + src/App.tsx | React SPA | | astro.config.mjs | Astro site | | next.config.js | Next.js app | | package.json with hono | Hono API | | src/index.ts with Hono | API server | | drizzle.config.ts | Has database layer | | schema.ts or schema/ | Has database schema | | pyproject.toml / setup.py | Python project | | Cargo.toml | Rust project |
Which docs should I generate?
1. ARCHITECTURE.md — system overview, stack, directory structure, key flows
2. API_ENDPOINTS.md — routes, methods, params, response shapes, auth
3. DATABASE_SCHEMA.md — tables, relationships, migrations, indexes
4. All of the aboveOnly offer docs that match the project. Don't offer API_ENDPOINTS.md for a static site. Don't offer DATABASE_SCHEMA.md if there's no database.
For each requested doc, read the relevant source files:
ARCHITECTURE.md — scan:
package.json / pyproject.toml (stack, dependencies)src/index.ts, src/main.tsx, src/App.tsx)wrangler.jsonc, vite.config.ts, tsconfig.json)API_ENDPOINTS.md — scan:
src/routes/, src/api/, or inline in index)DATABASE_SCHEMA.md — scan:
src/db/schema.ts, src/schema/)drizzle/, migrations/)Write each doc to docs/ (create the directory if it doesn't exist). If the project already has docs there, offer to update rather than overwrite.
For small projects with no docs/ directory, write to the project root instead.
markdown# Architecture ## Overview [One paragraph: what this project does and how it's structured] ## Stack | Layer | Technology | Version | |-------|-----------|---------| | Runtime | [e.g. Cloudflare Workers] | — | | Framework | [e.g. Hono] | [version] | | Database | [e.g. D1 (SQLite)] | — | | ORM | [e.g. Drizzle] | [version] | | Frontend | [e.g. React 19] | [version] | | Styling | [e.g. Tailwind v4] | [version] | ## Directory Structure [Annotated tree — top 2 levels with purpose comments] ## Key Flows ### [Flow 1: e.g. "User Authentication"] [Step-by-step: request → middleware → handler → database → response] ### [Flow 2: e.g. "Data Processing Pipeline"] [Step-by-step through the system] ## Configuration [Key config files and what they control] ## Deployment [How to deploy, environment variables needed, build commands]
markdown# API Endpoints ## Base URL [e.g. `https://api.example.com` or relative `/api`] ## Authentication [Method: Bearer token, session cookie, API key, none] [Where tokens come from, how to obtain] ## Endpoints ### [Group: e.g. Users] #### `GET /api/users` - **Auth**: Required - **Params**: `?page=1&limit=20` - **Response**: `{ users: User[], total: number }` #### `POST /api/users` - **Auth**: Required (admin) - **Body**: `{ name: string, email: string }` - **Response**: `{ user: User }` (201) - **Errors**: 400 (validation), 409 (duplicate email) [Repeat for each endpoint] ## Error Format [Standard error response shape] ## Rate Limits [If applicable]
markdown# Database Schema ## Engine [e.g. Cloudflare D1 (SQLite), PostgreSQL, MySQL] ## Tables ### `users` | Column | Type | Constraints | Description | |--------|------|-------------|-------------| | id | TEXT | PK | UUID | | email | TEXT | UNIQUE, NOT NULL | User email | | name | TEXT | NOT NULL | Display name | | created_at | TEXT | NOT NULL, DEFAULT now | ISO timestamp | ### `posts` [Same format] ## Relationships [Foreign keys, join patterns, cascading rules] ## Indexes [Non-primary indexes and why they exist] ## Migrations - Generate: `npx drizzle-kit generate` - Apply local: `npx wrangler d1 migrations apply DB --local` - Apply remote: `npx wrangler d1 migrations apply DB --remote` ## Seed Data [Reference to seed script if one exists]
<!-- TODO: document purpose -->If docs already exist:
Never silently overwrite custom content the user has added to their docs.
Other measured skills in the registry, with their headline benchmark lift.