@open-agent-toolkit/cli 0.1.73 → 0.1.76

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 (139) hide show
  1. package/assets/config/dispatch-matrix-recommendation.json +13 -17
  2. package/assets/docs/cli-utilities/configuration.md +53 -72
  3. package/assets/docs/cli-utilities/workflow-gates.md +38 -2
  4. package/assets/docs/provider-sync/commands.md +26 -0
  5. package/assets/docs/provider-sync/config.md +17 -6
  6. package/assets/docs/provider-sync/index.md +17 -5
  7. package/assets/docs/provider-sync/manifest-and-drift.md +39 -1
  8. package/assets/docs/provider-sync/providers.md +23 -19
  9. package/assets/docs/provider-sync/scope-and-surface.md +5 -1
  10. package/assets/docs/reference/file-locations.md +9 -3
  11. package/assets/docs/reference/oat-directory-structure.md +11 -3
  12. package/assets/docs/reference/troubleshooting.md +11 -0
  13. package/assets/docs/workflows/projects/artifacts.md +1 -1
  14. package/assets/docs/workflows/projects/dispatch-ceiling.md +29 -33
  15. package/assets/docs/workflows/projects/implementation-execution.md +7 -4
  16. package/assets/docs/workflows/projects/lifecycle.md +4 -3
  17. package/assets/public-package-versions.json +4 -4
  18. package/assets/skills/create-agnostic-skill/SKILL.md +1 -1
  19. package/assets/skills/create-agnostic-skill/references/docs/skills-guide.md +24 -15
  20. package/assets/skills/oat-agent-instructions-analyze/references/docs/provider-reference.md +9 -3
  21. package/assets/skills/oat-agent-instructions-apply/references/docs/provider-reference.md +9 -3
  22. package/assets/skills/oat-dispatch-subagents/SKILL.md +1 -1
  23. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +27 -15
  24. package/assets/skills/oat-project-autonomous/SKILL.md +1 -1
  25. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
  26. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
  27. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +17 -15
  28. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +15 -9
  29. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
  30. package/assets/skills/oat-project-implement/references/phase-execution.md +11 -5
  31. package/assets/skills/oat-project-import-plan/SKILL.md +30 -8
  32. package/assets/skills/oat-project-plan/SKILL.md +30 -8
  33. package/assets/skills/oat-project-plan-writing/SKILL.md +12 -9
  34. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
  35. package/assets/skills/oat-project-quick-start/SKILL.md +30 -8
  36. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
  37. package/assets/skills/oat-project-review-provide/SKILL.md +19 -11
  38. package/assets/skills/oat-project-review-provide-remote/SKILL.md +27 -4
  39. package/dist/commands/config/index.d.ts.map +1 -1
  40. package/dist/commands/config/index.js +55 -0
  41. package/dist/commands/doctor/index.d.ts +2 -1
  42. package/dist/commands/doctor/index.d.ts.map +1 -1
  43. package/dist/commands/doctor/index.js +37 -1
  44. package/dist/commands/gate/index.d.ts +1 -1
  45. package/dist/commands/gate/index.d.ts.map +1 -1
  46. package/dist/commands/gate/index.js +35 -3
  47. package/dist/commands/init/index.d.ts +7 -3
  48. package/dist/commands/init/index.d.ts.map +1 -1
  49. package/dist/commands/init/index.js +129 -38
  50. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  51. package/dist/commands/project/dispatch-ceiling/index.js +17 -9
  52. package/dist/commands/remove/skill/remove-skill.d.ts +2 -0
  53. package/dist/commands/remove/skill/remove-skill.d.ts.map +1 -1
  54. package/dist/commands/remove/skill/remove-skill.js +20 -2
  55. package/dist/commands/shared/adopt-stray.d.ts.map +1 -1
  56. package/dist/commands/shared/adopt-stray.js +3 -0
  57. package/dist/commands/shared/codex-strays.d.ts +9 -0
  58. package/dist/commands/shared/codex-strays.d.ts.map +1 -1
  59. package/dist/commands/shared/codex-strays.js +4 -0
  60. package/dist/commands/shared/cursor-skill-disposition.d.ts +17 -0
  61. package/dist/commands/shared/cursor-skill-disposition.d.ts.map +1 -0
  62. package/dist/commands/shared/cursor-skill-disposition.js +41 -0
  63. package/dist/commands/status/index.d.ts +17 -5
  64. package/dist/commands/status/index.d.ts.map +1 -1
  65. package/dist/commands/status/index.js +151 -47
  66. package/dist/commands/sync/apply.d.ts.map +1 -1
  67. package/dist/commands/sync/apply.js +50 -24
  68. package/dist/commands/sync/dry-run.d.ts.map +1 -1
  69. package/dist/commands/sync/dry-run.js +31 -18
  70. package/dist/commands/sync/index.d.ts.map +1 -1
  71. package/dist/commands/sync/index.js +34 -25
  72. package/dist/commands/sync/sync.types.d.ts +26 -11
  73. package/dist/commands/sync/sync.types.d.ts.map +1 -1
  74. package/dist/commands/sync/sync.utils.d.ts.map +1 -1
  75. package/dist/commands/sync/sync.utils.js +3 -2
  76. package/dist/config/oat-config.d.ts +0 -1
  77. package/dist/config/oat-config.d.ts.map +1 -1
  78. package/dist/config/oat-config.js +26 -23
  79. package/dist/config/sync-config.d.ts +6 -2
  80. package/dist/config/sync-config.d.ts.map +1 -1
  81. package/dist/config/sync-config.js +18 -6
  82. package/dist/config/user-sync-config.d.ts +11 -0
  83. package/dist/config/user-sync-config.d.ts.map +1 -0
  84. package/dist/config/user-sync-config.js +61 -0
  85. package/dist/drift/strays.d.ts +1 -1
  86. package/dist/drift/strays.d.ts.map +1 -1
  87. package/dist/drift/strays.js +2 -1
  88. package/dist/engine/compute-plan.d.ts.map +1 -1
  89. package/dist/engine/compute-plan.js +154 -4
  90. package/dist/engine/engine.types.d.ts +2 -2
  91. package/dist/engine/engine.types.d.ts.map +1 -1
  92. package/dist/engine/engine.types.js +1 -0
  93. package/dist/engine/execute-plan.d.ts.map +1 -1
  94. package/dist/engine/execute-plan.js +4 -0
  95. package/dist/engine/index.d.ts +1 -1
  96. package/dist/engine/index.d.ts.map +1 -1
  97. package/dist/engine/index.js +1 -1
  98. package/dist/engine/scanner.d.ts +3 -1
  99. package/dist/engine/scanner.d.ts.map +1 -1
  100. package/dist/engine/scanner.js +4 -2
  101. package/dist/manifest/manifest.types.d.ts +12 -12
  102. package/dist/providers/ceiling/registry.d.ts +2 -0
  103. package/dist/providers/ceiling/registry.d.ts.map +1 -1
  104. package/dist/providers/ceiling/registry.js +20 -4
  105. package/dist/providers/codex/codec/sync-extension.d.ts +11 -10
  106. package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
  107. package/dist/providers/codex/codec/sync-extension.js +42 -14
  108. package/dist/providers/cursor/codec/catalog.d.ts +18 -0
  109. package/dist/providers/cursor/codec/catalog.d.ts.map +1 -0
  110. package/dist/providers/cursor/codec/catalog.js +39 -0
  111. package/dist/providers/cursor/codec/materialize.d.ts +24 -0
  112. package/dist/providers/cursor/codec/materialize.d.ts.map +1 -0
  113. package/dist/providers/cursor/codec/materialize.js +166 -0
  114. package/dist/providers/cursor/codec/shared.d.ts +14 -0
  115. package/dist/providers/cursor/codec/shared.d.ts.map +1 -0
  116. package/dist/providers/cursor/codec/shared.js +76 -0
  117. package/dist/providers/cursor/codec/sync-extension.d.ts +37 -0
  118. package/dist/providers/cursor/codec/sync-extension.d.ts.map +1 -0
  119. package/dist/providers/cursor/codec/sync-extension.js +393 -0
  120. package/dist/providers/cursor/index.d.ts +3 -0
  121. package/dist/providers/cursor/index.d.ts.map +1 -1
  122. package/dist/providers/cursor/index.js +3 -0
  123. package/dist/providers/cursor/paths.d.ts.map +1 -1
  124. package/dist/providers/cursor/paths.js +6 -4
  125. package/dist/providers/identity/availability.d.ts +7 -0
  126. package/dist/providers/identity/availability.d.ts.map +1 -1
  127. package/dist/providers/identity/availability.js +23 -0
  128. package/dist/providers/shared/adapter.types.d.ts +6 -0
  129. package/dist/providers/shared/adapter.types.d.ts.map +1 -1
  130. package/dist/providers/shared/adapter.utils.d.ts +2 -1
  131. package/dist/providers/shared/adapter.utils.d.ts.map +1 -1
  132. package/dist/providers/shared/adapter.utils.js +29 -6
  133. package/dist/providers/shared/index.d.ts +2 -0
  134. package/dist/providers/shared/index.d.ts.map +1 -1
  135. package/dist/providers/shared/index.js +1 -0
  136. package/dist/providers/shared/materialization-extension.d.ts +44 -0
  137. package/dist/providers/shared/materialization-extension.d.ts.map +1 -0
  138. package/dist/providers/shared/materialization-extension.js +26 -0
  139. package/package.json +2 -2
