@open-agent-toolkit/cli 0.0.36 → 0.0.38

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.
@@ -0,0 +1,63 @@
1
+ # AGENTS — {{SITE_NAME}}
2
+
3
+ This file tells agents how to work inside `{{APP_DIR}}`, the documentation app for `{{REPO_NAME}}`. It is not bootstrap documentation. If you're looking for how this app was scaffolded, see `docs/getting-started.md` or the root-level `AGENTS.md` section on documentation.
4
+
5
+ ## Purpose and scope
6
+
7
+ `{{APP_DIR}}` is the documentation surface for `{{REPO_NAME}}`. Humans read the rendered site; agents read the Markdown source and the navigation structure. This file tells agents the conventions that keep both audiences served, and points at the tooling that enforces those conventions. Everything here is about ongoing work inside the docs app — adding, restructuring, auditing, and bulk-editing content.
8
+
9
+ ## When you need to add a new page
10
+
11
+ 1. Create the Markdown file under `docs/` at the directory that best matches the page's topic. Every content directory is an `index.md` map — find the right one before picking a path. **Prefer `.md`** for plain content pages; reach for `.mdx` only when the page actually needs embedded JSX (a custom component, an interactive widget, a specialized layout). Plain `.md` is the default because agents, linters, and grep rules all handle it more reliably than `.mdx`.
12
+ 2. Add frontmatter with at minimum `title:` and `description:`. The title drives nav display and page `<title>`; the description drives search previews, social cards, and sibling summaries. Empty descriptions hurt all three.
13
+ 3. Update the nearest `index.md`'s `## Contents` section to include a link to the new page. Use `.md`-suffixed relative links: `[Title](page.md)` for leaf pages, `[Section](subdir/index.md)` for subdirectories. The `@open-agent-toolkit/docs-transforms` remark-links plugin normalizes these for Fumadocs routing at build time (strips `.md`, collapses `dir/index.md` → `dir`), so the suffixed form renders correctly **and** lets agents follow links to the target file without path inference. The `## Contents` section is the machine-readable local map — anything not listed there is effectively invisible to the navigation tooling.
14
+ 4. If the new page introduces a new subdirectory, create an `index.md` in that subdirectory with its own `## Contents` section. Every content directory must have an `index.md`.
15
+ 5. Run `oat docs nav sync` (or equivalent for this framework) to regenerate any derived navigation artifacts. Derived artifacts never replace the authored `## Contents`; they're generated from it.
16
+
17
+ ## When you need to restructure navigation
18
+
19
+ 1. Make changes in the authored `## Contents` sections of each affected `index.md`. That is the authoritative local map.
20
+ 2. Do **not** hand-edit generated navigation artifacts. The root-level `index.md` (if present for this framework), `mkdocs.yml` `nav:` (for MkDocs), and any other derived nav file is rewritten on every build.
21
+ 3. After editing `## Contents`, run the framework's nav sync command to regenerate derived artifacts.
22
+ 4. If you're moving pages between directories, update both source and destination `index.md` `## Contents` entries in the same commit so the site isn't broken mid-way through history.
23
+ 5. If you're reparenting an entire subtree, consider whether the moved directory's own `index.md` needs a revised "scope" paragraph.
24
+
25
+ ## When you need to audit or bulk-edit docs
26
+
27
+ 1. Use `oat-docs-analyze` to audit the docs surface against the `## Contents` contract and surface gaps, drift, and coverage opportunities. This is read-only; it produces a report artifact under `.oat/repo/analysis/`.
28
+ 2. Review the report with the user. The analyze output is a set of ordered recommendations — apply them selectively, not wholesale.
29
+ 3. Use `oat-docs-apply` to execute approved recommendations. Apply creates a branch, performs the approved changes, runs nav sync, and optionally opens a PR. It will not make unapproved changes or invent new conventions.
30
+ 4. Do not bypass analyze/apply for sweeping content changes. The branch-and-review discipline catches mistakes that would otherwise land silently and accumulate over time.
31
+
32
+ ## When you're unsure where content belongs
33
+
34
+ 1. Start at `docs/index.md` and read its `## Contents` section. That's the top-level map. Follow the link that best matches the topic.
35
+ 2. Repeat at each directory level — every `index.md` has its own `## Contents`. Descend until you find the right scope.
36
+ 3. If none of the existing sections fit, the content probably belongs in a new subdirectory. Create it with an `index.md` (see "When you need to add a new page").
37
+ 4. If in doubt, match existing siblings' style and depth rather than inventing a new pattern. Consistency across neighboring pages matters more than exact placement.
38
+
39
+ ## When you need project-level documentation updates
40
+
41
+ 1. Use the `oat-project-document` skill during OAT project workflows. It reads project artifacts (`discovery.md`, `spec.md`, `design.md`, `plan.md`, `implementation.md`) and proposes evidence-backed doc updates — no speculation, no content that doesn't trace back to the source artifacts.
42
+ 2. The skill generates recommendations; you approve them before they land. Treat it like analyze/apply but scoped to a single project's documentation delta.
43
+ 3. Do not hand-write project-derived docs that bypass this flow. Bypassing means future runs of the skill will re-surface the same content as "missing" because the provenance chain is broken.
44
+
45
+ ## What not to do
46
+
47
+ - **Don't hand-edit generated files.** The root-level `index.md` generated by `{{GENERATE_INDEX_CMD}}` is rewritten on every build. Edits to it are silently clobbered. Edit the authored source (`docs/index.md` and its `## Contents`), not the generated copy.
48
+ - **Don't default to `.mdx` when `.md` would do.** MDX adds JSX-in-Markdown capability (embedded components), which breaks simple link rewrites, confuses agent tooling, and requires imports that plain `.md` doesn't. Reach for `.mdx` only when a page actually needs a component it can't express in plain Markdown.
49
+ - **Don't author `## Contents` links without `.md` extensions.** Extension-less links (`[Title](page)` instead of `[Title](page.md)`) force agents to infer the target file type, break simple grep-based navigation, and diverge from the convention used throughout `{{REPO_NAME}}`. The build pipeline (`@open-agent-toolkit/docs-transforms` remark-links) strips `.md` for Fumadocs routing — so suffixed authored links render correctly and stay agent-friendly.
50
+ - **Don't invent new navigation conventions outside `## Contents`.** A sidebar config in a framework file, a hand-rolled TOC, a separate nav YAML — all of these diverge from the contract and break the tooling. Extend via `## Contents`.
51
+ - **Don't bypass `oat-docs-apply` for bulk content changes.** The analyze/apply flow exists to catch mistakes. Bulk edits done by hand or by a one-off script skip the safety net and often regress something unexpected.
52
+ - **Don't create `overview.md` files.** They're deprecated in favor of `index.md` with a `## Contents` section.
53
+ - **Don't edit the scaffolded `{{SITE_NAME}}` value in isolation.** The site name flows to multiple files (layout branding, metadata, page headings). If you're renaming the docs site, update all locations in the same commit or you'll get inconsistent chrome.
54
+
55
+ ## Reference
56
+
57
+ - `docs/getting-started.md` — first-run setup instructions for contributors joining this docs app.
58
+ - `docs/contributing.md` — authoring conventions (frontmatter requirements, Markdown features like GFM alerts / mermaid / code blocks, nav contract summary).
59
+ - Root `AGENTS.md` `## Documentation` section in `{{REPO_NAME}}` — repo-wide pointer telling any agent "docs live at `{{APP_DIR}}`."
60
+ - `oat-docs-analyze` — read-only audit command.
61
+ - `oat-docs-apply` — apply approved audit recommendations.
62
+ - `oat-project-document` skill — propose evidence-backed doc updates from project artifacts.
63
+ - `{{GENERATE_INDEX_CMD}}` — regenerates the machine-readable root `index.md` from `docs/`. Runs automatically on `predev` / `prebuild`; don't hand-edit its output.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-document
3
- version: 1.2.0
3
+ version: 1.3.0
4
4
  description: Run when implementation is complete and documentation needs updating. Analyzes project artifacts to produce documentation update recommendations, then applies approved changes before project completion.
