@open-agent-toolkit/cli 0.2.1 → 0.2.3

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 (24) hide show
  1. package/assets/docs/cli-utilities/workflow-gates.md +69 -8
  2. package/assets/docs/workflows/projects/autonomy.md +20 -6
  3. package/assets/docs/workflows/projects/implementation-execution.md +46 -0
  4. package/assets/docs/workflows/projects/lifecycle.md +29 -6
  5. package/assets/public-package-versions.json +4 -4
  6. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +145 -139
  7. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +145 -139
  8. package/assets/skills/oat-project-implement/SKILL.md +4 -2
  9. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +387 -58
  10. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +145 -139
  11. package/assets/skills/oat-project-next/SKILL.md +59 -18
  12. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +145 -139
  13. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +145 -139
  14. package/assets/skills/oat-wave-execute/SKILL.md +40 -2
  15. package/assets/skills/oat-wave-execute/assets/program-recap.recipe.json +34 -0
  16. package/assets/skills/oat-wave-program/SKILL.md +41 -1
  17. package/assets/templates/state.md +32 -0
  18. package/dist/commands/gate/index.d.ts +1 -0
  19. package/dist/commands/gate/index.d.ts.map +1 -1
  20. package/dist/commands/gate/index.js +5 -1
  21. package/dist/commands/shared/frontmatter.d.ts +1 -1
  22. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  23. package/dist/commands/shared/frontmatter.js +1 -0
  24. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-wave-execute
3
- version: 1.5.0
3
+ version: 1.6.1
4
4
  description: Use when executing a wave of external implementation plans as a wrapper OAT project — scaffolding, drift refresh, parallel worktree groups, briefs, gates, merge choreography, and closeout.
5
5
  argument-hint: '<wave-id> [plan-names...] (e.g. wave-2 http-listener-before-indexing ...)'
6
6
  disable-model-invocation: false
@@ -24,6 +24,21 @@ Historical `DR-*` and `BL-*` slugs in this skill (including the provenance
24
24
  record above) are evidence citations in the source program's repository; they
25
25
  are not required artifacts in the consuming repo.
26
26
 
27
+ ## Progress Indicators (User-Facing)
28
+
29
+ Print this banner once when execution starts:
30
+
31
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
32
+ OAT ▸ WAVE EXECUTE
33
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
+
35
+ - Before each major boundary, report the current step: preflight, drift refresh,
36
+ wrapper scaffold, group dispatch, integration gate, or closeout.
37
+ - For parallel groups, report accepted lane IDs once, then summarize outcomes
38
+ after all lanes return; do not stream every worker action.
39
+ - Surface STOP conditions immediately with the blocked lane, durable evidence,
40
+ and exact resume action.
41
+
27
42
  ## Ownership Boundary
28
43
 
29
44
  **This skill owns (mechanical):** integration/phase branch naming, worktree
@@ -303,7 +318,30 @@ archive anything first.
303
318
  branch vs main; cherry-pick stragglers), reset the working branch, clean stale
304
319
  phase branches, and run `oat-wave-program` `wave-close <wave-id>` so the
305
320
  program ledger records the merge (PR, SHA, completion-record link) and flips
306
- the wave's plan rows to `done`.
321
+ the wave's plan rows to `done`. Optionally generate the program recap using
322
+ the mechanical explainer caller below.
323
+
324
+ #### Optional program-recap explainer caller
325
+
326
+ The orchestrator owns fact-base synthesis. It synthesizes an
327
+ `explainer-kit.fact-base/v1` document from the reconciled execution-program
328
+ artifact, wave summaries, and completion records. Its required keys are exactly:
329
+ `schemaVersion, generatedAt, mode, freshnessPolicy, sources, claims, unresolvedClaims, overrides`.
330
+
331
+ The mechanical caller constructs an `explainer-kit.run-request/v1` document whose
332
+ required keys are exactly:
333
+ `schemaVersion, recipe, slug, outputRoot, factBase, mode`. Set `recipe` to
334
+ `{ "id": "program-recap", "version": "1" }`; this is an object with exactly
335
+ `id` and `version`. Set `outputRoot` to `.oat/repo/explainers/<slug>/`. Bind the
336
+ synthesized fact-base file through `factBase` with the required keys
337
+ `mode, freshnessPolicy`, set `mode` to `"supplied"`, set `freshnessPolicy` to
338
+ `"live-wins"`, and set `path` to that file.
339
+
340
+ After the run, read the `explainer-kit.manifest/v1` document. Its required keys
341
+ are exactly:
342
+ `schemaVersion, runId, slug, recipe, createdAt, source, theme, artifacts, immutableHashes, outcome, buildRecord, warnings`.
343
+ Record the manifest's `runId` and `outcome` in the wave ledger row. Publishing is
344
+ human-gated; this caller never invokes publish.
307
345
 
