@open-agent-toolkit/cli 0.3.9 → 0.3.11

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 (193) hide show
  1. package/README.md +2 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/config/dispatch-matrix-recommendation.json +6 -6
  4. package/assets/docs/cli-utilities/configuration.md +12 -8
  5. package/assets/docs/cli-utilities/meta.json +13 -0
  6. package/assets/docs/cli-utilities/tool-packs.md +8 -2
  7. package/assets/docs/cli-utilities/workflow-gates.md +14 -1
  8. package/assets/docs/contributing/code.md +8 -2
  9. package/assets/docs/contributing/documentation.md +7 -1
  10. package/assets/docs/contributing/meta.json +15 -0
  11. package/assets/docs/contributing/updating-model-guidance.md +34 -6
  12. package/assets/docs/contributing/verifying-cursor-pins.md +38 -9
  13. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +14 -5
  14. package/assets/docs/docs-tooling/commands.md +26 -8
  15. package/assets/docs/docs-tooling/meta.json +4 -0
  16. package/assets/docs/docs-tooling/workflows.md +2 -2
  17. package/assets/docs/guide/meta.json +4 -0
  18. package/assets/docs/meta.json +14 -0
  19. package/assets/docs/provider-sync/instruction-sync.md +8 -0
  20. package/assets/docs/provider-sync/meta.json +11 -0
  21. package/assets/docs/provider-sync/providers.md +4 -4
  22. package/assets/docs/provider-sync/scope-and-surface.md +3 -4
  23. package/assets/docs/reference/cli-reference.md +5 -2
  24. package/assets/docs/reference/docs-index-contract.md +22 -6
  25. package/assets/docs/reference/file-locations.md +7 -2
  26. package/assets/docs/reference/index.md +1 -1
  27. package/assets/docs/reference/meta.json +10 -0
  28. package/assets/docs/reference/troubleshooting.md +41 -6
  29. package/assets/docs/workflows/ideas/meta.json +4 -0
  30. package/assets/docs/workflows/meta.json +4 -0
  31. package/assets/docs/workflows/projects/cursor-cloud.md +8 -3
  32. package/assets/docs/workflows/projects/dispatch-ceiling.md +21 -14
  33. package/assets/docs/workflows/projects/evidence-layers.md +6 -8
  34. package/assets/docs/workflows/projects/implementation-execution.md +34 -5
  35. package/assets/docs/workflows/projects/lifecycle.md +7 -1
  36. package/assets/docs/workflows/projects/meta.json +25 -0
  37. package/assets/docs/workflows/projects/orchestration-model.md +5 -6
  38. package/assets/docs/workflows/skills/meta.json +10 -0
  39. package/assets/docs/workflows/skills/recon.md +28 -3
  40. package/assets/public-package-versions.json +4 -4
  41. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +30 -16
  42. package/assets/skills/oat-dispatch-subagents/SKILL.md +4 -12
  43. package/assets/skills/oat-dispatch-subagents/references/managed-claude-example.json +1 -1
  44. package/assets/skills/oat-dispatch-subagents/references/provider-codex.md +51 -0
  45. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +5 -2
  46. package/assets/skills/oat-dispatch-subagents/references/record-schema.md +8 -7
  47. package/assets/skills/oat-docs-analyze/SKILL.md +28 -3
  48. package/assets/skills/oat-docs-apply/SKILL.md +3 -3
  49. package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
  50. package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +5 -2
  51. package/assets/skills/oat-docs-bootstrap/SKILL.md +4 -3
  52. package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +3 -3
  53. package/assets/skills/oat-pjm-decision/SKILL.md +3 -2
  54. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -4
  55. package/assets/skills/oat-project-complete/SKILL.md +47 -2
  56. package/assets/skills/oat-project-design/SKILL.md +10 -6
  57. package/assets/skills/oat-project-discover/SKILL.md +3 -3
  58. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +3 -10
  59. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -4
  60. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  61. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +135 -3
  62. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +8 -10
  63. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -4
  64. package/assets/skills/oat-project-implement/references/plan-and-resume.md +1 -1
  65. package/assets/skills/oat-project-import-plan/SKILL.md +3 -3
  66. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +4 -4
  67. package/assets/skills/oat-project-new/SKILL.md +3 -3
  68. package/assets/skills/oat-project-next/SKILL.md +50 -7
  69. package/assets/skills/oat-project-plan/SKILL.md +4 -4
  70. package/assets/skills/oat-project-plan-writing/SKILL.md +4 -4
  71. package/assets/skills/oat-project-pr-final/SKILL.md +11 -1
  72. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -4
  73. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  74. package/assets/skills/oat-project-quick-start/SKILL.md +12 -8
  75. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -4
  76. package/assets/skills/oat-project-retro/SKILL.md +6 -3
  77. package/assets/skills/oat-project-review-provide/SKILL.md +2 -2
  78. package/assets/skills/oat-project-review-provide-remote/SKILL.md +2 -2
  79. package/assets/skills/oat-project-spec/SKILL.md +3 -3
  80. package/assets/skills/oat-project-summary/SKILL.md +22 -3
  81. package/assets/skills/oat-repo-improve/SKILL.md +2 -2
  82. package/assets/skills/recon/SKILL.md +24 -3
  83. package/assets/skills/recon/references/packet-contract.md +36 -6
  84. package/assets/skills/recon/references/profiles.md +3 -0
  85. package/assets/skills/recon/references/worker-contract.md +16 -3
  86. package/assets/skills/recon/scripts/create-review-brief.mjs +17 -86
  87. package/assets/skills/recon/scripts/lib/contracts.mjs +158 -41
  88. package/assets/skills/recon/scripts/lib/review-binding.mjs +123 -0
  89. package/assets/skills/recon/scripts/lib/routing.mjs +5 -2
  90. package/assets/skills/recon/scripts/reconcile-ledger.mjs +18 -7
  91. package/assets/skills/recon/scripts/render-packet.mjs +93 -1
  92. package/assets/skills/recon/scripts/validate-packet.mjs +119 -88
  93. package/assets/skills/subagent-orchestration/SKILL.md +1 -1
  94. package/assets/skills/subagent-orchestration/references/evidence-and-refresh.md +20 -8
  95. package/assets/skills/subagent-orchestration/references/provider-claude.md +25 -12
  96. package/assets/skills/subagent-orchestration/references/provider-codex.md +27 -18
  97. package/assets/skills/subagent-orchestration/references/provider-cursor.md +40 -10
  98. package/assets/templates/state.md +1 -0
  99. package/dist/commands/backlog/new.d.ts +2 -2
  100. package/dist/commands/backlog/new.d.ts.map +1 -1
  101. package/dist/commands/backlog/new.js +2 -2
  102. package/dist/commands/decision/new.d.ts +2 -2
  103. package/dist/commands/decision/new.d.ts.map +1 -1
  104. package/dist/commands/decision/new.js +2 -2
  105. package/dist/commands/docs/nav/contents.d.ts +9 -0
  106. package/dist/commands/docs/nav/contents.d.ts.map +1 -1
  107. package/dist/commands/docs/nav/contents.js +7 -2
  108. package/dist/commands/docs/nav/fumadocs.d.ts +51 -0
  109. package/dist/commands/docs/nav/fumadocs.d.ts.map +1 -0
  110. package/dist/commands/docs/nav/fumadocs.js +301 -0
  111. package/dist/commands/docs/nav/sync.d.ts +31 -1
  112. package/dist/commands/docs/nav/sync.d.ts.map +1 -1
  113. package/dist/commands/docs/nav/sync.js +163 -6
  114. package/dist/commands/index.d.ts.map +1 -1
  115. package/dist/commands/index.js +2 -0
  116. package/dist/commands/instructions/instructions.utils.d.ts +19 -0
  117. package/dist/commands/instructions/instructions.utils.d.ts.map +1 -1
  118. package/dist/commands/instructions/instructions.utils.js +89 -17
  119. package/dist/commands/instructions/sync/sync.d.ts.map +1 -1
  120. package/dist/commands/instructions/sync/sync.js +49 -2
  121. package/dist/commands/pjm/init.d.ts.map +1 -1
  122. package/dist/commands/pjm/init.js +2 -2
  123. package/dist/commands/project/closeout-check/closeout-invariant.d.ts +97 -0
  124. package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -0
  125. package/dist/commands/project/closeout-check/closeout-invariant.js +301 -0
  126. package/dist/commands/project/closeout-check/index.d.ts +38 -0
  127. package/dist/commands/project/closeout-check/index.d.ts.map +1 -0
  128. package/dist/commands/project/closeout-check/index.js +117 -0
  129. package/dist/commands/project/complete-state/index.d.ts +4 -0
  130. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  131. package/dist/commands/project/complete-state/index.js +11 -13
  132. package/dist/commands/project/dispatch/index.d.ts.map +1 -1
  133. package/dist/commands/project/dispatch/index.js +6 -30
  134. package/dist/commands/project/dispatch/record.d.ts +9 -18
  135. package/dist/commands/project/dispatch/record.d.ts.map +1 -1
  136. package/dist/commands/project/dispatch/record.js +15 -212
  137. package/dist/commands/project/index.d.ts.map +1 -1
  138. package/dist/commands/project/index.js +2 -0
  139. package/dist/commands/project/new/scaffold.d.ts +0 -1
  140. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  141. package/dist/commands/project/new/scaffold.js +19 -20
  142. package/dist/commands/project/promote/promote.d.ts +2 -2
  143. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  144. package/dist/commands/project/promote/promote.js +13 -11
  145. package/dist/commands/shared/frontmatter.d.ts +21 -0
  146. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  147. package/dist/commands/shared/frontmatter.js +70 -4
  148. package/dist/commands/shared/template-source.d.ts +29 -0
  149. package/dist/commands/shared/template-source.d.ts.map +1 -0
  150. package/dist/commands/{pjm → shared}/template-source.js +24 -7
  151. package/dist/commands/state/generate.js +2 -2
  152. package/dist/commands/template/index.d.ts +10 -0
  153. package/dist/commands/template/index.d.ts.map +1 -0
  154. package/dist/commands/template/index.js +87 -0
  155. package/dist/commands/template/resolve.d.ts +31 -0
  156. package/dist/commands/template/resolve.d.ts.map +1 -0
  157. package/dist/commands/template/resolve.js +86 -0
  158. package/dist/fs/io.d.ts +0 -41
  159. package/dist/fs/io.d.ts.map +1 -1
  160. package/dist/fs/io.js +2 -414
  161. package/dist/providers/claude/dispatch-envelope.d.ts.map +1 -1
  162. package/dist/providers/claude/dispatch-envelope.js +1 -0
  163. package/dist/providers/claude/targets.d.ts +1 -0
  164. package/dist/providers/claude/targets.d.ts.map +1 -1
  165. package/dist/providers/claude/targets.js +3 -1
  166. package/dist/providers/codex/codec/shared.d.ts +3 -0
  167. package/dist/providers/codex/codec/shared.d.ts.map +1 -1
  168. package/dist/providers/codex/codec/shared.js +4 -0
  169. package/dist/providers/cursor/codec/catalog.d.ts +2 -2
  170. package/dist/providers/cursor/codec/catalog.d.ts.map +1 -1
  171. package/dist/providers/cursor/codec/catalog.js +45 -0
  172. package/dist/providers/cursor/codec/mapping-validation.d.ts +4 -0
  173. package/dist/providers/cursor/codec/mapping-validation.d.ts.map +1 -0
  174. package/dist/providers/cursor/codec/mapping-validation.js +25 -0
  175. package/dist/providers/cursor/codec/materialize.d.ts.map +1 -1
  176. package/dist/providers/cursor/codec/materialize.js +2 -11
  177. package/dist/providers/cursor/codec/sync-extension.d.ts.map +1 -1
  178. package/dist/providers/cursor/codec/sync-extension.js +2 -11
  179. package/dist/providers/identity/absolute-paths.d.ts +4 -13
  180. package/dist/providers/identity/absolute-paths.d.ts.map +1 -1
  181. package/dist/providers/identity/absolute-paths.js +4 -17
  182. package/dist/providers/identity/generic-dispatch-record.d.ts +1 -1
  183. package/dist/providers/identity/generic-dispatch-record.js +2 -2
  184. package/dist/providers/identity/oat-dispatch-record.d.ts +4 -357
  185. package/dist/providers/identity/oat-dispatch-record.d.ts.map +1 -1
  186. package/dist/providers/identity/oat-dispatch-record.js +4 -236
  187. package/dist/release/public-package-contract.d.ts.map +1 -1
  188. package/dist/release/public-package-contract.js +12 -4
  189. package/dist/validation/skills.d.ts.map +1 -1
  190. package/dist/validation/skills.js +32 -6
  191. package/package.json +2 -2
  192. package/dist/commands/pjm/template-source.d.ts +0 -14
  193. package/dist/commands/pjm/template-source.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  ---
