@open-agent-toolkit/cli 0.2.66 → 0.2.68

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 (118) hide show
  1. package/assets/bundle-metadata.json +1 -1
  2. package/assets/docs/cli-utilities/configuration.md +14 -1
  3. package/assets/docs/cli-utilities/project-log.md +63 -4
  4. package/assets/docs/contributing/code.md +8 -4
  5. package/assets/docs/contributing/skills.md +29 -17
  6. package/assets/docs/docs-tooling/commands.md +3 -1
  7. package/assets/docs/provider-sync/manifest-and-drift.md +2 -18
  8. package/assets/docs/provider-sync/scope-and-surface.md +3 -2
  9. package/assets/docs/reference/cli-reference.md +1 -1
  10. package/assets/docs/workflows/projects/evidence-layers.md +6 -3
  11. package/assets/docs/workflows/projects/implementation-execution.md +4 -3
  12. package/assets/docs/workflows/projects/lifecycle.md +17 -0
  13. package/assets/docs/workflows/projects/orchestration-model.md +6 -4
  14. package/assets/docs/workflows/projects/picking-up-projects.md +18 -0
  15. package/assets/docs/workflows/skills/repo-improve.md +7 -3
  16. package/assets/public-package-versions.json +4 -4
  17. package/assets/skills/create-agnostic-skill/SKILL.md +19 -37
  18. package/assets/skills/create-agnostic-skill/references/docs/skills-guide.md +58 -15
  19. package/assets/skills/create-agnostic-skill/references/skill-template.md +17 -15
  20. package/assets/skills/oat-agent-instructions-apply/SKILL.md +1 -1
  21. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/glob-scoped-rule.md +1 -4
  22. package/assets/skills/oat-dispatch-subagents/SKILL.md +4 -2
  23. package/assets/skills/oat-doctor/SKILL.md +1 -4
  24. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +3 -2
  25. package/assets/skills/oat-project-complete/SKILL.md +158 -30
  26. package/assets/skills/oat-project-complete/scripts/finalize-synced-archive.mjs +26 -7
  27. package/assets/skills/oat-project-complete/scripts/validate-durable-archive-receipt.mjs +183 -0
  28. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -7
  29. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +3 -2
  30. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  31. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +11 -10
  32. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +3 -2
  33. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +3 -2
  34. package/assets/skills/oat-project-plan-writing/SKILL.md +7 -6
  35. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +3 -2
  36. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +3 -2
  37. package/assets/skills/oat-project-retro/SKILL.md +1 -1
  38. package/assets/skills/oat-project-retro/references/apply-procedure.md +11 -0
  39. package/assets/skills/oat-project-review-provide/SKILL.md +14 -13
  40. package/assets/skills/oat-project-review-provide-remote/SKILL.md +7 -6
  41. package/assets/skills/oat-project-summary/SKILL.md +24 -2
  42. package/assets/skills/oat-repo-improve/SKILL.md +9 -2
  43. package/assets/skills/oat-repo-improve/references/plan-template.md +4 -6
  44. package/assets/skills/oat-repo-knowledge-index/SKILL.md +11 -9
  45. package/assets/skills/oat-wave-execute/SKILL.md +20 -6
  46. package/assets/skills/oat-wave-program/SKILL.md +9 -4
  47. package/dist/commands/config/index.d.ts +2 -1
  48. package/dist/commands/config/index.d.ts.map +1 -1
  49. package/dist/commands/config/index.js +133 -38
  50. package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
  51. package/dist/commands/docs/index-generate/index.js +68 -12
  52. package/dist/commands/docs/init/index.d.ts +11 -0
  53. package/dist/commands/docs/init/index.d.ts.map +1 -1
  54. package/dist/commands/docs/init/index.js +19 -1
  55. package/dist/commands/gate/index.d.ts.map +1 -1
  56. package/dist/commands/gate/index.js +10 -2
  57. package/dist/commands/instructions/instructions.utils.d.ts.map +1 -1
  58. package/dist/commands/instructions/instructions.utils.js +42 -9
  59. package/dist/commands/internal/validate-skill-version-bumps.d.ts.map +1 -1
  60. package/dist/commands/internal/validate-skill-version-bumps.js +5 -5
  61. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  62. package/dist/commands/project/dispatch-ceiling/index.js +32 -18
  63. package/dist/commands/project/log/append.d.ts +48 -0
  64. package/dist/commands/project/log/append.d.ts.map +1 -1
  65. package/dist/commands/project/log/append.js +207 -30
  66. package/dist/commands/project/log/check.d.ts +87 -1
  67. package/dist/commands/project/log/check.d.ts.map +1 -1
  68. package/dist/commands/project/log/check.js +139 -5
  69. package/dist/commands/project/log/grammar.d.ts +165 -0
  70. package/dist/commands/project/log/grammar.d.ts.map +1 -1
  71. package/dist/commands/project/log/grammar.js +219 -1
  72. package/dist/commands/project/log/rollup.d.ts +16 -1
  73. package/dist/commands/project/log/rollup.d.ts.map +1 -1
  74. package/dist/commands/project/log/rollup.js +22 -2
  75. package/dist/commands/project/log/synthesize.d.ts +16 -0
  76. package/dist/commands/project/log/synthesize.d.ts.map +1 -1
  77. package/dist/commands/project/log/synthesize.js +85 -9
  78. package/dist/commands/status/index.d.ts.map +1 -1
  79. package/dist/commands/status/index.js +24 -2
  80. package/dist/commands/sync/apply.d.ts.map +1 -1
  81. package/dist/commands/sync/apply.js +6 -4
  82. package/dist/config/dispatch-matrix.d.ts.map +1 -1
  83. package/dist/config/dispatch-matrix.js +13 -5
  84. package/dist/config/oat-config.d.ts +15 -0
  85. package/dist/config/oat-config.d.ts.map +1 -1
  86. package/dist/config/oat-config.js +61 -7
  87. package/dist/config/own-keys.d.ts +22 -0
  88. package/dist/config/own-keys.d.ts.map +1 -0
  89. package/dist/config/own-keys.js +32 -0
  90. package/dist/config/resolve.d.ts +11 -0
  91. package/dist/config/resolve.d.ts.map +1 -1
  92. package/dist/config/resolve.js +35 -11
  93. package/dist/config/sync-config.d.ts.map +1 -1
  94. package/dist/config/sync-config.js +16 -0
  95. package/dist/drift/detector.d.ts.map +1 -1
  96. package/dist/drift/detector.js +52 -1
  97. package/dist/drift/skill-view-diagnostic.d.ts.map +1 -1
  98. package/dist/drift/skill-view-diagnostic.js +2 -23
  99. package/dist/engine/compute-plan.d.ts.map +1 -1
  100. package/dist/engine/compute-plan.js +22 -72
  101. package/dist/engine/managed-copy-hash.d.ts +69 -0
  102. package/dist/engine/managed-copy-hash.d.ts.map +1 -0
  103. package/dist/engine/managed-copy-hash.js +175 -0
  104. package/dist/fs/assets.d.ts +11 -0
  105. package/dist/fs/assets.d.ts.map +1 -1
  106. package/dist/fs/assets.js +1 -1
  107. package/dist/manifest/hash.d.ts +110 -0
  108. package/dist/manifest/hash.d.ts.map +1 -1
  109. package/dist/manifest/hash.js +111 -13
  110. package/dist/providers/ceiling/registry.d.ts.map +1 -1
  111. package/dist/providers/ceiling/registry.js +6 -1
  112. package/dist/providers/identity/dispatch-report.d.ts.map +1 -1
  113. package/dist/providers/identity/dispatch-report.js +4 -1
  114. package/dist/release/public-package-contract.d.ts.map +1 -1
  115. package/dist/release/public-package-contract.js +21 -0
  116. package/dist/validation/skills.d.ts.map +1 -1
  117. package/dist/validation/skills.js +305 -40
  118. package/package.json +2 -2
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Glob, Grep, Write, Edit, Bash(git:*), Bash(oat:*), Bash(pnpm:*), Bash(mkdir:*), Bash(date:*), Bash(realpath:*), Bash(awk:*), AskUserQuestion
7
7
  metadata:
