Install
openclaw skills install skills-sh:jezweb/claude-skills/project-docsProject Documentation Generator Generate structured project documentation by analysing the codebase. Produces docs that reflect the actual code, not aspirational architecture. ## When to Use - New project needs initial documentation - Docs are missing or stale - Onboarding…
openclaw skills install skills-sh:jezweb/claude-skills/project-docsGenerate 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 above
Only 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.
# 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]
# 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]
# 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.
e875a6bfff80