5
5
  argument-hint: '[project-path] [--auto]'
6
6
  disable-model-invocation: true
@@ -195,9 +195,9 @@ These will be verified against actual code in Step 3.
195
195
  - Quick-mode projects may lack spec.md and design.md — extract what's available
196
196
  - If only plan.md exists (no implementation.md), the project may not have started implementation yet — still proceed, but note that documentation recommendations will be based on planned work rather than verified implementation
197
197
 
198
- ### Step 3: Verify Against Code
198
+ ### Step 3: Verify Against Code and Build a Capability Inventory
199
199
 
200
- Read source files referenced in artifacts to confirm what actually shipped.
200
+ Read source files referenced in artifacts to confirm what actually shipped, then do a targeted capability-discovery pass so the skill can catch newly introduced documentation surfaces rather than only updating already-documented ones.
201
201
 
202
202
  **For each referenced source file:**
203
203
 
@@ -211,11 +211,31 @@ Read source files referenced in artifacts to confirm what actually shipped.
211
211
 
212
212
  - Add code-verified details that artifacts didn't capture
213
213
  - Note any discrepancies between artifacts and code (informational — include in delta plan as context, not as blocking issues)
214
+ - Organize the verified implementation into **capability areas** (for example: new app surface, CI/CD pipeline, release automation flow, deployment target, integration surface, CLI/config workflow)
215
+
216
+ **Targeted capability discovery pass:**
217
+
218
+ After verifying artifact-referenced files, inspect the strongest adjacent signals for newly shipped capability surfaces even when the exact docs target does not already exist.
219
+
220
+ Prioritize evidence from:
221
+
222
+ - new apps/packages/directories called out by the artifacts
223
+ - workflow/config files tied to shipped behavior (`.github/workflows`, release configs, deploy configs, mobile build/release files, etc.)
224
+ - entrypoints, route registration files, service modules, and schemas that define user- or operator-facing behavior
225
+ - package manifests and scripts that expose new setup, release, or operational workflows
226
+
227
+ For each significant capability area, capture:
228
+
229
+ - capability name
230
+ - concrete repo evidence proving it shipped
231
+ - likely audience (`developer`, `operator`, `integrator`, `end user`)
232
+ - whether the capability represents a new docs surface versus an addition to an existing surface
214
233
 