8
- version: 1.5.6
8
+ version: 1.5.8
9
9
  ---
10
10
 
11
11
  # Request Review
@@ -751,15 +751,16 @@ After constructing the complete provider payload, record the launcher-owned
751
751
  missing telemetry, missing reviewer self-report, or contradictory self-report
752
752
  must not populate, replace, or overwrite them and must not trigger fallback.
753
753
 
754
- Persist native dispatch lineage around the host-owned review launch. Construct
755
- and redact the complete generic record plus OAT role event before the native
756
- call. Immediately after the call returns `accepted` or
757
- `blocked-before-start`, run `oat project dispatch record --project
758
- "$PROJECT_PATH" --event-file - --json`. The rejected form must attest
759
- `provesNoChildStarted: true`; only it permits one exact-target approximation
760
- with a fresh request ID. Preserve the exact model, effort, route, authority,
761
- and provider controls. Timeout, `BLOCKED`, refusal after acceptance, runtime
762
- mismatch, missing telemetry, interruption, and malformed output never
754
+ This rail writes no launch record. Its only launch evidence is the `Dispatch:`
755
+ stamp it already copies into the review artifact's dispatch audit metadata
756
+ (Step 6.0); it never writes `implementation.md` (this rail requires that file
757
+ clean and never commits it) and adds no request-id, launch-status, or outcome
758
+ field to any artifact or ledger column. Construct and redact the complete
759
+ generic record plus OAT role event before the native call. Writing a per-dispatch file with `oat project dispatch record` is optional and off by default: no lifecycle skill or command consumes those files, so do not write them unless the host has explicitly opted in. A rejected launch must
760
+ attest `provesNoChildStarted: true`; only it permits one exact-target
761
+ approximation with a fresh request ID. Preserve the exact model, effort, route,
762
+ authority, and provider controls. Timeout, `BLOCKED`, refusal after acceptance,
763
+ runtime mismatch, missing telemetry, interruption, and malformed output never
763
764
  authorize fallback or replacement.
