@open-agent-toolkit/cli 0.3.26 → 0.3.27

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.
Files changed (40) hide show
  1. package/README.md +6 -0
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/contributing/documentation.md +39 -6
  4. package/assets/docs/contributing/markdown-features.md +14 -2
  5. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +12 -9
  6. package/assets/docs/docs-tooling/commands.md +1 -1
  7. package/assets/docs/docs-tooling/workflows.md +14 -10
  8. package/assets/docs/getting-started/tool-packs.md +5 -3
  9. package/assets/docs/skills/index.md +8 -8
  10. package/assets/public-package-versions.json +4 -4
  11. package/assets/skills/oat-docs-analyze/SKILL.md +2 -2
  12. package/assets/skills/oat-docs-analyze/references/legacy-scaffold-checks.md +4 -0
  13. package/assets/skills/oat-docs-bootstrap/SKILL.md +39 -59
  14. package/assets/templates/docs-app-fuma/AGENTS.md +50 -0
  15. package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +7 -3
  16. package/assets/templates/docs-app-fuma/app/llms/[...slug]/route.ts +15 -0
  17. package/assets/templates/docs-app-fuma/app/llms-full.txt/route.ts +7 -0
  18. package/assets/templates/docs-app-fuma/app/llms.txt/route.ts +7 -0
  19. package/assets/templates/docs-app-fuma/docs/contributing/docs-toolchain.md +48 -0
  20. package/assets/templates/docs-app-fuma/docs/contributing/index.md +13 -0
  21. package/assets/templates/docs-app-fuma/docs/contributing.md +77 -41
  22. package/assets/templates/docs-app-fuma/docs/getting-started.md +3 -33
  23. package/assets/templates/docs-app-fuma/docs/index.md +2 -2
  24. package/assets/templates/docs-app-fuma/lib/source.ts +5 -0
  25. package/assets/templates/docs-app-mkdocs/AGENTS.md +46 -0
  26. package/assets/templates/docs-app-mkdocs/docs/contributing/docs-toolchain.md +44 -0
  27. package/assets/templates/docs-app-mkdocs/docs/contributing/index.md +13 -0
  28. package/assets/templates/docs-app-mkdocs/docs/contributing.md +105 -21
  29. package/assets/templates/docs-app-mkdocs/docs/getting-started.md +7 -25
  30. package/assets/templates/docs-app-mkdocs/docs/index.md +7 -2
  31. package/assets/templates/docs-app-mkdocs/mkdocs.yml +1 -0
  32. package/dist/commands/docs/init/docs-commands.d.ts +1 -0
  33. package/dist/commands/docs/init/docs-commands.d.ts.map +1 -1
  34. package/dist/commands/docs/init/docs-commands.js +8 -3
  35. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  36. package/dist/commands/docs/init/scaffold.js +24 -10
  37. package/dist/commands/docs/nav/fumadocs.d.ts.map +1 -1
  38. package/dist/commands/docs/nav/fumadocs.js +32 -10
  39. package/package.json +2 -2
  40. package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +0 -64
package/README.md CHANGED
@@ -41,6 +41,12 @@ Additional useful entry points:
41
41
  - `oat repo archive sync`
42
42
  - `oat doctor`
43
43
 
44
+ ## Docs scaffolding
45
+
46
+ `oat docs init --framework fumadocs --app-name my-docs` creates a docs app with app-root `AGENTS.md`, a reader-first Getting Started stub and contributor/toolchain guides. The CLI owns these templates for both Fumadocs and legacy MkDocs; the bootstrap skill guides inspection and setup. Existing files and plain Markdown adoption are preserved.
47
+
48
+ Fumadocs static exports include `llms.txt`, `llms-full.txt` and `llms/<page-slugs>/content.md` (root `llms/content.md`) for loaded `.md` readers. These retain authored Markdown and source-relative-link guidance; configured non-readers and MDX are excluded. Use authored Contents maps and `oat docs nav sync`, followed by `--check`, for navigation changes.
49
+
44
50
  ## Update Notifications
45
51
 
46
52
  On ordinary interactive command runs, OAT may print a passive notice when npm's stable `latest` CLI version is newer than the installed version. The cache normally limits checks to once every 24 hours and same-version notices to once every 72 hours; overlapping CLI processes can each perform a check or print a notice.
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "oatVersion": "0.3.26"
3
+ "oatVersion": "0.3.27"
4
4
  }
