@open-agent-toolkit/cli 0.3.14 → 0.3.16

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 (110) hide show
  1. package/assets/NOTICES.md +48 -0
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/contributing/markdown-features.md +38 -0
  4. package/assets/docs/contributing/smoke-testing.md +20 -13
  5. package/assets/docs/docs-tooling/workflows.md +26 -19
  6. package/assets/docs/getting-started/concepts.md +35 -21
  7. package/assets/docs/provider-sync/commands.md +21 -0
  8. package/assets/docs/provider-sync/manifest-and-drift.md +24 -17
  9. package/assets/docs/reference/cli-reference.md +2 -1
  10. package/assets/docs/reference/configuration.md +10 -2
  11. package/assets/docs/reference/project-state-machine.md +27 -20
  12. package/assets/docs/skills/index.md +1 -0
  13. package/assets/docs/skills/recon.md +8 -5
  14. package/assets/docs/workflows/advanced/autonomy.md +10 -0
  15. package/assets/docs/workflows/advanced/evidence-layers.md +19 -12
  16. package/assets/docs/workflows/advanced/orchestration-model.md +48 -34
  17. package/assets/docs/workflows/advanced/workflow-gates.md +109 -10
  18. package/assets/docs/workflows/approvals-and-automation.md +3 -1
  19. package/assets/docs/workflows/ideas/lifecycle.md +32 -25
  20. package/assets/docs/workflows/projects/closeout/closeout-skills.md +62 -1
  21. package/assets/docs/workflows/projects/execution/implementation-execution.md +67 -33
  22. package/assets/docs/workflows/projects/execution/project-log.md +6 -0
  23. package/assets/docs/workflows/projects/lifecycle.md +119 -63
  24. package/assets/docs/workflows/projects/reviews/index.md +63 -1
  25. package/assets/docs/workflows/projects/reviews/review-flavors.md +30 -23
  26. package/assets/docs/workflows/waves/wave-workflows.md +11 -3
  27. package/assets/public-package-versions.json +4 -4
  28. package/assets/skills/oat-project-autonomous/SKILL.md +1 -1
  29. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +172 -165
  30. package/assets/skills/oat-project-complete-auto/SKILL.md +388 -0
  31. package/assets/skills/oat-project-document/SKILL.md +1 -1
  32. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +172 -165
  33. package/assets/skills/oat-project-implement/SKILL.md +6 -1
  34. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +28 -1
  35. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +172 -165
  36. package/assets/skills/oat-project-implement/references/docs/complexity-review-fallback.md +262 -0
  37. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +80 -0
  38. package/assets/skills/oat-project-implement/references/phase-execution.md +18 -0
  39. package/assets/skills/oat-project-lite/SKILL.md +1 -1
  40. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +172 -165
  41. package/assets/skills/oat-project-next/SKILL.md +19 -2
  42. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +80 -0
  43. package/assets/skills/oat-project-pr-final/SKILL.md +4 -3
  44. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +172 -165
  45. package/assets/skills/oat-project-progress/SKILL.md +15 -1
  46. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +80 -0
  47. package/assets/skills/oat-project-quick-start/SKILL.md +31 -3
  48. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +172 -165
  49. package/assets/skills/oat-project-quick-start/references/docs/complexity-review-fallback.md +262 -0
  50. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +80 -0
  51. package/assets/skills/oat-project-review-receive/SKILL.md +21 -3
  52. package/assets/skills/oat-project-review-receive/references/docs/complexity-review-fallback.md +262 -0
  53. package/assets/skills/oat-wave-execute/SKILL.md +49 -28
  54. package/assets/skills/oat-wave-program/SKILL.md +15 -6
  55. package/assets/skills/oat-wrap-up/SKILL.md +9 -3
  56. package/assets/skills/oat-wrap-up/references/report-template.md +1 -1
  57. package/assets/skills/recon/SKILL.md +1 -1
  58. package/assets/skills/recon/references/packet-contract.md +18 -3
  59. package/assets/skills/recon/scripts/lib/contracts.mjs +16 -2
  60. package/assets/skills/recon/scripts/reconcile-ledger.mjs +20 -10
  61. package/assets/skills/recon/scripts/render-packet.mjs +31 -3
  62. package/assets/skills/recon/scripts/validate-packet.mjs +5 -5
  63. package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
  64. package/assets/templates/docs-app-fuma/app/globals.css +1 -0
  65. package/assets/templates/state.md +7 -0
  66. package/dist/commands/config/index.d.ts.map +1 -1
  67. package/dist/commands/config/index.js +13 -0
  68. package/dist/commands/gate/index.d.ts +5 -0
  69. package/dist/commands/gate/index.d.ts.map +1 -1
  70. package/dist/commands/gate/index.js +270 -9
  71. package/dist/commands/shared/frontmatter.d.ts +1 -1
  72. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  73. package/dist/commands/shared/frontmatter.js +1 -0
  74. package/dist/commands/state/generate.d.ts +1 -1
  75. package/dist/commands/state/generate.d.ts.map +1 -1
  76. package/dist/commands/state/generate.js +87 -8
  77. package/dist/commands/sync/apply.d.ts.map +1 -1
  78. package/dist/commands/sync/apply.js +31 -5
  79. package/dist/commands/sync/dry-run.d.ts.map +1 -1
  80. package/dist/commands/sync/dry-run.js +28 -11
  81. package/dist/commands/sync/sync.utils.d.ts +13 -0
  82. package/dist/commands/sync/sync.utils.d.ts.map +1 -1
  83. package/dist/commands/sync/sync.utils.js +21 -1
  84. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  85. package/dist/commands/tools/shared/pack-manifest.js +1 -0
  86. package/dist/config/oat-config.d.ts +1 -0
  87. package/dist/config/oat-config.d.ts.map +1 -1
  88. package/dist/config/oat-config.js +3 -0
  89. package/dist/config/resolve.d.ts.map +1 -1
  90. package/dist/config/resolve.js +1 -0
  91. package/dist/drift/detector.js +6 -6
  92. package/dist/engine/compute-plan.d.ts.map +1 -1
  93. package/dist/engine/compute-plan.js +87 -2
  94. package/dist/engine/engine.types.d.ts +10 -1
  95. package/dist/engine/engine.types.d.ts.map +1 -1
  96. package/dist/engine/engine.types.js +4 -0
  97. package/dist/engine/execute-plan.d.ts.map +1 -1
  98. package/dist/engine/execute-plan.js +42 -5
  99. package/dist/engine/managed-copy-hash.d.ts +4 -3
  100. package/dist/engine/managed-copy-hash.d.ts.map +1 -1
  101. package/dist/engine/managed-copy-hash.js +4 -3
  102. package/dist/fs/assets.d.ts.map +1 -1
  103. package/dist/fs/assets.js +7 -1
  104. package/dist/manifest/hash.d.ts +8 -10
  105. package/dist/manifest/hash.d.ts.map +1 -1
  106. package/dist/release/public-package-contract.js +1 -1
  107. package/dist/ui/output.js +1 -1
  108. package/dist/validation/skills.d.ts.map +1 -1
  109. package/dist/validation/skills.js +13 -0
  110. 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, Bash(git:*), Bash(oat:*), AskUserQuestion