308
346
  ## Success Criteria
309
347
 
@@ -0,0 +1,34 @@
1
+ {
2
+ "schemaVersion": "explainer-kit.recipe/v1",
3
+ "id": "program-recap",
4
+ "version": "1",
5
+ "sourceRoles": [
6
+ {
7
+ "role": "program",
8
+ "required": true,
9
+ "accepts": ["file", "directory", "git"],
10
+ "minBindings": 1,
11
+ "maxBindings": 1
12
+ }
13
+ ],
14
+ "requiredNarrative": [
15
+ "program-overview",
16
+ "wave-map",
17
+ "per-wave-outcomes",
18
+ "convention-evolution",
19
+ "aggregate-numbers",
20
+ "follow-up-ledger"
21
+ ],
22
+ "artifacts": [
23
+ {
24
+ "id": "program-recap",
25
+ "type": "hub",
26
+ "template": "house-style",
27
+ "required": true
28
+ }
29
+ ],
30
+ "discoveryLimits": {
31
+ "consecutiveNoNewFindingsRounds": 2,
32
+ "maxRounds": 8
33
+ }
34
+ }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-wave-program
3
- version: 1.1.0
3
+ version: 1.2.1
4
4
  description: Use when decomposing a corpus of external implementation plans into an ordered wave program — coverage inventory, dependency mapping, wave composition, and the durable execution-program artifact that oat-wave-execute consumes and updates.
5
5
  argument-hint: '[new|refresh|wave-close <wave-id>] (default: refresh against the current artifact)'
6
6
  disable-model-invocation: false
@@ -16,6 +16,21 @@ waves, and keep that mapping durable and current as waves complete.
16
16
  `oat-wave-execute` runs ONE wave; this skill records and maintains the
17
17
  orchestrator-composed, operator-approved mapping of WHICH plans form each wave.
18
18
 
19
+ ## Progress Indicators (User-Facing)
20
+
21
+ Print this banner once when the selected mode starts:
22
+
23
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
24
+ OAT ▸ WAVE PROGRAM
25
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
26
+
27
+ - Report the active boundary: inventory, dependency mapping, composition
28
+ checkpoint, coverage validation, or wave-close ledger update.
29
+ - Present the composed wave map before its required operator checkpoint; do not
30
+ narrate every file read.
31
+ - Surface missing plans, coverage mismatches, and frozen-wave conflicts
32
+ immediately with the exact artifact or row that blocks progress.
33
+
19
34
  ## Ownership Boundary
20
35
 
21
36
  **This skill owns (mechanical):** the execution-program artifact contract and its
@@ -89,6 +104,31 @@ target (same disclaimer as the plan indexes).
89
104
  2. Update the status ledger row: PR, merge SHA, completion-record link.
90
105
  3. Note next-wave unblocks ("W3 merged → W4 token-cost unblocked").
91
106
  4. Commit with the wave's closeout bookkeeping.