@@ -15,9 +15,43 @@ Documentation should ship with the code it explains. This page covers the core d
15
15
  - Use `.md`-suffixed relative links in `## Contents`: `[Page](page.md)` for leaf pages and `[Section](subdir/index.md)` for child directories.
16
16
  - Fumadocs and MkDocs share this authored contract, but they regenerate different artifacts.
17
17
 
18
+ Within Contents, use dash-only link bullets with optional descriptions. A `### Label` introduces a group containing at least one authored entry; entries before the first group stay ungrouped. `*`/`+` link bullets and empty groups produce file/line errors. The map ends at the next level-two heading, and fenced examples are ignored. A self-index link retains landing-page behavior. Missing Contents retains deterministic manifest fallback, while strict nav still requires maps and reports unlisted reader pages.
19
+
20
+ ```markdown
21
+ ## Contents
22
+
23
+ - [Reader guide](guide.md) - Reach a useful result.
24
+
25
+ ### More detail
26
+
27
+ - [Reference](reference/index.md) - Local reference map.
28
+ ```
29
+
30
+ | Surface | Authored or generated |
31
+ | -------------------------------------------------- | ----------------------------------------------------------- |
32
+ | `docs/**/*.md`, including directory indexes | Authored reader content and local maps |
33
+ | App `AGENTS.md`, config, source loader and scripts | Authored working rules and tooling |
34
+ | `docs/**/meta.json` | Committed derived sidebar; regenerate with nav sync |
35
+ | App-root `index.md` | Generated Markdown inventory; predev/prebuild regenerate it |
36
+ | `.source/`, `.next/`, `out/` | Generated collection/build/export; never edit |
37
+
38
+ `documentation.navOwner: nav-sync` authorizes navigation generation. Agree ownership before changing hand-authored or undeclared navigation. `documentation.nonReaderPaths` excludes non-reader content from nav, manifests and the Fumadocs collection; explicit Contents links do not override it. `documentation.excludes` affects only the manifest. Do not use exclusions to conceal an unlisted reader page.
39
+
40
+ To add a page, choose its scope from the nearest map, add title/description frontmatter and one H1, then update Contents. To move or rename, update both maps and inbound links in the same commit, and agree how old published URLs will resolve (redirect or static recovery page). Add a child `index.md` when adding a directory. Use `.md`-suffixed source links; the link transform produces rendered routes.
41
+
42
+ ## Supported features and diagrams
43
+
44
+ Use **Markdown → existing transform → MDX** in that order. Tables, task lists, fenced code, callouts, nested tabs and Mermaid are configured. MDX is for actual JSX/component needs and is excluded from the Markdown manifest and agent endpoints. See [Markdown Features](markdown-features.md) for paired Syntax/Rendered examples.
45
+
46
+ Not configured: executable notebooks, API playgrounds, diagram syntax validation or screenshot testing. A successful build or Mermaid transform test does not prove diagram validity. Keep language labels on code fences and use `bash` for shell commands.
47
+
48
+ Mermaid is diagram source. Important or phone-sized diagrams also get matching light/dark SVGs under `public/diagrams/`, linked as `/diagrams/name-light.svg` and `/diagrams/name-dark.svg`; the theme adds the base path, selects the theme and supports zoom. Update source and both SVGs in the same commit. Use descriptive SVG `<title>`/`<desc>` with `role="img"` and `aria-labelledby`, readable labels and concise meaningful image alt text (about 155 characters or less).
49
+
18
50
  ## Local workflow
19
51
 
20
- 1. Start the dev server from the repo root:
52
+ All commands below run from the **repository root**. Contributor setup is in [Code Contributions](code.md).
53
+
54
+ 1. Start the dev server:
21
55
 
22
56
  ```bash
23
57
  pnpm dev:docs
@@ -47,6 +81,7 @@ Documentation should ship with the code it explains. This page covers the core d
47
81
 
48
82
  ```bash
49
83
  pnpm --filter oat-docs docs:format
84
+ pnpm --filter oat-docs docs:format:check
50
85
  ```
51
86
 
52
87
  ## Authoring Expectations
@@ -70,16 +105,14 @@ Documentation should ship with the code it explains. This page covers the core d
70
105
 
71
106
  ```bash
72
107
  pnpm -w run cli:source -- docs nav sync --target-dir apps/oat-docs