7
7
  metadata:
8
- version: 1.4.3
8
+ version: 1.4.4
9
9
  ---
10
10
 
11
11
  # Progress Router
@@ -179,6 +179,8 @@ Read `{project}/state.md` frontmatter:
179
179
  - `oat_hill_completed` - Completed HiLL checkpoints
180
180
  - `oat_skill_gate_overrides` - Configured lifecycle gates this project
181
181
  deliberately disabled, keyed by gate-aware skill name
182
+ - `oat_implement_exit_gate` - The implementation exit gate record
183
+ - `oat_quick_start_gate` - The quick-start plan gate record
182
184
 
183
185
  **Display format:**
184
186
 
@@ -191,6 +193,8 @@ Read `{project}/state.md` frontmatter:
191
193
  Completed: {oat_hill_completed as checkmarks}
192
194
  HiLL Pending: {yes/no for current phase}
193
195
  Gate Overrides: {gate-aware skill keys from oat_skill_gate_overrides, or "None"}
196
+ Quick-Start Gate: {status}/{disposition}, decided {decided_at}, fingerprint {config_fingerprint} (as recorded), or "None"
197
+ Exit Gate: {status}/{disposition} as recorded, or "None"
194
198
  Blockers: {oat_blockers or "None"}
195
199
  Next: {recommended_skill}
