@open-agent-toolkit/cli 0.3.12 → 0.3.14

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 (152) hide show
  1. package/README.md +1 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/contributing/index.md +14 -1
  4. package/assets/docs/contributing/skills.md +64 -2
  5. package/assets/docs/contributing/smoke-testing.md +3 -3
  6. package/assets/docs/contributing/updating-model-guidance.md +2 -2
  7. package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
  8. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +112 -15
  9. package/assets/docs/docs-tooling/agent-instructions.md +131 -0
  10. package/assets/docs/docs-tooling/commands.md +74 -30
  11. package/assets/docs/docs-tooling/index.md +7 -6
  12. package/assets/docs/docs-tooling/meta.json +1 -1
  13. package/assets/docs/docs-tooling/workflows.md +357 -11
  14. package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
  15. package/assets/docs/{guide → getting-started}/concepts.md +28 -10
  16. package/assets/docs/getting-started/index.md +68 -0
  17. package/assets/docs/getting-started/meta.json +4 -0
  18. package/assets/docs/getting-started/quickstart.md +174 -0
  19. package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +146 -15
  20. package/assets/docs/index.md +47 -48
  21. package/assets/docs/meta.json +6 -7
  22. package/assets/docs/provider-sync/commands.md +26 -3
  23. package/assets/docs/provider-sync/config.md +60 -1
  24. package/assets/docs/provider-sync/index.md +31 -15
  25. package/assets/docs/provider-sync/instruction-sync.md +43 -5
  26. package/assets/docs/provider-sync/manifest-and-drift.md +85 -0
  27. package/assets/docs/provider-sync/meta.json +1 -0
  28. package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
  29. package/assets/docs/provider-sync/scope-and-surface.md +37 -3
  30. package/assets/docs/reference/cli-reference.md +34 -34
  31. package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
  32. package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
  33. package/assets/docs/reference/docs-index-contract.md +19 -4
  34. package/assets/docs/reference/file-locations.md +7 -2
  35. package/assets/docs/reference/index.md +13 -1
  36. package/assets/docs/reference/meta.json +7 -1
  37. package/assets/docs/reference/oat-directory-structure.md +24 -22
  38. package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
  39. package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
  40. package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
  41. package/assets/docs/reference/troubleshooting.md +125 -10
  42. package/assets/docs/reference/what-oat-writes.md +410 -0
  43. package/assets/docs/skills/brainstorm.md +77 -0
  44. package/assets/docs/skills/diagnostics.md +56 -0
  45. package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
  46. package/assets/docs/skills/index.md +416 -0
  47. package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
  48. package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
  49. package/assets/docs/skills/repo-improve.md +254 -0
  50. package/assets/docs/skills/research.md +237 -0
  51. package/assets/docs/skills/session-closeout.md +61 -0
  52. package/assets/docs/workflows/advanced/autonomy.md +344 -0
  53. package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
  54. package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
  55. package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
  56. package/assets/docs/workflows/advanced/index.md +19 -0
  57. package/assets/docs/workflows/advanced/meta.json +13 -0
  58. package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
  59. package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
  60. package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
  61. package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
  62. package/assets/docs/workflows/approvals-and-automation.md +261 -0
  63. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
  64. package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
  65. package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
  66. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
  67. package/assets/docs/workflows/choose-workflow.md +114 -0
  68. package/assets/docs/workflows/ideas/index.md +3 -3
  69. package/assets/docs/workflows/ideas/lifecycle.md +218 -1
  70. package/assets/docs/workflows/index.md +11 -62
  71. package/assets/docs/workflows/meta.json +10 -2
  72. package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
  73. package/assets/docs/workflows/projects/closeout/index.md +14 -0
  74. package/assets/docs/workflows/projects/closeout/meta.json +4 -0
  75. package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
  76. package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
  77. package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
  78. package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
  79. package/assets/docs/workflows/projects/execution/index.md +15 -0
  80. package/assets/docs/workflows/projects/execution/meta.json +9 -0
  81. package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
  82. package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
  83. package/assets/docs/workflows/projects/index.md +38 -49
  84. package/assets/docs/workflows/projects/lifecycle.md +47 -11
  85. package/assets/docs/workflows/projects/meta.json +2 -23
  86. package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
  87. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
  88. package/assets/docs/workflows/projects/planning/index.md +16 -0
  89. package/assets/docs/workflows/projects/planning/meta.json +10 -0
  90. package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
  91. package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
  92. package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
  93. package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
  94. package/assets/docs/workflows/projects/reviews/meta.json +4 -0
  95. package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
  96. package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
  97. package/assets/docs/workflows/waves/index.md +12 -0
  98. package/assets/docs/workflows/waves/meta.json +4 -0
  99. package/assets/docs/workflows/waves/wave-workflows.md +206 -0
  100. package/assets/public-package-versions.json +4 -4
  101. package/assets/skills/oat-docs/SKILL.md +19 -19
  102. package/assets/skills/oat-docs-analyze/SKILL.md +27 -7
  103. package/assets/skills/oat-docs-analyze/references/quality-checklist.md +16 -3
  104. package/assets/skills/oat-docs-apply/SKILL.md +20 -3
  105. package/assets/skills/oat-docs-authoring/SKILL.md +11 -7
  106. package/assets/skills/oat-docs-authoring/references/docs-root-resolution.md +12 -5
  107. package/assets/skills/oat-docs-authoring/references/lifecycle-boundaries.md +7 -7
  108. package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +13 -3
  109. package/assets/skills/oat-docs-authoring/references/targeted-authoring-workflow.md +5 -4
  110. package/assets/skills/oat-docs-authoring/references/validation.md +11 -1
  111. package/assets/skills/oat-docs-bootstrap/SKILL.md +31 -8
  112. package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +2 -1
  113. package/assets/skills/oat-doctor/SKILL.md +25 -25
  114. package/assets/skills/oat-project-document/SKILL.md +21 -2
  115. package/assets/templates/docs-markdown/contributing.md +35 -0
  116. package/assets/templates/docs-markdown/index.md +18 -0
  117. package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
  118. package/dist/commands/docs/index-generate/index.js +41 -8
  119. package/dist/commands/docs/init/index.d.ts +17 -2
  120. package/dist/commands/docs/init/index.d.ts.map +1 -1
  121. package/dist/commands/docs/init/index.js +194 -14
  122. package/dist/commands/docs/init/markdown.d.ts +39 -0
  123. package/dist/commands/docs/init/markdown.d.ts.map +1 -0
  124. package/dist/commands/docs/init/markdown.js +317 -0
  125. package/dist/commands/docs/init/resolve-options.d.ts +3 -1
  126. package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
  127. package/dist/commands/docs/init/resolve-options.js +36 -0
  128. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  129. package/dist/commands/docs/init/scaffold.js +11 -0
  130. package/dist/commands/shared/agents-md.d.ts +7 -0
  131. package/dist/commands/shared/agents-md.d.ts.map +1 -1
  132. package/dist/commands/shared/agents-md.js +131 -91
  133. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  134. package/dist/commands/tools/shared/pack-manifest.js +1 -0
  135. package/dist/config/oat-config.d.ts +2 -1
  136. package/dist/config/oat-config.d.ts.map +1 -1
  137. package/dist/config/oat-config.js +4 -2
  138. package/package.json +2 -2
  139. package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
  140. package/assets/docs/cli-utilities/index.md +0 -74
  141. package/assets/docs/cli-utilities/meta.json +0 -13
  142. package/assets/docs/cli-utilities/remote-project-management.md +0 -191
  143. package/assets/docs/guide/index.md +0 -31
  144. package/assets/docs/guide/meta.json +0 -4
  145. package/assets/docs/quickstart.md +0 -88
  146. package/assets/docs/workflows/projects/autonomy.md +0 -196
  147. package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
  148. package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
  149. package/assets/docs/workflows/projects/review-flavors.md +0 -138
  150. package/assets/docs/workflows/skills/index.md +0 -184
  151. package/assets/docs/workflows/skills/repo-improve.md +0 -89
  152. package/assets/docs/workflows/wave-workflows.md +0 -77