764
765
 
765
766
  Once the native host accepts a reviewer, every terminal result is an
@@ -1037,6 +1038,7 @@ Gate parsing contract:
1037
1038
  - Include either the `Findings: {N} critical, {N} important, {N} medium, {N} minor` summary line or the standard `## Findings` section with `### Critical`, `### Important`, `### Medium`, and `### Minor` subsections populated with findings or `None`.
1038
1039
  - Do not omit severity headings merely because a severity has zero findings; `oat gate review` depends on counts or standard Findings sections to determine whether the review blocks.
1039
1040
 
1041
+ ```markdown
1040
1042
  ## Summary
1041
1043
 
1042
1044
  {2-3 sentence summary}
@@ -1080,8 +1082,7 @@ Findings: {N} critical, {N} important, {N} medium, {N} minor
1080
1082
  ## Recommended Next Step
1081
1083
 
1082
1084
  Run the `oat-project-review-receive` skill to convert findings into plan tasks.
1083
-
1084
- ````
1085
+ ```
1085
1086
 
1086
1087
  ### Step 8.5: Validate Review Orchestration and Append Root Log
1087
1088
 
@@ -1191,7 +1192,7 @@ else
1191
1192
  [ -f "$PROJECT_PATH/plan.md" ] && git add "$PROJECT_PATH/plan.md"
1192
1193
  git diff --cached --quiet || git commit -m "chore(oat): record {scope} review artifact"
1193
1194
  fi