215
234
  **Scope control:**
216
235
 
217
- - Focus on files directly referenced in artifacts don't scan the entire codebase
218
- - If artifacts reference many files (>20), prioritize: new files first, then modified files with the most changes
236
+ - Start with files directly referenced in artifacts, then inspect only the highest-signal adjacent files needed to understand the shipped capability areas
237
+ - Do not scan the entire codebase blindly; stay anchored to the implementation areas surfaced by the project artifacts
238
+ - If artifacts reference many files (>20), prioritize: new files first, then modified files with the most changes, then only the adjacent files needed to confirm docs impact
219
239
  - Read file contents, not just check existence — the skill needs to understand what the code does to make good documentation recommendations
220
240
 
221
241
  ### Step 4: Discover Documentation Surfaces
@@ -228,6 +248,8 @@ Scan the repository for all documentation and instruction surfaces.
228
248
  - Read the docs tooling config (e.g., `$DOCS_CONFIG`) to understand nav structure
229
249
  - List all files in `$DOCS_ROOT` recursively
230
250
  - Read existing docs files that could be affected by the project
251
+ - Identify the parent section or directory where each uncovered capability area would naturally live
252
+ - Note when no existing page or directory is a good fit — this is a strong signal for a `CREATE` recommendation, not a reason to force the content into an unrelated existing page
231
253
 
232
254
  2. **Root README.md:**
233
255
  - Always check — read current content
@@ -270,7 +292,38 @@ Scan the repository for all documentation and instruction surfaces.
270
292
 
271
293
  Compare "what was built" (from Steps 2-3) against "what's documented" (from Step 4) to produce recommendations.
272
294
 
273
- **5a. Documentation surface assessment:**
295
+ **5a. Capability coverage assessment (required):**
296
+
297
+ Before recommending file-level edits, evaluate coverage for each significant capability area in the "what was built" model.
298
+
299
+ For each capability area, classify the documentation state as:
300
+
301
+ - **adequately covered** — existing docs already explain the shipped behavior accurately
302
+ - **thin coverage** — the area is mentioned, but important setup, workflow, or usage details are missing
303
+ - **no coverage** — no existing docs surface meaningfully covers the capability
304
+
305
+ For each capability with **thin coverage** or **no coverage**, determine the best docs home:
306
+
307
+ - **Expand an existing page** when a clear, discoverable page already owns the topic
308
+ - **Create a new page** when the topic is distinct enough to deserve its own entrypoint
309
+ - **Create a new docs directory** (with `index.md` entrypoint, where that is the local convention) when the shipped work introduces a new top-level capability area with multiple likely subtopics
310
+
311
+ Bias rules:
312
+
313
+ - If a docs app exists and the shipped work represents a new major capability area, do **not** default to stuffing the information into `README.md`, `roadmap.md`, or `current-state.md`
314
+ - Examples that often warrant `CREATE` recommendations: new mobile apps, CI/CD and release automation, new deployment targets, new integration surfaces, or new operator workflows
315
+ - If no existing docs section is a natural fit, prefer recommending a new page or directory rather than forcing an `UPDATE` on a loosely related page
316
+
317
+ Each coverage-gap finding should capture:
318
+
319
+ - capability area
320
+ - current docs state (`thin coverage` or `no coverage`)
321
+ - evidence proving the capability shipped
322
+ - likely audience
323
+ - suggested docs location (`existing page`, `new page`, or `new directory`)
324
+ - why that location is the right home
325
+
326
+ **5b. Documentation surface assessment:**
274
327
 