108
+ pnpm -w run cli:source -- docs nav sync --target-dir apps/oat-docs --check
109
+ pnpm docs:validate
73
110
  ```
74
111
 
75
112
  - In MkDocs apps, the same `oat docs nav sync` command refreshes the `nav:` block in `mkdocs.yml` instead.
76
113
  - Use [Markdown Features](markdown-features.md) for supported syntax and examples.
77
114
 
78
- ## Agent guidance
79
-
80
- - Treat `index.md` plus its `## Contents` section as the local discovery source of truth.
81
- - Prefer linking to source files and commands explicitly when documenting behavior.
82
- - Regenerate or freshness-check the docs surface index after adding, removing, renaming, or reordering pages.
115
+ Agent working rules: `../../AGENTS.md` (app-root source file).
83
116
 
84
117
  ## Related Guides
85
118
 
@@ -79,7 +79,7 @@ theme.
79
79
 
80
80
  A diagram that needs to read well, especially on a phone, gets a hand-drawn SVG
81
81
  pair next to its Mermaid source. Mermaid stays the source of truth: when you
82
- change the Mermaid, update both SVGs in the same change.
82
+ change the Mermaid, update both SVGs in the same commit, preserving nodes, edges and labels. Give each SVG `role="img"` and descriptive `<title>`/`<desc>` elements connected by `aria-labelledby`; keep labels readable and Markdown alt text concise (about 155 characters or less).
83
83
 
84
84
  === "Syntax"
85
85
 
@@ -150,8 +150,20 @@ Use a language identifier on every opening fence. In this docs app, use `bash` f
150
150
 
151
151
  ## Authoring Reminder
152
152
 
153
- After adding or reorganizing docs pages, refresh the generated docs surface:
153
+ After adding, moving or renaming pages, update both authored maps and inbound links. From the **repository root**, refresh and validate the generated surfaces:
154
154
 
155
155
  ```bash
156
156
  pnpm -w run cli:source -- docs generate-index --docs-dir apps/oat-docs/docs --output apps/oat-docs/index.md
157
157
  ```
158
+
159
+ ```bash
160
+ pnpm -w run cli:source -- docs nav sync --target-dir apps/oat-docs
161
+ pnpm -w run cli:source -- docs nav sync --target-dir apps/oat-docs --check
162
+ pnpm --filter oat-docs docs:format
163
+ pnpm --filter oat-docs docs:format:check
164
+ pnpm --filter oat-docs docs:lint
165
+ pnpm docs:validate
166
+ pnpm build:docs
167
+ ```
168
+
169
+ These checks cover navigation, source contracts, formatting and build output. Inspect rendered tabs and diagrams too; they do not validate Mermaid syntax or accessibility automatically. Agent rules live in `../../AGENTS.md` (app-root source file).
@@ -63,20 +63,21 @@ Choose Markdown files or a framework app, using the guided skill or direct CLI.
63
63
 
64
64
  The docs-bootstrap skill offers Markdown, Fumadocs, and MkDocs. Configured tooling is authoritative; framework evidence is checked before plain-directory evidence. A root README alone does not trigger adoption, and an empty selected target stays fresh setup. Markdown uses file checks and an adopt/audit handoff, with no app questions, dependencies, framework patches, docs-root AGENTS, or site build.
65
65
 
66
- For framework apps, it wraps `oat docs init` with a seven-step guided flow: preflight detection (repo shape + existing-setup conflict surfacing), richer input gathering (including a site name distinct from the package name), the CLI invocation itself, labeled post-patches for open CLI gaps, install + build verification, post-scaffold config inspection, and a chunked educational walkthrough.
66
+ For framework apps, it wraps `oat docs init` with a seven-step guided flow: preflight detection (repo shape + existing-setup conflict surfacing), richer input gathering (including a site name distinct from the package name), the CLI invocation itself, CLI-owned scaffold inspection, install + build verification, post-scaffold config inspection, and a chunked educational walkthrough.
67
67
 
68
68
  What the framework path adds over the raw CLI:
69
69
 
70
70
  - **Preflight + conflict resolution.** Detects existing `documentation` config / docs app dir / root `AGENTS.md` section and walks a deliberate resolution choice (replace, abort, repair, or deferred second-app) before any mutation.
71
71
  - **Richer inputs.** Asks for a **site name** separate from the package name, so layout branding and page metadata converge on the same display title. `createDocsConfig()` handles runtime configuration, not titles.