1194
- ````
1195
+ ```
1195
1196
 
1196
1197
  ### Step 10: Output Summary
1197
1198
 
@@ -5,7 +5,7 @@ disable-model-invocation: true
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash, Glob, Grep, Task, AskUserQuestion
7
7
  metadata:
8
- version: 1.1.4
8
+ version: 1.1.5
9
9
  ---
10
10
 
11
11
  # Remote Review Provide (Project-Scoped GitHub PR)
@@ -319,11 +319,12 @@ route. After acceptance, continue only through the existing reviewer handle;
319
319
  timeout, interruption, malformed output, or `BLOCKED` never authorizes a
320
320
  replacement launch.
321
321
 
322
- Persist native dispatch lineage around the host-owned remote-review launch.
323
- Construct and redact the complete generic record plus OAT role event before the
324
- native call. Immediately after the call returns `accepted` or
325
- `blocked-before-start`, run `oat project dispatch record --project
326
- "$PROJECT_PATH" --event-file - --json`. The rejected form must attest
322
+ This rail writes no launch record. Its only launch evidence is the `Dispatch:`
323
+ stamp it already copies into the posted review's dispatch audit metadata; it
324
+ never writes `implementation.md` (the remote rail runs in an ephemeral worktree
325
+ and forbids that mutation) and adds no request-id, launch-status, or outcome
326
+ field anywhere. Construct and redact the complete generic record plus OAT role
327
+ event before the native call. Writing a per-dispatch file with `oat project dispatch record` is optional and off by default: no lifecycle skill or command consumes those files, so do not write them unless the host has explicitly opted in. A rejected launch must attest
327
328
  `provesNoChildStarted: true`; only it permits one exact-target approximation
328
329
  with a fresh request ID. Preserve exact model, effort, route, authority, and
329
330
  provider controls. Timeout, `BLOCKED`, refusal after acceptance, runtime
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Bash(jq:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat pjm:*), Bash(oat project log:*), Bash(oat project push:*), Bash(oat project scope:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.5.4
8
+ version: 1.5.5
9
9
  ---
10
10
 
11
11
  # Project Summary
@@ -158,6 +158,24 @@ Route on the structured result. `status: "absent"` is inert. When the entry
158
158
  counts show one or more entries, keep the log in the summary flow even if task,
159
159
  revision, and autonomous-learning tracking fields are otherwise current.
160
160
 
161
+ `status: "ambiguous"` (exit 1, with an `ambiguity` reason) means the log's
162
+ section markers are readable two ways — or a seal is physically present outside
163
+ the parseable region — so the entry counts are not trustworthy. Stop the
164
+ project-log part of this skill there: report the `ambiguity` reason verbatim,
165
+ do not treat the log as empty, do not graduate the ledger, and do not append;
166
+ the operator repairs the file (the mutators refuse it for the same reason).
167
+ `summary.md` may still be authored from the other artifacts, with the log
168
+ named as unreadable.
169
+
170
+ `sealed: true` means the project log already carries its completion seal and is
171
+ closed to further entries. Skip the ledger graduation below entirely — do not
172
+ offer it, and append nothing. Report that the log is sealed and name the seal
173
+ heading from the probe's `seal` field, then continue with the rest of this
174
+ skill; `summary.md` is still authored or refreshed as normal. This is a real
175
+ refusal in the CLI, not a convention: `oat project log append` rejects any
176
+ non-seal append onto a sealed log with `status: "sealed"` and a non-zero exit,
177
+ so attempting the promotion would fail the step rather than skip it.
178
+
161
179
  Before roll-up, inspect `project`-scoped judgments for observations that are
162
180
  reusable across projects and offer ledger graduation. For every observation the
163
181
  user selects, invoke `oat project log append` with the original judgment type
@@ -199,7 +217,7 @@ test -f "$PROJECT_PATH/summary.md"
199
217
  identifiers (timestamp, category, and title) with the source pointers in
200
218
  the existing `## Autonomous Execution Learnings` section. Treat missing,
201
219
  added, or changed recommendations as `learnings_changed`.
