@open-agent-toolkit/cli 0.2.4 → 0.2.6

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 (106) hide show
  1. package/assets/docs/cli-utilities/configuration.md +40 -0
  2. package/assets/docs/cli-utilities/tool-packs.md +31 -0
  3. package/assets/docs/workflows/projects/artifacts.md +27 -0
  4. package/assets/docs/workflows/projects/implementation-execution.md +30 -5
  5. package/assets/docs/workflows/skills/explainer-kit.md +125 -0
  6. package/assets/docs/workflows/skills/index.md +4 -0
  7. package/assets/migration/pjm-restructure.md +12 -0
  8. package/assets/public-package-versions.json +4 -4
  9. package/assets/skills/explainer-kit/SKILL.md +95 -0
  10. package/assets/skills/explainer-kit/examples/project-explainer/content.md +31 -0
  11. package/assets/skills/explainer-kit/examples/project-explainer/fact-base.md +22 -0
  12. package/assets/skills/explainer-kit/examples/project-recap/content.md +34 -0
  13. package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +22 -0
  14. package/assets/skills/explainer-kit/examples/theme-bundle.json +87 -0
  15. package/assets/skills/explainer-kit/palettes/ember.json +37 -0
  16. package/assets/skills/explainer-kit/palettes/forest.json +37 -0
  17. package/assets/skills/explainer-kit/palettes/neutral.json +37 -0
  18. package/assets/skills/explainer-kit/palettes/ocean.json +37 -0
  19. package/assets/skills/explainer-kit/palettes/violet.json +37 -0
  20. package/assets/skills/explainer-kit/profiles/clean.json +42 -0
  21. package/assets/skills/explainer-kit/profiles/editorial.json +42 -0
  22. package/assets/skills/explainer-kit/profiles/technical.json +39 -0
  23. package/assets/skills/explainer-kit/recipes/engineer-tour.json +33 -0
  24. package/assets/skills/explainer-kit/recipes/program-recap.json +34 -0
  25. package/assets/skills/explainer-kit/recipes/project-explainer.json +33 -0
  26. package/assets/skills/explainer-kit/recipes/project-recap.json +34 -0
  27. package/assets/skills/explainer-kit/references/contracts.md +101 -0
  28. package/assets/skills/explainer-kit/references/destination-contract.md +94 -0
  29. package/assets/skills/explainer-kit/references/extension-contract.md +71 -0
  30. package/assets/skills/explainer-kit/references/fact-base-contract.md +119 -0
  31. package/assets/skills/explainer-kit/schemas/build-record.schema.json +92 -0
  32. package/assets/skills/explainer-kit/schemas/durability-evidence.schema.json +53 -0
  33. package/assets/skills/explainer-kit/schemas/fact-base.schema.json +129 -0
  34. package/assets/skills/explainer-kit/schemas/manifest.schema.json +193 -0
  35. package/assets/skills/explainer-kit/schemas/publish-receipt.schema.json +97 -0
  36. package/assets/skills/explainer-kit/schemas/publish-request.schema.json +32 -0
  37. package/assets/skills/explainer-kit/schemas/run-request.schema.json +132 -0
  38. package/assets/skills/explainer-kit/schemas/theme.schema.json +217 -0
  39. package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +180 -0
  40. package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +680 -0
  41. package/assets/skills/explainer-kit/scripts/lib/durability.mjs +538 -0
  42. package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +494 -0
  43. package/assets/skills/explainer-kit/scripts/lib/fs-safe.mjs +218 -0
  44. package/assets/skills/explainer-kit/scripts/lib/qa.mjs +512 -0
  45. package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +289 -0
  46. package/assets/skills/explainer-kit/scripts/lib/records.mjs +231 -0
  47. package/assets/skills/explainer-kit/scripts/lib/render.mjs +485 -0
  48. package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +587 -0
  49. package/assets/skills/explainer-kit/scripts/lib/safe-paths.mjs +96 -0
  50. package/assets/skills/explainer-kit/scripts/lib/theme.mjs +332 -0
  51. package/assets/skills/explainer-kit/scripts/publish.mjs +76 -0
  52. package/assets/skills/explainer-kit/scripts/record-durability.mjs +64 -0
  53. package/assets/skills/explainer-kit/scripts/render-qa.mjs +273 -0
  54. package/assets/skills/explainer-kit/scripts/run.mjs +778 -0
  55. package/assets/skills/explainer-kit/scripts/validate.mjs +59 -0
  56. package/assets/skills/explainer-kit/templates/deck-shell.html +233 -0
  57. package/assets/skills/explainer-kit/templates/diagram-shell.html +219 -0
  58. package/assets/skills/explainer-kit/templates/engineer-tour.html +273 -0
  59. package/assets/skills/explainer-kit/templates/house-style.html +218 -0
  60. package/assets/skills/oat-explainer-kit/SKILL.md +92 -0
  61. package/assets/skills/oat-explainer-kit/references/config-contract.md +67 -0
  62. package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +143 -0
  63. package/assets/skills/oat-explainer-kit/references/migration.md +143 -0
  64. package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +103 -0
  65. package/assets/skills/oat-explainer-kit/scripts/check-core.mjs +127 -0
  66. package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +392 -0
  67. package/assets/skills/oat-explainer-kit/scripts/persist-intent.mjs +130 -0
  68. package/assets/skills/oat-explainer-kit/scripts/resolve-config.mjs +293 -0
  69. package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +209 -0
  70. package/assets/skills/oat-explainer-kit/scripts/resolve-paths.mjs +166 -0
  71. package/assets/skills/oat-explainer-kit/scripts/run.mjs +284 -0
  72. package/assets/skills/oat-project-autonomous/SKILL.md +22 -1
  73. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +5 -1
  74. package/assets/skills/oat-project-complete/SKILL.md +166 -28
  75. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +5 -1
  76. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  77. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +84 -9
  78. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +5 -1
  79. package/assets/skills/oat-project-next/SKILL.md +31 -11
  80. package/assets/skills/oat-project-plan/SKILL.md +30 -1
  81. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +5 -1
  82. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +5 -1
  83. package/assets/skills/oat-project-summary/SKILL.md +20 -1
  84. package/assets/templates/state.md +4 -1
  85. package/dist/commands/config/index.d.ts.map +1 -1
  86. package/dist/commands/config/index.js +232 -1
  87. package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
  88. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  89. package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
  90. package/dist/commands/project/archive/archive-utils.d.ts +12 -0
  91. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  92. package/dist/commands/project/archive/archive-utils.js +320 -8
  93. package/dist/commands/project/archive/index.d.ts.map +1 -1
  94. package/dist/commands/project/archive/index.js +1 -0
  95. package/dist/commands/project/archive/push-runner.d.ts +1 -0
  96. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  97. package/dist/commands/project/archive/push-runner.js +9 -2
  98. package/dist/config/oat-config.d.ts +26 -0
  99. package/dist/config/oat-config.d.ts.map +1 -1
  100. package/dist/config/oat-config.js +88 -0
  101. package/dist/config/resolve.d.ts.map +1 -1
  102. package/dist/config/resolve.js +18 -0
  103. package/dist/validation/project-state.d.ts +3 -0
  104. package/dist/validation/project-state.d.ts.map +1 -1
  105. package/dist/validation/project-state.js +91 -0
  106. package/package.json +2 -2
