@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,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Documentation Authoring Workflow
|
|
3
|
+
description: Evidence-first workflow for creating, migrating, or improving docs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Authoring Workflow
|
|
7
|
+
|
|
8
|
+
The job is not to write plausible documentation. The job is to extract truth
|
|
9
|
+
from the repository, organize it, and make it usable.
|
|
10
|
+
|
|
11
|
+
## 1. Classify the Project
|
|
12
|
+
|
|
13
|
+
Identify the primary project type before writing:
|
|
14
|
+
|
|
15
|
+
- frontend app
|
|
16
|
+
- backend service
|
|
17
|
+
- full-stack app
|
|
18
|
+
- API service
|
|
19
|
+
- CLI
|
|
20
|
+
- library, package, framework, or SDK
|
|
21
|
+
- infrastructure module
|
|
22
|
+
- worker or job processor
|
|
23
|
+
- event-driven system
|
|
24
|
+
- documentation-only repo
|
|
25
|
+
- mixed monorepo
|
|
26
|
+
|
|
27
|
+
Repos can have multiple types. Document the dominant reader path first, then
|
|
28
|
+
add category-specific coverage.
|
|
29
|
+
|
|
30
|
+
## 2. Inventory Sources of Truth
|
|
31
|
+
|
|
32
|
+
Inspect likely evidence before editing.
|
|
33
|
+
|
|
34
|
+
For package-based projects, check package metadata, lockfiles, runtime version
|
|
35
|
+
files, build config, source entry points, scripts, tests, and CI.
|
|
36
|
+
|
|
37
|
+
For APIs, check route definitions, controllers, middleware, schema files,
|
|
38
|
+
OpenAPI, GraphQL, protobuf, tests, and generated clients.
|
|
39
|
+
|
|
40
|
+
For CLIs, check `bin` entries, command definitions, flag parsing,
|
|
41
|
+
configuration loading, environment variables, tests, and existing examples.
|
|
42
|
+
|
|
43
|
+
For services and infrastructure, check Docker files, compose files, workflows,
|
|
44
|
+
Terraform, Kubernetes, Helm, serverless or CDK configuration, deployment
|
|
45
|
+
manifests, monitor definitions, dashboards, and runbooks.
|
|
46
|
+
|
|
47
|
+
For existing docs, check README files, docs directories, contribution guides,
|
|
48
|
+
changelogs, ADRs, RFCs, and migration notes.
|
|
49
|
+
|
|
50
|
+
## 3. Build a Docs Inventory
|
|
51
|
+
|
|
52
|
+
Create a lightweight inventory before making broad changes.
|
|
53
|
+
|
|
54
|
+
| Area | Exists? | Quality | Source of Truth | Action |
|
|
55
|
+
| ----------------- | ------: | ------------------ | ----------------------- | --------------- |
|
|
56
|
+
| Landing page | Yes/No | Good/Stale/Missing | README or docs index | Update/Create |
|
|
57
|
+
| Getting started | Yes/No | Good/Stale/Missing | scripts, README, tests | Update/Create |
|
|
58
|
+
| Local development | Yes/No | Good/Stale/Missing | package scripts, config | Update/Create |
|
|
59
|
+
| Testing | Yes/No | Good/Stale/Missing | package scripts, CI | Update/Create |
|
|
60
|
+
| Deployment | Yes/No | Good/Stale/Missing | CI, infra | Verify/Create |
|
|
61
|
+
| API reference | Yes/No | Good/Stale/Missing | schema/routes | Generate/Create |
|
|
62
|
+
| CLI reference | Yes/No | Good/Stale/Missing | CLI source | Generate/Create |
|
|
63
|
+
| Configuration | Yes/No | Good/Stale/Missing | env/config files | Create |
|
|
64
|
+
| Architecture | Yes/No | Good/Stale/Missing | source, infra | Create |
|
|
65
|
+
| Operations | Yes/No | Good/Stale/Missing | monitors, runbooks | Create |
|
|
66
|
+
| Troubleshooting | Yes/No | Good/Stale/Missing | issues, tests, logs | Create |
|
|
67
|
+
|
|
68
|
+
## 4. Identify Reader Personas
|
|
69
|
+
|
|
70
|
+
Most docs serve one or more of these readers:
|
|
71
|
+
|
|
72
|
+
- new contributor
|
|
73
|
+
- maintainer
|
|
74
|
+
- service consumer
|
|
75
|
+
- CLI user
|
|
76
|
+
- API consumer
|
|
77
|
+
- operator on call
|
|
78
|
+
- reviewer
|
|
79
|
+
- product stakeholder
|
|
80
|
+
- support engineer
|
|
81
|
+
- AI agent making future changes
|
|
82
|
+
|
|
83
|
+
Write pages for actual tasks, not org-chart abstractions.
|
|
84
|
+
|
|
85
|
+
## 5. Decide the Minimum Useful Set
|
|
86
|
+
|
|
87
|
+
Most repos need a landing page, getting started, local development, testing,
|
|
88
|
+
configuration reference, deployment or release docs if deployable, and
|
|
89
|
+
ownership.
|
|
90
|
+
|
|
91
|
+
Then add category-specific pages. APIs need auth, examples, endpoint or
|
|
92
|
+
operation reference, and error behavior. CLIs need command reference, config,
|
|
93
|
+
output, exit codes, and automation behavior. Production systems need
|
|
94
|
+
observability, runbooks, rollback, and failure modes.
|
|
95
|
+
|
|
96
|
+
## 6. Preserve Existing Intent
|
|
97
|
+
|
|
98
|
+
Do not blindly replace existing docs. Existing pages often contain historical
|
|
99
|
+
context, production details, migration notes, local setup caveats, owner
|
|
100
|
+
knowledge, and important links. Extract useful facts, remove duplication, and
|
|
101
|
+
restructure around reader needs.
|
|
102
|
+
|
|
103
|
+
## 7. Ground Every Claim
|
|
104
|
+
|
|
105
|
+
For each factual statement, ask where it came from. Good sources include source
|
|
106
|
+
code, schemas, package scripts, configuration files, CI workflows, deployment
|
|
107
|
+
manifests, tests, generated types, and current docs that still match behavior.
|
|
108
|
+
|
|
109
|
+
Weak sources include stale comments, guessed conventions, issue titles without
|
|
110
|
+
details, inferred ownership, and copied docs from a similar repo. Mark weak but
|
|
111
|
+
useful facts as needing verification.
|
|
112
|
+
|
|
113
|
+
## 8. Write in Layers
|
|
114
|
+
|
|
115
|
+
For each topic, prefer this order:
|
|
116
|
+
|
|
117
|
+
1. Purpose
|
|
118
|
+
2. Common path
|
|
119
|
+
3. Example
|
|
120
|
+
4. Verification
|
|
121
|
+
5. Edge cases
|
|
122
|
+
6. Troubleshooting
|
|
123
|
+
7. Related reference
|
|
124
|
+
8. Deeper explanation
|
|
125
|
+
|
|
126
|
+
This keeps pages useful under time pressure.
|
|
127
|
+
|
|
128
|
+
## 9. Verify and Handoff
|
|
129
|
+
|
|
130
|
+
Run relevant checks when available: docs build, link check, formatter,
|
|
131
|
+
generated-reference command, examples, tests, or local preview. Handoff with
|
|
132
|
+
files changed, evidence inspected, verification results, unresolved facts, and
|
|
133
|
+
recommended next improvements.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Writing Style
|
|
3
|
+
description: Style rules for clear, direct, maintainable technical documentation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Writing Style
|
|
7
|
+
|
|
8
|
+
Technical documentation should be plain, specific, and useful under pressure.
|
|
9
|
+
The reader should not have to decode tone, chase implied context, or guess
|
|
10
|
+
whether a statement is current.
|
|
11
|
+
|
|
12
|
+
## Voice
|
|
13
|
+
|
|
14
|
+
Use a direct, practical voice.
|
|
15
|
+
|
|
16
|
+
Prefer:
|
|
17
|
+
|
|
18
|
+
```md
|
|
19
|
+
Run the tests before opening a pull request.
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Avoid:
|
|
23
|
+
|
|
24
|
+
```md
|
|
25
|
+
It is recommended that tests are run prior to the opening of a pull request.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Active Voice and Specific Nouns
|
|
29
|
+
|
|
30
|
+
Active voice makes responsibility clear. Specific nouns make actions
|
|
31
|
+
verifiable.
|
|
32
|
+
|
|
33
|
+
Weak:
|
|
34
|
+
|
|
35
|
+
```md
|
|
36
|
+
The cache is invalidated after the migration is run.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Stronger:
|
|
40
|
+
|
|
41
|
+
```md
|
|
42
|
+
The deploy workflow invalidates the Fastly cache after the migration finishes.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Avoid False Ease
|
|
46
|
+
|
|
47
|
+
Avoid words that make complex tasks sound trivial:
|
|
48
|
+
|
|
49
|
+
- just
|
|
50
|
+
- simply
|
|
51
|
+
- obviously
|
|
52
|
+
- easy
|
|
53
|
+
- basically
|
|
54
|
+
|
|
55
|
+
Replace hidden assumptions with exact steps, commands, or links.
|
|
56
|
+
|
|
57
|
+
## Avoid Tribal Knowledge
|
|
58
|
+
|
|
59
|
+
Do not write "use the usual process" or "deploy normally." Name the workflow,
|
|
60
|
+
environment, command, approval requirement, and verification path when known.
|
|
61
|
+
|
|
62
|
+
## Define Acronyms on First Use
|
|
63
|
+
|
|
64
|
+
Define acronyms the first time they appear. If an acronym is used only once,
|
|
65
|
+
avoid introducing it.
|
|
66
|
+
|
|
67
|
+
## Prefer Present Tense
|
|
68
|
+
|
|
69
|
+
Use future tense only for future behavior that is planned and dated. Avoid
|
|
70
|
+
stale words such as `new`, `soon`, `currently`, `temporary`, `eventually`, and
|
|
71
|
+
`recent` without a date or issue link.
|
|
72
|
+
|
|
73
|
+
## Use Concrete Examples
|
|
74
|
+
|
|
75
|
+
Show copyable examples with expected output when possible. Expected output helps
|
|
76
|
+
humans verify success and helps agents reason about command behavior.
|
|
77
|
+
|
|
78
|
+
## Warn Only for Real Risk
|
|
79
|
+
|
|
80
|
+
Use warnings for production impact, destructive operations, security concerns,
|
|
81
|
+
and irreversible behavior.
|
|
82
|
+
|
|
83
|
+
```md
|
|
84
|
+
> [!WARNING]
|
|
85
|
+
> This command deletes all pending jobs in the queue. Run it only during an
|
|
86
|
+
> active incident after confirming the queue contents.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Use notes for useful context, not ordinary tips.
|
|
90
|
+
|
|
91
|
+
## Markdown Rules
|
|
92
|
+
|
|
93
|
+
- Use one `#` heading per page.
|
|
94
|
+
- Do not skip heading levels.
|
|
95
|
+
- Use fenced code blocks with language identifiers.
|
|
96
|
+
- Use `sh` for shell commands.
|
|
97
|
+
- Use `txt` for command output.
|
|
98
|
+
- Do not include shell prompts unless the prompt itself matters.
|
|
99
|
+
- Use angle brackets for placeholders, such as `<environment>`.
|
|
100
|
+
- Explain every placeholder.
|
|
101
|
+
- Use descriptive link text.
|
|
102
|
+
- Use tables for reference data, not long prose.
|
|
103
|
+
|
|
104
|
+
## Headings Should Be Descriptive
|
|
105
|
+
|
|
106
|
+
Weak headings:
|
|
107
|
+
|
|
108
|
+
```md
|
|
109
|
+
## Stuff
|
|
110
|
+
|
|
111
|
+
## More
|
|
112
|
+
|
|
113
|
+
## Notes
|
|
114
|
+
|
|
115
|
+
## Misc
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Stronger headings:
|
|
119
|
+
|
|
120
|
+
```md
|
|
121
|
+
## Configure environment variables
|
|
122
|
+
|
|
123
|
+
## Run database migrations
|
|
124
|
+
|
|
125
|
+
## Verify the deployment
|
|
126
|
+
|
|
127
|
+
## Roll back a failed deploy
|
|
128
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-docs-analyze
|
|
3
|
-
version: 1.
|
|
3
|
+
version: 1.4.0
|
|
4
4
|
description: Run when you need to evaluate documentation structure, navigation, and coverage against the OAT docs app contract. Produces a severity-rated analysis artifact for oat-docs-apply.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
@@ -13,7 +13,8 @@ Scan a repository's documentation surface, evaluate it against the OAT docs cont
|
|
|
13
13
|
|
|
14
14
|
## Prerequisites
|
|
15
15
|
|
|
16
|
-
- Git repository with either an
|
|
16
|
+
- Git repository with either an OAT/Fumadocs docs app, an MkDocs app, a
|
|
17
|
+
`docs/` tree, or root-level Markdown docs.
|
|
17
18
|
- `jq` available in PATH for tracking updates.
|
|
18
19
|
|
|
19
20
|
## Mode Assertion
|
|
@@ -50,6 +51,9 @@ If you catch yourself:
|
|
|
50
51
|
|
|
51
52
|
- Editing docs content directly -> STOP and move that recommendation to the artifact.
|
|
52
53
|
- Rewriting navigation while analyzing -> STOP and record the required fix instead.
|
|
54
|
+
- Hand-editing or regenerating generated root indexes -> STOP and record a
|
|
55
|
+
generated-artifact finding with the exact evidence that proves freshness or
|
|
56
|
+
source-contract drift.
|
|
53
57
|
|
|
54
58
|
**Recovery:**
|
|
55
59
|
|
|
@@ -73,7 +77,7 @@ When executing this skill, provide lightweight progress feedback so the user can
|
|
|
73
77
|
- `[4/10] Assessing quality + coverage…`
|
|
74
78
|
- `[5/10] Verifying substantive claims…`
|
|
75
79
|
- `[6/10] Finding content opportunities…`
|
|
76
|
-
- `[7/10] Checking nav and drift…`
|
|
80
|
+
- `[7/10] Checking generated indexes, nav and drift…`
|
|
77
81
|
- `[8/10] Writing analysis artifact…`
|
|
78
82
|
- `[9/10] Reviewing artifact accuracy…`
|
|
79
83
|
- `[10/10] Updating verified tracking + summary…`
|
|
@@ -82,14 +86,27 @@ When executing this skill, provide lightweight progress feedback so the user can
|
|
|
82
86
|
|
|
83
87
|
### Step 0: Resolve Docs Target and Analysis Mode
|
|
84
88
|
|
|
85
|
-
Determine the documentation root using
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
Determine the documentation root using explicit docs-app evidence before generic
|
|
90
|
+
repo fallbacks:
|
|
91
|
+
|
|
92
|
+
1. `.oat/config.json` `documentation.root` / `documentation.tooling`.
|
|
93
|
+
- When `documentation.tooling` is `fumadocs`, record the surface type as
|
|
94
|
+
`oat-fumadocs-app`.
|
|
95
|
+
- Treat `documentation.root` as the docs app root. Resolve the authored docs
|
|
96
|
+
source root and generated index path from `documentation.index`, app config,
|
|
97
|
+
package scripts, generator scripts, or local guidance.
|
|
98
|
+
2. OAT/Fumadocs app candidates under `apps/*`, before root `docs/` fallback:
|
|
99
|
+
- `apps/*/source.config.*`
|
|
100
|
+
- `apps/*/next.config.*` with `apps/*/docs`
|
|
101
|
+
- `apps/*/docs` plus docs-app package scripts or local guidance evidence
|
|
102
|
+
3. `apps/*/mkdocs.yml`
|
|
103
|
+
4. `mkdocs.yml` at repo root
|
|
104
|
+
5. generic root `docs/`
|
|
105
|
+
6. Root-level Markdown docs (`README.md`, `CONTRIBUTING.md`, etc.) when no docs app exists
|
|
106
|
+
|
|
107
|
+
Do not select generic root `docs/` or root Markdown docs while `.oat/config.json`
|
|
108
|
+
or `apps/*` Fumadocs evidence identifies an active OAT/Fumadocs docs app. Prefer
|
|
109
|
+
the app declared in `.oat/config.json` when multiple app candidates exist.
|
|
93
110
|
|
|
94
111
|
Resolve tracking and analysis mode using the shared helper:
|
|
95
112
|
|
|
@@ -109,6 +126,8 @@ Build a complete inventory of:
|
|
|
109
126
|
- All directories containing Markdown files
|
|
110
127
|
- All `index.md` files
|
|
111
128
|
- Any `overview.md` files
|
|
129
|
+
- Generated root indexes or manifests, including warning banners such as "do not edit"
|
|
130
|
+
- Local guidance that identifies generated index paths or regeneration commands
|
|
112
131
|
- `mkdocs.yml` nav entries when present
|
|
113
132
|
|
|
114
133
|
Record the docs surface type:
|
|
@@ -116,11 +135,16 @@ Record the docs surface type:
|
|
|
116
135
|
- `mkdocs-app`
|
|
117
136
|
- `docs-tree`
|
|
118
137
|
- `root-markdown`
|
|
138
|
+
- `oat-fumadocs-app`
|
|
119
139
|
|
|
120
140
|
Capture the evidence sources that will justify later findings and recommendations. Prefer:
|
|
121
141
|
|
|
122
142
|
- `mkdocs.yml` and generated nav structure
|
|
143
|
+
- `.oat/config.json`, package scripts, generator scripts, and local `AGENTS.md`
|
|
144
|
+
files that identify authored docs roots or generated root indexes
|
|
123
145
|
- `docs/contributing.md`, contributor guides, and setup docs
|
|
146
|
+
- docs-app `AGENTS.md`, contributing pages, or authoring guides that tell
|
|
147
|
+
agents how to edit, analyze, apply, and validate docs
|
|
124
148
|
- `package.json` scripts, `requirements.txt`, and docs bootstrap scripts
|
|
125
149
|
- existing `index.md` trees and repeated directory patterns
|
|
126
150
|
- exact missing or stale paths, commands, and page references
|
|
@@ -128,6 +152,21 @@ Capture the evidence sources that will justify later findings and recommendation
|
|
|
128
152
|
Do **not** infer docs structure conventions from a tiny sample of pages when the broader
|
|
129
153
|
tree or config disagrees.
|
|
130
154
|
|
|
155
|
+
For OAT/Fumadocs docs apps, check whether local guidance covers:
|
|
156
|
+
|
|
157
|
+
- authored docs source location
|
|
158
|
+
- generated root indexes or manifests and their no-hand-edit boundary
|
|
159
|
+
- every content directory needing `index.md`
|
|
160
|
+
- useful `## Contents` maps
|
|
161
|
+
- `.md`-suffixed relative links, including `subdir/index.md`
|
|
162
|
+
- `.md` as the default format and `.mdx` only for JSX/component needs
|
|
163
|
+
- read-only audit routing to `oat-docs-analyze`
|
|
164
|
+
- approved bulk edits routing to `oat-docs-apply`
|
|
165
|
+
- generated artifact regeneration or freshness checks after source docs changes
|
|
166
|
+
|
|
167
|
+
Flag stale local guidance that references older aliases without mapping them to
|
|
168
|
+
the current analyze/apply flow.
|
|
169
|
+
|
|
131
170
|
### Step 2: Evaluate the `index.md` Contract
|
|
132
171
|
|
|
133
172
|
Use `references/quality-checklist.md` and `references/directory-assessment-criteria.md`.
|
|
@@ -136,9 +175,41 @@ For every documentation directory:
|
|
|
136
175
|
|
|
137
176
|
1. Verify `index.md` exists.
|
|
138
177
|
2. Verify `index.md` includes a `## Contents` section.
|
|
139
|
-
3.
|
|
140
|
-
|
|
141
|
-
|
|
178
|
+
3. Flag placeholder-only `## Contents` sections, including comments, generic
|
|
179
|
+
"add links here" copy, or empty lists.
|
|
180
|
+
4. Verify the `## Contents` section maps sibling pages and immediate child directories.
|
|
181
|
+
5. Verify parent `## Contents` maps include child directories that contain docs.
|
|
182
|
+
6. Flag `overview.md` usage as a migration finding.
|
|
183
|
+
7. Flag unexpected `.mdx` for plain content unless JSX/components or local
|
|
184
|
+
guidance justify it.
|
|
185
|
+
8. Verify single-file directories still expose a useful `index.md` entrypoint
|
|
186
|
+
or local section map.
|
|
187
|
+
9. Exempt asset-only directories that contain no Markdown content and are not
|
|
188
|
+
linked as navigable docs sections.
|
|
189
|
+
|
|
190
|
+
For OAT/Fumadocs docs apps, also distinguish authored source maps from generated
|
|
191
|
+
root indexes:
|
|
192
|
+
|
|
193
|
+
1. Resolve the authored docs source root and generated root index path from
|
|
194
|
+
`.oat/config.json`, package scripts, generator scripts, or local guidance.
|
|
195
|
+
2. Confirm the generated root index exists when local configuration says it is
|
|
196
|
+
produced, and record whether it appears tracked, ignored, or local-only.
|
|
197
|
+
3. Confirm generated warning banners are present when the repo's generator emits
|
|
198
|
+
them or local guidance requires them.
|
|
199
|
+
4. Compare generated entries against the authored `## Contents` graph.
|
|
200
|
+
5. Flag stale generated entries that point to deleted or moved docs paths.
|
|
201
|
+
6. Flag missing generated entries for authored pages or child directories that
|
|
202
|
+
are reachable from source `## Contents` maps.
|
|
203
|
+
7. Flag generated entries that are not reachable from any authored parent
|
|
204
|
+
`## Contents` map unless local generator semantics explicitly explain them.
|
|
205
|
+
8. Classify ordering drift separately from missing or stale entries.
|
|
206
|
+
9. If source maps and generated output disagree but generator behavior is not
|
|
207
|
+
documented well enough to judge, classify the finding as unclear generator
|
|
208
|
+
semantics instead of guessing.
|
|
209
|
+
|
|
210
|
+
Generated index checks are read-only. Recommend regeneration, source-map fixes,
|
|
211
|
+
or tool investigation in the analysis artifact; do not hand-edit generated
|
|
212
|
+
files from this skill.
|
|
142
213
|
|
|
143
214
|
### Step 3: Assess Quality and Coverage
|
|
144
215
|
|
|
@@ -165,13 +236,28 @@ Evidence standard:
|
|
|
165
236
|
For each evaluated page or directory:
|
|
166
237
|
|
|
167
238
|
1. Read the docs file plus the local evidence needed to validate its claims.
|
|
168
|
-
2.
|
|
169
|
-
|
|
239
|
+
2. Resolve every local relative Markdown link from the page where it appears.
|
|
240
|
+
Flag broken targets. In OAT/Fumadocs docs apps, flag extensionless local
|
|
241
|
+
Markdown links and prefer `.md`-suffixed targets, including
|
|
242
|
+
`subdir/index.md`.
|
|
243
|
+
3. Accept anchors on `.md` links, such as `page.md#section`, and do not flag
|
|
244
|
+
anchors-only, external URLs, `mailto:` links, image/asset links, or link
|
|
245
|
+
syntax intentionally shown inside inline code, fenced examples, or template
|
|
246
|
+
snippets.
|
|
247
|
+
4. Check Markdown hygiene: opening code fences need language identifiers; shell
|
|
248
|
+
examples should follow local fence conventions, defaulting to `sh` unless
|
|
249
|
+
local guidance uses `bash` or the block needs Bash-only syntax.
|
|
250
|
+
5. Flag empty headings, multiple document-level H1s outside intentional imported
|
|
251
|
+
README contexts, overlong frontmatter descriptions when local guidance
|
|
252
|
+
defines a limit, ellipsis-truncated descriptions, and README-copy metadata
|
|
253
|
+
signals that make search/navigation output look stale.
|
|
254
|
+
6. Record findings with severity, exact source refs, and confidence.
|
|
255
|
+
7. Decide a disclosure mode for each recommendation:
|
|
170
256
|
- `inline`
|
|
171
257
|
- `link_only`
|
|
172
258
|
- `omit`
|
|
173
259
|
- `ask_user`
|
|
174
|
-
|
|
260
|
+
8. Record canonical link targets whenever a `link_only` recommendation is used.
|
|
175
261
|
|
|
176
262
|
In `delta` mode, always evaluate changed docs files plus the nearest parent `index.md` pages.
|
|
177
263
|
In `full` mode, evaluate the whole docs surface.
|
|
@@ -227,9 +313,32 @@ sources only. Prefer:
|
|
|
227
313
|
- `app/services/`, `src/services/`, or equivalent business-logic modules
|
|
228
314
|
- the main application entrypoint and route registration files
|
|
229
315
|
- key models, schemas, and config surfaces that define user-facing behavior
|
|
316
|
+
- command definitions, CLI parsers, flag schemas, and command tests
|
|
317
|
+
- deployment, release, monitoring, runbook, rollback, and support/escalation
|
|
318
|
+
files that define operational behavior
|
|
230
319
|
|
|
231
320
|
Do not speculate about future roadmap items or undocumented external integrations.
|
|
232
321
|
|
|
322
|
+
Classify coverage by the surfaces proven in the repo:
|
|
323
|
+
|
|
324
|
+
- For app/service docs, check purpose, audience, local setup, testing,
|
|
325
|
+
configuration, deployment/release, observability, runbooks, rollback,
|
|
326
|
+
ownership, support/escalation, troubleshooting, and common failure modes.
|
|
327
|
+
- For API docs, check whether broad API surfaces have navigable
|
|
328
|
+
contract-grade reference pages with routes/endpoints, request/response
|
|
329
|
+
shapes, authentication, error modes, examples, and versioning where those
|
|
330
|
+
concepts exist in repo sources.
|
|
331
|
+
- For CLI docs, check command groups, flags, output modes, destructive
|
|
332
|
+
behavior, dry-run/force options, scripting contracts, exit-code behavior when
|
|
333
|
+
sourced, and examples for common workflows.
|
|
334
|
+
- For operations docs, flag "Future Topics" placeholders, empty runbook
|
|
335
|
+
outlines, unsupported deploy/monitoring claims, and missing owner-reviewed
|
|
336
|
+
gaps for unverifiable operations knowledge.
|
|
337
|
+
|
|
338
|
+
When a claim affects ownership, support, deployment, observability, rollback, or
|
|
339
|
+
external integration behavior and repo evidence cannot verify it, mark it as an
|
|
340
|
+
owner-review gap rather than guessing.
|
|
341
|
+
|
|
233
342
|
For each significant feature or API capability found in the codebase:
|
|
234
343
|
|
|
235
344
|
1. Capture the capability area and the evidence that proves it exists.
|
|
@@ -261,6 +370,19 @@ where the docs should live, and what specific subtopics the codebase shows shoul
|
|
|
261
370
|
|
|
262
371
|
### Step 6: Check Navigation and Drift
|
|
263
372
|
|
|
373
|
+
If a generated root index or manifest exists:
|
|
374
|
+
|
|
375
|
+
1. Compare generated entries with the authored `## Contents` graph.
|
|
376
|
+
2. Flag generated output that is missing, ignored/local-only when local guidance
|
|
377
|
+
expects a tracked artifact, stale, ordered differently from authored maps, or
|
|
378
|
+
unclear because generator semantics are undocumented.
|
|
379
|
+
3. Flag generated entries that are not reachable from authored maps as either
|
|
380
|
+
authored-source contract drift or generator-semantics uncertainty, depending
|
|
381
|
+
on the evidence.
|
|
382
|
+
4. Cite exact generated paths, authored source paths, package scripts, config
|
|
383
|
+
files, and representative links for each finding.
|
|
384
|
+
5. Prefer source-of-truth fixes over generated-file edits.
|
|
385
|
+
|
|
264
386
|
If `mkdocs.yml` exists:
|
|
265
387
|
|
|
266
388
|
1. Compare nav entries with the docs tree.
|
|
@@ -295,6 +417,9 @@ Populate the artifact with:
|
|
|
295
417
|
- Inventory summary
|
|
296
418
|
- Severity-rated findings
|
|
297
419
|
- Directory coverage and contract gaps
|
|
420
|
+
- Generated index and authored local-map findings
|
|
421
|
+
- Authored link, `## Contents`, and Markdown hygiene findings
|
|
422
|
+
- Local docs-app guidance gaps
|
|
298
423
|
- Accuracy verification verdicts for repo-checkable claims
|
|
299
424
|
- Content opportunities for missing or thin docs coverage
|
|
300
425
|
- Navigation/drift findings
|
|
@@ -355,7 +480,7 @@ Output a summary:
|
|
|
355
480
|
Analysis complete.
|
|
356
481
|
|
|
357
482
|
Docs target: {path}
|
|
358
|
-
Surface type: {mkdocs-app|docs-tree|root-markdown}
|
|
483
|
+
Surface type: {mkdocs-app|oat-fumadocs-app|docs-tree|root-markdown}
|
|
359
484
|
Files evaluated: {N}
|
|
360
485
|
Mode: {full|delta}
|
|
361
486
|
|
|
@@ -12,7 +12,7 @@ oat_analysis_commit: { commitHash }
|
|
|
12
12
|
**Date:** {YYYY-MM-DD}
|
|
13
13
|
**Mode:** {full|delta}
|
|
14
14
|
**Docs Target:** `{docs-target-path}`
|
|
15
|
-
**Surface Type:** {mkdocs-app|docs-tree|root-markdown}
|
|
15
|
+
**Surface Type:** {mkdocs-app|oat-fumadocs-app|docs-tree|root-markdown}
|
|
16
16
|
**Commit:** {short-hash}
|
|
17
17
|
|
|
18
18
|
## Summary
|
|
@@ -26,6 +26,11 @@ oat_analysis_commit: { commitHash }
|
|
|
26
26
|
- **Open questions / ask-user items:** {N}
|
|
27
27
|
- **Contradicted claims:** {N}
|
|
28
28
|
- **Coverage gaps / content opportunities:** {N}
|
|
29
|
+
- **Generated index findings:** {N}
|
|
30
|
+
- **Broken or extensionless local docs links:** {N}
|
|
31
|
+
- **Markdown hygiene findings:** {N}
|
|
32
|
+
- **Local guidance gaps:** {N}
|
|
33
|
+
- **Owner-review gaps:** {N}
|
|
29
34
|
|
|
30
35
|
## Docs Inventory
|
|
31
36
|
|
|
@@ -108,6 +113,81 @@ None | {numbered list}
|
|
|
108
113
|
|
|
109
114
|
{Or: "No directory contract gaps identified."}
|
|
110
115
|
|
|
116
|
+
## Generated Index and Local Map Findings
|
|
117
|
+
|
|
118
|
+
Use this section for OAT/Fumadocs docs apps or any docs surface with generated
|
|
119
|
+
root indexes, generated manifests, `meta.json`, or comparable derived navigation
|
|
120
|
+
files. Treat authored `docs/**/index.md` `## Contents` maps as source unless
|
|
121
|
+
local configuration or guidance proves a different source of truth.
|
|
122
|
+
|
|
123
|
+
| # | Classification | Generated Artifact | Authored Source Evidence | Issue | Severity | Recommended Fix |
|
|
124
|
+
| --- | -------------------------------- | ------------------------ | ------------------------------- | ----------------------------- | -------- | --------------------------------------- |
|
|
125
|
+
| 1 | {missing output} | `{index.md or manifest}` | `{config/script/guidance refs}` | Generated output is absent | Medium | Run or document the generation workflow |
|
|
126
|
+
| 2 | {ignored/local output} | `{index.md or manifest}` | `{gitignore/config refs}` | Local generated file is stale | Medium | Regenerate locally or clarify lifecycle |
|
|
127
|
+
| 3 | {stale output} | `{index.md or manifest}` | `{docs/**/index.md refs}` | Deleted path still appears | High | Regenerate derived output |
|
|
128
|
+
| 4 | {authored-source contract drift} | `{index.md or manifest}` | `{parent index.md refs}` | Source map omits child docs | Medium | Fix authored `## Contents` map |
|
|
129
|
+
| 5 | {unclear generator semantics} | `{index.md or manifest}` | `{generator/config refs}` | Ordering or inclusion unclear | Low | Document or investigate semantics |
|
|
130
|
+
|
|
131
|
+
{Or: "No generated index or local-map findings identified."}
|
|
132
|
+
|
|
133
|
+
For every generated-index finding:
|
|
134
|
+
|
|
135
|
+
- Cite exact generated artifact paths and authored source-map paths.
|
|
136
|
+
- Distinguish missing entries, stale entries, ordering drift, unreachable
|
|
137
|
+
generated entries, and unclear generator behavior.
|
|
138
|
+
- State whether generated warning banners are present, absent, or not expected.
|
|
139
|
+
- Do not recommend hand-editing generated artifacts; recommend source-map fixes,
|
|
140
|
+
regeneration, local guidance updates, or generator investigation.
|
|
141
|
+
|
|
142
|
+
## Authored Links, Contents, and Markdown Hygiene
|
|
143
|
+
|
|
144
|
+
Use this section for local Markdown links, `## Contents` quality, page-extension
|
|
145
|
+
conventions, and Markdown syntax issues that affect rendering, navigation, or
|
|
146
|
+
search quality.
|
|
147
|
+
|
|
148
|
+
| # | Category | File Ref | Issue | Evidence | Severity | Recommended Fix |
|
|
149
|
+
| --- | -------------------------- | ----------------- | ----------------------------------------------- | ------------------------------------ | -------- | --------------------------------------- |
|
|
150
|
+
| 1 | {broken local link} | `{docs/path.md}` | Target does not exist | `{source line and target path}` | High | Update or remove the link |
|
|
151
|
+
| 2 | {extensionless local link} | `{docs/path.md}` | Link omits `.md` suffix | `{source line}` | Medium | Use `.md` or `subdir/index.md` |
|
|
152
|
+
| 3 | {placeholder Contents} | `{docs/index.md}` | `## Contents` is scaffold | `{source line}` | Medium | Replace with useful local map |
|
|
153
|
+
| 4 | {overview.md} | `{docs/topic/}` | Legacy entrypoint remains | `{overview.md refs}` | Medium | Convert to `index.md` or topic page |
|
|
154
|
+
| 5 | {unexpected mdx} | `{docs/page.mdx}` | Plain content uses `.mdx` | `{page and local guidance}` | Medium | Convert to `.md` or document exception |
|
|
155
|
+
| 6 | {unlabeled code fence} | `{docs/path.md}` | Code fence has no language | `{source line}` | Low | Add a language identifier |
|
|
156
|
+
| 7 | {shell fence drift} | `{docs/path.md}` | Shell fence convention drifts | `{source line and guidance}` | Low | Use the documented shell fence language |
|
|
157
|
+
| 8 | {heading hygiene} | `{docs/path.md}` | Empty heading or extra H1 | `{source line}` | Low | Fix heading hierarchy |
|
|
158
|
+
| 9 | {metadata hygiene} | `{docs/path.md}` | Description too long, truncated, or README-like | `{frontmatter refs and local limit}` | Low | Rewrite concise metadata |
|
|
159
|
+
|
|
160
|
+
{Or: "No authored link, Contents, or Markdown hygiene findings identified."}
|
|
161
|
+
|
|
162
|
+
False-positive guardrails:
|
|
163
|
+
|
|
164
|
+
- Ignore external URLs, anchors-only links, `mailto:` links, image links, and
|
|
165
|
+
asset/file links that are not docs pages.
|
|
166
|
+
- Accept anchors on `.md` links, such as `page.md#section`.
|
|
167
|
+
- Ignore link syntax shown inside inline code, fenced snippets, placeholder
|
|
168
|
+
templates, or intentional examples.
|
|
169
|
+
- Only enforce frontmatter description length limits when local guidance,
|
|
170
|
+
schemas, or generators define the limit.
|
|
171
|
+
- Do not flag multiple H1s in intentional imported README/generated contexts
|
|
172
|
+
unless local guidance says those files are authored docs.
|
|
173
|
+
|
|
174
|
+
## Local Docs-App Guidance
|
|
175
|
+
|
|
176
|
+
Use this section when the repository has docs-app `AGENTS.md`, contributing
|
|
177
|
+
docs, authoring guides, generated-index docs, or legacy docs workflow guidance.
|
|
178
|
+
|
|
179
|
+
| # | Guidance Area | Source Ref | Status | Evidence | Severity | Recommended Fix |
|
|
180
|
+
| --- | -------------------------- | ---------------------- | ----------------------------- | -------------- | -------- | ----------------------------------- |
|
|
181
|
+
| 1 | Authored docs source root | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Medium | Document the source root |
|
|
182
|
+
| 2 | Generated root index | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Medium | Explain derived output lifecycle |
|
|
183
|
+
| 3 | `index.md` / `## Contents` | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Medium | Add local map contract guidance |
|
|
184
|
+
| 4 | `.md` links | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Medium | Document `.md` relative links |
|
|
185
|
+
| 5 | `.md` vs `.mdx` | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Low | Explain when `.mdx` is allowed |
|
|
186
|
+
| 6 | Analyze/apply boundaries | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Medium | Route audits/apply work correctly |
|
|
187
|
+
| 7 | Freshness checks | `{AGENTS.md or guide}` | {covered \| missing \| stale} | `{exact refs}` | Medium | Add regeneration/freshness guidance |
|
|
188
|
+
|
|
189
|
+
{Or: "No local docs-app guidance gaps identified."}
|
|
190
|
+
|
|
111
191
|
## Accuracy Verification
|
|
112
192
|
|
|
113
193
|
Check only claims that are verifiable from repo sources such as code, config, schemas,
|
|
@@ -122,6 +202,22 @@ runtime-only behavior here.
|
|
|
122
202
|
|
|
123
203
|
{Or: "No repo-checkable substantive claims required accuracy verification."}
|
|
124
204
|
|
|
205
|
+
## Coverage Review by Surface
|
|
206
|
+
|
|
207
|
+
Summarize which documentable surfaces were proven by repo evidence and how well
|
|
208
|
+
the docs cover them. Mark owner-review gaps instead of guessing when claims
|
|
209
|
+
depend on unsupported ownership, support, deployment, observability, rollback,
|
|
210
|
+
external integration, or production behavior.
|
|
211
|
+
|
|
212
|
+
| # | Surface | Repo Evidence | Docs Coverage State | Missing or Thin Areas | Owner Review Needed |
|
|
213
|
+
| --- | ----------- | ---------------------------------- | ---------------------------------------- | ---------------------------------------------------------- | ------------------- |
|
|
214
|
+
| 1 | App/service | `{entrypoint/service/config refs}` | {adequate \| thin \| no coverage \| N/A} | `{setup/testing/config/deploy/observability/runbook refs}` | {yes/no + reason} |
|
|
215
|
+
| 2 | API | `{router/schema refs}` | {adequate \| thin \| no coverage \| N/A} | `{contracts/auth/errors/examples/versioning}` | {yes/no + reason} |
|
|
216
|
+
| 3 | CLI | `{command/flag/test refs}` | {adequate \| thin \| no coverage \| N/A} | `{flags/output/dry-run/force/scripting/exit-codes}` | {yes/no + reason} |
|
|
217
|
+
| 4 | Operations | `{deploy/monitoring/runbook refs}` | {adequate \| thin \| no coverage \| N/A} | `{release/rollback/support/escalation/troubleshooting}` | {yes/no + reason} |
|
|
218
|
+
|
|
219
|
+
{Or: "No app/service, API, CLI, or operations surface required coverage review."}
|
|
220
|
+
|
|
125
221
|
## Content Opportunities
|
|
126
222
|
|
|
127
223
|
Surface only repo-checkable coverage gaps based on routers, services, models, schemas,
|
|
@@ -180,6 +276,10 @@ canonical docs/config/examples.
|
|
|
180
276
|
|
|
181
277
|
- `oat-docs-apply` may only implement recommendations backed by evidence in this artifact.
|
|
182
278
|
- Findings based on contradicted claims must be resolved against cited repo sources before `oat-docs-apply` acts on them.
|
|
279
|
+
- Generated artifacts must not be hand-edited by `oat-docs-apply`. If a
|
|
280
|
+
generated-index finding requires output changes, apply should update authored
|
|
281
|
+
source maps or run the documented generator only after user approval and local
|
|
282
|
+
workflow confirmation.
|
|
183
283
|
- Content opportunity recommendations require `oat-docs-apply` to read the cited router/service/model files before generating prose; it must not synthesize feature coverage from memory.
|
|
184
284
|
- Recommendations marked `omit` must stay out of generated docs changes.
|
|
185
285
|
- Recommendations marked `ask_user` require explicit user confirmation before generation.
|