202
- - If `oat_summary_last_task == current_last_task` AND `oat_summary_revision_count == current_rev_count` AND learnings are absent or unchanged AND the project-log check reports no entries: **No changes detected. Skip update.** Report: "Summary is current. No updates needed."
220
+ - If `oat_summary_last_task == current_last_task` AND `oat_summary_revision_count == current_rev_count` AND learnings are absent or unchanged AND the project-log check reports `status: "ok"` with no entries: **No changes detected. Skip update.** Report: "Summary is current. No updates needed."
203
221
  - If `current_rev_count > oat_summary_revision_count`: New revision phases exist. Update: Revision History, What Was Implemented, Follow-up Items.
204
222
  - If `current_last_task > oat_summary_last_task`: New tasks completed. Update: What Was Implemented, Notable Challenges, Tradeoffs Made.
205
223
  - If `learnings_changed`: update Autonomous Execution Learnings even when
@@ -402,6 +420,10 @@ Route only on the structured `ProjectLogRollupResult`:
402
420
  - `status: "ok"` with `ledgerOutcome: "skipped_permitted"`: proceed and report
403
421
  that the ledger was permissibly skipped because the default reference layer
404
422
  is absent.
423
+ - `status: "ambiguous"`: the log's structure has two readings, so nothing was
424
+ read and `summary.md` was not written. Surface the result's `ambiguity`
425
+ string to the user and stop before commit. Do not describe the summary as
426
+ rolled up, and do not treat the absent observations as "no entries".
405
427
  - `status: "failed"` or `ledgerOutcome: "failed"`: surface the failure to the
406
428
  user and stop before commit. Do not describe the summary as fully rolled up.
407
429
 
@@ -8,7 +8,7 @@ allowed-tools: Read, Write, Glob, Grep, Bash, AskUserQuestion
8
8
  license: MIT
9
9
  metadata:
10
10
  author: shadcn
11
- version: 2.1.4
11
+ version: 2.1.5
12
12
  ---
13
13
 
14
14
  # OAT Repo Improve
@@ -134,7 +134,13 @@ from
134
134
  the matching mechanics reference from
135
135
  `${DISPATCH_SKILLS_ROOT}/oat-dispatch-subagents/references/`. The caller retains
136
136
  decomposition, synthesis, user dialogue, source verification, candidate
137
- selection, and all plan writes.
137
+ selection, and all plan writes. Plan writes are never delegated below the
138
+ caller's own model class. If authoring is parallelized, the author subagent
139
+ runs on the same model as the caller, and the caller reviews every plan before
140
+ publication or wave composition. Reconnaissance lanes may run on cheaper
141
+ classes; plan writes may not. The executable backstop is the
142
+ `keeps external-plan writes on the caller's model class` case in
143
+ `packages/cli/src/commands/init/tools/shared/skills-bundled-docs-contract.test.ts`.
138
144
 
139
145
  Probe capability before long-running work and classify it as `available`, `authorization-required`, or `unresolved-or-unsupported`. If authorization is required, ask once for all read-only reconnaissance lanes in this run and lock that decision.
140
146
 
@@ -346,3 +352,4 @@ Audit the repository for security and test improvements, then let me choose what
346
352
  - GitHub publication is previewed, visibility-checked, and explicitly confirmed once per run.
347
353
  - Project-sized candidates are split or escalated instead of emitted as mega-plans.
348
354
  - Final guidance distinguishes direct execution from optional `oat-project-import-plan` handoff.
355
+ - Plan writes stay on the caller's model class: a parallelized author subagent runs on the caller's model and the caller reviews every plan before publication or wave composition.
@@ -104,7 +104,6 @@ Run before editing:
104
104
  ```bash
105
105
  git diff --stat <inspected HEAD SHA>..HEAD -- <in-scope paths>
106
106
  ```
107
- ````
108
107
 
109
108
  If an in-scope file changed, compare the plan's current-state evidence with the live code. A material mismatch is a STOP condition unless the plan explicitly explains how to reconcile it.
110
109
 
@@ -201,7 +200,6 @@ Apply the `## Landing-event impact` table when one of its events has occurred. A
201
200
  - What a reviewer should inspect most closely.
