structure-and-maintenance
Individual docs must be clear; the *set* of docs must be navigable and must not rot. This reference covers information architecture and keeping documentation alive.
$ npx -y skills add vanara-agents/skills --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Individual docs must be clear; the *set* of docs must be navigable and must not rot. This reference covers information architecture and keeping documentation alive.
Agent definition
structure-and-maintenance.mdStructure and maintenance
Individual docs must be clear; the *set* of docs must be navigable and must not rot. This reference covers information architecture and keeping documentation alive.
Information architecture
Organize the documentation set around the four Diátaxis types and the reader's journey, not around the codebase's module layout:
docs/
├── tutorials/ # learning-oriented, linear
│ └── getting-started.md
├── how-to/ # task-oriented
│ ├── rotate-signing-key.md
│ └── configure-timeouts.md
├── reference/ # lookup-oriented, exhaustive
│ ├── cli.md
│ └── config.md
└── explanation/ # understanding-oriented
└── why-cursor-pagination.md- A reader who knows their *intent* should land in the right folder immediately.
- Name files by the reader's task ("rotate-signing-key"), not the implementation ("key-service-internals").
Linking
- Link generously between types (tutorial → how-to → reference → explanation), but never inline another
type's full content. A link keeps each page single-purpose.
- Use descriptive link text ("see the CLI reference"), never "click here."
- Keep a single entry point (an index/README) that routes by reader intent.
Keeping docs from rotting
Documentation rots when it duplicates a source of truth that changes without it. Defenses, in order of preference:
1. **Generate from source.** CLI help, config schemas, API specs, and route tables should be generated (or extracted) so they can't drift. Pair with the `update-docs` skill. 2. **Link to source.** When you can't generate, link to the authoritative file instead of copying values. 3. **Single source per fact.** A given default/flag/limit is documented in exactly one place; everything else links to it. 4. **Date and version.** Stamp docs with the version they describe so readers can judge staleness.
Review and verification cadence
- Re-run every example when the documented surface changes (a flag rename, a new required arg).
- Treat a failed copy-paste as a P1 doc bug — it destroys trust instantly.
- On each release, diff the changelog against the docs: any user-visible change needs a doc change.
Anti-patterns
- **Docs as a dumping ground:** an "FAQ" or "notes" page that accumulates everything no one filed properly.
- **Mirror-the-code structure:** folders named after services, so readers must understand the architecture
to find a task.
- **Copy-pasted constants:** the same timeout value written in five guides; change one, the rest lie.
- **Orphan pages:** docs with no inbound links, found only by search, never maintained.
Read more
Structure and maintenance
Individual docs must be clear; the *set* of docs must be navigable and must not rot. This reference covers information architecture and keeping documentation alive.
Information architecture
Organize the documentation set around the four Diátaxis types and the reader's journey, not around the codebase's module layout:
docs/
├── tutorials/ # learning-oriented, linear
│ └── getting-started.md
├── how-to/ # task-oriented
│ ├── rotate-signing-key.md
│ └── configure-timeouts.md
├── reference/ # lookup-oriented, exhaustive
│ ├── cli.md
│ └── config.md
└── explanation/ # understanding-oriented
└── why-cursor-pagination.md- A reader who knows their *intent* should land in the right folder immediately.
- Name files by the reader's task ("rotate-signing-key"), not the implementation ("key-service-internals").
Linking
- Link generously between types (tutorial → how-to → reference → explanation), but never inline another
type's full content. A link keeps each page single-purpose.
- Use descriptive link text ("see the CLI reference"), never "click here."
- Keep a single entry point (an index/README) that routes by reader intent.
Keeping docs from rotting
Documentation rots when it duplicates a source of truth that changes without it. Defenses, in order of preference:
1. **Generate from source.** CLI help, config schemas, API specs, and route tables should be generated (or extracted) so they can't drift. Pair with the `update-docs` skill. 2. **Link to source.** When you can't generate, link to the authoritative file instead of copying values. 3. **Single source per fact.** A given default/flag/limit is documented in exactly one place; everything else links to it. 4. **Date and version.** Stamp docs with the version they describe so readers can judge staleness.
Review and verification cadence
- Re-run every example when the documented surface changes (a flag rename, a new required arg).
- Treat a failed copy-paste as a P1 doc bug — it destroys trust instantly.
- On each release, diff the changelog against the docs: any user-visible change needs a doc change.
Anti-patterns
- **Docs as a dumping ground:** an "FAQ" or "notes" page that accumulates everything no one filed properly.
- **Mirror-the-code structure:** folders named after services, so readers must understand the architecture
to find a task.
- **Copy-pasted constants:** the same timeout value written in five guides; change one, the rest lie.
- **Orphan pages:** docs with no inbound links, found only by search, never maintained.
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Repo: vanara-agents/skills
Other agents on vanara-agents-skills.
- AGENT
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination, filtering, error envelopes, versioning, and idempotency. Produces a reviewable API contract plus an OpenAPI snippet, not
Open agent - review-notes
This shows how the api-designer agent reviews a flawed draft. Findings are severity-ranked so the implementer fixes the contract-breakers first. Severity legend: **CRITICAL** (breaks clients / data risk), **HIGH** (real bug or inconsistency), **MEDIUM** (maintainability),
Open agent - contract-and-openapi
The contract is the deliverable. Express it as an **OpenAPI 3.1** document so it is human-readable *and* machine-checkable. This reference covers how to structure that document and what `scripts/lint-openapi.mjs` enforces.
Open agent - design-checklist
Run through this before declaring an API contract done. It is ordered the way you should *design*: resources first, cross-cutting rules last. Every box is a place real APIs go wrong in production.
Open agent - versioning-and-evolution
APIs are forever once published: a consumer you've never met may depend on any field you expose. Design so you can **add without breaking**, and version explicitly when you must break.
Open agent - pr-comment-template
Copy-paste templates for leaving review comments. Keep each comment to one finding: an anchor, the problem, and the fix.
Open agent

