@open-agent-toolkit/cli 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/docs/contributing/documentation.md +6 -2
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +24 -14
- package/assets/docs/docs-tooling/commands.md +16 -14
- package/assets/docs/docs-tooling/workflows.md +15 -8
- package/assets/docs/reference/docs-index-contract.md +28 -6
- package/assets/docs/reference/index.md +1 -1
- package/assets/docs/workflows/projects/implementation-execution.md +1 -1
- package/assets/docs/workflows/skills/index.md +3 -1
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/authoring-docs/SKILL.md +135 -0
- package/assets/skills/authoring-docs/references/categories.md +251 -0
- package/assets/skills/authoring-docs/references/information-architecture.md +156 -0
- package/assets/skills/authoring-docs/references/page-types.md +119 -0
- package/assets/skills/authoring-docs/references/principles.md +98 -0
- package/assets/skills/authoring-docs/references/review-rubric.md +169 -0
- package/assets/skills/authoring-docs/references/templates.md +549 -0
- package/assets/skills/authoring-docs/references/workflow.md +133 -0
- package/assets/skills/authoring-docs/references/writing-style.md +128 -0
- package/assets/skills/oat-docs-analyze/SKILL.md +143 -18
- package/assets/skills/oat-docs-analyze/references/analysis-artifact-template.md +101 -1
- package/assets/skills/oat-docs-analyze/references/directory-assessment-criteria.md +16 -0
- package/assets/skills/oat-docs-analyze/references/quality-checklist.md +83 -3
- package/assets/skills/oat-docs-authoring/SKILL.md +193 -0
- package/assets/skills/oat-docs-authoring/references/docs-root-resolution.md +64 -0
- package/assets/skills/oat-docs-authoring/references/lifecycle-boundaries.md +51 -0
- package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +77 -0
- package/assets/skills/oat-docs-authoring/references/targeted-authoring-workflow.md +61 -0
- package/assets/skills/oat-docs-authoring/references/validation.md +61 -0
- package/assets/skills/oat-docs-bootstrap/SKILL.md +15 -11
- package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +5 -5
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
- package/package.json +2 -2
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Documentation Categories
|
|
3
|
+
description: Category-specific guidance for APIs, CLIs, apps, services, libraries, frameworks, monorepos, architecture, operations, and audience boundaries.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Categories
|
|
7
|
+
|
|
8
|
+
Use category guidance after classifying the project. A repository can belong to
|
|
9
|
+
multiple categories; document the dominant reader path first, then add focused
|
|
10
|
+
reference, operational, or conceptual pages where the evidence supports them.
|
|
11
|
+
|
|
12
|
+
## APIs
|
|
13
|
+
|
|
14
|
+
API docs must help consumers integrate correctly without reading implementation
|
|
15
|
+
code.
|
|
16
|
+
|
|
17
|
+
Document:
|
|
18
|
+
|
|
19
|
+
- overview and use cases
|
|
20
|
+
- base URL, service location, or schema source
|
|
21
|
+
- environments
|
|
22
|
+
- authentication and authorization
|
|
23
|
+
- request and response formats
|
|
24
|
+
- status codes and error shape
|
|
25
|
+
- pagination, filtering, sorting, and limits
|
|
26
|
+
- idempotency, retries, and timeouts
|
|
27
|
+
- versioning, deprecation, and compatibility behavior
|
|
28
|
+
- webhooks, events, SDKs, or generated clients when applicable
|
|
29
|
+
- examples grounded in real routes, schemas, or tests
|
|
30
|
+
- support, ownership, or escalation when known
|
|
31
|
+
|
|
32
|
+
For REST or HTTP APIs, document method, path, side effects, auth requirement,
|
|
33
|
+
path and query parameters, request headers, request body, response body, status
|
|
34
|
+
codes, error codes, example request, example response, retry behavior,
|
|
35
|
+
idempotency, pagination, and deprecation notes.
|
|
36
|
+
|
|
37
|
+
For GraphQL, include endpoint, auth, schema source, common queries and
|
|
38
|
+
mutations, variables, fragments, pagination, errors, nullability, query cost or
|
|
39
|
+
depth limits, and deprecation policy.
|
|
40
|
+
|
|
41
|
+
For event-driven APIs, document event name, producer, known consumers,
|
|
42
|
+
transport, topic or stream, schema, example payload, ordering guarantees,
|
|
43
|
+
delivery guarantees, retry behavior, dead-letter behavior, idempotency
|
|
44
|
+
requirements, versioning, and backward compatibility.
|
|
45
|
+
|
|
46
|
+
For webhooks, document event types, endpoint expectations, signing and
|
|
47
|
+
verification, retry schedule, timeout, payload schema, idempotency, ordering,
|
|
48
|
+
testing tools, replay behavior, and security considerations.
|
|
49
|
+
|
|
50
|
+
Prefer machine-readable schemas where the repo has them: OpenAPI, GraphQL,
|
|
51
|
+
AsyncAPI, JSON Schema, Protocol Buffers, or generated types. Pair generated
|
|
52
|
+
reference with hand-written onboarding and workflow guides.
|
|
53
|
+
|
|
54
|
+
## CLIs
|
|
55
|
+
|
|
56
|
+
CLI docs must help readers run the right command safely. A CLI is both a human
|
|
57
|
+
interface and an automation interface.
|
|
58
|
+
|
|
59
|
+
Document:
|
|
60
|
+
|
|
61
|
+
- installation
|
|
62
|
+
- authentication
|
|
63
|
+
- configuration and precedence
|
|
64
|
+
- quick start
|
|
65
|
+
- common workflows
|
|
66
|
+
- command reference
|
|
67
|
+
- arguments, flags, inherited flags, aliases, and defaults
|
|
68
|
+
- environment variables and config files
|
|
69
|
+
- output formats and machine-readable output
|
|
70
|
+
- exit codes
|
|
71
|
+
- prompts and non-interactive behavior
|
|
72
|
+
- CI and scripting behavior
|
|
73
|
+
- logging, verbosity, retries, and timeouts
|
|
74
|
+
- dry-run behavior when supported
|
|
75
|
+
- production safety notes
|
|
76
|
+
- troubleshooting
|
|
77
|
+
|
|
78
|
+
For each command, include purpose, usage syntax, examples, side effects, output
|
|
79
|
+
shape, JSON shape if supported, exit codes, related commands, and any
|
|
80
|
+
environment or config keys it reads.
|
|
81
|
+
|
|
82
|
+
Do not invent exit codes. If exit codes are not explicit in source or docs, say
|
|
83
|
+
they are not documented.
|
|
84
|
+
|
|
85
|
+
## Apps and Services
|
|
86
|
+
|
|
87
|
+
Application and service docs should help people understand, run, change,
|
|
88
|
+
deploy, operate, and recover the system.
|
|
89
|
+
|
|
90
|
+
All apps and services should document:
|
|
91
|
+
|
|
92
|
+
- purpose, audience, and users
|
|
93
|
+
- local development
|
|
94
|
+
- testing
|
|
95
|
+
- configuration
|
|
96
|
+
- dependencies
|
|
97
|
+
- deployment
|
|
98
|
+
- observability
|
|
99
|
+
- ownership
|
|
100
|
+
- troubleshooting
|
|
101
|
+
- architecture summary
|
|
102
|
+
- operational risks
|
|
103
|
+
|
|
104
|
+
Frontend app docs should include routes, rendering model, data fetching, state
|
|
105
|
+
management, design system usage, feature flags, analytics, accessibility,
|
|
106
|
+
performance constraints, error boundaries, testing, local development, and
|
|
107
|
+
deployment.
|
|
108
|
+
|
|
109
|
+
Backend service docs should include service purpose, runtime, APIs, jobs,
|
|
110
|
+
queues, databases, caches, external services, configuration, auth, local
|
|
111
|
+
development, testing, deployment, observability, failure modes, and runbooks.
|
|
112
|
+
|
|
113
|
+
Worker and job docs should include trigger, input payload, output or side
|
|
114
|
+
effect, queue or scheduler, retry policy, timeout, concurrency, idempotency,
|
|
115
|
+
dead-letter behavior, observability, replay process, and failure modes.
|
|
116
|
+
|
|
117
|
+
Deployment docs should include where the system runs, deployment trigger,
|
|
118
|
+
environments, required permissions, pre-deploy checks, deployment steps,
|
|
119
|
+
post-deploy verification, rollback, and known risks.
|
|
120
|
+
|
|
121
|
+
Troubleshooting pages should be symptom-first and map symptoms to likely cause,
|
|
122
|
+
check, fix, and escalation.
|
|
123
|
+
|
|
124
|
+
## Libraries, Packages, SDKs, and Frameworks
|
|
125
|
+
|
|
126
|
+
Library and framework docs should help users decide whether to use the tool,
|
|
127
|
+
install it, learn the mental model, apply it correctly, and avoid misuse.
|
|
128
|
+
|
|
129
|
+
Document:
|
|
130
|
+
|
|
131
|
+
- purpose
|
|
132
|
+
- when to use it
|
|
133
|
+
- when not to use it
|
|
134
|
+
- installation
|
|
135
|
+
- version compatibility and peer dependencies
|
|
136
|
+
- quick start
|
|
137
|
+
- core concepts
|
|
138
|
+
- supported public API
|
|
139
|
+
- examples and recipes
|
|
140
|
+
- configuration
|
|
141
|
+
- extension points
|
|
142
|
+
- errors and side effects
|
|
143
|
+
- testing guidance
|
|
144
|
+
- migration guides
|
|
145
|
+
- release policy
|
|
146
|
+
- ownership and support model
|
|
147
|
+
|
|
148
|
+
Document only supported public API unless the repository explicitly treats an
|
|
149
|
+
internal surface as supported. For functions, classes, components, hooks, or
|
|
150
|
+
types, include purpose, signature, parameters, return value, errors, examples,
|
|
151
|
+
side effects, stability, and deprecation notes.
|
|
152
|
+
|
|
153
|
+
Frameworks need stronger conceptual docs than small libraries: design goals,
|
|
154
|
+
mental model, conventions, lifecycle, plugin model, file structure,
|
|
155
|
+
configuration model, defaults, escape hatches, anti-patterns, migrations, and
|
|
156
|
+
examples.
|
|
157
|
+
|
|
158
|
+
Component libraries should document import path, props, examples, states,
|
|
159
|
+
accessibility, design tokens, composition patterns, and when not to use a
|
|
160
|
+
component.
|
|
161
|
+
|
|
162
|
+
SDK docs should cover install, auth, client creation, common workflows, errors,
|
|
163
|
+
retries, pagination, async behavior, type generation, version compatibility,
|
|
164
|
+
and parity with the underlying service.
|
|
165
|
+
|
|
166
|
+
## Monorepos
|
|
167
|
+
|
|
168
|
+
Monorepo docs should help readers find the right package, app, service, or
|
|
169
|
+
workflow without already knowing the source tree.
|
|
170
|
+
|
|
171
|
+
Document:
|
|
172
|
+
|
|
173
|
+
- repo purpose and major workspaces
|
|
174
|
+
- package manager and workspace commands
|
|
175
|
+
- build, test, lint, and type-check strategy
|
|
176
|
+
- dependency graph or ownership map when available
|
|
177
|
+
- shared config and conventions
|
|
178
|
+
- release or deployment boundaries
|
|
179
|
+
- how to run one package or app
|
|
180
|
+
- how to add a new package or app
|
|
181
|
+
- generated artifacts and source-of-truth boundaries
|
|
182
|
+
- cross-package compatibility requirements
|
|
183
|
+
|
|
184
|
+
Avoid organizing docs only by implementation directory. Prefer audience,
|
|
185
|
+
product area, or workflow groupings, then link to package-level reference.
|
|
186
|
+
|
|
187
|
+
## Architecture and Operations
|
|
188
|
+
|
|
189
|
+
Architecture docs explain how the system works and why it is designed that way.
|
|
190
|
+
Operations docs explain how to run, observe, debug, recover, and safely change
|
|
191
|
+
the system.
|
|
192
|
+
|
|
193
|
+
Architecture docs should answer:
|
|
194
|
+
|
|
195
|
+
- What problem does this system solve?
|
|
196
|
+
- What are the main components?
|
|
197
|
+
- How does data flow through the system?
|
|
198
|
+
- What are the boundaries?
|
|
199
|
+
- What depends on this system, and what does it depend on?
|
|
200
|
+
- What tradeoffs and decisions shaped the design?
|
|
201
|
+
- What failure modes exist?
|
|
202
|
+
- What should future maintainers avoid breaking?
|
|
203
|
+
|
|
204
|
+
Use diagrams to clarify relationships, not to decorate. Every diagram should
|
|
205
|
+
have a title, purpose, scope, explanation, caveats, and last verified date when
|
|
206
|
+
it is highly operational.
|
|
207
|
+
|
|
208
|
+
Use architecture decision records for significant decisions such as database
|
|
209
|
+
choice, queueing model, API versioning, cache invalidation, auth model,
|
|
210
|
+
deployment topology, framework choice, migration strategy, or deprecation
|
|
211
|
+
strategy.
|
|
212
|
+
|
|
213
|
+
Operations docs should answer:
|
|
214
|
+
|
|
215
|
+
- Where does this run?
|
|
216
|
+
- How is it deployed and rolled back?
|
|
217
|
+
- How do I know it is healthy?
|
|
218
|
+
- Where are logs, metrics, traces, dashboards, and alerts?
|
|
219
|
+
- What are common failure modes?
|
|
220
|
+
- How do I recover from them?
|
|
221
|
+
- Who owns escalation?
|
|
222
|
+
|
|
223
|
+
Runbooks should include symptoms, impact, checks, mitigation, verification,
|
|
224
|
+
rollback, escalation, and known false positives. Alert docs should make every
|
|
225
|
+
alert actionable. Rollback docs must include exact steps or explicitly say the
|
|
226
|
+
rollback process is not documented.
|
|
227
|
+
|
|
228
|
+
## Internal and Public Docs
|
|
229
|
+
|
|
230
|
+
Internal and public docs share the same quality bar. The differences are
|
|
231
|
+
audience, assumptions, security, and support model.
|
|
232
|
+
|
|
233
|
+
Internal docs can include internal service names, environments, dashboards,
|
|
234
|
+
alerts, runbooks, deployment workflows, known consumers, support channels, and
|
|
235
|
+
escalation paths. They must not include secrets, credentials, tokens, private
|
|
236
|
+
keys, sensitive customer data, personal data, or private incident details that
|
|
237
|
+
do not belong in durable docs.
|
|
238
|
+
|
|
239
|
+
Public docs should include purpose, onboarding, installation, authentication
|
|
240
|
+
setup, permissions, examples, API or CLI reference, version compatibility,
|
|
241
|
+
migration guides, deprecation policy, support path, security guidance, and
|
|
242
|
+
accessibility or privacy notes when relevant.
|
|
243
|
+
|
|
244
|
+
Public docs should avoid internal URLs, private dashboards, Slack links,
|
|
245
|
+
deployment internals, customer-specific data, unapproved roadmap statements,
|
|
246
|
+
and implementation details that are not part of the public contract.
|
|
247
|
+
|
|
248
|
+
When converting internal docs to public docs, identify internal-only content,
|
|
249
|
+
remove or rewrite sensitive details, replace examples with public-safe values,
|
|
250
|
+
ensure links are public, remove private operational links, preserve user-facing
|
|
251
|
+
behavior, and add a public support path.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Information Architecture
|
|
3
|
+
description: Standard documentation structure, naming, navigation, and cross-linking.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Information Architecture
|
|
7
|
+
|
|
8
|
+
Documentation structure should feel predictable across repositories even when
|
|
9
|
+
the systems differ. Consistency makes docs easier to browse, review, migrate,
|
|
10
|
+
and use as agent context.
|
|
11
|
+
|
|
12
|
+
## Standard Top-Level Model
|
|
13
|
+
|
|
14
|
+
Use this conceptual model:
|
|
15
|
+
|
|
16
|
+
```txt
|
|
17
|
+
Start here
|
|
18
|
+
How-to guides
|
|
19
|
+
Reference
|
|
20
|
+
Concepts
|
|
21
|
+
Operations
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
These labels map to reader needs:
|
|
25
|
+
|
|
26
|
+
| Product Label | Documentation Type | Reader Question |
|
|
27
|
+
| ------------- | ------------------------ | -------------------------------------------- |
|
|
28
|
+
| Start here | Tutorial and orientation | What is this and how do I begin? |
|
|
29
|
+
| How-to guides | How-to | How do I complete this task? |
|
|
30
|
+
| Reference | Reference | What are the exact facts? |
|
|
31
|
+
| Concepts | Explanation | How does this work and why? |
|
|
32
|
+
| Operations | How-to plus reference | How do I run, observe, fix, or recover this? |
|
|
33
|
+
|
|
34
|
+
## Default Repo Structure
|
|
35
|
+
|
|
36
|
+
```txt
|
|
37
|
+
docs/
|
|
38
|
+
├── index.md
|
|
39
|
+
├── getting-started.md
|
|
40
|
+
├── how-to/
|
|
41
|
+
│ ├── local-development.md
|
|
42
|
+
│ ├── testing.md
|
|
43
|
+
│ ├── deployment.md
|
|
44
|
+
│ └── troubleshooting.md
|
|
45
|
+
├── reference/
|
|
46
|
+
│ ├── configuration.md
|
|
47
|
+
│ ├── environment-variables.md
|
|
48
|
+
│ ├── commands.md
|
|
49
|
+
│ ├── api.md
|
|
50
|
+
│ └── errors.md
|
|
51
|
+
├── concepts/
|
|
52
|
+
│ ├── architecture.md
|
|
53
|
+
│ ├── data-flow.md
|
|
54
|
+
│ ├── auth.md
|
|
55
|
+
│ └── caching.md
|
|
56
|
+
└── operations/
|
|
57
|
+
├── runbook.md
|
|
58
|
+
├── observability.md
|
|
59
|
+
├── alerts.md
|
|
60
|
+
└── rollback.md
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Do not create empty pages for symmetry. Use the structure as a guide, not
|
|
64
|
+
theater.
|
|
65
|
+
|
|
66
|
+
## Scale the Structure to the Repo
|
|
67
|
+
|
|
68
|
+
Tiny repos can use a single `README.md` if it covers purpose, install or setup,
|
|
69
|
+
usage, configuration, testing, and ownership.
|
|
70
|
+
|
|
71
|
+
Small repos should separate overview, usage, and reference.
|
|
72
|
+
|
|
73
|
+
Medium repos should use the standard structure.
|
|
74
|
+
|
|
75
|
+
Large repos or platforms can group by product area or audience, but should keep
|
|
76
|
+
the same doc types recognizable. Avoid organizing only by implementation
|
|
77
|
+
directory; readers usually do not arrive knowing the source tree.
|
|
78
|
+
|
|
79
|
+
## Landing Page Contract
|
|
80
|
+
|
|
81
|
+
Every docs entry point should answer:
|
|
82
|
+
|
|
83
|
+
1. What is this?
|
|
84
|
+
2. Why does it exist?
|
|
85
|
+
3. Who is it for?
|
|
86
|
+
4. What are the main capabilities?
|
|
87
|
+
5. What are the boundaries and non-goals?
|
|
88
|
+
6. How do I get started?
|
|
89
|
+
7. What are the common tasks?
|
|
90
|
+
8. Where is the reference material?
|
|
91
|
+
9. How is it operated?
|
|
92
|
+
10. Who owns it?
|
|
93
|
+
|
|
94
|
+
## Navigation Principles
|
|
95
|
+
|
|
96
|
+
Use predictable labels:
|
|
97
|
+
|
|
98
|
+
- Getting started
|
|
99
|
+
- Local development
|
|
100
|
+
- Testing
|
|
101
|
+
- Deployment
|
|
102
|
+
- Configuration
|
|
103
|
+
- Environment variables
|
|
104
|
+
- API reference
|
|
105
|
+
- CLI reference
|
|
106
|
+
- Architecture
|
|
107
|
+
- Data flow
|
|
108
|
+
- Authentication
|
|
109
|
+
- Observability
|
|
110
|
+
- Troubleshooting
|
|
111
|
+
- Runbook
|
|
112
|
+
- Rollback
|
|
113
|
+
|
|
114
|
+
Avoid clever labels such as `Misc`, `Magic`, `Deep cuts`, or `Everything else`.
|
|
115
|
+
|
|
116
|
+
## Page Naming
|
|
117
|
+
|
|
118
|
+
Use task names for how-to guides:
|
|
119
|
+
|
|
120
|
+
```txt
|
|
121
|
+
how-to/add-a-new-route.md
|
|
122
|
+
how-to/deploy-to-production.md
|
|
123
|
+
how-to/rotate-api-credentials.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Use topic names for concepts:
|
|
127
|
+
|
|
128
|
+
```txt
|
|
129
|
+
concepts/authentication.md
|
|
130
|
+
concepts/event-delivery.md
|
|
131
|
+
concepts/caching.md
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Use noun names for reference:
|
|
135
|
+
|
|
136
|
+
```txt
|
|
137
|
+
reference/environment-variables.md
|
|
138
|
+
reference/cli.md
|
|
139
|
+
reference/api.md
|
|
140
|
+
reference/errors.md
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Cross-Linking Rules
|
|
144
|
+
|
|
145
|
+
Link between doc types intentionally.
|
|
146
|
+
|
|
147
|
+
A tutorial should link to related how-to guides, relevant reference pages, and
|
|
148
|
+
conceptual background for later learning.
|
|
149
|
+
|
|
150
|
+
A how-to guide should link to reference pages for options, concepts for why the
|
|
151
|
+
task works, and operations pages for production safety.
|
|
152
|
+
|
|
153
|
+
A reference page should link to tutorials or how-to guides that show common use.
|
|
154
|
+
|
|
155
|
+
An explanation page should link to runbooks, deployment guides, API or CLI
|
|
156
|
+
reference, and ADRs when available.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Documentation Page Types
|
|
3
|
+
description: Guidance for tutorials, how-to guides, reference docs, explanations, and runbooks.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Page Types
|
|
7
|
+
|
|
8
|
+
Most documentation problems come from mixing different kinds of information into
|
|
9
|
+
one page. A page can contain supporting material from another type, but it
|
|
10
|
+
should have one primary job.
|
|
11
|
+
|
|
12
|
+
## Tutorial
|
|
13
|
+
|
|
14
|
+
A tutorial teaches through a guided path. Use tutorials when the reader is new
|
|
15
|
+
to the project or workflow.
|
|
16
|
+
|
|
17
|
+
Good tutorial topics include running the app locally for the first time,
|
|
18
|
+
sending the first API request, running the first CLI command, creating the first
|
|
19
|
+
integration, making the first contribution, or deploying to a non-production
|
|
20
|
+
environment.
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
|
|
24
|
+
- Assume the reader is capable but unfamiliar with this system.
|
|
25
|
+
- State prerequisites before steps.
|
|
26
|
+
- Use one successful path.
|
|
27
|
+
- Avoid branching.
|
|
28
|
+
- Show expected output.
|
|
29
|
+
- Explain only enough to keep the reader oriented.
|
|
30
|
+
- End with a working result.
|
|
31
|
+
- Link to deeper docs for next steps.
|
|
32
|
+
|
|
33
|
+
## How-To Guide
|
|
34
|
+
|
|
35
|
+
A how-to guide helps a reader complete a specific task.
|
|
36
|
+
|
|
37
|
+
Good how-to topics include adding a route, adding a CLI command, rotating a
|
|
38
|
+
secret, deploying a service, running a migration, debugging a worker, adding a
|
|
39
|
+
feature flag, creating a webhook consumer, or onboarding a service consumer.
|
|
40
|
+
|
|
41
|
+
Rules:
|
|
42
|
+
|
|
43
|
+
- Title the page as a task.
|
|
44
|
+
- Start with when to use the guide.
|
|
45
|
+
- State prerequisites.
|
|
46
|
+
- Use numbered steps.
|
|
47
|
+
- Include verification.
|
|
48
|
+
- Include rollback or cleanup when relevant.
|
|
49
|
+
- Keep conceptual explanation brief.
|
|
50
|
+
- Link to reference and concept pages.
|
|
51
|
+
|
|
52
|
+
## Reference
|
|
53
|
+
|
|
54
|
+
Reference documentation provides exact facts.
|
|
55
|
+
|
|
56
|
+
Good reference topics include API endpoints, GraphQL schema, CLI commands,
|
|
57
|
+
environment variables, configuration, error codes, event schemas, package
|
|
58
|
+
exports, permissions, cache keys, and feature flags.
|
|
59
|
+
|
|
60
|
+
Rules:
|
|
61
|
+
|
|
62
|
+
- Do not bury facts in prose.
|
|
63
|
+
- Use tables, lists, and code blocks.
|
|
64
|
+
- Include required vs optional status.
|
|
65
|
+
- Include defaults, types, constraints, examples, and errors.
|
|
66
|
+
- Include versioning and deprecation notes when known.
|
|
67
|
+
- Avoid tutorials inside reference pages.
|
|
68
|
+
|
|
69
|
+
## Explanation
|
|
70
|
+
|
|
71
|
+
Explanation helps readers understand how and why the system works.
|
|
72
|
+
|
|
73
|
+
Good explanation topics include architecture, data flow, rendering model,
|
|
74
|
+
caching strategy, auth model, queueing model, consistency model, failure modes,
|
|
75
|
+
tradeoffs, migration strategy, and design constraints.
|
|
76
|
+
|
|
77
|
+
Rules:
|
|
78
|
+
|
|
79
|
+
- Start with the problem or design pressure.
|
|
80
|
+
- Explain the mental model.
|
|
81
|
+
- Be honest about tradeoffs.
|
|
82
|
+
- Include diagrams when helpful.
|
|
83
|
+
- Link to ADRs or RFCs when available.
|
|
84
|
+
- Do not turn explanation pages into step-by-step guides.
|
|
85
|
+
- Do not hide operational instructions only in explanation pages.
|
|
86
|
+
|
|
87
|
+
## Runbook
|
|
88
|
+
|
|
89
|
+
A runbook is operational how-to plus reference. Use it when the reader needs to
|
|
90
|
+
recover or safely operate a system.
|
|
91
|
+
|
|
92
|
+
Rules:
|
|
93
|
+
|
|
94
|
+
- Start with symptoms and impact.
|
|
95
|
+
- Include first checks, dashboards, logs, metrics, or traces.
|
|
96
|
+
- List likely causes and known false positives.
|
|
97
|
+
- Provide mitigation steps and exact commands or links.
|
|
98
|
+
- Include verification, rollback, and escalation.
|
|
99
|
+
- Avoid long historical background before recovery steps.
|
|
100
|
+
|
|
101
|
+
## Mixed Pages
|
|
102
|
+
|
|
103
|
+
Some pages legitimately mix types. A landing page can include orientation,
|
|
104
|
+
links, and a small quick start. A runbook can include reference tables and task
|
|
105
|
+
steps. An API guide can include conceptual auth explanation plus endpoint
|
|
106
|
+
reference links.
|
|
107
|
+
|
|
108
|
+
The rule is not "never mix." The rule is to know the primary job of the page
|
|
109
|
+
and keep everything else subordinate.
|
|
110
|
+
|
|
111
|
+
## Smell Test
|
|
112
|
+
|
|
113
|
+
| If the Reader Asks | They Need | Do Not Give Them |
|
|
114
|
+
| ------------------------------- | ------------ | --------------------------- |
|
|
115
|
+
| I am new. Walk me through this. | Tutorial | Full API reference |
|
|
116
|
+
| How do I do X? | How-to guide | Architecture essay |
|
|
117
|
+
| What does this option mean? | Reference | A blog post |
|
|
118
|
+
| Why does this behave this way? | Explanation | A command list |
|
|
119
|
+
| Production is broken. What now? | Runbook | Historical background first |
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Documentation Principles
|
|
3
|
+
description: Core principles for evidence-first technical documentation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Principles
|
|
7
|
+
|
|
8
|
+
Documentation is part of the system. Maintain it with the same seriousness as
|
|
9
|
+
code, tests, configuration, infrastructure, and runbooks.
|
|
10
|
+
|
|
11
|
+
The goal is not to produce many pages. The goal is to reduce confusion, support
|
|
12
|
+
safe change, and make the system legible to humans and agents.
|
|
13
|
+
|
|
14
|
+
## Start With the Reader's Job
|
|
15
|
+
|
|
16
|
+
Write from the reader's task, not the source tree.
|
|
17
|
+
|
|
18
|
+
Weak:
|
|
19
|
+
|
|
20
|
+
```md
|
|
21
|
+
This service uses HTTP handlers, queues, and PostgreSQL.
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Stronger:
|
|
25
|
+
|
|
26
|
+
```md
|
|
27
|
+
Use this service to publish content lifecycle events. The service accepts HTTP
|
|
28
|
+
requests, persists event state in PostgreSQL, and processes asynchronous work
|
|
29
|
+
through queue-backed workers.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Purpose comes first. Implementation details follow when they help the reader.
|
|
33
|
+
|
|
34
|
+
## Task Completion Beats Encyclopedic Completeness
|
|
35
|
+
|
|
36
|
+
Most readers arrive with a problem:
|
|
37
|
+
|
|
38
|
+
- How do I run this locally?
|
|
39
|
+
- How do I deploy this?
|
|
40
|
+
- What does this flag do?
|
|
41
|
+
- Why did this job fail?
|
|
42
|
+
- What request shape should I send?
|
|
43
|
+
- Can I safely change this config?
|
|
44
|
+
|
|
45
|
+
Complete docs are useful only when structured around those moments.
|
|
46
|
+
|
|
47
|
+
## Separate Documentation Modes
|
|
48
|
+
|
|
49
|
+
Tutorials, how-to guides, reference pages, explanations, and runbooks do
|
|
50
|
+
different jobs. Keep each page's primary job clear. Do not turn a first-run
|
|
51
|
+
tutorial into a full reference manual, or a reference page into a long
|
|
52
|
+
architecture essay.
|
|
53
|
+
|
|
54
|
+
## Make Context Explicit for Agents
|
|
55
|
+
|
|
56
|
+
Agents do not know which conventions are local, current, or tribal. Write down
|
|
57
|
+
exact commands, paths, service names, environment names, runtime versions,
|
|
58
|
+
configuration keys, ownership when known, constraints, non-goals, failure modes,
|
|
59
|
+
and uncertainty.
|
|
60
|
+
|
|
61
|
+
## Prefer Boring Consistency
|
|
62
|
+
|
|
63
|
+
Across repositories, readers should know where to find setup, commands,
|
|
64
|
+
configuration, API or CLI reference, deployment, observability, runbooks,
|
|
65
|
+
architecture, and ownership. Familiar structure lowers cognitive load.
|
|
66
|
+
|
|
67
|
+
## Lead With the Safe Path
|
|
68
|
+
|
|
69
|
+
Document the common path first. Then explain variations, edge cases, production
|
|
70
|
+
caveats, failure modes, unsafe commands, rollback, and compatibility
|
|
71
|
+
boundaries.
|
|
72
|
+
|
|
73
|
+
## Treat Reference as a Contract
|
|
74
|
+
|
|
75
|
+
Reference docs for APIs, commands, configuration, events, packages, and
|
|
76
|
+
environment variables should include names, types, required or optional status,
|
|
77
|
+
defaults, allowed values, constraints, examples, errors, version notes, and
|
|
78
|
+
deprecation notes when those facts exist.
|
|
79
|
+
|
|
80
|
+
## Treat Operations Docs as Safety Equipment
|
|
81
|
+
|
|
82
|
+
Runbooks are not background reading. They should help someone recover a system
|
|
83
|
+
under pressure with symptoms, impact, likely causes, dashboards, logs, commands,
|
|
84
|
+
verification, rollback, escalation, and known false positives.
|
|
85
|
+
|
|
86
|
+
## Give Internal Docs the Same Quality Bar
|
|
87
|
+
|
|
88
|
+
Internal docs can assume more context only when that context is linked or
|
|
89
|
+
explained. They still need accurate examples, safe operations guidance, and
|
|
90
|
+
clear ownership. Internal docs often guide production changes and future agent
|
|
91
|
+
work.
|
|
92
|
+
|
|
93
|
+
## Make Docs Age Visibly
|
|
94
|
+
|
|
95
|
+
Docs get stale. Include version compatibility, last-verified dates for
|
|
96
|
+
operational procedures, supported environments, deprecated behavior, ownership,
|
|
97
|
+
source-of-truth links, and generated-reference markers when useful. Avoid
|
|
98
|
+
claims like "new," "soon," or "temporary" without dates or issue links.
|