107
+ 5. Optionally run the mechanical program-recap explainer caller described below,
108
+ then add its manifest `runId` and `outcome` to the wave ledger row.
109
+
110
+ ### Program-close explainer caller
111
+
112
+ At wave-close or program-close, the orchestrator owns fact-base synthesis. It
113
+ synthesizes an `explainer-kit.fact-base/v1` document from the reconciled
114
+ execution-program artifact, wave summaries, and completion records. Its required
115
+ keys are exactly:
116
+ `schemaVersion, generatedAt, mode, freshnessPolicy, sources, claims, unresolvedClaims, overrides`.
117
+
118
+ The mechanical caller constructs an `explainer-kit.run-request/v1` document whose
119
+ required keys are exactly:
120
+ `schemaVersion, recipe, slug, outputRoot, factBase, mode`. Set `recipe` to
121
+ `{ "id": "program-recap", "version": "1" }`; this is an object with exactly
122
+ `id` and `version`. Set `outputRoot` to `.oat/repo/explainers/<slug>/`. Bind the
123
+ synthesized fact-base file through `factBase` with the required keys
124
+ `mode, freshnessPolicy`, set `mode` to `"supplied"`, set `freshnessPolicy` to
125
+ `"live-wins"`, and set `path` to that file.
126
+
127
+ After the run, read the `explainer-kit.manifest/v1` document. Its required keys
128
+ are exactly:
129
+ `schemaVersion, runId, slug, recipe, createdAt, source, theme, artifacts, immutableHashes, outcome, buildRecord, warnings`.
130
+ Record the manifest's `runId` and `outcome` in the wave or program ledger row.
131
+ Publishing is human-gated; this caller never invokes publish.
92
132
 
93
133
  ## Integration with `oat-wave-execute`
94
134
 
@@ -29,6 +29,38 @@ oat_phase_status: in_progress # Status: in_progress | complete | pr_open
29
29
  # oat_dispatch_ceiling: # legacy compatibility alias for capped managed provider targets
30
30
  oat_workflow_mode: { OAT_WORKFLOW_MODE } # spec-driven | quick | import
31
31
  oat_workflow_origin: native # native | imported
32
+ # oat_implement_exit_gate: # optional; durable configured implementation exit-gate state
33
+ # status: pending # pending | allowed | blocked | stale
34
+ # resolution: configured # configured | no_gate
35
+ # disposition: null # null | passed | warned | prompt_approved | no_gate
36
+ # config_fingerprint: '<stable hash of resolved gate declaration>'
37
+ # resolved_command: null
38
+ # resolved_description: null
39
+ # on_failure: block # block | prompt | warn | null
40
+ # max_attempts: 2
41
+ # attempts_completed: 0
42
+ # reviewed_head: null
43
+ # implementation_fingerprint: null
44
+ # launch_state: not_started # not_started | intent_persisted | accepted | result_persisted | not_accepted
45
+ # launch_attempt_id: null
46
+ # launch_started_at: null
47
+ # launch_result_receipt: null
48
+ # gate_run_marker: null
49
+ # gate_run_id: null
50
+ # envelope_status: null # ok | blocked | review_failed | other terminal status
51
+ # artifact: null
52
+ # handoff: null
53
+ # receive_state: not_started # not_started | intent_persisted | completed | reconciliation_required
54
+ # receive_correlation: null
55
+ # receive_source_artifact: null
56
+ # receive_archived_artifact: null
57
+ # receive_event_identity: null
58
+ # receive_pre_head: null
59
+ # receive_commit: null
60
+ # receive_eligible: false
61
+ # receive_completed: false
62
+ # failure: null
63
+ # updated_at: '2026-07-18T00:00:00Z'
32
64
  oat_docs_updated: null # null | skipped | complete — documentation sync status
33
65
  oat_pr_status: null # null | ready | open | closed | merged — actual PR state for the current project
34
66
  oat_pr_url: null # null | string — tracked PR URL when a PR exists
@@ -40,6 +40,7 @@ interface ProcessRunOptions {
40
40
  purpose: 'host-detection' | 'availability' | 'execute';
41
41
  stdin: 'ignore' | 'inherit';
42
42
  stdio: 'ignore' | 'inherit' | 'pipe';
43
+ stdoutDestination?: 'stdout' | 'stderr';
43
44
  timeoutMs: number;
44
45
  }
45
46
  interface ProcessRunResult {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/gate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/gate/index.ts"],"names":[],"mappings":"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"}
@@ -281,7 +281,10 @@ async function runChildProcess(command, args, options) {
281
281
  stdoutBytes += chunk.byteLength;
282
282
  stdoutLineBuffer = scanChunk(stdoutLineBuffer, chunk);
283
283
  recordActivity();
284
- process.stdout.write(chunk);
284
+ const destination = options.stdoutDestination === 'stderr'
285
+ ? process.stderr
286
+ : process.stdout;
287
+ destination.write(chunk);
285
288
  });