202
201
  - Compatibility or regression risks.
203
202
  - Follow-ups intentionally deferred and why.
204
-
205
203
  ````
206
204
 
207
205
  ## Multi-Plan Index
@@ -234,14 +232,14 @@ not an `oat-project-import-plan` target.
234
232
 
235
233
  ## Recommended order
236
234
 
237
- | Order | Plan | Source item/finding | Depends on | Tracking | Rationale |
238
- | --- | --- | --- | --- | --- | --- |
239
- | 1 | [Title](./YYYY-MM-DD-slug.md) | <ID/title or finding> | — | <backlog ID and/or issue URL, or none> | <reason> |
235
+ | Order | Plan | Source item/finding | Depends on | Tracking | Rationale |
236
+ | ----- | ----------------------------- | --------------------- | ---------- | -------------------------------------- | --------- |
237
+ | 1 | [Title](./YYYY-MM-DD-slug.md) | <ID/title or finding> | — | <backlog ID and/or issue URL, or none> | <reason> |
240
238
 
241
239
  ## Dependency notes
242
240
 
243
241
  - <Dependency or parallel-lane explanation.>
244
- ````
242
+ ```
245
243
 
246
244
  Do not use a repository-wide `README.md` as the index. Do not ask executors to mutate the index; execution tracking belongs to the chosen execution workflow.
247
245
 
@@ -5,7 +5,7 @@ disable-model-invocation: true
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion, Task
7
7
  metadata:
8
- version: 1.3.1
8
+ version: 1.3.2
9
9
  ---
10
10
 
11
11
  # Knowledge Base Generation
@@ -358,7 +358,7 @@ Constraints:
358
358
  --- stack.md ---
359
359
  ```markdown
360
360
  <content here>
361
- ````
361
+ ```
362
362
 
363
363
  --- integrations.md ---
364
364
 
@@ -366,11 +366,11 @@ Constraints:
366
366
  <content here>
367
367
  ```
368
368
 
369
- ```
369
+ ````
370
370
 
371
371
  **Agent 2: Architecture Focus**
372
372
 
373
- ```
373
+ ````
374
374
 
375
375
  subagent_type: "Explore"
376
376
  model: "haiku"
@@ -417,11 +417,11 @@ Constraints:
417
417
  <content here>
418
418
  ```
419
419
 
420
- ```
420
+ ````
421
421
 
422
422
  **Agent 3: Quality Focus**
423
423
 
424
- ```
424
+ ````
425
425
 
426
426
  subagent_type: "Explore"
427
427
  model: "haiku"
@@ -468,11 +468,11 @@ Constraints:
468
468
  <content here>
469
469
  ```
470
470
 
471
- ```
471
+ ````
472
472
 
473
473
  **Agent 4: Concerns Focus**
474
474
 
475
- ```
475
+ ````
476
476
 
477
477
  subagent_type: "Explore"
478
478
  model: "haiku"
@@ -519,12 +519,14 @@ Constraints:
519
519
  ### Step 6: Wait for Agent Completion
520
520
 
521
521
  **If using Step 5a (direct write):**
522
+
522
523
  - Wait for all 4 mapper agents to complete
523
524
  - Each agent writes documents directly to `.oat/repo/knowledge/` and returns a brief confirmation
524
525
  - Expected confirmations should indicate which documents were written
525
526
  - Proceed to Step 7
526
527
 
527
528
  **If using Step 5b (read-only):**
529
+
528
530
  - Wait for all 4 mapper agents to complete
529
531
  - Each agent returns markdown content in their response
530
532
  - Proceed to Step 6b to extract and write files
@@ -535,7 +537,7 @@ If using read-only mode, extract markdown from agent outputs and write to files.
535
537
 
536
538
  Use Python to extract markdown blocks:
537
539
 