package/README.md CHANGED
@@ -72,7 +72,7 @@ Use these commands when you want structured runtime/project state out of the CLI
72
72
  ## Docs
73
73
 
74
74
  - [Docs Home](https://voxmedia.github.io/open-agent-toolkit/)
75
- - [CLI Utilities](https://voxmedia.github.io/open-agent-toolkit/cli-utilities)
75
+ - [CLI Utilities](https://voxmedia.github.io/open-agent-toolkit/reference#general-cli-adoption-guidance)
76
76
  - [Provider Sync](https://voxmedia.github.io/open-agent-toolkit/provider-sync)
77
77
  - [Instruction Sync](https://voxmedia.github.io/open-agent-toolkit/provider-sync/instruction-sync)
78
78
  - [Reference](https://voxmedia.github.io/open-agent-toolkit/reference)
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "oatVersion": "0.3.12"
3
+ "oatVersion": "0.3.14"
4
4
  }
@@ -10,7 +10,7 @@ Use this section when you are changing OAT itself rather than consuming it as a
10
10
  ## Contents
11
11
 
12
12
  - [Contributing Code](code.md) - Repo setup, monorepo structure, quality gates, and PR expectations.
13
- - [Contributing Docs](documentation.md) - Docs contract, local docs workflow, and docs-specific authoring guidance.
13
+ - [Contributing to OAT Docs](documentation.md) - Docs contract, local docs workflow, and docs-specific authoring guidance.
14
14
  - [Markdown Features](markdown-features.md) - Supported docs syntax for callouts, tabs, Mermaid, and code blocks.
15
15
  - [Writing Skills](skills.md) - Skill authoring guidance, runtime contracts, and governance.
16
16
  - [CLI Design Principles](design-principles.md) - Cross-cutting CLI architecture and UX principles.
@@ -19,3 +19,16 @@ Use this section when you are changing OAT itself rather than consuming it as a
19
19
  - [Smoke Testing](smoke-testing.md) - Runbook for the live workflow smoke runner: prerequisites, scenarios, evidence reports, and recovery.
20
20
  - [Updating Model Guidance](updating-model-guidance.md) - Source map and verification checklist for provider model refreshes.
21
21
  - [Verifying Cursor Pins](verifying-cursor-pins.md) - Runbook for probe-verifying a Cursor model pin before shipping it.
22
+
23
+ ## Source-of-truth hierarchy
24
+
25
+ When you document OAT behavior, check it against these sources, highest
26
+ first:
27
+
28
+ 1. Runtime behavior: `packages/cli/src/**`
29
+ 2. Skill behavior contracts: `.agents/skills/*/SKILL.md`
30
+ 3. OAT templates and runtime state: `.oat/templates/**`, `.oat/sync/**`, `.oat/config.json`, `.oat/config.local.json`
31
+ 4. Repo reference records: `.oat/repo/**`
32
+
33
+ New pages belong in one of the top-level sections listed on the
34
+ [docs home page](../index.md); the older `guide/` section no longer exists.
@@ -363,7 +363,7 @@ The Gate Execution step should:
363
363
 
364
364
  A null, missing, malformed, or unrecognized result is an operational failure
365
365
  that fails closed as unresolved. Never treat it as "no gate configured." See
366
- [Per-project gate overrides](../cli-utilities/workflow-gates.md#per-project-gate-overrides).
366
+ [Per-project gate overrides](../workflows/advanced/workflow-gates.md#per-project-gate-overrides).
367
367
 
368
368
  3. Export the resolved path with `export PROJECT_PATH` before launching the
369
369
  command shell.
@@ -387,7 +387,7 @@ that should report only the child process status, not review findings.
387
387
  Reusable lifecycle gate commands must omit `--target <id>` so the
388
388
  dispatcher can avoid the current runtime; reserve explicit targets for
389
389
  manual/debug commands or deliberate local/user-specific overrides. See
390
- [Workflow Gates](../cli-utilities/workflow-gates.md) for the config and command
390
+ [Workflow Gates](../workflows/advanced/workflow-gates.md) for the config and command
391
391
  surface.
392
392
 
393
393
  ## Reading project state
@@ -438,3 +438,65 @@ The JSON output is a stable contract: the field set consumed by migrated skills
438
438
  - `.agents/skills/oat-project-implement/SKILL.md`
439
439
  - `.agents/skills/oat-project-complete/SKILL.md`
440
440
  - `.agents/skills/oat-project-review-receive/SKILL.md`
441
+
442
+ ## create-agnostic-skill
443
+
444
+ **Invocation:** `/create-agnostic-skill verify-migration` (or
445
+ `$create-agnostic-skill verify-migration` in Codex). The skill is
446
+ explicit-invocation only, so use the slash or `$` form rather than asking the
447
+ agent to pick it. These are agent instructions, not terminal commands. Supply
448
+ a kebab-case skill name, or answer the naming question when prompted.
449
+
450
+ **Prerequisites:** A repeatable workflow with a stable enough trigger,
451
+ sequence, and outcome to be reusable, plus permission to create files in the
452
+ repository's canonical `.agents/skills/` directory. Needs an active OAT
453
+ project: no. Before creating another skill, check whether composition of
454
+ existing skills would meet the need. For a new `oat-*` skill, use
455
+ `/create-oat-skill` instead; it builds on this workflow and adds OAT
456
+ conventions such as `{PROJECTS_ROOT}` resolution and progress banners.
457
+
458
+ **Example scenario:** Your team repeatedly reviews database migrations for
459
+ rollback assumptions, compatibility with the previous application version,
460
+ and operator handoff. Turn that recurring review into a portable skill that
461
+ asks for the migration and constraints, produces a review, and stops before
462
+ running database commands. The skill is not a place to hide production
463
+ execution behind a convenient trigger.
464
+
465
+ The authoring conversation establishes when the skill should run, what it
466
+ accepts, what it produces, which tools it needs, and what remains outside its
467
+ authority. The agent presents a bounded file plan and asks for approval
468
+ before creating anything. Expanding the approved file set requires another
469
+ confirmation; approval of a `SKILL.md` does not implicitly authorize an
470
+ unplanned collection of scripts or assets.
471
+
472
+ **What it does without asking:** Before your approval it only asks questions
473
+ and presents the file plan; if you decline, it creates nothing. After you
474
+ approve the plan once, it creates the skill directory, its `SKILL.md`, and the
475
+ planned supporting files without asking again, then, in a repository that
476
+ uses OAT sync, runs `oat sync --scope project` to refresh this repository's provider views (the
477
+ provider-specific copies such as `.claude/skills/`). For a skill whose name
478
+ starts with `oat-`, it also runs `pnpm oat:validate-skills`. It does not
479
+ commit, push, or install the skill at user scope.
480
+
481
+ Use progressive disclosure to keep the result useful. The frontmatter's
482
+ trigger-oriented description helps an agent choose the skill. The body
483
+ contains the actual ordered workflow and stop conditions. Put detailed
484
+ references, deterministic helpers, and templates in supporting directories
485
+ only when the workflow needs them. Include both a direct invocation and a
486
+ conversational example so users can recognize the intended trigger without
487
+ memorizing provider-specific syntax.
488
+
489
+ **Expected output:** An approved canonical skill at
490
+ `.agents/skills/verify-migration/SKILL.md`, with its name matching the
491
+ directory, an initial `metadata.version` of `1.0.0`, workflow steps, examples, and any
492
+ approved support files. The authoring workflow synchronizes the project
493
+ scope and checks tool/provider discoverability; it does not install the
494
+ skill into the user's global scope. Canonical content remains the editable
495
+ owner rather than being duplicated into provider views.
496
+
497
+ **Next step:** Exercise the skill with a representative migration and verify
498
+ that its instructions produce the intended review without crossing the
499
+ execution boundary. Adjust the canonical workflow if the trigger or outcome
500
+ is unclear, then resynchronize project views. Pack distribution, public
501
+ publication, and user-scope installation are separate decisions, not an
502
+ automatic consequence of local authoring.
@@ -224,7 +224,7 @@ Reading the output:
224
224
  The evidence is organized as three layers — launcher-owned production records,
225
225
  independent durable corroboration from Git and the fixture, and the normalized
226
226
  bundle and assertion report. See
227
- [Evidence Layers](../workflows/projects/evidence-layers.md) for the model.
227
+ [Evidence Layers](../workflows/advanced/evidence-layers.md) for the model.
228
228
 
229
229
  ## Cleanup and recovery
230
230
 
@@ -324,5 +324,5 @@ fixture does not pass, the workflow change is not accepted.
324
324
  ## Related
325
325
 
326
326
  - [Contributing Code](code.md)
327
- - [Implementation Execution](../workflows/projects/implementation-execution.md)
328
- - [Dispatch Ceiling](../workflows/projects/dispatch-ceiling.md)
327
+ - [Implementation Execution](../workflows/projects/execution/implementation-execution.md)
328
+ - [Dispatch Ceiling](../workflows/advanced/dispatch-ceiling.md)
@@ -81,7 +81,7 @@ or GPT-6.1 Cursor targets until that runtime lists and verifies them.
81
81
  A 2026-09-25 desktop 3.21.18 probe added Grok 4.6 and Fable 5.1 mappings
82
82
  and moved the bundled Cursor ladder to them. The same probe showed Grok 4.7
83
83
  resolves only bare flat IDs, never bracket selectors. It still needs its own
84
- approved registry entry and complete per-pin evidence before admission; see [Verifying Cursor Pins](verifying-cursor-pins.md). See [Dispatch Policy](../workflows/projects/dispatch-ceiling.md#cursor-evidence-authority)
84
+ approved registry entry and complete per-pin evidence before admission; see [Verifying Cursor Pins](verifying-cursor-pins.md). See [Dispatch Policy](../workflows/advanced/dispatch-ceiling.md#cursor-evidence-authority)
85
85
  for the distinction between catalog, configured mapping, and runtime identity.
86
86
 
87
87
  The October 1 refresh migrates Codex Sol defaults and examples to
@@ -142,5 +142,5 @@ bundled cells in the chosen scope, with a warning and a `--dry-run` preview;
142
142
  extra custom cells remain. Add `--keep-existing` to fill only missing cells.
143
143
  The active project's named ceiling is a separate policy in its `state.md`;
144
144
  a model update must not silently change it.
145
- See [Dispatch Policy](../workflows/projects/dispatch-ceiling.md#ownership-and-adoption)
145
+ See [Dispatch Policy](../workflows/advanced/dispatch-ceiling.md#ownership-and-adoption)
146
146
  for config precedence and examples.
@@ -339,5 +339,5 @@ oat sync --scope project
339
339
  ## Related
340
340
 
341
341
  - [Smoke Testing](smoke-testing.md) - Runbook for the live workflow smoke runner.
342
- - [Dispatch Policy](../workflows/projects/dispatch-ceiling.md) - How pins reach the recommendation and role files.
342
+ - [Dispatch Policy](../workflows/advanced/dispatch-ceiling.md) - How pins reach the recommendation and role files.
343
343
  - [Provider Sync](../provider-sync/providers.md) - Provider-specific sync behavior.
@@ -1,11 +1,11 @@
1
1
  ---
2
- title: Add Docs to a New Repo
3
- description: 'Step-by-step guide for adding an OAT-managed docs app to a repository.'
2
+ title: Add or Adopt Docs in a Repo
3
+ description: 'Step-by-step guide for adding or adopting OAT-managed documentation to a repository.'
4
4
  ---
5
5
 
6
- # Add Docs to a New Repo
6
+ # Add or Adopt Docs in a Repo
7
7
 
8
- Use this path when you want to add an OAT-managed docs app and the docs
8
+ Use this path when you want to add or adopt documentation and the docs
9
9
  analyze/apply workflow to a repository.
10
10
 
11
11
  If you are developing inside the OAT repo itself, replace `oat ...` with
@@ -13,7 +13,7 @@ If you are developing inside the OAT repo itself, replace `oat ...` with
13
13
 
14
14
  ## What this gives you
15
15
 
16
- - a docs app scaffolded with OAT defaults (Fumadocs or MkDocs)
16
+ - plain Markdown files or a docs app scaffolded with OAT defaults (Fumadocs or MkDocs)
17
17
  - `index.md`-driven navigation
18
18
  - docs analysis and apply skills installed via the docs pack
19
19
  - a repeatable workflow for finding gaps, verifying claims, and applying docs changes
@@ -51,9 +51,9 @@ The docs pack installs `authoring-docs`, `oat-docs-authoring`,
51
51
  `oat-agent-instructions-apply`. For this quickstart, the authoring and docs
52
52
  analysis/apply skills are the parts you need immediately.
53
53
 
54
- ## 3. Scaffold the docs app
54
+ ## 3. Set up the documentation surface
55
55
 
56
- Two paths — pick one:
56
+ Choose Markdown files or a framework app, using the guided skill or direct CLI.
57
57
 
58
58
  ### 3a. Preferred: the `oat-docs-bootstrap` skill (guided)
59
59
 
@@ -61,9 +61,11 @@ Two paths — pick one:
61
61
  /oat-docs-bootstrap
62
62
  ```
63
63
 
64
- The docs-bootstrap skill 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.
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
- What the skill adds over the raw CLI:
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.
67
+
68
+ What the framework path adds over the raw CLI:
67
69
 
68
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.
69
71
  - **Richer inputs.** Asks for a **site name** separate from the package name, so `createDocsConfig()` / layout branding / page metadata all converge on the same display title.
@@ -90,10 +92,11 @@ oat docs init --app-name my-docs
90
92
 
91
93
  In interactive mode, you'll be prompted to choose a framework:
92
94
 
95
+ - **Markdown** — authored files, context indexes, and Contents maps without a site framework
93
96
  - **Fumadocs** — Next.js-based static site with FlexSearch, Mermaid diagrams, dark/light mode, and code copy buttons
94
97
  - **MkDocs** — MkDocs Material with the OAT contributor contract
95
98
 
96
- Default placement:
99
+ Framework default placement:
97
100
 
98
101
  - monorepo: `apps/my-docs`
99
102
  - single-package repo: `my-docs/` at repo root
@@ -113,8 +116,68 @@ Use 3b when you want a fully headless scaffold (CI, automation) and can accept t
113
116
  For compatible Turbo monorepos, the CLI also patches the repo-root
114
117
  `package.json` by default so root `pnpm build` excludes the new docs app and a
115
118
  root `build:docs` script is available for docs-only builds. Use
116
- `--no-root-patch` to opt out, or `--dry-run` to preview the diff without
117
- writing it.
119
+ `--no-root-patch` to opt out. `--dry-run` is available only for Markdown
120
+ files/config/guidance; it does not preview framework package patches.
121
+
122
+ ### Plain Markdown: fresh setup or additive adoption
123
+
124
+ ```bash
125
+ # Fresh default root: docs/ in every repository shape
126
+ oat docs init --framework markdown --site-name "Project Docs" --yes
127
+
128
+ # Existing content: preview, then explicitly adopt without overwriting files
129
+ oat docs init --framework markdown --target-dir handbook --adopt --dry-run --yes
130
+ oat docs init --framework markdown --target-dir handbook --adopt --yes
131
+ ```
132
+
133
+ Markdown creates missing `index.md` and `contributing.md` baseline pages and
134
+ records `documentation.tooling: "markdown"`, the literal root, and its authored
135
+ `<root>/index.md`. A nested `<root>/docs` remains a subsection. Root managed
136
+ Documentation guidance names these paths; bootstrap creates no docs-root
137
+ `AGENTS.md` and preserves one already present. It creates no app package,
138
+ framework config, dependencies, or install/dev/build commands. Lint/format
139
+ choices default to `none` and never install tools.
140
+
141
+ A default setup records:
142
+
143
+ ```json
144
+ {
145
+ "documentation": {
146
+ "tooling": "markdown",
147
+ "root": "docs",
148
+ "index": "docs/index.md"
149
+ }
150
+ }
151
+ ```
152
+
153
+ A populated target is refused without `--adopt`, including with `--yes`.
154
+ Adoption preserves existing page/index/local-instruction bytes and adds only
155
+ missing baseline files. Missing child indexes, metadata, context, or Contents
156
+ remain audit gaps: run `oat-docs-analyze`, then `oat-docs-apply` for approved
157
+ repairs. Successful config/guidance setup does not prove full content conformity.
158
+ See [Markdown setup details](commands.md#oat-docs-init) for initial Contents
159
+ discovery and repair advice for optional child indexes and unreadable directories.
160
+
161
+ Incompatible declared tooling/root/index or unsafe paths are refused before
162
+ writes. Selecting a framework explicitly retains its existing replacement
163
+ prompt/`--yes` behavior, including over configured Markdown: config may change
164
+ while old Markdown files remain. This is not an automatic content migration.
165
+
166
+ Dry-run writes nothing. Manual-required or blocked guidance returns `partial`
167
+ and exit `1`; files/config are planned, not completed. A real partial run may
168
+ already have created baseline files and config: follow its reported state and
169
+ preserve those files when retrying. Converged repeated adoption returns `ok`,
170
+ exit `0`, and no changes.
171
+
172
+ Markdown indexes are authored. Optional inventories require external output:
173
+
174
+ ```bash
175
+ oat docs generate-index --docs-dir handbook --output .oat/docs-manifest.md
176
+ ```
177
+
178
+ Default generation is refused for configured Markdown. External output cannot
179
+ be inside the full configured content root or overwrite its authored index,
180
+ even with a narrowed `--docs-dir`. It never repoints `documentation.index`.
118
181
 
119
182
  ### 3c. Existing MkDocs content
120
183
 
@@ -132,13 +195,15 @@ refactor, use the assigned migration handoff guide or project plan; do not make
132
195
 
133
196
  ## 4. Start authoring docs with the OAT contract
134
197
 
135
- Use `oat-docs-authoring` for targeted OAT/Fumadocs content edits or local
198
+ Use `oat-docs-authoring` for targeted OAT Markdown/Fumadocs content edits or local
136
199
  restructuring. It uses `authoring-docs` for the portable documentation baseline
137
200
  and adds the OAT-specific navigation, generated-index, and validation contract.
138
201
 
139
202
  Core rules:
140
203
 
141
- - every docs directory should have an `index.md`
204
+ - every non-excluded Markdown-bearing docs directory should have an authored `index.md`
205
+ - preserve useful audience/scope context and nonempty title/description metadata
206
+ - honor asset-only exceptions, configured excludes, and existing local instructions
142
207
  - every `index.md` should include a `## Contents` section
143
208
  - the `## Contents` section should map sibling pages and immediate child directories
144
209
  - `## Contents` links should use `.md`-suffixed relative targets, including `subdir/index.md` for child directories
@@ -214,7 +279,7 @@ Important:
214
279
  3. `oat docs init --app-name my-docs`
215
280
  4. (optional) handle MkDocs migration as a separate workstream; use `oat docs migrate --docs-dir docs --config mkdocs.yml --apply` only for the syntax/frontmatter helper
216
281
  5. Author docs with `index.md` + `## Contents`
217
- 6. `oat docs nav sync --target-dir apps/my-docs` (both frameworks), plus `oat docs generate-index` (Fumadocs)
282
+ 6. Check Markdown files/links, or refresh declared artifacts with `oat docs nav sync --target-dir apps/my-docs` (both frameworks), plus `oat docs generate-index` (Fumadocs)
218
283
  7. `/oat-docs-analyze`
219
284
  8. `/oat-docs-apply`
220
285
  9. Repeat as the codebase changes
@@ -224,3 +289,35 @@ Important:
224
289
  - [`commands.md`](commands.md)
225
290
  - [`workflows.md`](workflows.md)
226
291
  - [`../reference/docs-index-contract.md`](../reference/docs-index-contract.md)
292
+
293
+ ## Choosing Markdown or a site framework
294
+
295
+ `oat docs init --framework` (and the `oat-docs-bootstrap` skill) sets up one of
296
+ three kinds of documentation. In all three, each folder's `index.md` has a
297
+ `## Contents` list of its pages.
298
+
299
+ | Framework | Choose it when | What you give up |
300
+ | -------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
301
+ | 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 |
302
+ | 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 |
303
+ | 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` |
304
+
305
+ When nothing chooses for it (a non-interactive run or `--yes`), `oat docs init`
306
+ uses Fumadocs. That is only a default; pick the smallest option your readers
307
+ need.
308
+
309
+ - If you are a solo developer or a team that only needs guides readable in the
310
+ repository, choose plain Markdown. It adds no app, dependencies, or build.
311
+ - If a Node/pnpm team wants a hosted site, choose Fumadocs. Its build hooks
312
+ regenerate the app-root `index.md` inventory but not the sidebar files, so run
313
+ `oat docs nav sync` after adding, moving, or renaming pages, commit the
314
+ `meta.json` files it writes, and add `oat docs nav sync --check` to your build
315
+ or CI yourself, because the scaffold does not.
316
+ - If your team uses Python and MkDocs Material, choose MkDocs. Run
317
+ `oat docs nav sync --check` to see what would change before letting nav sync
318
+ rewrite `nav:`.
319
+ - If the repository already has docs, do not initialize over them. Adopt
320
+ existing plain Markdown with `--adopt` (try `--dry-run` first), and record an
321
+ existing MkDocs site with `oat init --setup` instead of `oat docs init`. When
322
+ moving an MkDocs site to Fumadocs, `oat docs migrate` converts MkDocs syntax
323
+ and frontmatter; it only previews changes until you pass `--apply`.
@@ -0,0 +1,131 @@
1
+ ---
2
+ title: Improve Agent Instructions
3
+ description: Audit instruction coverage and accuracy, then apply approved recommendations without inventing repository conventions.
4
+ ---
5
+
6
+ # Improve Agent Instructions
7
+
8
+ Keep analysis and application separate. The analysis report establishes what
9
+ is supported by repository evidence; apply translates selected recommendations
10
+ into canonical instructions and provider views. Canonical instructions are
11
+ the provider-neutral source files OAT treats as the source of truth, such as
12
+ `AGENTS.md` and rule files under `.agents/rules/`. Provider views are the
13
+ per-tool files, such as Cursor rule files, that `oat sync` generates from
14
+ them. Neither skill needs an active OAT project.
15
+
16
+ The analysis report is an analysis artifact: a timestamped Markdown report
17
+ that analyze writes under `.oat/repo/analysis/` and that apply later reads.
18
+
19
+ The invocations below are agent instructions, not terminal commands. Use
20
+ slash names where supported, `$name` in Codex, or ask for the skill by name.
21
+
22
+ ## oat-agent-instructions-analyze
23
+
24
+ **Invocation:** `/oat-agent-instructions-analyze` in the repository you want
25
+ to evaluate. Confirm the provider scope when prompted so the audit covers
26
+ the instruction formats your team actually uses.
27
+
28
+ **Prerequisites:** A Git repository with at least one instruction file (root
29
+ `AGENTS.md` is the baseline), accessible configuration/documentation evidence,
30
+ and `jq` for the helper scripts. OAT documentation configuration is useful when present but not
31
+ required for discovering the repository's documentation surfaces. No active
32
+ project is required.
33
+
34
+ **Example scenario:** Claude, Cursor, and Codex users receive inconsistent
35
+ test instructions, and a nested package has no clear ownership guidance.
36
+ Audit the canonical instructions and relevant provider views against actual
37
+ package scripts and local documentation before copying another provider's
38
+ rules into every directory.
39
+
40
+ The audit checks quality, coverage, existing-rule accuracy, progressive
41
+ disclosure, file-type opportunities, and cross-format consistency. Full or
42
+ delta analysis follows valid tracking evidence. Claims about exhaustive
43
+ consistency need exhaustive evidence, not a convenient sample. Formatting
44
+ tools and canonical documentation are often better linked than restated as
45
+ large always-loaded instruction blocks.
46
+
47
+ Provider recommendations follow configured policy. For example, a Claude
48
+ shim (a `CLAUDE.md` file whose job is to import `AGENTS.md` with
49
+ `@AGENTS.md`) is not universally required. The setting
50
+ `instructions.claude.shims` chooses the strategy. Under the default, `none`,
51
+ Claude Code reads `AGENTS.md` itself, so analysis recommends no `CLAUDE.md`.
52
+ Under `pointer`, `symlink`, or `copy`, it checks for the matching shim next
53
+ to each `AGENTS.md`.
54
+
55
+ Some `CLAUDE.md` files hold the only copy of instructions that an
56
+ `AGENTS.md` links to. For those files, the recommended fix is to move the
57
+ content into each linking `AGENTS.md` first and only then remove the file.
58
+ A duplication finding is never permission to discard the sole copy of
59
+ useful guidance.
60
+
61
+ **Expected output:** A human-readable
62
+ `.oat/repo/analysis/agent-instructions-<timestamp>.md` report and its
63
+ companion bundle. The companion bundle is a folder next to the report
64
+ (`agent-instructions-<timestamp>.bundle/`) that holds `summary.md`,
65
+ `recommendations.yaml`, and one recommendation pack file per recommendation
66
+ under `packs/`. The bundle is what apply generates from; the Markdown report
67
+ provides review context. The default bounded artifact-review loop can
68
+ correct these outputs but cannot edit downstream instruction files. Skipped
69
+ review and residual findings remain visible in the handoff.
70
+
71
+ **What it does without asking:** It writes the report and companion bundle
72
+ under `.oat/repo/analysis/`, lets its review loop correct them, and updates
73
+ its tracking record in `.oat/tracking.json`. It does not create or modify
74
+ instruction files or repository configuration.
75
+
76
+ **Next step:** Review the recommendations and use
77
+ [oat-agent-instructions-apply](#oat-agent-instructions-apply) for approved
78
+ changes. Resolve missing evidence in analysis rather than making apply guess
79
+ which convention new files should follow.
80
+
81
+ ## oat-agent-instructions-apply
82
+
83
+ **Invocation:** `/oat-agent-instructions-apply` after reviewing an analysis
84
+ artifact. Choose batch approval, recommendation-by-recommendation review,
85
+ discussion, or cancellation when the skill presents the plan.
86
+
87
+ **Prerequisites:** A Git repository, `jq`, the installed
88
+ `oat-agent-instructions-analyze` skill (apply reuses its scripts and stops if
89
+ it cannot find them), and a recent analysis artifact. Apply always reads the
90
+ newest `.oat/repo/analysis/agent-instructions-*.md` report. Each
91
+ recommendation needs evidence, confidence, a disclosure decision (whether
92
+ the item is written inline, added only as a link, omitted, or left for you
93
+ to decide), and concrete link targets for link-only recommendations. When a
94
+ companion bundle exists, it is the primary generation contract; older
95
+ Markdown-only artifacts remain supported. `gh` is needed only if you want
96
+ apply to open the pull request. No active OAT project is required.
97
+
98
+ **Example scenario:** The audit recommends fixing one inaccurate test command
99
+ and adding scoped guidance to a package. Approve those two changes, but
100
+ decline a proposed always-loaded architecture summary in favor of its
101
+ documentation link. The resulting instructions should preserve that
102
+ disclosure choice rather than copying the full summary into every provider.
103
+
104
+ Apply may reopen cited sources to verify them and generate instruction text,
105
+ but cannot add new recommendations or infer a formatting rule from tool
106
+ defaults. Missing preferred patterns, evidence, or link targets are reasons
107
+ to stop for clarification. Provider baselines must already be explicit in
108
+ the analysis, including which shim strategy applies.
109
+
110
+ **Expected output:** Approved canonical instruction and rule changes
111
+ committed on a new `oat/agent-instructions-<timestamp>` branch, with
112
+ regenerated provider views where needed. The plan and source-backed
113
+ rationale remain aligned with the analysis bundle.
114
+
115
+ **What it does without asking:** Nothing changes until you approve the plan
116
+ (choosing `cancel`, or skipping every item, exits without changes). After
117
+ approval, apply continues without asking again. It creates branch
118
+ `oat/agent-instructions-<timestamp>` and writes the approved files. Items
119
+ whose disclosure is `ask_user` are confirmed with you once more before they
120
+ are written. When it writes canonical rule files, it runs
121
+ `oat sync --scope project` to regenerate the provider views. It then commits
122
+ the generated and updated files as `chore: update agent instruction files`.
123
+ If the branch cannot be created (for example because of uncommitted
124
+ changes), it asks you to resolve that first. After committing, it asks
125
+ whether to push and open a pull request; only a yes pushes. The PR targets
126
+ `main`, and its body includes the applied plan and the full analysis
127
+ report. Finally it updates `.oat/tracking.json`.
128
+
129
+ **Next step:** Review the committed diff and provider scope before you agree
130
+ to push or open a pull request. Reanalyze when you need to evaluate new
131
+ conventions or gaps; apply is not a second independent audit.