275
328
  For each documentation surface relevant to the project, determine one of:
276
329
 
@@ -283,6 +336,7 @@ For each documentation surface relevant to the project, determine one of:
283
336
  - Proposed file path
284
337
  - Proposed content outline (section headings, key points)
285
338
  - Why this warrants a new file (evidence)
339
+ - If inside a docs app, note any parent index/nav follow-on work that will be needed
286
340
 
287
341
  - **SPLIT:** Existing doc would become too large with additions. Specify:
288
342
  - Current file path and approximate size
@@ -291,7 +345,13 @@ For each documentation surface relevant to the project, determine one of:
291
345
 
292
346
  - **No change:** Surface is already accurate — skip from delta plan.
293
347
 
294
- **5b. Instruction surface assessment (strong signals only):**
348
+ When deciding between `UPDATE` and `CREATE`, prefer `CREATE` if:
349
+
350
+ - the capability currently has **no coverage**
351
+ - the docs app has no discoverable home for that topic
352
+ - the proposed addition would otherwise bury a new major workflow inside an unrelated page
353
+
354
+ **5c. Instruction surface assessment (strong signals only):**
295
355
 
296
356
  Only recommend instruction changes when there is a clear trigger:
297
357
 
@@ -305,14 +365,17 @@ Only recommend instruction changes when there is a clear trigger:
305
365
 
306
366
  If no strong signal is present for an instruction surface, skip it.
307
367
 
308
- **5c. Per recommendation, capture:**
368
+ **5d. Per recommendation, capture:**
309
369
 
310
370
  ```
311
371
  - Target: {file path — existing or proposed}
312
372
  - Action: {UPDATE | CREATE | SPLIT}
313
373
  - Summary: {1-2 sentences on what changes and why}
314
- - Evidence: {artifact reference — e.g., "spec.md §3", "plan.md p02-t03", "implementation.md p01-t01 outcome"}
374
+ - Evidence: {artifact/code reference — e.g., "spec.md §3", "plan.md p02-t03", "implementation.md p01-t01 outcome", "workflow file X proves release automation shipped"}
375
+ - Audience: {developer | operator | integrator | end user}
315
376
  - Content guidance: {specific content to add or outline for new files}
377
+ - Coverage state: {adequately covered | thin coverage | no coverage}
378
+ - Parent docs impact: {parent index/nav updates needed, or "none"}
316
379
  ```
317
380
 
318
381
  ### Step 6: Present Delta Plan
@@ -378,7 +441,8 @@ Execute the approved documentation updates.
378
441
  2. **CREATE:**
379
442
  - Create parent directories if needed (`mkdir -p`)
380
443
  - Write the new file with the content outlined in the recommendation
381
- - For docs directory files: follow the existing docs conventions (e.g., index.md structure for MkDocs)
444
+ - For docs directory files: follow the existing docs conventions for entrypoints and local navigation (for example, `index.md` entrypoints and `## Contents` sections where that is the local pattern)
445
+ - If the recommendation created a new docs directory, add the required entrypoint file for that directory as part of the same change
382
446
 
383
447
  3. **SPLIT:**
384
448
  - Create the new file with the content being moved
@@ -475,7 +539,9 @@ Next steps:
475
539
  ## Success Criteria
476
540
 
477
541
  - All documentation surfaces relevant to the project are scanned
542
+ - Significant capability areas from the "what was built" model are classified as `adequately covered`, `thin coverage`, or `no coverage` before file-level recommendations are chosen
478
543
  - Recommendations are evidence-based (every recommendation cites artifact/code sources)