2
- guidance_version: 2026-09-24
3
- last_verified: 2026-09-24
4
- review_after: 2026-12-22
2
+ guidance_version: 2026-10-01
3
+ last_verified: 2026-10-01
4
+ review_after: 2026-12-30
5
5
  ---
6
6
 
7
7
  # Codex and OpenAI Model Selection
@@ -13,16 +13,19 @@ model examples below. Launch mechanics for OAT dispatch live in
13
13
 
14
14
  ## Current Families
15
15
 
16
- Use verified GPT-6 Sol/Luna model IDs for routine new Codex work. GPT-6 Astra
16
+ Use `gpt-6.1-sol` for new Sol routes and `gpt-6-luna` for bounded Luna work.
17
+ This Sol selector migration preserves the existing task-class effort guidance;
18
+ it does not claim a newly measured workload advantage. GPT-6 Astra
17
19
  is a supported Frontier candidate:
18
20
 
19
21
  - `gpt-6-astra`: Frontier candidate for especially demanding work; the bundled
20
22
  recommendation uses high and xhigh, while the supported catalogue also
21
23
  permits low, medium, and max;
22
- - `gpt-6-sol`: high-capability implementation and reasoning route;
24
+ - `gpt-6.1-sol`: high-capability implementation and reasoning route;
23
25
  - `gpt-6-luna`: cost-sensitive, bounded work.
