docs-generator · v1.0 · 2026-08-31 · sha256 af8059a9aa960741
docs-generator v1.0A
Immutable. This exact content is served forever at /api/v1/blob/af8059a9aa960741.
---
name: docs-generator
description: 'WHAT — Generate or update documentation from code: README.md from repo structure, CHANGELOG.md
from git history, API reference from OpenAPI/GraphQL schemas, and AGENTS.md starters for new projects.'
origin:
type: first-party
metadata:
author: ulises-jeremias
version: '1.0'
tags:
- docs
- readme
- changelog
- api-reference
- agents
---
# Docs Generator (WHAT)
Generate or refresh documentation from the actual code, schema, and git history.
Never invent — always derive from evidence in the repo.
## When to use
- README is missing, stale, or doesn't reflect the current stack
- CHANGELOG needs to be generated from merged PRs or git log
- API spec (OpenAPI/GraphQL) exists but human-readable docs don't
- New repo needs an AGENTS.md to onboard AI assistants
## Out of scope
- Does NOT write code — documentation only
- Does NOT commit or push — delegate to **`github-cli-workflow`**
- Does NOT update external systems (Confluence, Notion) — use their respective skills
## Workflow
### README.md generation
1. Inspect repo: `package.json` / `pyproject.toml` / `Cargo.toml` for name, description, stack
2. Read `Makefile` / `justfile` / `package.json scripts` for commands
3. Read `.github/workflows/` for CI structure
4. Draft README with: Purpose, Stack, Prerequisites, Quick Start, Development, Testing, Contributing
5. Apply **`output-handshake`** before writing
### CHANGELOG.md generation
```bash
# Conventional commits format
git log --oneline --no-merges --pretty="format:%h %s" $(git describe --tags --abbrev=0)..HEAD
# Group by type: feat / fix / docs / chore / refactor / perf / test
# Format: ## [Unreleased] with subsections per type
```
Draft changelog section and ask user to confirm version before finalizing.
### API reference generation
- OpenAPI spec → readable endpoint table with params, responses, auth
- GraphQL schema → type reference with fields and descriptions
- Always note the spec version and date in the generated doc
### AGENTS.md starter
Use the template from `~/.local/share//skills-catalog.yaml` patterns:
- Purpose and stack
- Repository inspection order
- What AI assistants may and must not do
- Key commands (build, test, lint)
- Links to key docs
## Inline Documentation (why, not what) — per `addyosmani/agent-skills` `documentation-and-adrs` 2026-08-12 diff `docs/research/diff-394-documentation-and-adrs.md`
Comment the *why*, not the *what*:
```typescript
// BAD: Restates the code
// Increment counter by 1
counter += 1;
// GOOD: Explains non-obvious intent
// Rate limit uses a sliding window — reset counter at window boundary,
// not on a fixed schedule, to prevent burst attacks at window edges
if (now - windowStart > WINDOW_SIZE_MS) {
counter = 0;
windowStart = now;
}
```
* **When NOT to comment:** self-explanatory code (`calculateTotal` reduce), week-old `TODO`s (do it now), commented-out code (delete — git has history).
* **Document Known Gotchas inline** where they matter:
```typescript
/**
* IMPORTANT: Must be called before first render — after hydration causes FOUC
* (theme context not available during SSR). See ADR-003.
*/
export function initializeTheme(theme: Theme): void { ... }
```
**Do not invent docs from thin air** — derive from code/specs/git history (this skill) vs ADR *why* (via `adr` skill). `personas/` (HOW agent thinks) vs `skills/` (HOW task executes) preserved — see `docs/CONCEPTS.md`.
## Verification (after documenting)
* [ ] ADRs exist for all significant decisions, README covers quick start/commands/architecture (link ADRs), API docs have types, gotchas inline, no commented-out code, `CLAUDE.md`/`AGENTS.md` current.
* Rationalizations table — "code is self-documenting" (reality: code shows what, not why/alternatives), "docs when API stabilizes" (doc is first test of design), "ADRs are overhead" (10-min ADR prevents 2-hour debate).
## Anti-patterns
- Do not guess stack or commands — read from actual config files
- Do not generate CHANGELOG from unstaged changes
- Do not overwrite existing README without showing diff first
## Delegates to
| Need | Skill |
|------|-------|
| Push and create PR with generated docs | **`github-cli-workflow`** |
| Confirm output destination | **`output-handshake`** |
| Repo discovery | **`assistant`** |