286
289
  child.stderr?.on('data', (chunk) => {
287
290
  stderrBytes += chunk.byteLength;
@@ -1190,6 +1193,7 @@ async function executeTarget(selected, prompt, context, dependencies, timeout) {
1190
1193
  purpose: 'execute',
1191
1194
  stdin: 'ignore',
1192
1195
  stdio: 'pipe',
1196
+ stdoutDestination: context.json ? 'stderr' : 'stdout',
1193
1197
  timeoutMs: timeout.timeoutMs,
1194
1198
  });
1195
1199
  }
@@ -1,6 +1,6 @@
1
1
  export declare const PROJECT_STATE_KINDS: readonly ["implementation", "coordination"];
2
2
  export declare const PROJECT_STATE_PHASES: readonly ["discovery", "spec", "design", "plan", "implement", "decomposition"];
3
- export declare const PROJECT_STATE_FRONTMATTER_FIELDS: readonly ["oat_kind", "oat_parent", "oat_siblings", "oat_depends_on", "oat_children", "oat_inherited_context_revalidated", "oat_phase", "oat_phase_status", "oat_status", "oat_workflow_mode", "oat_lifecycle", "oat_current_task", "oat_last_commit", "oat_blockers", "oat_hill_checkpoints", "oat_hill_completed", "oat_parallel_execution", "oat_pr_status", "oat_pr_url", "oat_project_created", "oat_project_completed", "oat_project_state_updated", "oat_docs_updated", "oat_generated", "oat_template", "oat_template_name"];
3
+ export declare const PROJECT_STATE_FRONTMATTER_FIELDS: readonly ["oat_kind", "oat_parent", "oat_siblings", "oat_depends_on", "oat_children", "oat_inherited_context_revalidated", "oat_phase", "oat_phase_status", "oat_status", "oat_workflow_mode", "oat_lifecycle", "oat_current_task", "oat_last_commit", "oat_blockers", "oat_hill_checkpoints", "oat_hill_completed", "oat_parallel_execution", "oat_implement_exit_gate", "oat_pr_status", "oat_pr_url", "oat_project_created", "oat_project_completed", "oat_project_state_updated", "oat_docs_updated", "oat_generated", "oat_template", "oat_template_name"];
4
4
  export type ProjectStateKind = (typeof PROJECT_STATE_KINDS)[number];
5
5
  export type ProjectStatePhase = (typeof PROJECT_STATE_PHASES)[number];
6
6
  export type ProjectStateFrontmatterField = (typeof PROJECT_STATE_FRONTMATTER_FIELDS)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/frontmatter.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,6CAA8C,CAAC;AAE/E,eAAO,MAAM,oBAAoB,gFAOvB,CAAC;AAEX,eAAO,MAAM,gCAAgC,sgBA2BnC,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAE7E;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,4BAA4B,CAIvC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA4BpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/frontmatter.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,6CAA8C,CAAC;AAE/E,eAAO,MAAM,oBAAoB,gFAOvB,CAAC;AAEX,eAAO,MAAM,gCAAgC,iiBA4BnC,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAE7E;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,4BAA4B,CAIvC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA4BpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
@@ -28,6 +28,7 @@ export const PROJECT_STATE_FRONTMATTER_FIELDS = [
28
28
  'oat_hill_checkpoints',
29
29
  'oat_hill_completed',
30
30
  'oat_parallel_execution',
31
+ 'oat_implement_exit_gate',
31
32
  'oat_pr_status',
32
33
  'oat_pr_url',
33
34
  'oat_project_created',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -34,7 +34,7 @@
34
34
  "ora": "^9.0.0",
35
35
  "yaml": "2.8.2",
36
36
  "zod": "^3.25.76",
37
- "@open-agent-toolkit/control-plane": "0.2.1"
37
+ "@open-agent-toolkit/control-plane": "0.2.3"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^22.10.0",