72
- - **AGENTS.md bridge.** FP-15 writes a task-framed `<appRoot>/AGENTS.md` only when the CLI does not scaffold it and no file already exists. Template content, metadata, command context, Node requirements, Contents links and generated-files guidance are CLI-owned. For nested-standalone repos only, the Fumadocs template passes an ESM-safe Turbopack root through `createDocsConfig` while preserving static export settings. Monorepo and single-package scaffolds use Next.js root discovery. Older scaffold shapes become analyze findings rather than post-patches.
72
+ - **CLI-owned guidance.** Fresh Fumadocs and MkDocs apps include app-root `AGENTS.md`, a reader-first Getting Started stub, a human contributor entry and `docs/contributing/docs-toolchain.md`. Commands state their working directory. Bootstrap observes this output; older CLIs missing it get analyze/manual CLI-template upgrade advice, rather than a second template owner. Existing and Markdown surfaces are preserved. Nested-standalone Fumadocs still uses the ESM-safe Turbopack root while monorepo and single-package apps use Next root discovery.
73
+ - **Agent Markdown.** Fumadocs exports `/llms.txt`, `/llms-full.txt` and `/llms/<page-slugs>/content.md` (root `/llms/content.md`) from loaded `.md` readers. MDX and configured non-readers are excluded. Source headers identify how to resolve authored relative links; rendered and Markdown URLs include the deployment base path once.
73
74
  - **Build verification.** Runs install + build, classifies failures against known patterns, stops on unknown errors rather than guessing.
74
75
  - **Config inspection.** Reads `.oat/config.json` back, verifies paths exist on disk, handles the nested-standalone dual-config case, and collects the `requireForProjectCompletion` opt-in explicitly.
75
76
  - **Root-build explanation.** When the CLI safely patches a compatible Turbo root `build` script, the walkthrough explains why the filter was added, shows the diff shape, and documents how to adjust or revert it. When the CLI skips the patch, the walkthrough relays the recommended manual snippet.
76
77
  - **Educational walkthrough.** Seven sections covering the `documentation` config, the authored-source/generated-navigation model, the `## Contents` contract (with extension discipline), the three agent-instruction surfaces (root `AGENTS.md` pointer / docs-app `AGENTS.md` / `docs/contributing.md`), Fumadocs internals (or MkDocs Minimum Contract), and the OAT docs ecosystem (`oat-project-document`, `oat-docs-analyze`, `oat-docs-apply`).
77
78
  - **Optional content kickoff.** Hands off to `oat-docs-analyze` + `oat-docs-apply` if you want to populate initial repo-specific content immediately.
78
79
 
79
- Capability detection gates the remaining AGENTS bridge. Existing files are preserved; use analyze and reviewed recommendations to address older scaffold output.
80
+ Missing app-root `AGENTS.md` from an older CLI is reported as a missing capability with analyze/manual CLI-template upgrade advice. Existing files are preserved; use analyze and reviewed recommendations to address older scaffold output.
80
81
 
81
82
  ### 3b. Direct CLI (deterministic / non-interactive)
82
83
 
@@ -105,7 +106,7 @@ oat docs init --app-name my-docs --framework fumadocs --yes
105
106
  oat docs init --app-name my-docs --framework mkdocs --yes
106
107
  ```
107
108
 
108
- Use 3b when you want a fully headless scaffold (CI, automation) and can accept the raw CLI output without the guided post-patches.
109
+ Use 3b when you want a fully headless scaffold (CI, automation) and can accept the raw CLI output without the guided walkthrough.
109
110
 
110
111
  For compatible Turbo monorepos, the CLI also patches the repo-root
111
112
  `package.json` by default so root `pnpm build` excludes the new docs app and a
@@ -298,11 +299,11 @@ Important:
298
299
  three kinds of documentation. In all three, each folder's `index.md` has a
299
300
  `## Contents` list of its pages.
300
301
 
301
- | Framework | Choose it when | What you give up |
302
- | -------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
303
- | Plain Markdown | People and agents read the docs in the repository; no site is needed | A rendered site and search. You keep each `## Contents` list up to date by hand |
304
- | Fumadocs | A Node/pnpm repository wants a hosted docs site | An app with dependencies and a build. A page missing from its folder's `## Contents` list is hidden from the sidebar |
305
- | MkDocs | The team already uses Python and MkDocs Material | Python setup (`setup-docs.sh` runs `pip install`). `oat docs nav sync` rewrites the whole `nav:` block of `mkdocs.yml` |
302
+ | Framework | Choose it when | What you give up |
303
+ | --------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
304
+ | Plain Markdown | People and agents read the docs in the repository; no site is needed | A rendered site and search. You keep each `## Contents` list up to date by hand |
305
+ | Fumadocs | A Node/pnpm repository wants a hosted docs site | An app with dependencies and a build. A page missing from its folder's `## Contents` list is hidden from the sidebar |
306
+ | MkDocs (legacy) | The team already uses Python and MkDocs Material | Python setup (`setup-docs.sh` runs `pip install`). `oat docs nav sync` rewrites the whole `nav:` block of `mkdocs.yml` |
306
307
 