538
- ```python
540
+ ````python
539
541
  import json
540
542
  import re
541
543
 
@@ -6,7 +6,7 @@ disable-model-invocation: false
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Task
8
8
  metadata:
9
- version: 1.9.1
9
+ version: 1.9.2
10
10
  ---
11
11
 
12
12
  # Execute a Wave of External Plans
@@ -184,6 +184,11 @@ in the Drift Refresh Record with pointer-only references elsewhere — a
184
184
  reconciliation that waives a source-plan requirement is a plan-gate Important
185
185
  (wave-4 evidence).
186
186
 
187
+ Recon is delegated; the Drift Refresh Record entries and any reconciliation
188
+ that amends a plan's mechanism — including after a tripped STOP — are plan
189
+ writes and stay on the orchestrator's own model class, the same rule
190
+ `oat-repo-improve` applies to external-plan writes.
191
+
187
192
  ### Step 3: Scaffold the wrapper project
188
193
 
189
194
  1. Probe the installed scaffold interface first with `oat project new --help`.
@@ -380,8 +385,17 @@ archive anything first.
380
385
  ledger, rolled into `summary.md` `## Workflow Observations`.
381
386
  3. **Serialized backlog archival** — `oat backlog archive` with real summaries,
382
387
  one commit.
383
- 4. **Root final review.**
384
- 5. **Cross-runtime final gate** — judgment-sweep dispositions; after every fix
388
+ 4. **Closeout gate run** — after the archival commit, and after ANY later commit
389
+ that touches a gated surface (`.oat/repo/**`, `.agents/**`, `packages/**`,
390
+ `apps/**`), re-run the integration DoD gates with cache bypass. The last
391
+ content commit on the branch is ALWAYS gated. Step 1 certifies the tree it
392
+ ran on, not a commit that lands after it: in W7 the archival commit was the
393
+ only post-fan-in commit touching a gated surface, it left the suite red under
394
+ a shipped test that scans `.oat/repo`, and the root final review in step 5
395
+ then ran against a red tree. Bypass the cache and record `Cached: 0`; a
396
+ replayed result is evidence about an earlier tree, not this one.
397
+ 5. **Root final review.**
398
+ 6. **Cross-runtime final gate** — judgment-sweep dispositions; after every fix
385
399
  disposition has its required stored verification record, flip the row to
386
400
  `passed`. A final
387
401
  gate MUST NOT remain at `fixes_completed`: `passed` is the only terminal
@@ -390,10 +404,10 @@ archive anything first.
390
404
  the upstream stomp class was fixed in oat 0.1.65 and stoa's W6 supplied the
391
405
  final clean observation (three gate rounds, zero stomps, watch never fired,
392
406
  2026-07-20).
393
- 6. **Pre-approval sequence** per `workflow.postImplementSequence`, then a single
407
+ 7. **Pre-approval sequence** per `workflow.postImplementSequence`, then a single
394
408
  HiLL. File follow-up-ledger backlog items at closeout (on main post-merge, or
395
409
  pre-gate if the operator prefers them in the PR).
396
- 7. **The full `oat-project-complete` PROCESS, with an explicit autonomous
410
+ 8. **The full `oat-project-complete` PROCESS, with an explicit autonomous
397
411
  deferral branch.** Interactive runs retain the standing per-wave order
398
412
  review → complete → merge (an open PR is expected, not a blocker — the
399
413
  archive-aware PR body sync handles it). The requirement remains the whole
@@ -424,7 +438,7 @@ archive anything first.
424
438
  that execution occurs after the one human-gated program-end checkpoint in
425
439
  `oat-wave-program`, across every deferred wave wrapper.
426
440
 