196
200
  ```
@@ -203,6 +207,16 @@ even when no gate is currently configured for that skill, and never infer a
203
207
  configured gate from an override alone. This is read-only reporting: never add,
204
208
  remove, or repair the map here.
205
209
 
210
+ Both gate records share the core defined in
211
+ `references/docs/gate-approval-record.md`. Report a quick-start record as that
212
+ doc describes: its stored fields as recorded, with `config_fingerprint` shown as
213
+ provenance and never recomputed, or `malformed` when its fields do not form a
214
+ valid record. Report the exit-gate
215
+ record's `status` and `disposition` as recorded; its freshness belongs to the
216
+ implementation workflow and is not re-derived here. Either record adds no route
217
+ and no warning: quick plan readiness stays the single routing rule for quick
218
+ plans. Show "None" for an absent record, and never write or repair one here.
219
+
206
220
  ### Step 5: Determine Next Skill
207
221
 
208
222
  Based on project state, recommend next action.
@@ -0,0 +1,80 @@
1
+ # Lifecycle Gate Approval Record
2
+
3
+ A configured lifecycle gate ends in an outcome the operator or a later session
4
+ needs to see again: it passed, it warned, the operator explicitly continued
5
+ past a failure, the project disabled it, or it blocked. Chat output does not
6
+ survive the session, so the skill that runs the gate persists the outcome in
7
+ project `state.md`. This document defines the record's shared core once; each
8
+ carrier names where it lives and what it adds.
9
+
10
+ ## Core record
11
+
12
+ ```yaml
13
+ <carrier>:
14
+ status: allowed # allowed | blocked
15
+ disposition: passed # passed | warned | prompt_approved | project_disabled; null when blocked
16
+ config_fingerprint: '<stable hash of the resolved gate declaration>'
17
+ reviewed_head: '<full SHA of the commit the gate reviewed>'
18
+ decided_at: '2026-10-02T15:20:00Z'
19
+ ```
20
+
21
+ - `status`: `allowed` | `blocked`.
22
+ - `disposition`: `passed`, `warned`, `prompt_approved`, or `project_disabled`
23
+ when `status` is `allowed`; `null` when `status` is `blocked`.
24
+ - `config_fingerprint`: the writer's stable hash of the resolved gate
25
+ declaration it ran (command, description, `onFailure`, `maxAttempts`, and the
26
+ project override state), recorded as provenance. Implement recomputes its own
27
+ carrier's fingerprint under its Step 14 rules; quick-start readers do not.
28
+ - `reviewed_head`: the full 40-character SHA of the commit the gate reviewed,
29
+ recorded as provenance. `null` when no gate ran.
30
+ - `decided_at`: the ISO 8601 UTC time the outcome was decided. A record written
31
+ before `decided_at` existed is not malformed for that reason alone.
32
+
33
+ ## Write rules
34
+
35
+ | Gate outcome | Record |
36
+ | --------------------------------------------------------------- | ----------------------------------------------------------- |
37
+ | Passed its threshold | `allowed` / `passed` |
38
+ | Failed under `onFailure: warn` | `allowed` / `warned` |
39
+ | Failed under `onFailure: prompt`, operator explicitly continued | `allowed` / `prompt_approved` |
40
+ | Failed under `onFailure: prompt`, operator declined or deferred | `blocked` / `null` |
41
+ | `block` still failing after `maxAttempts` | `blocked` / `null` |
42
+ | Configured but disabled by project override (no launch) | `allowed` / `project_disabled` |
43
+ | Launch, transport, validation, or receive failure | `blocked` / `null` |
44
+ | Not configured | no record (quick-start); implement writes `allowed/no_gate` |
45
+
46
+ Only an explicit operator continuation writes `prompt_approved`. Declining,
47
+ deferring, giving no response, or running under `OAT_AUTONOMOUS=1` writes
48
+ `blocked`, never anything that reads as approval. A rerun of the same gate
49
+ replaces the record.
50
+
51
+ ## Carriers
52
+
53
+ - **`oat_implement_exit_gate`** (`oat-project-implement`,
54
+ `references/completion-and-closeout.md` Step 14) uses this core and keeps its
55
+ additional values and fields there: the `pending` and `stale` statuses, the
56
+ `no_gate` disposition, and the resolution, attempt, launch, receive, waiver,
57
+ and freshness fields. Its own effective-delta freshness rule decides whether a
58
+ record is current.
59
+ - **`oat_quick_start_gate`** (`oat-project-quick-start`, Gate Execution) carries
60
+ exactly the core.
61
+
62
+ ## Reading a quick-start record
63
+
64
+ Readers report a quick-start record as recorded and do not recompute
65
+ `config_fingerprint`: no CLI emits a canonical fingerprint for the quick-start
66
+ gate, so a recomputation could not be reproduced across sessions. They do not
67
+ route on the record either.
68
+
69
+ - Report `status`, `disposition`, `decided_at`, and `config_fingerprint` (as
70
+ provenance) exactly as stored.
71
+ - Report the record as malformed when `status` and `disposition` do not form
72
+ one of the combinations in the write rules, or when a present `decided_at` is
73
+ not a valid ISO 8601 UTC time.
74
+ - `reviewed_head` is provenance only and is not compared with `HEAD`, because
75
+ the quick-start completion step commits after the gate.
76
+ - An absent record means none was written: no gate was configured, the gate
77
+ has not reached an outcome, or the plan predates the record. Readers do not
78
+ infer which.
79
+
80
+ Readers never write, repair, or infer a record.
@@ -5,9 +5,9 @@ argument-hint: '<project-name> ["project description"]'
5
5
  oat_gateable: true
6
6
  disable-model-invocation: true
7
7
  user-invocable: true
8
- allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
8
+ allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
9
9
  metadata:
10
- version: 2.3.17
10
+ version: 2.3.18
11
11
  ---
12
12
 
13
13
  # Quick Start Project
@@ -846,7 +846,7 @@ as the last check before plan and project completion:
846
846
 
847
847
  Handle all three `resolution` values explicitly:
848
848
  - `not_configured`: no gate is configured; proceed directly to the completion steps in Step 3.7 below.
849
- - `configured_disabled_by_project`: the operator disabled this configured gate for this project. Do not launch any process. Emit `configured but disabled by project override`, including the project path and the `projectOverride` source from the envelope, then proceed directly to the completion steps in Step 3.7 below. A project-disabled gate never enters the passed, missing, or failed branches, and its `configuredGate` is evidence only, never executed.
849
+ - `configured_disabled_by_project`: the operator disabled this configured gate for this project. Do not launch any process. Emit `configured but disabled by project override`, including the project path and the `projectOverride` source from the envelope, write `oat_quick_start_gate` as `allowed/project_disabled` with `reviewed_head: null` per **Persist the gate outcome** below, then proceed directly to the completion steps in Step 3.7 below. A project-disabled gate never enters the passed, missing, or failed branches, and its `configuredGate` is evidence only, never executed.
850
850
  - `configured`: continue with the steps below, executing `effectiveGate` exactly as configured.
851
851
 
852
852
  A null, missing, malformed, or unrecognized result is an operational failure
@@ -891,6 +891,17 @@ as the last check before plan and project completion:
891
891
  - `prompt`: surface the gate failure and ask the human how to proceed.
892
892
  - `warn`: record the gate failure and continue.
893
893
 
894
+ **Complexity review at `maxAttempts`.** When `block` attempts are exhausted,
895
+ dispatch the complexity review that
896
+ `references/docs/complexity-review-fallback.md` defines for the plan bundle
897
+ before escalating, then show its decision message with the accumulated
898
+ feedback; under `OAT_AUTONOMOUS=1`, put the same content in the boundary
899
+ report instead. Record the operator's choice with the report path in
900
+ `implementation.md`. Agents never select the disposition. Only exhausted
901
+ `block` attempts trigger the review. To launch it, load the current
902
+ `oat-project-dispatch-subagents/SKILL.md` and follow it, resolving the route
903
+ as that doc's "Routing outside implement" section describes.
904
+
894
905
  7. Runtime selection note: the review-only declaration carries producer
895
906
  identity, not reviewer runtime identity. By default, `oat gate review` and
896
907
  `oat gate cross-provider-exec` resolve the current host from built-in
@@ -905,6 +916,23 @@ A gate that ends in `block` after attempts are exhausted, or at an unresolved
905
916
  `prompt` boundary, means the completion steps below MUST NOT run; the phase
906
917
  stays `in_progress` and resumable.
907
918
 
919
+ **Persist the gate outcome.** For a configured gate, including one disabled by
920
+ project override, write `oat_quick_start_gate` to `$PROJECT_PATH/state.md` with
921
+ the core fields defined in `references/docs/gate-approval-record.md` once the
922
+ gate reaches its outcome, and commit it with the next quick-start bookkeeping
923
+ commit or before stopping:
924
+
925
+ - passed: `allowed/passed`;
926
+ - `warn` failure: `allowed/warned`;
927
+ - a `prompt` failure the operator explicitly continues past: `allowed/prompt_approved`;
928
+ - a `prompt` failure declined or deferred (every `prompt` failure under
929
+ `OAT_AUTONOMOUS=1`), `block` exhausted after `maxAttempts`, or a launch,
930
+ validation, or receive failure: `blocked` with `disposition: null`;
931
+ - `configured_disabled_by_project`: `allowed/project_disabled` with `reviewed_head: null` and no launch.
932
+
933
+ `not_configured` writes no record. `reviewed_head` is the plan commit the gate
934
+ reviewed and `decided_at` the decision time. A rerun replaces the record. Step 3.7 stays gated by the control flow above and does not read this record back.
935
+
908
936
  ### Step 3.7: Record Review Disposition and Mark Plan Complete
909
937
 
910
938
  Reach this completion boundary only after the configured gate passes or resolves