24
26
 
25
- Public engineering benchmarks show task-dependent Astra gains over Sol, with
27
+ The earlier public engineering benchmarks show task-dependent Astra gains
28
+ over GPT-6 Sol, with
26
29
  cost and runtime tradeoffs; they do not establish a universal replacement. The
27
30
  September frontier-release comparison remains review-pending in the separate
28
31
  model-selection vault, and no matched OAT workload evaluation has qualified a
@@ -30,8 +33,8 @@ routine default change. Astra's Frontier inclusion is a user-directed
30
33
  preference. Keep the Sol task-class defaults below while that evidence is
31
34
  reconciled and local task fit is evaluated.
32
35
 
33
- The GPT-5.6 Sol/Luna/Terra targets remain supported for explicit configurations
34
- and established workloads. Re-evaluate economics and qualitative routing on
36
+ GPT-6 Sol (`gpt-6-sol`) and the GPT-5.6 Sol/Luna/Terra targets remain supported
37
+ for explicit configurations and established workloads. Re-evaluate economics and qualitative routing on
35
38
  representative work before carrying over GPT-5.6-specific comparisons.
36
39
 
37
40
  Direct API specialist routes:
@@ -48,18 +51,24 @@ name includes `codex`.
48
51
  ## Dated Task-Class Matrix