544
+ - `CREATE` actions are recommended when no existing docs surface is a natural fit, including new docs pages or directories when the shipped work introduces a new capability area
479
545
  - Interactive approval flow works correctly (all/individual/skip)
480
546
  - `--auto` mode applies all changes without user interaction
481
547
  - New files and splits are handled correctly
@@ -67,5 +67,4 @@ Theme toggle is included in the layout. Mermaid diagrams re-render on mode switc
67
67
 
68
68
  ## Agent guidance
69
69
 
70
- - Treat `index.md` plus its `## Contents` section as the local discovery source of truth.
71
- - Prefer linking to source files and commands explicitly when documenting behavior.
70
+ See `AGENTS.md` in this directory for how agents should work inside this docs app. This `contributing.md` covers human authoring conventions; `AGENTS.md` covers agent runtime discipline (adding pages, restructuring nav, audit/apply, three agent-instruction surfaces). Keeping those concerns separate keeps each file useful to its audience.
@@ -9,7 +9,7 @@ Use this guide to set up your local environment and preview {{SITE_NAME}}.
9
9
 
10
10
  ## Prerequisites
11
11
 
12
- - Node.js 22+
12
+ - Node.js 20+ (or whatever your repo's `.nvmrc` / `package.json` `engines.node` pins — match that)
13
13
  - pnpm 10+ (or npm/yarn)
14
14
 
15
15
  ## Install dependencies
@@ -9,5 +9,5 @@ Use this file as the map to the repository's central documentation site. The sit
9
9
 
10
10
  ## Contents
11
11
 
12
- - [Getting Started](getting-started) - Set up the local docs toolchain and preview the site.
13
- - [Contributing](contributing) - Authoring conventions and navigation rules.
12
+ - [Getting Started](getting-started.md) - Set up the local docs toolchain and preview the site.
13
+ - [Contributing](contributing.md) - Authoring conventions and navigation rules.
@@ -11,7 +11,7 @@ export declare const WORKFLOW_TEMPLATES: readonly ["state.md", "discovery.md", "
11
11
  export declare const WORKFLOW_SCRIPTS: readonly ["generate-oat-state.sh", "generate-thin-index.sh", "resolve-tracking.sh"];
12
12
  export declare const IDEA_SKILLS: readonly ["oat-idea-new", "oat-idea-ideate", "oat-idea-summarize", "oat-idea-scratchpad"];
13
13
  export declare const CORE_SKILLS: readonly ["oat-docs", "oat-doctor"];
14
- export declare const DOCS_SKILLS: readonly ["oat-agent-instructions-analyze", "oat-agent-instructions-apply", "oat-docs-analyze", "oat-docs-apply"];
14
+ export declare const DOCS_SKILLS: readonly ["oat-agent-instructions-analyze", "oat-agent-instructions-apply", "oat-docs-analyze", "oat-docs-apply", "oat-docs-bootstrap"];
15
15
  export declare const DOCS_SCRIPTS: readonly ["resolve-tracking.sh"];
16
16
  export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-receive", "oat-review-receive-remote"];
17
17
  export declare const PROJECT_MANAGEMENT_SKILLS: readonly ["oat-pjm-add-backlog-item", "oat-pjm-update-repo-reference", "oat-pjm-review-backlog"];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,eAAe,qwBA+BlB,CAAC;AAEX,eAAO,MAAM,eAAe,wDAGlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,6GAQrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,mHAKd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,gJAMjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,kGAI5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,4CAG/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
1
+ {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,eAAe,qwBA+BlB,CAAC;AAEX,eAAO,MAAM,eAAe,wDAGlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,6GAQrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,yIAMd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,gJAMjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,kGAI5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,4CAG/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
@@ -71,6 +71,7 @@ export const DOCS_SKILLS = [
71
71
  'oat-agent-instructions-apply',
72
72
  'oat-docs-analyze',
73
73
  'oat-docs-apply',
74
+ 'oat-docs-bootstrap',
74
75
  ];
75
76
  export const DOCS_SCRIPTS = ['resolve-tracking.sh'];
76
77
  // ── Utility pack ───────────────────────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -33,7 +33,7 @@
33
33
  "ora": "^9.0.0",
34
34
  "yaml": "2.8.2",
35
35
  "zod": "^3.25.76",
36
- "@open-agent-toolkit/control-plane": "0.0.36"
36
+ "@open-agent-toolkit/control-plane": "0.0.38"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.10.0",