@@ -13,7 +13,8 @@ This capability is intentionally independent from OAT workflow artifacts. Teams
13
13
 
14
14
  - Canonical directories: `.agents/skills`, `.agents/agents`, `.agents/rules`
15
15
  - Managed provider views: `.claude/*`, `.cursor/*`, `.github/*`, `.copilot/*`, `.codex/*` (where applicable)
16
- - Native-read providers may use canonical `.agents/*` directly without mirrored provider directories (for example, Gemini and Codex canonical mappings)
16
+ - Native-read mappings use canonical `.agents/*` directly without mirrored provider directories. Cursor skills, Gemini skills and agents, and Codex canonical mappings use this model.
17
+ - Cursor's `.cursor/skills` and `~/.cursor/skills` directories are provider-local extension and adoption surfaces, not managed output directories.
17
18
  - Manifest tracking: `.oat/sync/manifest.json` (project) and `~/.oat/sync/manifest.json` (user)
18
19
 
19
20
  Rules are currently project-scoped canonical content. Unlike skills and agents, synced rule files for Claude, Cursor, and Copilot are rendered copies with provider-specific frontmatter and filename extensions.
@@ -24,6 +25,8 @@ Rules are currently project-scoped canonical content. Unlike skills and agents,
24
25
  - Explicit `--dry-run` for safe preview of mutations
25
26
  - Scoped destructive actions only for manifest-tracked entries
26
27
  - Cross-provider compatibility via adapters
28
+ - Native-read assets stay canonical while provider-local adoption sources remain discoverable independently
29
+ - Obsolete managed mappings are deleted only when their provider paths are verified clean; changed or unverified paths are preserved and detached from manifest ownership
27
30
  - Canonical `.agents/agents` is source of truth for subagents; provider views are derived