@@ -142,6 +142,7 @@ remains.
142
142
  | PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
143
143
  | PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
144
144
  | PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
145
+ | PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
145
146
  | IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
146
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
147
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
@@ -169,6 +170,7 @@ remains.
169
170
  | IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
170
171
  | IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
171
172
  | IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn` | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition |
173
+ | IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | In autonomy attempt one recap when no fresh recap exists; preserve resolved interactive intent otherwise, and never block completion on recap outcome | `auto-resolve` | Recap manifest and outcome record |
172
174
  | DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
173
175
  | DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
174
176
  | DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
@@ -256,7 +258,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
256
258
  | `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
257
259
  | `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
258
260
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
259
- | `oat-project-complete/SKILL.md` | `b4934a85feee -> NG` |
261
+ | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
262
+ | `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19` |
263
+ | `oat-project-complete/SKILL.md` | `ffad9f909dba -> COMPLETE-01`; `ffe636f736e8 -> COMPLETE-01`; `ea2dced337be -> COMPLETE-01`; `93d3e4ee3355 -> COMPLETE-01`; `2407ebed0921 -> NG`; `0177956707aa -> NG`; `8305b5bb65ef -> NG` |
260
264
 
261
265
  ## Prompt-scan comparison
262
266
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-next
3
- version: 1.0.10
3
+ version: 1.0.11
4
4
  description: Use when continuing work on the active OAT project. Reads project state, determines the next lifecycle action, and invokes the appropriate skill automatically.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -270,9 +270,13 @@ Before every other post-implementation route, inspect
270
270
  or not fresh, route to `oat-project-implement`.
271
271
 
272
272
  This override applies even when `oat_phase_status` is `complete` or `pr_open`,
273
- and before the summary, document, PR, or `oat-project-complete` routes. Announce
274
- exactly: "Implementation exit gate unresolved or stale resume with
275
- `oat-project-implement` before post-implementation routing."
273
+ and before the summary, document, PR, or `oat-project-complete` routes. When a
274
+ qualified allowed result matches but its rolling checkpoint trails HEAD,
275
+ announce exactly: "Implementation exit gate freshness checkpoint pending —
276
+ resume with `oat-project-implement` before post-implementation routing." For all
277
+ other unresolved or stale cases, announce exactly: "Implementation exit gate
278
+ unresolved or stale — resume with `oat-project-implement` before
279
+ post-implementation routing."
276
280
 
277
281
  Only an `allowed` and fresh exit-gate disposition falls through to the normal
278
282
  post-implementation checks.
@@ -282,11 +286,13 @@ alone:
282
286
 
283
287
  - `allowed/no_gate` is valid only with `disposition: no_gate`, null gate-run and
284
288
  artifact provenance, and current `reviewed_head` and implementation
285
- fingerprint fields.
289
+ fingerprint fields. Qualified state also requires `implementation_base_ref`,
290
+ `freshness_head`, and `freshness_fingerprint`.
286
291
  - `allowed/configured` is valid only with `disposition: passed`, `warned`, or
287
292
  `prompt_approved`; matching `config_fingerprint`, `reviewed_head`,
288
- `implementation_fingerprint`, and configured gate-run provenance; and any
289
- eligible receive durably completed.
293
+ `implementation_fingerprint`, configured gate-run provenance, and any eligible
294
+ receive durably completed. Qualified state also requires the complete rolling
295
+ freshness fields.
290
296
  - `pending`, `blocked`, malformed, contradictory, or legacy-absent state never
291
297
  falls through. Pending and blocked generations resume their persisted
292
298
  configuration; configuration-fingerprint mismatch fails closed.
@@ -294,10 +300,24 @@ alone:
294
300
  paths and substantive changes route as stale. The recognized set is limited
295
301
  to configured gate artifacts and receipts, project tracking and
296
302
  `project-log.md` appends, summary/documentation/PR sequence outputs, final
297
- HiLL bookkeeping, and completion bookkeeping.
298
- - Any implementation, test, skill, template, workflow configuration, or other
299
- unrecognized change after `reviewed_head` invalidates the implementation
300
- fingerprint and routes to `oat-project-implement`.
303
+ HiLL bookkeeping, and completion bookkeeping. A category match without its
304
+ persisted transition boundary is unknown, not closeout-only.
305
+ - For qualified state, require `implementation_base_ref`, `freshness_head`, and
306
+ a valid `freshness_fingerprint`. Exactly one merge base and 64-character
307
+ lowercase hexadecimal implementation/freshness digests are mandatory.
308
+ Missing or malformed inputs route as stale. When HEAD differs from
309
+ `freshness_head`, use the full raw Git byte algorithm from
310
+ `oat-project-implement` with only its literal state-carrier exclusion. Verify
311
+ and ignore state-only checkpoint commits before classification. An unchanged
312
+ qualified fingerprint preserves freshness across a merge, rebase, or base
313
+ update but routes to `oat-project-implement` to persist the advanced rolling
314
+ checkpoint; a mismatch routes as stale. This read-only router never advances
315
+ state or invents another fingerprint algorithm.
316
+ - Legacy unqualified fingerprints retain the closeout-only descendant-path
317
+ check. Any implementation, test, skill, template, workflow configuration, or
318
+ other unrecognized change after `reviewed_head` invalidates the implementation
319
+ fingerprint and routes to `oat-project-implement`. Do not reinterpret or
320
+ migrate legacy state while routing.
301
321
 
302
322
  Routing is read-only: announce stale or malformed state, but leave transition
303
323
  repair, gate execution, receive, and persistence to `oat-project-implement`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan
3
- version: 1.4.2
3
+ version: 1.4.3
4
4
  description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
5
5
  oat_gateable: true
6
6
  disable-model-invocation: true
@@ -155,6 +155,20 @@ Read for implementation context:
155
155
  - `.oat/repo/knowledge/testing.md` - Testing patterns
156
156
  - `.oat/repo/knowledge/stack.md` - Available tools and dependencies
157
157
 
158
+ ### Step 4.5: Resolve Project-Explainer Intent
159
+
160
+ Resolve `projectExplainer` intent before drafting the plan. Use the
161
+ `oat-explainer-kit` lifecycle intent resolver with interactive mode, the current
162
+ `oat_project_explainer` state value, and the source-aware
163
+ `workflow.explainers.projectExplainer` preference.
164
+
165
+ When resolution returns `needsPrompt: true`, ask exactly once whether to generate the project explainer, then resolve again with the answer and persist the returned `interactive` record.
166
+ A valid persisted `oat_project_explainer` decision prevents another prompt.
167
+ Persist through the adapter's optimistic-concurrency helper; on a stale write,
168
+ re-read state and resolve precedence again instead of retrying the old record.
169
+ Do not persist decisions derived only from `always` or `never` workflow
170
+ preferences.
171
+
158
172
  ### Step 4.9: Snapshot Explicit Phase-Review Setting Before Plan Overwrite
159
173
 
160
174
  Before Step 5 can replace an existing `plan.md`, inspect the source text and
@@ -636,6 +650,21 @@ Total: {N} tasks
636
650
  Ready for implementation"
637
651
  ```