427
- 8. **After the operator merges:** reconcile (squash-merge means content-diff the
441
+ 9. **After the operator merges:** reconcile (squash-merge means content-diff the
428
442
  branch vs main; cherry-pick stragglers), reset the working branch, clean stale
429
443
  phase branches, and run `oat-wave-program` `wave-close <wave-id>` so the
430
444
  program ledger records the merge (PR, SHA, completion-record link) and flips
@@ -6,7 +6,7 @@ disable-model-invocation: false
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Task
8
8
  metadata:
9
- version: 1.5.1
9
+ version: 1.5.2
10
10
  ---
11
11
 
12
12
  # Program a Corpus of External Plans into Waves
@@ -66,7 +66,12 @@ target (same disclaimer as the plan indexes).
66
66
  token-cost requires W3 permission-policy").
67
67
  - **Status ledger:** per wave — composed → in-progress (project link) → merged
68
68
  (PR + merge SHA + completion record link). Updated by this skill's
69
- `wave-close` mode, invoked from `oat-wave-execute` closeout step 8.
69
+ `wave-close` mode, invoked from `oat-wave-execute` closeout step 9. Those
70
+ three are the complete ledger vocabulary, including at program close. `done`
71
+ is a wave-table plan-row status from the Wave table bullet above and is never
72
+ a ledger status. The executable owner of the ledger vocabulary is the
73
+ external-plan readiness contract, whose `WAVE_STATUSES` rejects any ledger
74
+ status outside it.
70
75
 
71
76
  ## Process
72
77
 
@@ -114,7 +119,7 @@ target (same disclaimer as the plan indexes).
114
119
  program recap is not run, record `recap: not run — {reason}` there. Every
115
120
  optional step gets an explicit disposition; silence is indistinguishable
116
121
  from oversight (Orc program-recap evidence).
117
- 6. When the final wave's ledger row flips to `done` and all wave merges are
122
+ 6. When the final wave's ledger row flips to `merged` and all wave merges are
118
123
  recorded, stop at exactly one HUMAN-GATED program completion checkpoint,
119
124
  including in autonomous runs:
120
125
  "All waves are merged and the program is complete. Run the completion tail
@@ -169,7 +174,7 @@ Publishing is human-gated; this caller never invokes publish.
169
174
 
170
175
  - `oat-wave-execute` **Inputs** resolves its lane list from this artifact (falling
171
176
  back to index wave hints only when no program artifact exists).
172
- - `oat-wave-execute` closeout step 8 invokes `wave-close` here.
177
+ - `oat-wave-execute` closeout step 9 invokes `wave-close` here.
173
178
  - A lane parked mid-wave (source-plan STOP) surfaces in BOTH artifacts: the
174
179
  wave project's blocker record and this ledger's `deferred` row.
175
180
 
@@ -1,6 +1,6 @@
1
1
  import { buildCommandContext, type CommandContext } from '../../app/command-context.js';
2
2
  import { type PromptContext } from '../shared/shared.prompts.js';
3
- import { type OatConfig, type OatLocalConfig, type UserConfig } from '../../config/oat-config.js';
3
+ import { type OatConfig, type OatConfigRead, type OatLocalConfig, type UserConfig } from '../../config/oat-config.js';
4
4
  import { type ResolvedConfig } from '../../config/resolve.js';
5
5
  import { type MatrixCellAvailabilityResponse, type ValidateMatrixCellOptions } from '../../providers/identity/availability.js';
6
6
  import { createDispatchValidationPassContext, validateDispatchMatrixRefs } from '../../providers/identity/dispatch-validation.js';
@@ -12,6 +12,7 @@ interface ConfigCommandDependencies {
12
12
  readOatConfigForDefaultScopeRepair: (repoRoot: string) => Promise<OatConfig>;
13
13
  readOatConfigForDocumentationExcludesRepair: (repoRoot: string) => Promise<OatConfig>;
14
14
  readOatConfigForInstructionPointerExcludesRepair: (repoRoot: string) => Promise<OatConfig>;
15
+ readOatConfigWithWarnings: (repoRoot: string) => Promise<OatConfigRead>;
15
16
  writeOatConfig: (repoRoot: string, config: OatConfig) => Promise<void>;
16
17
  readOatLocalConfig: (repoRoot: string) => Promise<OatLocalConfig>;
17
18
  writeOatLocalConfig: (repoRoot: string, config: OatLocalConfig) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}