28
31
  - Canonical `.agents/rules` is source of truth for rules; provider rule files are derived rendered copies
29
32
 
@@ -47,6 +50,7 @@ Rules are currently project-scoped canonical content. Unlike skills and agents,
47
50
  - Project provider enablement is stored in `.oat/sync/config.json` (`providers.<name>.enabled`).
48
51
  - `oat init --scope project` (interactive) prompts for supported providers and persists explicit true/false values.
49
52
  - `oat sync --scope project` uses config-aware provider activation and can prompt to remediate detected mismatches.
53
+ - Cursor provider enablement still controls agents, rules, migration discovery, and legacy cleanup even though Cursor reads canonical skills without a generated skill view.
50
54
  - Codex project-scope subagent sync writes `.codex/config.toml` and `.codex/agents/*.toml` at command layer after path-mapping sync. Every generated project Codex variant and registration is repository-owned, version-controlled provider output. OAT provides no automatic ignore mechanism for this project output; collaborators review and commit it like other project configuration.
51
55
  - Default Codex execution requires `root (0) → phase implementer (1)`. Sync and direct materialization continue to apply an `agents.max_depth` floor of `2` as optional nested-work capability without lowering a higher target value. A project write may read a higher lower-precedence user value and preserves it in project configuration; it writes only project `.codex/config.toml`. User scope writes only `~/.codex/config.toml` and does not read or change project configuration.
52
56
  - Missing depth or depth `1` does not block default phase execution. Invalid values or explicit values below `1` fail managed implementation preflight. `oat doctor` reports whether optional depth-two nesting is available and gives a scope-specific repair when the configured value is unusable.
@@ -14,6 +14,9 @@ For detailed `.oat/` tree semantics, see:
14
14
  - Skills: `.agents/skills/`
15
15
  - Agents/subagents: `.agents/agents/`
16
16
  - Rules: `.agents/rules/`
17
+ - Cursor reads project skills directly from `.agents/skills/` and user skills
18
+ directly from `~/.agents/skills/`. `.cursor/skills/` remains a Cursor-only
19
+ extension and adoption surface, not generated output.
17
20
 
18
21
  ## OAT runtime/state
19
22
 
@@ -23,11 +26,12 @@ For detailed `.oat/` tree semantics, see:
23
26
  - Projects root config: `projects.root` in `.oat/config.json` (read via `oat config get projects.root`)
24
27
  - Archive config: `archive.s3Uri`, `archive.s3SyncOnComplete`, `archive.summaryExportPath`, `archive.wrapUpExportPath`, `archive.awsProfile`, and `archive.awsRegion` in `.oat/config.json`
25
28
  - Workflow gate config: `workflow.gates.skills` and `workflow.gates.execTargets` in `.oat/config.json`, `.oat/config.local.json`, or `~/.oat/config.json` (manage via `oat gate`)
26
- - Project manifests/config: `.oat/sync/`
29
+ - Project sync manifest/config: `.oat/sync/`
30
+ - User sync manifest/config: `~/.oat/sync/`
27
31
 
28
32
  Config discovery via CLI:
29
33
 
30
- - `oat config describe` lists the supported config surfaces and keys across `.oat/config.json`, `.oat/config.local.json`, `~/.oat/config.json`, and `.oat/sync/config.json`.
34
+ - `oat config describe` lists the supported config surfaces and keys across `.oat/config.json`, `.oat/config.local.json`, `~/.oat/config.json`, `.oat/sync/config.json`, and `~/.oat/sync/config.json`.
31
35
  - `oat config describe <key>` shows file location, scope, default, mutability, and the owning command for one key.
32
36
  - `oat config list` shows the currently resolved values for the repo-local/shared command surface.
33
37
 
@@ -36,7 +40,9 @@ Config ownership note:
36
40
  - `.oat/config.json` is the canonical home for shared non-sync settings (for example, `worktrees.root`, `projects.root`).
37
41
  - `.oat/config.local.json` is the canonical home for per-developer lifecycle state (for example, `activeProject`, `lastPausedProject`, `activeIdea`).
38
42
  - `~/.oat/config.json` is the canonical home for user-level state (for example, `activeIdea` at global scope).
39
- - `.oat/sync/config.json` remains the sync/provider config contract.
43
+ - `.oat/sync/config.json` owns project sync/provider settings and known strays.
44
+ - `~/.oat/sync/config.json` owns user sync/provider settings and personal known
45
+ strays. OAT migrates the legacy `~/.oat/config.json#knownStrays` key here.
40
46
  - Legacy `.oat/active-project` / `.oat/projects-root` / `.oat/active-idea` files may still exist as inert compatibility artifacts in some repos/worktrees.
41
47
 
42
48
  ## OAT workflow
@@ -58,12 +58,16 @@ Project scope is used for project workflows and repo-local sync state. User scop
58
58
  | Path | Purpose |
59
59
  | ------------------------- | ----------------------------------------------------------------- |
60
60
  | `.oat/sync/manifest.json` | Records sync-managed provider entries and drift contract state |
61
- | `.oat/sync/config.json` | Sync behavior config (default strategy + provider-level settings) |
61
+ | `.oat/sync/config.json` | Project sync behavior, provider settings, and known-stray choices |
62
+
63
+ The equivalent user files are `~/.oat/sync/manifest.json` and
64
+ `~/.oat/sync/config.json`.
62
65
 
63
66
  `config.json` currently includes:
64
67
 
65
68
  - `version`
66
69
  - `defaultStrategy`
70
+ - `knownStrays` (optional exact provider-local paths)
67
71
  - `providers.<provider>.enabled`
68
72
  - `providers.<provider>.strategy` (optional override)
