@open-agent-toolkit/cli 0.3.15 → 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.
- package/assets/NOTICES.md +48 -0
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/provider-sync/commands.md +21 -0
- package/assets/docs/reference/cli-reference.md +2 -1
- package/assets/docs/reference/configuration.md +10 -2
- package/assets/docs/skills/index.md +1 -0
- package/assets/docs/skills/recon.md +8 -5
- package/assets/docs/workflows/advanced/autonomy.md +10 -0
- package/assets/docs/workflows/advanced/workflow-gates.md +109 -10
- package/assets/docs/workflows/approvals-and-automation.md +3 -1
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +62 -1
- package/assets/docs/workflows/projects/execution/implementation-execution.md +23 -3
- package/assets/docs/workflows/projects/execution/project-log.md +6 -0
- package/assets/docs/workflows/projects/lifecycle.md +7 -0
- package/assets/docs/workflows/projects/reviews/index.md +63 -1
- package/assets/docs/workflows/waves/wave-workflows.md +11 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-autonomous/SKILL.md +1 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +172 -165
- package/assets/skills/oat-project-complete-auto/SKILL.md +388 -0
- package/assets/skills/oat-project-document/SKILL.md +1 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-implement/SKILL.md +6 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +28 -1
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-implement/references/docs/complexity-review-fallback.md +262 -0
- package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +18 -0
- package/assets/skills/oat-project-lite/SKILL.md +1 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-next/SKILL.md +19 -2
- package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-pr-final/SKILL.md +4 -3
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-progress/SKILL.md +15 -1
- package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-quick-start/SKILL.md +31 -3
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +172 -165
- package/assets/skills/oat-project-quick-start/references/docs/complexity-review-fallback.md +262 -0
- package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +80 -0
- package/assets/skills/oat-project-review-receive/SKILL.md +21 -3
- package/assets/skills/oat-project-review-receive/references/docs/complexity-review-fallback.md +262 -0
- package/assets/skills/oat-wave-execute/SKILL.md +49 -28
- package/assets/skills/oat-wave-program/SKILL.md +15 -6
- package/assets/skills/oat-wrap-up/SKILL.md +9 -3
- package/assets/skills/oat-wrap-up/references/report-template.md +1 -1
- package/assets/skills/recon/SKILL.md +1 -1
- package/assets/skills/recon/references/packet-contract.md +18 -3
- package/assets/skills/recon/scripts/lib/contracts.mjs +16 -2
- package/assets/skills/recon/scripts/reconcile-ledger.mjs +20 -10
- package/assets/skills/recon/scripts/render-packet.mjs +31 -3
- package/assets/skills/recon/scripts/validate-packet.mjs +5 -5
- package/assets/templates/state.md +7 -0
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +13 -0
- package/dist/commands/gate/index.d.ts +5 -0
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +270 -9
- package/dist/commands/shared/frontmatter.d.ts +1 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +1 -0
- package/dist/commands/state/generate.d.ts +1 -1
- package/dist/commands/state/generate.d.ts.map +1 -1
- package/dist/commands/state/generate.js +87 -8
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +31 -5
- package/dist/commands/sync/dry-run.d.ts.map +1 -1
- package/dist/commands/sync/dry-run.js +28 -11
- package/dist/commands/sync/sync.utils.d.ts +13 -0
- package/dist/commands/sync/sync.utils.d.ts.map +1 -1
- package/dist/commands/sync/sync.utils.js +21 -1
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +1 -0
- package/dist/config/oat-config.d.ts +1 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +3 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +1 -0
- package/dist/drift/detector.js +6 -6
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +87 -2
- package/dist/engine/engine.types.d.ts +10 -1
- package/dist/engine/engine.types.d.ts.map +1 -1
- package/dist/engine/engine.types.js +4 -0
- package/dist/engine/execute-plan.d.ts.map +1 -1
- package/dist/engine/execute-plan.js +42 -5
- package/dist/engine/managed-copy-hash.d.ts +4 -3
- package/dist/engine/managed-copy-hash.d.ts.map +1 -1
- package/dist/engine/managed-copy-hash.js +4 -3
- package/dist/fs/assets.d.ts.map +1 -1
- package/dist/fs/assets.js +7 -1
- package/dist/manifest/hash.d.ts +8 -10
- package/dist/manifest/hash.d.ts.map +1 -1
- package/dist/ui/output.js +1 -1
- package/dist/validation/skills.d.ts.map +1 -1
- package/dist/validation/skills.js +13 -0
- 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.
|
|
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.
|
|
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
|