49
52
 
50
53
  These are current task-class starting points, not an evaluated ordering across
51
- providers or a promise about relative GPT-6 latency and price. All shown
54
+ providers or a promise about relative GPT-6 or GPT-6.1 latency and price. All shown
52
55
  model/effort pairs are in the local Codex catalogue.
53
56
 
54
- | Task class | Default | Escalation | Floor notes |
55
- | ------------------------ | ------------------------------------------ | --------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
56
- | `mechanical-recon` | `gpt-6-luna`, high | `gpt-6-sol`, medium | Lower effort is suitable only when a miss is cheap and mechanically detected. |
57
- | `intelligent-recon` | `gpt-6-sol`, medium | Sol high | Preserve verification for silent-miss-prone reconnaissance. |
58
- | `default-implementation` | `gpt-6-sol`, medium | Sol high | Luna is for independently bounded, strongly verified work. |
59
- | `hard-reasoning` | `gpt-6-sol`, high | Sol xhigh | Narrow the problem before raising effort. |
60
- | `consequential` | `gpt-6-sol`, high, plus independent review | Sol xhigh for a reasoning-depth bottleneck; max only after evaluation | The root retains consequential authorization. |
61
-
62
- The bundled Frontier ladder ends with Astra xhigh after Sol xhigh and Astra
57
+ | Task class | Default | Escalation | Floor notes |
58
+ | ------------------------ | -------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
59
+ | `mechanical-recon` | `gpt-6-luna`, high | `gpt-6.1-sol`, medium | Lower effort is suitable only when a miss is cheap and mechanically detected. |
60
+ | `intelligent-recon` | `gpt-6.1-sol`, medium | Sol high | Preserve verification for silent-miss-prone reconnaissance. |
61
+ | `default-implementation` | `gpt-6.1-sol`, medium | Sol high | Luna is for independently bounded, strongly verified work. |
62
+ | `hard-reasoning` | `gpt-6.1-sol`, high | Sol xhigh | Narrow the problem before raising effort. |
63
+ | `consequential` | `gpt-6.1-sol`, high, plus independent review | Sol xhigh for a reasoning-depth bottleneck; max only after evaluation | The root retains consequential authorization. |
64
+
65
+ [OpenAI's GPT-6.1 Sol model reference](https://developers.openai.com/api/docs/models/gpt-6.1-sol)
66
+ identifies `gpt-6.1-sol` and the supported efforts `low`, `medium`, `high`,
67
+ `xhigh`, and `max`. Do not emit `none` or `minimal` for this family. For direct
68
+ API tool calls, use the Responses API. Verify the launching Codex runtime
69
+ independently of API availability.
70
+
71
+ The bundled Frontier ladder ends with Astra xhigh after Sol 6.1 xhigh and Astra
63
72
  high. The supported Astra and Sol effort sets both end at max, so Sol max
64
73
  remains available for explicit configuration even though it is no longer in
65
74
  the bundled Frontier recommendation.
@@ -1,12 +1,14 @@
1
1
  ---
2
- guidance_version: 2026-09-25
3
- last_verified: 2026-09-25
4
- review_after: 2026-12-24
2
+ guidance_version: 2026-10-01
3
+ last_verified: 2026-10-01
4
+ review_after: 2026-12-30
5
5
  catalog_basis:
6
6
  Cursor desktop 3.21.18 resolved Grok 4.6 and Fable 5.1 effort selectors in
7
7
  native subagent hooks, and Grok 4.7 only as bare flat IDs; Cursor desktop
8
8
  3.20.14 resolved all five Opus 5.5 effort selectors; GPT-6 Sol/Luna were
9
- absent from the observed Cursor catalog
9
+ absent from the observed Cursor catalog; the 2026-10-01 CLI catalog lists
10
+ Sonnet 5.5 flat IDs; Cursor desktop 3.22.12 matched five exact-ID Sonnet
11
+ 5.5 pins while every bracket-form Sonnet 5.5 probe fell back
10
12
  ---
11
13
 
12
14
  # Cursor Model Selection
@@ -51,8 +53,8 @@ Cursor desktop 3.20.14 resolved all five `claude-opus-5-5[effort=...]`
51
53
  selectors to corresponding flat IDs in native hooks; on 2026-09-25, Cursor
52
54
  desktop 3.21.18 did the same for Grok 4.6 and Fable 5.1. See the
53
55
  probe records at `packages/cli/src/providers/cursor/codec/__fixtures__/README.md`.
54
- GPT-6 Sol/Luna were absent from the observed Cursor catalogue, so their Codex
55
- availability does not authorize Cursor routes.
56
+ GPT-6 Sol/Luna and GPT-6.1 Sol were absent from the 2026-10-01 Cursor CLI
57
+ catalogue, so their Codex availability does not authorize Cursor routes.
56
58
 
57
59
  | Task class | Default | Economy | Escalation | Floor notes |
58
60
  | ------------------------ | ------------------------------------------------------------------- | -------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
@@ -90,8 +92,34 @@ Grok 4.7 has no approved mapping. Every bracket spelling tried
90
92
  (`grok-4.7[effort=...]` with and without `fast`, `reasoning=`, and
91
93
  `grok-4-7[...]`) fell back to that same account default, which is easy to
92
94
  mistake for success because it is itself a Grok 4.7 model. Only bare flat IDs
93
- such as `grok-4.7-medium` resolved as requested, and the approved catalogue
94
- does not emit bare IDs. Do not pin Grok 4.7 until a mapping is approved.
95
+ such as `grok-4.7-medium` resolved as requested, but Grok 4.7 still lacks
96
+ its own approved registry entry and complete per-pin evidence. It stays outside
97
+ the shipped catalogue. This is a family-specific admission gap, not a blanket
98
+ prohibition of exact-ID pins.
99
+
100
+ ## Sonnet 5.5 Exact-ID Pin Evidence
101
+
102
+ The 2026-10-01 Cursor CLI catalogue lists
103
+ `claude-sonnet-5-5-low|medium|high|xhigh|max`. In Cursor desktop 3.22.12,
104
+ every `claude-sonnet-5-5[effort=...]` probe fell back to the account default,
105
+ `grok-4.7-high-fast`. Exact-ID pins
106
+ `claude-sonnet-5-5-low|medium|high|xhigh|max` instead matched their requested
107
+ rungs in `subagentStart`, Shell `preToolUse`, and `subagentStop`. The Opus 5.5
108
+ low positive control matched its established mapping; unknown-family and
109
+ Sonnet 5.5 `ultra` exact-ID controls both fell back to `grok-4.7-high-fast`.
110
+ Catalog visibility or a subagent self-report does not establish those results.
111
+ The 16 correlated summary rows and 64 native events from both rounds live in
112
+ `packages/cli/src/providers/cursor/codec/__fixtures__/cursor-pin-probe-2026-10-01.jsonl`
113
+ and `cursor-pin-probe-2026-10-01-events.jsonl`; the adjacent `README.md` records
114
+ provenance and excludes unrelated discovery calls.
115
+
116
+ Sonnet 5.5 mappings write the verified exact ID as frontmatter `model`.
117
+ Existing Sonnet 5, Opus, Fable, GPT, and Grok mappings retain their independently
118
+ verified selectors. Neither selector form is universally valid: every exact-ID
119
+ mapping requires native hook evidence, non-default-rung and invalid-selector
120
+ controls, and an explicit approved registry entry. There is no generic
121
+ pass-through of flat CLI IDs. See the
122
+ [probe runbook](../../../../apps/oat-docs/docs/contributing/verifying-cursor-pins.md).
95
123
 
96
124
  ## Historical Opus Cursor Probe Evidence (Retired)
97
125
 
@@ -177,8 +205,10 @@ and non-thinking variants.
177
205
  - `claude-fable-5-1-thinking-high`: eligible specialist for hard reasoning and
178
206
  the bundled Frontier terminal target; xhigh only for evaluated long-horizon
179
207
  work. Cursor lists Fable as "NO ZDR"; confirm retention eligibility.
180
- - `claude-sonnet-5-thinking-high`: strong provider-diversity alternative for
181
- normal implementation and agentic work when available.
208
+ - `claude-sonnet-5-5-high`: exact-ID provider-diversity option for normal
209
+ implementation and agentic work; qualify task performance separately.
210
+ - `claude-sonnet-5-thinking-high`: supported compatibility option for
211
+ established workflows.
182
212
  - `gpt-5.4-mini-medium`: economical general tool and coding worker.
183
213
  - `gpt-5.4-nano-medium`: strict extraction, classification, ranking, and simple
184
214
  read-only tool calls. Not a semantic repository worker.
@@ -54,6 +54,7 @@ oat_workflow_origin: native # native | imported
54
54
  # implementation_fingerprint: null # new generations use sha256:effective-delta-v2:<digest>; stored v1 values keep v1 semantics
55
55
  # freshness_head: null # rolling accepted tree checkpoint
56
56
  # freshness_fingerprint: null # full effective delta at freshness_head
57
+ # waivers: [] # append-only operator waivers {waived_by, reason, from_commit, to_commit, covered_fingerprint, waived_at}; never self-issued, never under OAT_AUTONOMOUS=1
57
58
  # launch_state: not_started # not_started | intent_persisted | accepted | result_persisted | not_accepted
58
59
  # launch_attempt_id: null
59
60
  # launch_started_at: null
@@ -1,4 +1,4 @@
1
- import { type PjmTemplateTier } from '../pjm/template-source.js';
1
+ import { type TemplateTier } from '../shared/template-source.js';
2
2
  import { initializeBacklog } from './init.js';
3
3
  import { regenerateBacklogIndex, type RegenerateBacklogIndexResult } from './regenerate-index.js';
4
4
  export interface CreateBacklogItemOptions {
@@ -20,7 +20,7 @@ export interface CreateBacklogItemResult {
20
20
  backlogRoot: string;
21
21
  filePath: string;
22
22
  templatePath: string;
23
- templateTier: PjmTemplateTier;
23
+ templateTier: TemplateTier;
24
24
  index: RegenerateBacklogIndexResult;
25
25
  }
26
26
  export interface CreateBacklogItemDependencies {
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/backlog/new.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,4BAA4B,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AAgKD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,EACjC,SAAS,GAAE,OAAO,CAAC,6BAA6B,CAAM,GACrD,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/backlog/new.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,4BAA4B,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AAgKD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,EACjC,SAAS,GAAE,OAAO,CAAC,6BAA6B,CAAM,GACrD,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
@@ -1,8 +1,8 @@
1
1
  import { access, readFile, rm, writeFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { parseAssociatedIssues, serializeAssociatedIssues, } from '../pjm/remote/association.js';
4
- import { resolvePjmTemplate, } from '../pjm/template-source.js';
5
4
  import { stripTemplateFrontmatter } from '../shared/strip-template-frontmatter.js';
5
+ import { resolveTemplate, } from '../shared/template-source.js';
6
6
  import YAML from 'yaml';
7
7
  import { initializeBacklog } from './init.js';
8
8
  import { regenerateBacklogIndex, } from './regenerate-index.js';
@@ -106,7 +106,7 @@ export async function createBacklogItem(options, overrides = {}) {
106
106
  if ((await pathExists(filePath)) || (await pathExists(archivedPath))) {
107
107
  throw new Error(`Backlog item ${id} already exists. Use a more specific title to disambiguate.`);
108
108
  }
109
- const template = await resolvePjmTemplate({
109
+ const template = await resolveTemplate({
110
110
  name: 'backlog-item.md',
111
111
  assetsRoot: options.assetsRoot,
112
112
  templatesRoot: options.templatesRoot,
@@ -1,4 +1,4 @@
1
- import { type PjmTemplateTier } from '../pjm/template-source.js';
1
+ import { type TemplateTier } from '../shared/template-source.js';
2
2
  export interface CreateDecisionRecordOptions {
3
3
  decisionsRoot: string;
4
4
  assetsRoot: string;
@@ -16,7 +16,7 @@ export interface CreateDecisionRecordResult {
16
16
  decisionsRoot: string;
17
17
  filePath: string;
18
18
  templatePath: string;
19
- templateTier: PjmTemplateTier;
19
+ templateTier: TemplateTier;
20
20
  }
21
21
  export declare function createDecisionRecord(options: CreateDecisionRecordOptions): Promise<CreateDecisionRecordResult>;
22
22
  //# sourceMappingURL=new.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/decision/new.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAUvC,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,eAAe,CAAC;CAC/B;AAkFD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAoDrC"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/decision/new.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAC;AAS1C,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAkFD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAoDrC"}
@@ -1,7 +1,7 @@
1
1
  import { access, mkdir, rm, writeFile } from 'node:fs/promises';
2
2
  import { dirname, join } from 'node:path';
3
- import { resolvePjmTemplate, } from '../pjm/template-source.js';
4
3
  import { stripTemplateFrontmatter } from '../shared/strip-template-frontmatter.js';
4
+ import { resolveTemplate, } from '../shared/template-source.js';
5
5
  import YAML from 'yaml';
6
6
  import { assertDecisionIndexScaffold, regenerateDecisionIndex, } from './regenerate-index.js';
7
7
  import { generateDecisionId } from './shared/generate-id.js';
@@ -62,7 +62,7 @@ export async function createDecisionRecord(options) {
62
62
  if (await pathExists(filePath)) {
63
63
  throw new Error(`Decision record ${id} already exists. Use a more specific title to disambiguate.`);
64
64
  }
65
- const template = await resolvePjmTemplate({
65
+ const template = await resolveTemplate({
66
66
  name: 'decision.md',
67
67
  assetsRoot: options.assetsRoot,
68
68
  templatesRoot: options.templatesRoot,
@@ -9,6 +9,15 @@ interface BuildDocsNavTreeOptions {
9
9
  dirRelativePath?: string;
10
10
  visitedDirectories?: Set<string>;
11
11
  }
12
+ export declare function resolveEntryTarget(docsRoot: string, directoryPath: string, dirRelativePath: string, entry: DocsContentsEntry,
13
+ /**
14
+ * Page extensions a Contents link may target. MkDocs renders only `.md`;
15
+ * Fumadocs also renders `.mdx` pages.
16
+ */
17
+ pageExtensions?: readonly string[]): Promise<{
18
+ kind: 'page' | 'section';
19
+ path: string;
20
+ }>;
12
21
  export declare function buildDocsNavTree(options: BuildDocsNavTreeOptions): Promise<DocsNavTree>;
13
22
  export {};
14
23
  //# sourceMappingURL=contents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contents.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/contents.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAa,GACtB,iBAAiB,EAAE,CAqCrB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAE/E,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAgFD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CA8DtB"}
1
+ {"version":3,"file":"contents.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/contents.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAa,GACtB,iBAAiB,EAAE,CAqCrB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAE/E,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAMD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,iBAAiB;AACxB;;;GAGG;AACH,cAAc,GAAE,SAAS,MAAM,EAAY,GAC1C,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAmErD;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CA8DtB"}
@@ -30,7 +30,12 @@ export function parseIndexContents(markdown, sourcePath = 'index.md') {
30
30
  function toPosixPath(path) {
31
31
  return path.replaceAll('\\', '/');
32
32
  }
33
- async function resolveEntryTarget(docsRoot, directoryPath, dirRelativePath, entry) {
33
+ export async function resolveEntryTarget(docsRoot, directoryPath, dirRelativePath, entry,
34
+ /**
35
+ * Page extensions a Contents link may target. MkDocs renders only `.md`;
36
+ * Fumadocs also renders `.mdx` pages.
37
+ */
38
+ pageExtensions = ['.md']) {
34
39
  const href = entry.href.split('#', 1)[0]?.trim() ?? '';
35
40
  if (!href) {
36
41
  throw new Error(`Invalid contents link "${entry.href}" in ${join(docsRoot, dirRelativePath, 'index.md')}`);
@@ -51,7 +56,7 @@ async function resolveEntryTarget(docsRoot, directoryPath, dirRelativePath, entr
51
56
  if (!(await fileExists(targetPath))) {
52
57
  throw new Error(`Contents link "${entry.href}" in ${join(docsRoot, dirRelativePath, 'index.md')} does not resolve to a Markdown file`);
53
58
  }
54
- if (extname(targetPath) !== '.md') {
59
+ if (!pageExtensions.includes(extname(targetPath))) {
55
60
  throw new Error(`Contents link "${entry.href}" in ${join(docsRoot, dirRelativePath, 'index.md')} must point to a Markdown file or directory index`);
56
61
  }
57
62
  if (basename(targetPath) === 'index.md') {
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The `meta.json` keys nav sync owns. Every other key (`icon`, `defaultOpen`,
3
+ * `description`, ...) is left as the author wrote it.
4
+ */
5
+ export interface FumadocsMeta {
6
+ title?: string;
7
+ pages: string[];
8
+ }
9
+ export interface FumadocsMetaFile {
10
+ /** Docs-relative POSIX path of the `meta.json` file. */
11
+ path: string;
12
+ meta: FumadocsMeta;
13
+ changed: boolean;
14
+ }
15
+ export interface SyncFumadocsNavigationResult {
16
+ metaFiles: FumadocsMetaFile[];
17
+ /** Docs-relative paths of the `meta.json` files this run wrote. */
18
+ written: string[];
19
+ /**
20
+ * Docs-relative paths of the `meta.json` files that were missing or differed
21
+ * by meaning before this run. Equal to `written` unless `check` was set.
22
+ */
23
+ stale: string[];
24
+ /**
25
+ * Docs-relative paths no Contents map places in the page tree. A folder is
26
+ * reported once as `folder/` instead of once per page inside it.
27
+ */
28
+ unlisted: string[];
29
+ }
30
+ /**
31
+ * Reduce a Markdown heading to the plain text a sidebar shows: images and
32
+ * links keep their text, code spans keep their content, and emphasis and
33
+ * strikethrough markers are dropped.
34
+ */
35
+ export declare function stripInlineMarkdown(text: string): string;
36
+ /** Folder title: frontmatter `title`, else the first H1 outside code fences. */
37
+ export declare function resolveFolderTitle(markdown: string): string | undefined;
38
+ /**
39
+ * Write one strict `meta.json` per docs directory that has an index.md,
40
+ * derived from that index's Contents map, and report every page the
41
+ * resulting page tree leaves out.
42
+ *
43
+ * Existing files are compared by meaning (parsed and deep-equal), so a run
44
+ * with no doc changes writes nothing even after a formatter rewrites them.
45
+ */
46
+ export declare function syncFumadocsNavigation(options: {
47
+ docsRoot: string;
48
+ /** Compute and compare only; never write. */
49
+ check?: boolean;
50
+ }): Promise<SyncFumadocsNavigationResult>;
51
+ //# sourceMappingURL=fumadocs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fumadocs.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/fumadocs.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAiDD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoCvE;AAoMD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAkExC"}