638
652
 
653
+ ### Step 15.5: Generate the Project Explainer When Selected
654
+
655
+ Generate only after plan artifact review, the configured plan gate, and the plan commit have completed successfully.
656
+ When the resolved project-explainer decision is `generate`, invoke
657
+ `oat-explainer-kit` for the `project-explainer` recipe using the approved
658
+ project artifacts and report its outcome and run path. A `skip` decision ends
659
+ this step without invoking the adapter.
660
+ Supply the provider-neutral critic callback (or validated critic module entry point for JSON/CLI invocation) on every federated adapter run.
661
+
662
+ Explainer failure must not roll back, amend, or invalidate the valid committed plan.
663
+ Preserve the adapter's failure outcome and recovery guidance, warn the user,
664
+ and continue to the planning summary. This post-plan product does not replace
665
+ or reorder plan artifact review, dispatch resolution, the configured plan gate,
666
+ or HiLL handling.
667
+
639
668
  ### Step 16: Output Summary
640
669
 
641
670
  ```
@@ -142,6 +142,7 @@ remains.
142
142
  | PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
143
143
  | PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
144
144
  | PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
145
+ | PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
145
146
  | IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
146
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
147
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
@@ -169,6 +170,7 @@ remains.
169
170
  | IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
170
171
  | IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
171
172
  | IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn` | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition |
173
+ | IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | In autonomy attempt one recap when no fresh recap exists; preserve resolved interactive intent otherwise, and never block completion on recap outcome | `auto-resolve` | Recap manifest and outcome record |
172
174
  | DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
173
175
  | DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
174
176
  | DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
@@ -256,7 +258,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
256
258
  | `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
257
259
  | `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
258
260
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
259
- | `oat-project-complete/SKILL.md` | `b4934a85feee -> NG` |
261
+ | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
262
+ | `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19` |
263
+ | `oat-project-complete/SKILL.md` | `ffad9f909dba -> COMPLETE-01`; `ffe636f736e8 -> COMPLETE-01`; `ea2dced337be -> COMPLETE-01`; `93d3e4ee3355 -> COMPLETE-01`; `2407ebed0921 -> NG`; `0177956707aa -> NG`; `8305b5bb65ef -> NG` |
260
264
 
261
265
  ## Prompt-scan comparison
262
266
 
@@ -142,6 +142,7 @@ remains.
142
142
  | PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
143
143
  | PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
144
144
  | PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
145
+ | PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
145
146
  | IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
146
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
147
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
@@ -169,6 +170,7 @@ remains.
169
170
  | IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
170
171
  | IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
171
172
  | IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn` | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition |
173
+ | IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | In autonomy attempt one recap when no fresh recap exists; preserve resolved interactive intent otherwise, and never block completion on recap outcome | `auto-resolve` | Recap manifest and outcome record |
172
174
  | DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
173
175
  | DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
174
176
  | DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
@@ -256,7 +258,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
256
258
  | `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