307
308
  When nothing chooses for it (a non-interactive run or `--yes`), `oat docs init`
308
309
  uses Fumadocs. That is only a default; pick the smallest option your readers
@@ -323,3 +324,5 @@ need.
323
324
  existing MkDocs site with `oat init --setup` instead of `oat docs init`. When
324
325
  moving an MkDocs site to Fumadocs, `oat docs migrate` converts MkDocs syntax
325
326
  and frontmatter; it only previews changes until you pass `--apply`.
327
+
328
+ MkDocs/Material scaffolding is **legacy**; its existing Python pins remain unchanged. [Material's changelog](https://squidfunk.github.io/mkdocs-material/changelog/) says Material receives critical/security fixes through May 5, 2027 and names Zensical as its successor. That lifecycle belongs to Material, not MkDocs core, and does not promise that the scaffold's older pins contain the latest fixes. Pinned MkDocs 1.4.2 still renders configured non-reader routes even though OAT omits them from navigation and manifests.
@@ -40,7 +40,7 @@ explicit external output and retain the authored config index. Both frameworks k
40
40
 
41
41
  Use `oat docs init` to bootstrap Markdown documentation or scaffold a framework app.
42
42
 
43
- > **Consider the `oat-docs-bootstrap` skill instead.** The skill wraps `oat docs init` with preflight detection, richer input gathering (site name distinct from package name), capability-gated post-patches that close open CLI gaps (site-title metadata, Turbopack root, template-content fixes, docs-app `AGENTS.md` bridge, `## Contents` link extensions, `contributing.md` three-surfaces cleanup), build verification, config inspection, and a seven-section educational walkthrough. See [Add Docs to a Repo §3a](add-docs-to-a-repo.md#3a-preferred-the-oat-docs-bootstrap-skill-guided) for the full flow. The CLI documented here remains the authoritative surface for flags and is the right choice when you need a deterministic, non-interactive scaffold (CI, automation).
43
+ > **Consider the `oat-docs-bootstrap` skill instead.** The skill wraps `oat docs init` with preflight detection, richer input gathering (site name distinct from package name), capability probing and verification of CLI-owned scaffolds (including framework app-root `AGENTS.md`), build verification, config inspection, and a seven-section educational walkthrough. Missing capabilities or older scaffold gaps lead to CLI update advice or an analyze handoff with manual CLI/template upgrade recommendations. See [Add Docs to a Repo §3a](add-docs-to-a-repo.md#3a-preferred-the-oat-docs-bootstrap-skill-guided) for the full flow. The CLI documented here remains the authoritative surface for flags and is the right choice when you need a deterministic, non-interactive scaffold (CI, automation).
44
44
 
45
45
  Key behavior:
46
46
 
@@ -31,7 +31,7 @@ Install the workflow skills with `oat tools install docs` (preferred) or
31
31
  local navigation maintenance inside an existing OAT documentation surface
32
32
  - `oat-docs-bootstrap` is the guided onramp for Markdown setup/adoption or adding a docs app —
33
33
  wraps `oat docs init` with preflight detection, richer input gathering (site
34
- name distinct from package name), labeled post-patches for open CLI gaps,
34
+ name distinct from package name), capability probing and CLI-owned scaffold inspection,
35
35
  file-level verification for Markdown or framework build verification, config
36
36
  inspection, and an educational walkthrough
37
37
  - `oat-docs-analyze` evaluates a docs surface for structure, drift, coverage,
@@ -96,8 +96,8 @@ Diagram: bootstrap once, then analyze, approve and apply only agreed improvement
96
96
  - **Setup, once.** `oat-docs-bootstrap` checks the repo without writing, asks
97
97
  you to confirm its inputs, then runs `oat docs init`. Plain Markdown setup validates authored files,
98
98
  configuration and guidance without installing app dependencies or building a
99
- site. Fumadocs and MkDocs setup adds the relevant post-patches, installation,
100
- build verification and walkthrough.
99
+ site. Fumadocs and MkDocs setup inspects CLI-owned scaffold output, installs
100
+ dependencies, verifies the build and provides a walkthrough.
101
101
  - **Analyze.** `oat-docs-analyze` never edits docs. It writes an analysis
102
102
  artifact under `.oat/repo/analysis/` (and updates OAT tracking).
103
103
  - **Approve.** `oat-docs-apply` builds a plan from the newest artifact and
@@ -109,7 +109,7 @@ Diagram: bootstrap once, then analyze, approve and apply only agreed improvement
109
109
  marked as needing confirmation are confirmed again before they are written.
110
110
  - **Repeat.** Re-run analyze afterwards to confirm the result.
111
111
 
112
- 1. Bootstrap or explicitly adopt a documentation surface with `oat-docs-bootstrap` (preferred — guided, includes post-scaffold patches and walkthrough) or `oat docs init` directly (CLI-only / non-interactive workflows)
112
+ 1. Bootstrap or explicitly adopt a documentation surface with `oat-docs-bootstrap` (preferred — guided, includes capability probing, scaffold verification and walkthrough) or `oat docs init` directly (CLI-only / non-interactive workflows)
113
113
  2. (Optional) If migrating from MkDocs, handle that as a separate migration workstream; `oat docs migrate --docs-dir docs --config mkdocs.yml --apply` is only the syntax/frontmatter helper
114
114
  3. Use `oat-docs-authoring` for targeted OAT Markdown/Fumadocs authoring work, with `authoring-docs` as the universal documentation-quality baseline
115
115
  4. Keep authored context and title/description metadata, with an `index.md` and useful `## Contents` in each non-excluded Markdown-bearing directory; preserve asset-only exceptions and local instructions
@@ -296,8 +296,12 @@ configuration, and links.
296
296
  **Fumadocs or MkDocs path:** Use this when you want a built documentation
297
297
  site. The skill gathers app inputs (the visible site title and the package
298
298
  name are different inputs), probes which capabilities the installed CLI
299
- supports, runs the scaffold, and applies only the relevant post-patches (the
300
- skill's labeled fixes for known gaps in the CLI's scaffold output).
299
+ supports, runs the CLI scaffold, and inspects the output. Current CLI templates
300
+ own the app-root `AGENTS.md` and framework content. Missing `--site-name` support
301
+ stops bootstrap before scaffolding with CLI update advice. Missing app guidance
302
+ or older scaffold gaps become analyze findings with manual CLI/template upgrade
303
+ recommendations; bootstrap preserves existing files and supplies no replacement
304
+ AGENTS template.
301
305
  Verification installs dependencies and runs a build. If a docs app already
302
306
  exists, the default repair route runs analyze then apply and exits. An explicit
303
307
  `replace` choice deletes the existing app; a second app remains unsupported.
@@ -306,10 +310,10 @@ exists, the default repair route runs analyze then apply and exits. An explicit
306
310
  runs `oat docs init`, which writes the `documentation` section of
307
311
  `.oat/config.json` and adds or updates a managed `## Documentation` section
308
312
  in the root `AGENTS.md`. This happens on both paths. On the Fumadocs or
309
- MkDocs path it also scaffolds the app, applies post-patches, installs
310
- dependencies, runs a build, and may patch the root `package.json` so the
311
- default build leaves the docs app out. It may also write an `AGENTS.md`
312
- inside the new app when the CLI did not create one. Only after you confirm:
313
+ MkDocs path the CLI also scaffolds the app, including its app-root `AGENTS.md`,
314
+ and may patch the root `package.json` so the default build leaves the docs app
315
+ out. Bootstrap inspects that output, installs dependencies and runs a build.
316
+ Only after you confirm:
313
317
  the `replace` choice deletes the existing docs app directory and clears its
314
318
  `documentation` config and root `AGENTS.md` section (it refuses only when
315
319
  that directory has uncommitted changes); answering yes to the
@@ -976,9 +976,11 @@ The `docs` pack contains active documentation and instruction-governance
976
976
  workflows:
977
977
 
978
978
  - **oat-docs-bootstrap** — Guide users through Markdown setup/adoption or a docs app
979
- end-to-end: preflight detection, input gathering, scaffold (via `oat docs
980
- init`) with capability-gated post-patches, build verification, config
981
- inspection, and an educational walkthrough.
979
+ end-to-end: preflight detection, input gathering, scaffold via `oat docs init`,
980
+ capability probing, CLI-owned scaffold inspection, build verification,
981
+ config inspection, and an educational walkthrough. Current CLI templates own
982
+ framework app-root `AGENTS.md`; missing capabilities or older scaffold gaps
983
+ lead to CLI update advice or analyze/manual CLI/template upgrade recommendations.
982
984
  - **oat-docs-analyze** — Analyze a docs surface for contract coverage, nav
983
985
  drift, stale claims, and coverage gaps.
984
986
  - **oat-docs-apply** — Apply only approved, evidence-backed docs-analysis
@@ -267,14 +267,14 @@ Visibility reports source metadata: “user” is `user-invocable` and “model
267
267
 
268
268
  ### Docs workflows
269
269
 
270
- | Skill | Description | Visibility | Needs an active project? |
271
- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------------------ |
272
- | [`authoring-docs`](../docs-tooling/workflows.md#authoring-docs) | Use when creating, restructuring, migrating, auditing, or reviewing technical documentation for software projects. Provides evidence-first, provider-portable Markdown authoring standards. | user: true; model disabled: false | No |
273
- | [`oat-docs`](../docs-tooling/workflows.md#oat-docs) | Use when a user asks questions about OAT workflows, CLI commands, skill authoring, configuration, or project lifecycle. Answers questions by reading locally-bundled OAT documentation. | user: true; model disabled: false | No |
274
- | [`oat-docs-analyze`](../docs-tooling/workflows.md#oat-docs-analyze) | Run when you need to evaluate documentation structure, navigation, and coverage against the OAT documentation contract. Produces a severity-rated analysis artifact for oat-docs-apply. | user: true; model disabled: true | No |
275
- | [`oat-docs-apply`](../docs-tooling/workflows.md#oat-docs-apply) | Run when you have a docs analysis artifact and want to generate or update documentation structure and content. Creates a branch, applies approved changes, and optionally opens a PR. | user: true; model disabled: true | No |
276
- | [`oat-docs-authoring`](../docs-tooling/workflows.md#oat-docs-authoring) | Use when authoring or restructuring targeted content inside an existing OAT Markdown surface or OAT/Fumadocs docs app. Preserves OAT docs navigation, generated indexes, and validation boundaries. | user: true; model disabled: false | No |
277
- | [`oat-docs-bootstrap`](../docs-tooling/workflows.md#oat-docs-bootstrap) | Use when bootstrapping or adopting an OAT documentation surface in a repo. Guides the user through preflight detection, richer input gathering than the raw CLI, &#96;oat docs init&#96; invocation with gated post-patches for open CLI gaps, build verification, post-scaffold config inspection, and an educational walkthrough. Supports plain Markdown &#40;file-level path&#41;, Fumadocs &#40;full path&#41;, and MkDocs &#40;lean path with defined minimum contract&#41;. | user: true; model disabled: true | Optional |
270
+ | Skill | Description | Visibility | Needs an active project? |
271
+ | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------------------ |
272
+ | [`authoring-docs`](../docs-tooling/workflows.md#authoring-docs) | Use when creating, restructuring, migrating, auditing, or reviewing technical documentation for software projects. Provides evidence-first, provider-portable Markdown authoring standards. | user: true; model disabled: false | No |
273
+ | [`oat-docs`](../docs-tooling/workflows.md#oat-docs) | Use when a user asks questions about OAT workflows, CLI commands, skill authoring, configuration, or project lifecycle. Answers questions by reading locally-bundled OAT documentation. | user: true; model disabled: false | No |
274
+ | [`oat-docs-analyze`](../docs-tooling/workflows.md#oat-docs-analyze) | Run when you need to evaluate documentation structure, navigation, and coverage against the OAT documentation contract. Produces a severity-rated analysis artifact for oat-docs-apply. | user: true; model disabled: true | No |
275
+ | [`oat-docs-apply`](../docs-tooling/workflows.md#oat-docs-apply) | Run when you have a docs analysis artifact and want to generate or update documentation structure and content. Creates a branch, applies approved changes, and optionally opens a PR. | user: true; model disabled: true | No |
276
+ | [`oat-docs-authoring`](../docs-tooling/workflows.md#oat-docs-authoring) | Use when authoring or restructuring targeted content inside an existing OAT Markdown surface or OAT/Fumadocs docs app. Preserves OAT docs navigation, generated indexes, and validation boundaries. | user: true; model disabled: false | No |
277
+ | [`oat-docs-bootstrap`](../docs-tooling/workflows.md#oat-docs-bootstrap) | Use when bootstrapping or adopting an OAT documentation surface in a repo. Guides the user through preflight detection, richer input gathering than the raw CLI, CLI-owned &#96;oat docs init&#96; scaffolding, build verification, post-scaffold config inspection, and an educational walkthrough. Supports plain Markdown &#40;file-level path&#41;, Fumadocs &#40;full path&#41;, and MkDocs &#40;lean path with defined minimum contract&#41;. | user: true; model disabled: true | Optional |
278
278
 
279
279
  ### Explainer Kit
280
280
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.3.26",
3
- "docs-config": "0.3.26",
4
- "docs-theme": "0.3.26",
5
- "docs-transforms": "0.3.26"
2
+ "cli": "0.3.27",
3
+ "docs-config": "0.3.27",
4
+ "docs-theme": "0.3.27",
5
+ "docs-transforms": "0.3.27"
6
6
  }
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Bash(git:*), Bash(oat config:*), Bash(oat docs nav sync --check:*), Bash(pnpm:*), Bash(bash:*), Bash(jq:*), Bash(node:*), Bash(mkdir:*), Bash(date:*), Bash(echo:*), Bash(cd:*), Bash(pwd:*), Glob, Grep, AskUserQuestion, Task
8
8
  metadata:
9
- version: '1.7.1'
9
+ version: '1.7.2'
10
10
  ---
11
11
 
12
12
  # Docs Analysis
@@ -196,7 +196,7 @@ Capture the evidence sources that will justify later findings and recommendation
196
196
  - existing `index.md` trees and repeated directory patterns
197
197
  - exact missing or stale paths, commands, and page references
198
198
 
199
- For framework apps, also read [Legacy scaffold checks](references/legacy-scaffold-checks.md). Apply those checks to the actual installed app, cite the observed file and source contract, and report discrepancies in Findings and Recommendations. These are read-only checks, not bootstrap post-patches. Do not change app-shell configuration during analysis or assume docs-apply can edit it; identify the manual upgrade needed when outside apply's current scope.
199
+ For framework apps, also read [Legacy scaffold checks](references/legacy-scaffold-checks.md). Apply those checks to the actual installed app, cite the observed file and source contract, and report discrepancies in Findings and Recommendations. Include missing app-root AGENTS capability and missing page-specific Next metadata, accepting equivalent valid customized arrangements. These are read-only checks, not bootstrap scaffold repairs. Do not change app-shell configuration during analysis or assume docs-apply can edit it; identify the manual upgrade needed when outside apply's current scope.
200
200
 
201
201
  Do **not** infer docs structure conventions from a tiny sample of pages when the broader
202
202
  tree or config disagrees.
@@ -12,5 +12,9 @@ Evaluate existing framework apps against the current contracts below. A match pr
12
12
  | Contents links omit `.md` despite real Markdown targets | Medium: recommend `.md`-suffixed source links, which the build transforms into routes. | Authored Contents contract and docs-transforms links plugin |
13
13
  | Contributing duplicates agent runtime rules rather than pointing to app-root `AGENTS.md` | Low: recommend consolidating runtime instructions into the existing agent guidance after approval; preserve custom rules. | Docs-app guidance and contributing audience boundary |
14
14
  | MkDocs setup says `setup-docs.sh` creates a virtual environment, config calls `tooling` an object, or index points at an assumed `docs/index.md` | Medium: verify the actual script and `.oat/config.json`. The scaffold installs with the selected Python, uses a framework string, and seeds index/config as `mkdocs.yml`. | MkDocs setup script, documentation schema and scaffold config |
15
+ | Framework app has no app-root AGENTS.md | Medium: missing current CLI scaffold capability. Recommend a CLI update and manual review of the canonical framework template; preserve existing files and never recreate a bootstrap-owned template. | Current CLI Fumadocs/MkDocs AGENTS scaffolds |
16
+ | Fumadocs pages inherit only layout/site metadata | Medium: inspect the catch-all page and any relevant layout/metadata producers for page-specific title and description. Recommend manual app-shell review when absent. Accept equivalent valid Next `generateMetadata`, static per-page exports or customized layouts that produce correct page-specific metadata; do not demand the template's exact spelling. | Current page template and Next Metadata API |
17
+ | Reader Getting Started contains contributor toolchain setup | Medium: recommend moving setup into a contributor guide and restoring a first-safe-reader-result entry, with inbound links and old URLs reviewed. | Reader-first current framework scaffolds |
18
+ | MkDocs/Material is presented as the actively developed default | Medium: cite Material's maintenance/security window through May 5, 2027 and Zensical successor from the [upstream changelog](https://squidfunk.github.io/mkdocs-material/changelog/). Distinguish Material from MkDocs core and retained pins from current upstream maintenance. | Material upstream support statement |
15
19
 
16
20
  A user-owned dynamic app may intentionally omit static export. Do not apply a static-export finding to it without evidence that static output is required. Likewise, verify commands and filenames against the target repository; these patterns identify discrepancies, not authority to overwrite customization.