69
73
 
@@ -79,7 +83,10 @@ Current config ownership:
79
83
  - `.oat/config.json` owns shared non-sync repo settings (including `worktrees.root`, `projects.root`, and `documentation.*`).
80
84
  - `.oat/config.local.json` owns per-developer project lifecycle state (`activeProject`, `lastPausedProject`, `activeIdea`).
81
85
  - `~/.oat/config.json` owns user-level state (`activeIdea` at global scope).
82
- - `.oat/sync/config.json` continues to own sync/provider behavior.
86
+ - `.oat/sync/config.json` owns project sync/provider behavior and project known strays.
87
+ - `~/.oat/sync/config.json` owns user sync/provider behavior and personal known
88
+ strays. OAT migrates legacy `~/.oat/config.json#knownStrays` entries here
89
+ without removing unrelated user config.
83
90
 
84
91
  CLI discovery surfaces:
85
92
 
@@ -255,13 +262,14 @@ Common user-scope entries:
255
262
  config.json
256
263
  ideas/
257
264
  sync/
265
+ config.json
258
266
  manifest.json
259
267
  ```
260
268
 
261
269
  User scope is primarily for:
262
270
 
263
271
  - User-level ideas
264
- - User-level provider sync state where applicable
272
+ - User-level provider sync state and personal known-stray choices
265
273
 
266
274
  ## Practical guidance
267
275
 
@@ -20,6 +20,17 @@ description: 'Common issues and fixes for skills visibility, worktrees, sync, an
20
20
 
21
21
  Expected for native-read skill mappings. Codex can read canonical skills without mirrored provider writes.
22
22
 
23
+ ## Cursor appears detected but no skill sync actions are listed
24
+
25
+ Expected for native-read skill mappings. Verify project skills under
26
+ `.agents/skills` and personal skills under `~/.agents/skills`; Cursor reads
27
+ those canonical directories directly. Sync will not create `.cursor/skills`
28
+ mirrors.
29
+
30
+ Use `.cursor/skills` only for intentionally Cursor-specific packages. Interactive
31
+ `oat init` and `oat status` offer each unresolved Cursor-local skill for
32
+ canonical adoption or a remembered Keep Cursor-only choice.
33
+
23
34
  ## `sync` reports provider config mismatch
24
35
 
25
36
  - For interactive runs, select detected providers to enable when prompted.
@@ -127,7 +127,7 @@ Each inner array is a group of phases that execute concurrently in their own wor
127
127
  - Each group must contain **2 or more** phases — singleton groups are rejected.
128
128
  - Every phase ID must exist in the plan body.
129
129
  - No phase may appear in more than one group.
130
- - Parallelism is only honored at Tier 1 (native subagents). Tier 2 degrades parallel groups to sequential target-preserving execution, not unconditional inline review. Concrete managed Claude and Cursor reviewers retain the exact resolver-returned `dispatchArgs.model` in the actual invocation and every retry; Codex retains its exact role or pinned child. Inline review requires verified equivalent host controls or an explicit inherit/default or managed-uncapped base-role exception, and otherwise blocks.
130
+ - Parallelism is only honored at Tier 1 (native subagents). Tier 2 degrades parallel groups to sequential target-preserving execution, not unconditional inline review. Concrete managed Claude reviewers retain the exact resolver-returned `dispatchArgs.model`; Cursor reviewers retain the exact `providers.cursor.dispatchArgs.variant` native agent type; Codex retains its exact role or pinned child. Every retry preserves the complete target. Inline review requires verified equivalent host controls or an explicit inherit/default or managed-uncapped base-role exception, and otherwise blocks.
131
131
 
132
132
  **Authoring responsibility:**
133
133
 
@@ -194,8 +194,10 @@ candidate in each tier:
194
194
  `max`.
195
195
  - **Claude:** `haiku`, `sonnet`, `opus`, and `fable` across the ordered named
196
196
  tiers.
197
- - **Cursor:** opaque strings corresponding to the same 13 configured positions.
198
- OAT does not parse those strings to infer family, effort, cost, or capability.
197
+ - **Cursor:** 12 verified multi-family flat IDs across Composer, Claude, GPT,
198
+ and Grok. The explicit materialization catalogue maps each flat ladder ID to
199
+ a separate bracket-form frontmatter model; OAT does not derive or normalize
200
+ either value.
199
201
 
200
202
  The final candidate in a named tier defines that tier's reviewer ceiling. Lower
201
203
  reviewer selection requires a separate reviewed contract; a normal reviewer
@@ -240,7 +242,7 @@ oat project dispatch-ceiling resolve \
240
242
  --provider cursor \
241
243
  --role implementer \
242
244
  --ceiling-tier high \
243
- --candidate-model 'opaque:model/balanced [v2]' \
245
+ --candidate-model gpt-5.6-sol-high \
244
246
  --json
245
247
  ```
246
248
 
@@ -280,45 +282,39 @@ branch replaces, rather than supplements, preferred selection.
280
282
  | -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
281
283
  | Codex | Use `providers.codex.dispatchArgs.variant` as `agent_type`; otherwise launch a fresh child pinned to the returned model and effort | Block if neither exact route is usable |
282
284
  | Claude | Pass `providers.claude.dispatchArgs.model` as the actual Task `model` | Block if the model cannot be applied |
283
- | Cursor | Pass `providers.cursor.dispatchArgs.model` byte-for-byte as the actual invocation model; treat it as opaque | Block rather than normalize or substitute |
285
+ | Cursor | Launch `providers.cursor.dispatchArgs.variant` as the exact native agent type first | Block rather than normalize or substitute |
284
286
  | Other | Use a registered provider adapter when it can compile exact controls | Unsupported providers remain advisory |
