Generate hierarchical documentation structures (AGENTS.md, agent.d, and custom docs) for codebases. Use when user asks to create documentation files, analyze codebase for AI agent documentation, set up AI-friendly project documentation, or generate context files for AI coding assistants. Triggers on "create documentation", "generate docs", "analyze codebase for AI", "documentation setup", "hierarchical docs".
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: docs-generator
description: Generate hierarchical documentation structures (AGENTS.md, agent.d, and custom docs) for codebases. Use when user asks to create documentation files, analyze codebase for AI agent documentation, set up AI-friendly project documentation, or generate context files for AI coding assistants. Triggers on "create documentation", "generate docs", "analyze codebase for AI", "documentation setup", "hierarchical docs".
---
# Documentation Generator
Generate hierarchical documentation structures optimized for AI coding agents with minimal token usage. Supports AGENTS.md, agent.d, and custom documentation formats.
## Core Principles
1. **Root documentation is LIGHTWEIGHT** - Only universal guidance, links to sub-files (~100-200 lines max)
2. **Nearest-wins hierarchy** - Agents read closest documentation to file being edited
3. **JIT indexing** - Provide paths/globs/commands, NOT full content
4. **Token efficiency** - Small, actionable guidance over encyclopedic docs
5. **Sub-folder files have MORE detail** - Specific patterns, examples, commands
6. **Flexible output formats** - Support for AGENTS.md, agent.d, and custom documentation types
## Workflow
### Phase 0: Document Type Confirmation
Before generating, confirm with user:
1. **Document format**: AGENTS.md, agent.d, or custom name?
2. **Target audience**: AI agents, developers, or both?
3. **Scope**: Root only, sub-folders only, or full hierarchy?
4. **Special requirements**: Any specific sections or patterns?
### Phase 1: Repository Analysis
Analyze and report:
1. **Repository type**: Monorepo, multi-package, or simple?
2. **Tech stack**: Languages, frameworks, key tools
3. **Major directories** needing own documentation:
- Apps (`apps/web`, `apps/api`, `apps/mobile`)
- Services (`services/auth`, `services/transcribe`)
- Packages (`packages/ui`, `packages/shared`)
- Workers (`workers/queue`, `workers/cron`)
4. **Build system**: pnpm/npm/yarn workspaces? Turborepo? Lerna?
5. **Testing setup**: Jest, Vitest, Playwright, pytest?
6. **Key patterns**: Organization, conventions, examples, anti-patterns
Present as structured map before generating files.
### Phase 2: Root Documentation
Create lightweight root (~100-200 lines):
#### For AGENTS.md format:
```markdown
# Project Name
## Project Snapshot
[3-5 lines: repo type, tech stack, note about sub-documentation files]
## Root Setup Commands
[5-10 lines: install, build all, typecheck all, test all]
## Universal Conventions
[5-10 lines: code style, commit format, branch strategy, PR requirements]
## Security & Secrets
[3-5 lines: never commit tokens, .env patterns, PII handling]
## JIT Index
### Package Structure
- Web UI: `apps/web/` -> [see apps/web/AGENTS.md](apps/web/AGENTS.md)
- API: `apps/api/` -> [see apps/api/AGENTS.md](apps/api/AGENTS.md)
### Quick Find Commands
- Search function: `rg -n "functionName" apps/** packages/**`
- Find component: `rg -n "export.*ComponentName" apps/web/src`
- Find API routes: `rg -n "export const (GET|POST)" apps/api`
## Definition of Done
[3-5 lines: what must pass before PR]
```
#### For agent.d format:
```d
# Project Name
## project_snapshot
repo_type: "monorepo"
tech_stack: ["typescript", "react", "node"]
note: "See subdirectories for agent.d files"
## root_setup
install: "pnpm install"
build: "pnpm build"
test: "pnpm test"
typecheck: "pnpm typecheck"
## conventions
code_style: "prettier + eslint"
commit_format: "conventional"
branch_strategy: "gitflow"
## jit_index
packages = {
web_ui = "apps/web/agent.d"
api = "apps/api/agent.d"
}
## quick_find
search_function = "rg -n \"functionName\" apps/** packages/**"
find_component = "rg -n \"export.*ComponentName\" apps/web/src"
find_api = "rg -n \"export const (GET|POST)\" apps/api"
```
#### For Custom Documentation:
```markdown
# Project Documentation
## Overview
[Brief project description and architecture]
## Getting Started
[Setup instructions for new developers]
## Architecture
[High-level system design and patterns]
## Development Guidelines
[Coding standards and best practices]
## Module Index
[Links to detailed documentation for each module]
```
### Phase 3: Sub-Folder Documentation
For each major package, create detailed documentation:
#### AGENTS.md format:
```markdown
# Package Name
## Package Identity
[2-3 lines: what it does, primary tech]
## Setup & Run
[5-10 lines: install, dev, build, test, lint commands]
## Patterns & Conventions
[10-20 lines - MOST IMPORTANT SECTION]
- File organization rules
- Naming conventions
- Examples with actual file paths:
- DO: Use pattern from `src/components/Button.tsx`
- DON'T: Class components like `src/legacy/OldButton.tsx`
- Forms: Copy `src/components/forms/ContactForm.tsx`
- API calls: See `src/hooks/useUser.ts`
## Key Files
[5-10 lines: important files to understand package]
- Auth: `src/auth/provider.tsx`
- API client: `src/lib/api.ts`
- Types: `src/types/index.ts`
## JIT Index Hints
[5-10 lines: search commands for this package]
- Find component: `rg -n "export function .*" src/components`
- Find hook: `rg -n "export const use" src/hooks`
- Find tests: `find . -name "*.test.ts"`
## Common Gotchas
[3-5 lines if applicable]
- "Auth requires NEXT_PUBLIC_ prefix for client-side"
- "Always use @/ imports for absolute paths"
## Pre-PR Checks
[2-3 lines: copy-paste command]
pnpm --filter @repo/web typecheck && pnpm --filter @repo/web test
```
#### agent.d format:
```d
# Package Name
## package_identity
purpose = "React web application"
tech = ["react", "typescript", "tailwind"]
## setup
install = "pnpm install"
dev = "pnpm dev"
build = "pnpm build"
test = "pnpm test"
lint = "pnpm lint"
## patterns
file_organization = """
src/
components/ # React components
hooks/ # Custom hooks
lib/ # Utilities
types/ # TypeScript types
"""
naming = "PascalCase for components, camelCase for functions"
examples = [
{ do = "Use pattern from src/components/Button.tsx" }
{ dont = "Class components like src/legacy/OldButton.tsx" }
{ forms = "Copy src/components/forms/ContactForm.tsx" }
{ api = "See src/hooks/useUser.ts" }
]
## key_files
auth = "src/auth/provider.tsx"
api_client = "src/lib/api.ts"
types = "src/types/index.ts"
## jit_hints
find_component = "rg -n \"export function .*\" src/components"
find_hook = "rg -n \"export const use\" src/hooks"
find_tests = "find . -name \"*.test.ts\""
## gotchas
[
"Auth requires NEXT_PUBLIC_ prefix for client-side"
"Always use @/ imports for absolute paths"
]
## pre_pr_checks
command = "pnpm --filter @repo/web typecheck && pnpm --filter @repo/web test"
```
### Phase 4: Special Templates
#### Design System / UI Package
```markdown
## Design System
- Components: `packages/ui/src/components/**`
- Use design tokens from `packages/ui/src/tokens.ts`
- Component gallery: `pnpm --filter @repo/ui storybook`
- Examples:
- Buttons: `packages/ui/src/components/Button/Button.tsx`
- Forms: `packages/ui/src/components/Input/Input.tsx`
```
#### Database / Data Layer
```markdown
## Database
- ORM: Prisma / Drizzle / TypeORM
- Schema: `prisma/schema.prisma`
- Migrations: `pnpm db:migrate`
- Connection: via `src/lib/db.ts` singleton
- NEVER run migrations in tests
```
#### API / Backend Service
```markdown
## API Patterns
- REST routes: `src/routes/**/*.ts`
- Auth middleware: `src/middleware/auth.ts`
- Validation: Zod schemas in `src/schemas/**`
- Errors: `ApiError` from `src/lib/errors.ts`
- Example: `src/routes/users/get.ts`
```
#### Testing
```markdown
## Testing
- Unit: `*.test.ts` colocated
- Integration: `tests/integration/**`
- E2E: `tests/e2e/**` (Playwright)
- Single test: `pnpm test -- path/to/file.test.ts`
- Mocks: `src/test/mocks/**`
```
## Output Format
Provide files in order:
1. Analysis Summary
2. Root documentation (complete)
3. Each Sub-Folder documentation (with file path)
Format:
```
---
File: `AGENTS.md` (root)
---
[content]
---
File: `apps/web/AGENTS.md`
---
[content]
```
Or for agent.d:
```
---
File: `agent.d` (root)
---
[content]
---
File: `apps/web/agent.d`
---
[content]
```
Or for custom documentation:
```
---
File: `README.dev.md` (root)
---
[content]
---
File: `apps/web/README.dev.md`
---
[content]
```
## Quality Checklist
Before generating, verify:
- [ ] Root documentation under 200 lines
- [ ] Root links to all sub-documentation files
- [ ] Each sub-file has concrete examples (actual paths)
- [ ] Commands are copy-paste ready
- [ ] No duplication between root and sub-files
- [ ] JIT hints use actual patterns (ripgrep, find, glob)
- [ ] Every "DO" has real file example
- [ ] Every "DON'T" references real anti-pattern
- [ ] Pre-PR checks are single commands
- [ ] Document format matches user requirements
- [ ] All requested sections are included
No comments yet. Be the first to comment!