257
259
  | `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
258
260
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
259
- | `oat-project-complete/SKILL.md` | `b4934a85feee -> NG` |
261
+ | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
262
+ | `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19` |
263
+ | `oat-project-complete/SKILL.md` | `ffad9f909dba -> COMPLETE-01`; `ffe636f736e8 -> COMPLETE-01`; `ea2dced337be -> COMPLETE-01`; `93d3e4ee3355 -> COMPLETE-01`; `2407ebed0921 -> NG`; `0177956707aa -> NG`; `8305b5bb65ef -> NG` |
260
264
 
261
265
  ## Prompt-scan comparison
262
266
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-summary
3
- version: 1.3.3
3
+ version: 1.3.4
4
4
  description: Use when the user requests or confirms summarizing an active OAT project — e.g. "summarize the project", "generate the summary", "run oat-project-summary", or confirms a previously offered summary run. Do NOT auto-invoke when implementation completes. Generates summary.md from project artifacts as institutional memory.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -229,6 +229,23 @@ For each section, synthesize content from the relevant artifacts. Apply these ru
229
229
  | Associated Issues | state.md `associated_issues` field |
230
230
  | Workflow Observations | project-log.md via `oat project log rollup` only |
231
231
  | Autonomous Execution Learnings | oat-execution-learnings.md dated entries |
232
+ | Explainer Outcome | project-recap `manifest.json` and `build-record.json` |
233
+
234
+ **Explainer Outcome (conditional):**
235
+
236
+ When a project-recap attempt exists, render this section:
237
+
238
+ ```markdown
239
+ ## Explainer Outcome
240
+
241
+ - **project-recap:** {outcome} — `{run path}`{optional warning or recovery note}
242
+ ```
243
+
244
+ When a project-recap attempt exists, include exactly one concise outcome item with its recipe, outcome (`built-durable`, `built-not-durable`, or `failed`), run path, and warning or recovery note when applicable.
245
+
246
+ Use `manifest.json` and `build-record.json` as the source of truth; refresh the existing item instead of appending a duplicate.
247
+
248
+ Omit `Explainer Outcome` when no project-recap attempt exists. A failed or non-durable recap remains visible as its product outcome; do not reinterpret it as project implementation failure.
232
249
 
233
250
  **Autonomous Execution Learnings (conditional):**
234
251
 
@@ -466,3 +483,5 @@ Summary tracks: last task {task_id}, {N} revision phases
466
483
  ledger graduation
467
484
  - When the PJM tool pack is installed, each Key Decision is promoted to a canonical `reference/decisions/DR-YYMMDD-slug` record via `oat decision new` (status `accepted`), deduped on the date-independent slug so re-runs never create duplicate records
468
485
  - When the PJM tool pack is not installed, decision promotion is skipped silently with no prompt
486
+ - A project-recap attempt appears once in a concise Explainer Outcome section
487
+ sourced from its manifest and build record
@@ -40,7 +40,10 @@ oat_workflow_origin: native # native | imported
40
40
  # max_attempts: 2
41
41
  # attempts_completed: 0
42
42
  # reviewed_head: null
43
- # implementation_fingerprint: null
43
+ # implementation_base_ref: null # exact logical base ref for effective-delta-v1
44
+ # implementation_fingerprint: null # new generations use sha256:effective-delta-v1:<digest>
45
+ # freshness_head: null # rolling accepted tree checkpoint
46
+ # freshness_fingerprint: null # full effective delta at freshness_head
44
47
  # launch_state: not_started # not_started | intent_persisted | accepted | result_persisted | not_accepted
45
48
  # launch_attempt_id: null
46
49
  # launch_started_at: null
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAehB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyFpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,mCAAmC,EAAE,OAAO,mCAAmC,CAAC;IAChF,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AA6kED,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAehB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmGpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,mCAAmC,EAAE,OAAO,mCAAmC,CAAC;IAChF,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AA61ED,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}