285
287
 
286
- Materialized Codex roles exist before phase dispatch after project/user sync.
287
- The supported catalogue is committed project output; custom Codex candidates
288
- materialize according to config ownership. Workflow correctness still keeps a
289
- fresh pinned-child fallback and does not require provider restart or hot reload.
288
+ Materialized Codex and Cursor roles exist before phase dispatch after
289
+ project/user sync. Cursor definitions carry `supported-catalogue`,
290
+ `project-config`, or `user-config` ownership. Project and supported variants
291
+ are tracked under `.cursor/agents`; user variants live under
292
+ `~/.cursor/agents`. Cleanup stays within the current owner boundary.
290
293
 
291
294
  Reviewers use the final candidate at the configured review ceiling. Managed
292
295
  `Uncapped` and explicit inherit/default behavior retain their documented base
293
296
  reviewer behavior. A timeout retry preserves the same exact role or complete
294
- Claude/Cursor model payload.
297
+ Claude model payload or Cursor native variant.
295
298
 
296
299
  ### Cursor evidence authority
297
300
 
298
- Cursor resolution and runtime evidence answer different questions. Resolution
299
- proves which opaque candidate OAT requested. A stream-JSON Task start and
300
- correlated completion prove launcher behavior only when the model argument is
301
- preserved byte-for-byte. An accepted Task plus the child sentinel establishes
302
- argument eligibility for that account and client; a structured rejection can
303
- establish `unknown-value`. Runtime producer identity remains `not-reported`
304
- unless trusted Cursor telemetry or Cursor support independently confirms it.
305
-
306
- The [2026-07-11 GPT-5.6 evidence record](https://github.com/voxmedia/open-agent-toolkit/blob/main/.oat/repo/reference/project-summaries/20260711-cursor-gpt-5-6-subagent-verification.md)
307
- ran positive and negative controls before candidate probes. Neither control
308
- emitted a Task event, so the harness stopped without probing the 13 recommended
309
- arguments or exploratory `gpt-5.6-sol-high-fast`. This is a harness/account
310
- boundary, not model rejection, and it supports no recommendation change.
311
-
312
- The tracked artifact's structured second-pass block exposes only an allowlisted
313
- event projection and non-reversible identifier hashes. Exact
314
- request/session/tool-call IDs and credential-redacted unprojected streams from
315
- that pass stay in gitignored local project storage for support diagnosis.
316
-
317
- The same public artifact intentionally preserves the sanitized historical v1
318
- text-mode record for provenance. That older section includes command arguments
319
- and prompts, stdout and stderr, exit and duration data, and capture-environment
320
- details such as user-specific binary paths; it is not limited to the structured
321
- second-pass projection.
301
+ Cursor selection, pin mapping, catalogue availability, and runtime identity are
302
+ separate evidence layers:
303
+
304
+ - The candidate ladder and resolver use an opaque flat ID.
305
+ - The materialized definition uses the mapping's explicit bracket-form
306
+ frontmatter model.
307
+ - Mapping-specific native-launch evidence authorizes the shipped mapping data.
308
+ - `oat doctor` checks current flat-ID catalogue availability, which can detect
309
+ drift but cannot prove a definition pin.
310
+ - The launcher records the selected variant and mapped model with `configured`
311
+ provenance. Runtime identity remains `not-reported` without an independent
312
+ observation.
313
+
314
+ Cursor can silently fallback when account, plan, or administration constraints
315
+ prevent a requested definition pin. Native variant acceptance is therefore not
316
+ runtime-model verification, and skills must not promote self-report or
317
+ catalogue presence into observed identity.
322
318
 
323
319
  ## Phase and Optional-Worker Layers
324
320
 
@@ -126,10 +126,13 @@ needed, OAT does not probe or require third-tier capacity.
126
126
 
127
127
  Provider controls remain exact: Codex uses
128
128
  `providers.codex.dispatchArgs.variant`, Claude uses
129
- `providers.claude.dispatchArgs.model`, and Cursor treats
130
- `providers.cursor.dispatchArgs.model` as an opaque, byte-for-byte enforced model
131
- argument.
132
- For Cursor, opaque selection is enforced as a byte-for-byte model arg.
129
+ `providers.claude.dispatchArgs.model`, and Cursor uses
130
+ `providers.cursor.dispatchArgs.variant`. Cursor launches that exact
131
+ resolver-selected native agent type first; the flat ID and bracket-form pin
132
+ remain inside the explicit mapping and are never normalized by workflow prose.
133
+ The launcher records this selection as `configured`, while runtime identity
134
+ remains `not-reported` without independent observation. Only a pre-start native
135
+ role-selection rejection permits another target-preserving route.
133
136
 
134
137
  See [Dispatch Policy](dispatch-ceiling.md) for configuration and
135
138
  [Orchestration Model](orchestration-model.md) for the complete role map.
@@ -115,9 +115,10 @@ through the import-plan lane.
115
115
 
116
116
  A concrete managed reviewer remains bound across both tiers. Codex uses the
117
117
  exact registered role or a child pinned to the resolved model and effort;
118
- Claude and Cursor pass the exact resolver-returned `dispatchArgs.model` in the
119
- actual provider invocation, including retries. Tier 2 does not authorize a
120
- target downgrade. Inline review is allowed only with verified equivalent host
118
+ Claude passes the exact resolver-returned `dispatchArgs.model`; Cursor launches
119
+ the exact `providers.cursor.dispatchArgs.variant` native reviewer variant.
120
+ Retries preserve that complete target. Tier 2 does not authorize a target
121
+ downgrade. Inline review is allowed only with verified equivalent host
121
122
  controls, or for explicit inherit/default behavior or the documented
122
123
  managed-uncapped reviewer base-role exception; otherwise the review blocks.
123
124
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.1.73",
3
- "docs-config": "0.1.73",
4
- "docs-theme": "0.1.73",
5
- "docs-transforms": "0.1.73"
2
+ "cli": "0.1.76",
3
+ "docs-config": "0.1.76",
4
+ "docs-theme": "0.1.76",
5
+ "docs-transforms": "0.1.76"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: create-agnostic-skill
3
- version: 1.4.0
3
+ version: 1.4.1
4
4
  description: Use when adding a reusable workflow skill for AI coding agents. Scaffolds a new .agents/skills skill using the Agent Skills open standard.
5
5
  argument-hint: '[skill-name]'
6
6
  disable-model-invocation: true
@@ -2,7 +2,7 @@
2
2
 
3
3
  Agent Skills ecosystem research and notes across providers.
4
4
 
5
- _Last updated: February 2026_
5
+ _Last updated: July 2026_
6
6
 
7
7
  ---
8
8
 
@@ -194,15 +194,20 @@ Legend: ✅ documented support | ⚠️ provider-specific semantics | 💤 ignor
194
194
  **Skill locations:**
195
195
 
196
196
  - Project:
197
+ - `.agents/skills/<skill-name>/SKILL.md` (**portable canonical path**)
197
198
  - `.cursor/skills/<skill-name>/SKILL.md`
198
199
  - `.claude/skills/<skill-name>/SKILL.md` (**Claude compatibility**)
199
200
  - `.codex/skills/<skill-name>/SKILL.md` (**Codex compatibility**)
200
201
  - Personal:
202
+ - `~/.agents/skills/<skill-name>/SKILL.md` (**portable canonical path**)
201
203
  - `~/.cursor/skills/<skill-name>/SKILL.md`
202
204
  - `~/.claude/skills/<skill-name>/SKILL.md` (**Claude compatibility**)
203
205
  - `~/.codex/skills/<skill-name>/SKILL.md` (**Codex compatibility**)
204
206
 
205
- **Notable:** Cursor explicitly reads from `.claude/skills/` and `.codex/skills/` for cross-tool compatibility. This means skills authored in `.claude/skills/` are automatically available in Cursor without symlinking.
207
+ **Notable:** Cursor reads `.agents/skills/` natively at project and user scope, so
208
+ portable canonical skills need no Cursor mirror. `.cursor/skills/` remains a
209
+ supported home for Cursor-only skills. Cursor also reads `.claude/skills/` and
210
+ `.codex/skills/` for compatibility.
206
211
 
207
212
  **Documented frontmatter fields:**
208
213
 
@@ -341,13 +346,13 @@ Installs skills from GitHub repos, local paths, or GitLab URLs to any supported
341
346
  Author skills in `.agents/skills/` (canonical) and distribute to provider-specific directories:
342
347
 
343
348
  ```bash
344
- # Claude Code + Cursor (Cursor reads .claude/skills/ natively)
349
+ # Claude Code
345
350
  ln -s ../../.agents/skills/my-skill .claude/skills/my-skill
346
351
 
347
352
  # GitHub Copilot
348
353
  ln -s ../../.agents/skills/my-skill .github/skills/my-skill
349
354
 
350
- # Codex reads .agents/skills/ natively at project level — no symlink needed
355
+ # Cursor, Codex, and Gemini read .agents/skills/ natively — no symlink needed
351
356
  ```
352
357
 
353
358
  For automated distribution, use **OAT sync** (for local/internal skills) or **`npx skills add`** (for remote/community skills):
@@ -360,9 +365,11 @@ oat sync --scope all
360
365
  npx skills add github-user/skill-repo -a claude-code -a github-copilot
361
366
  ```
362
367
 
363
- **Result: one canonical source, two symlinks, four tools.**
368
+ **Result: one canonical source, two symlinks, five tools.**
364
369
 
365
- **Note:** Cursor already reads `.claude/skills/` natively, so the Claude Code symlink covers both. Codex reads `.agents/skills/` at project level (per Vercel skills docs), eliminating its symlink entirely.
370
+ **Note:** Cursor, Codex, and Gemini read `.agents/skills/` directly at project
371
+ and user scope. Keep `.cursor/skills/` for intentionally Cursor-only skills,
372
+ not as a generated mirror of canonical content.
366
373
 
367
374
  ---
368
375
 
@@ -516,31 +523,33 @@ The proposal has community interest but no official timeline or maintainer respo
516
523
 
517
524
  **Source:** https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices, https://github.com/agentskills/agentskills/tree/main/skills-ref
518
525
 
519
- ### Q: Cursor reads `.claude/skills/` natively does this make `.agents/skills/` + symlinks unnecessary?
526
+ ### Q: Does Cursor's native `.agents/skills/` support eliminate all provider views?
520
527
 
521
- **Answer:** No. While Cursor reading `.claude/skills/` is convenient, it only covers two of four required tools:
528
+ **Answer:** No. Cursor, Codex, and Gemini need no skill mirror, but Claude Code
529
+ and GitHub Copilot still use provider-specific paths:
522
530
 
523
531
  | Tool | Native Path | Reads `.claude/skills/`? | Reads `.agents/skills/`? |
524
532
  | -------------- | ----------------- | ------------------------ | ------------------------ |
525
533
  | Claude Code | `.claude/skills/` | ✅ (native) | ❌ |
526
- | Cursor | `.cursor/skills/` | ✅ (cross-compat) | |
534
+ | Cursor | `.agents/skills/` | ✅ (compatibility) | ✅ (native) |
527
535
  | Codex CLI | `.agents/skills/` | ❌ | ✅ (native) |
528
- | GitHub Copilot | `.github/skills/` | ✅ (cross-compat) | ❌ |
529
- | Gemini CLI | `.gemini/skills/` | ❌ | ✅ (native alias) |
536
+ | GitHub Copilot | `.github/skills/` | ✅ (compatibility) | ❌ |
537
+ | Gemini CLI | `.agents/skills/` | ❌ | ✅ (native alias) |
530
538
 
531
539
  **Recommended approach:** Author skills in `.agents/skills/` (tool-agnostic canonical source), then symlink only where needed:
532
540
 
533
541
  ```bash
534
542
  # Two symlinks needed:
535
- ln -s ../../.agents/skills/my-skill .claude/skills/my-skill # Claude Code + Cursor + Copilot
543
+ ln -s ../../.agents/skills/my-skill .claude/skills/my-skill # Claude Code + Copilot compatibility
536
544
  ln -s ../../.agents/skills/my-skill .github/skills/my-skill # GitHub Copilot (native path)
537
- # Codex reads .agents/skills/ natively — no symlink needed
538
- # Gemini reads .agents/skills/ natively — no symlink needed
545
+ # Cursor, Codex, and Gemini read .agents/skills/ natively — no symlink needed
539
546
  ```
540
547
 
541
548
  **One canonical source, two symlinks, five tools.** (Copilot reads `.claude/skills/` cross-compat, so the `.github/skills` symlink is optional but recommended for explicitness.)
542
549
 
543
- **Note (updated Feb 2026):** Codex now reads `.agents/skills/` natively at both project level (`$CWD/.agents/skills` up to `$REPO_ROOT/.agents/skills`) and user level (`$HOME/.agents/skills`). Gemini CLI also reads `.agents/skills/` natively at both workspace and user scopes. No symlinks needed for Codex or Gemini at any scope.
550
+ **Note (updated July 2026):** Cursor, Codex, and Gemini read
551
+ `.agents/skills/` natively at project and user scope. No skill symlinks are
552
+ needed for those providers.
544
553
 
545
554
  **Source:** https://cursor.com/docs/context/skills, https://code.visualstudio.com/docs/copilot/customization/agent-skills, https://developers.openai.com/codex/skills, https://github.com/vercel-labs/skills
546
555
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Quick reference for skills, subagents, hooks, and agent instructions across all major AI coding tools.
4
4
 
5
- _Last updated: February 2026_
5
+ _Last updated: July 2026_
6
6
 
7
7
  ---
8
8
 
@@ -144,11 +144,17 @@ The package manager for the agent skills ecosystem. Installs skills across 27+ a
144
144
 
145
145
  **Skill locations:**
146
146
 
147
- - Project: `.cursor/skills/<skill-name>/SKILL.md`
148
- - Personal: `~/.cursor/skills/<skill-name>/SKILL.md`
147
+ - **Portable project skills:** `.agents/skills/<skill-name>/SKILL.md`
148
+ - **Portable personal skills:** `~/.agents/skills/<skill-name>/SKILL.md`
149
+ - **Cursor-only project skills:** `.cursor/skills/<skill-name>/SKILL.md`
150
+ - **Cursor-only personal skills:** `~/.cursor/skills/<skill-name>/SKILL.md`
149
151
  - **Claude compatibility:** `.claude/skills/` (project) and `~/.claude/skills/` (personal)
150
152
  - **Codex compatibility:** `.codex/skills/` (project) and `~/.codex/skills/` (personal)
151
153
 
154
+ OAT keeps portable skills canonical under `.agents/skills`; it does not
155
+ generate `.cursor/skills` mirrors. Cursor-specific skill directories remain
156
+ supported as intentional local extensions and migration sources.
157
+
152
158
  ### Subagents
153
159
 
154
160
  | Resource | URL |
@@ -2,7 +2,7 @@
2
2
 
3
3
  Quick reference for skills, subagents, hooks, and agent instructions across all major AI coding tools.
4
4
 
5
- _Last updated: February 2026_
5
+ _Last updated: July 2026_
6
6
 
7
7
  ---
8
8
 
@@ -144,11 +144,17 @@ The package manager for the agent skills ecosystem. Installs skills across 27+ a
144
144
 
145
145
  **Skill locations:**
146
146
 
147
- - Project: `.cursor/skills/<skill-name>/SKILL.md`
148
- - Personal: `~/.cursor/skills/<skill-name>/SKILL.md`
147
+ - **Portable project skills:** `.agents/skills/<skill-name>/SKILL.md`
148
+ - **Portable personal skills:** `~/.agents/skills/<skill-name>/SKILL.md`
149
+ - **Cursor-only project skills:** `.cursor/skills/<skill-name>/SKILL.md`
150
+ - **Cursor-only personal skills:** `~/.cursor/skills/<skill-name>/SKILL.md`
149
151
  - **Claude compatibility:** `.claude/skills/` (project) and `~/.claude/skills/` (personal)
150
152
  - **Codex compatibility:** `.codex/skills/` (project) and `~/.codex/skills/` (personal)
151
153
 
154
+ OAT keeps portable skills canonical under `.agents/skills`; it does not
155
+ generate `.cursor/skills` mirrors. Cursor-specific skill directories remain
156
+ supported as intentional local extensions and migration sources.
157
+
152
158
  ### Subagents
153
159
 
154
160
  | Resource | URL |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-dispatch-subagents
3
- version: 1.1.3
3
+ version: 1.1.4
4
4
  description: Use when an OAT skill or workflow needs provider-neutral selection, launch, recovery, or evidence for bounded subagent work without project lifecycle policy.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -6,24 +6,35 @@ volatile snapshot, never a durable inventory.
6
6
 
7
7
  ## Control Surfaces
8
8
 
9
- | Source | Establishes | Does not establish |
10
- | ---------------------------- | --------------------------------------------------------- | -------------------------------------------------------------- |
11
- | Native Task/Subagent schema | Roles and opaque selectors for that dispatcher invocation | CLI account eligibility or another dispatcher's native catalog |
12
- | `cursor-agent --list-models` | Opaque selectors accepted by the account CLI | Native Task eligibility |
13
- | Cursor UI role configuration | User-selected defaults and role settings | Live root or nested schema without a new observation |
9
+ | Source | Establishes | Does not establish |
10
+ | ---------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
11
+ | Native Task/Subagent schema | Agent types available for that dispatcher invocation | CLI account eligibility or another dispatcher's native catalog |
12
+ | `cursor-agent --list-models` | Opaque flat model IDs accepted by the account CLI and resolver | Native Task eligibility or definition-pin acceptance |
13
+ | Cursor UI role configuration | User-selected defaults and role settings | Live root or nested schema without a new observation |
14
14
 
15
15
  Root and nested catalogs are independent, volatile observations. Equality in
16
16
  one run does not establish equality in another run or nesting boundary.
17
17
 
18
18
  ## Native Selection
19
19
 
20
- 1. Read the native model enum from the dispatcher that will launch the child.
21
- 2. Intersect configured candidates with that exact snapshot.
22
- 3. Pass the selected opaque string byte-for-byte.
23
- 4. Treat an omitted model as deliberate parent inheritance, not generic
24
- defaulting or evidence that a target was unavailable.
25
- 5. Record requested selector, acceptance, outcome, and runtime identity
26
- separately.
20
+ Managed Cursor dispatch resolves an opaque flat model ID through OAT's explicit
21
+ mapping and returns `providers.cursor.dispatchArgs.variant`. The mapping owns
22
+ the bracket-form model pin inside the materialized definition; skills must
23
+ never parse, normalize, or reconstruct either model string.
24
+
25
+ 1. Require a non-empty `providers.cursor.dispatchArgs.variant`.
26
+ 2. Launch that exact resolver-selected native agent type first.
27
+ 3. Treat native launch acceptance plus the complete launcher payload as
28
+ configured-invocation evidence, not observed runtime model identity.
29
+ 4. Permit a replacement route only after a recorded pre-start native
30
+ role-selection rejection of that exact variant, before any child starts.
31
+ 5. After acceptance, continue only through the existing handle. Timeout,
32
+ interruption, `BLOCKED`, missing telemetry, or self-report never authorizes
33
+ fallback or replacement.
34
+ 6. Treat an omitted variant as deliberate parent inheritance only when the
35
+ resolver selected no managed target.
36
+ 7. Record selected variant, mapped target, acceptance, outcome, and runtime
37
+ identity separately.
27
38
 
28
39
  Do not infer Cursor IDE behavior from a headless CLI surface. Keep bounded
29
40
  recon on economical explicit targets and reserve stronger targets for
@@ -52,12 +63,13 @@ verdict.
52
63
 
53
64
  ## Pre-Start CLI Routes
54
65
 
55
- When the current native intersection is absent or unsatisfactory, a caller may
56
- use a deliberate pre-start CLI route only when:
66
+ When exact native role selection rejects the resolver-selected variant before
67
+ launch, a caller may use a deliberate pre-start CLI route only when:
57
68
 
58
69
  - the caller's fallback policy allows it;
59
70
  - the exact CLI selector exists in the account catalog;
60
- - native mismatch, route, reason, and candidates are recorded before launch;
71
+ - the native mismatch, rejected variant, route, reason, and candidates are
72
+ recorded before launch;
61
73
  - the prompt is self-contained and authority-bounded.
62
74
 
63
75
  Verify current CLI help before use. A typical shape is:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-autonomous
3
- version: 1.0.3
3
+ version: 1.0.4
4
4
  description: Use when a user explicitly asks to run an OAT project autonomously end-to-end. Activates session-only autonomy, resumes the correct lifecycle phase, and drives the existing OAT skills through final PR or a reported boundary.
5
5
  argument-hint: '<goal | project-slug | ticket-ref>'
6
6
  disable-model-invocation: true
@@ -226,7 +226,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
226
226
  | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
227
227
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `b137f73db20c -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09` |
228
228
  | `oat-project-implement/SKILL.md` | `853d44621b72 -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
229
- | `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `14d89fe39c8c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
229
+ | `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `6d33ea58da2c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
230
230
  | `oat-project-implement/references/dispatch-and-dry-run.md` | `21b85f5e4daa -> IMPLEMENT-08`; `74c92b32bb2a -> IMPLEMENT-08`; `8efd2d0517ab -> IMPLEMENT-09`; `461ed9b3e495 -> IMPLEMENT-09`; `b5ad64fd744d -> NG`; `14ce436cfffa -> NG`; `043ca36da3e2 -> NG`; `a23e45c1dc8d -> NG`; `498143bb41a7 -> NG`; `4fe3eb179023 -> NG`; `7f75485e5a33 -> NG`; `8ec3a96df029 -> NG`; `16c3f96e758d -> NG`; `5915c41fe058 -> NG`; `f51e43eeac56 -> NG`; `fd41c25623cb -> NG`; `58a932ed6453 -> NG`; `4718bd3ce12d -> NG`; `58c444a2126b -> NG`; `2df3adae4120 -> NG`; `e75df892b55c -> NG` |
231
231
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
232
232
  | `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10` |