@open-agent-toolkit/cli 0.1.55 → 0.1.59

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 (40) hide show
  1. package/assets/agents/oat-phase-implementer.md +195 -238
  2. package/assets/docs/cli-utilities/configuration.md +7 -6
  3. package/assets/docs/contributing/index.md +1 -0
  4. package/assets/docs/contributing/smoke-testing.md +284 -0
  5. package/assets/docs/provider-sync/providers.md +11 -11
  6. package/assets/docs/provider-sync/scope-and-surface.md +2 -2
  7. package/assets/docs/workflows/projects/dispatch-ceiling.md +29 -26
  8. package/assets/docs/workflows/projects/evidence-layers.md +123 -0
  9. package/assets/docs/workflows/projects/implementation-execution.md +160 -406
  10. package/assets/docs/workflows/projects/index.md +8 -0
  11. package/assets/docs/workflows/projects/orchestration-model.md +190 -0
  12. package/assets/docs/workflows/projects/programmatic-execution.md +137 -0
  13. package/assets/docs/workflows/projects/review-flavors.md +129 -0
  14. package/assets/public-package-versions.json +4 -4
  15. package/assets/skills/oat-agent-instructions-analyze/references/docs/provider-reference.md +5 -4
  16. package/assets/skills/oat-agent-instructions-apply/references/docs/provider-reference.md +5 -4
  17. package/assets/skills/oat-dispatch-subagents/SKILL.md +6 -1
  18. package/assets/skills/oat-dispatch-subagents/references/record-schema.md +5 -0
  19. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +37 -15
  20. package/assets/skills/oat-project-implement/SKILL.md +63 -1904
  21. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +431 -0
  22. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +715 -0
  23. package/assets/skills/oat-project-implement/references/phase-execution.md +270 -0
  24. package/assets/skills/oat-project-implement/references/plan-and-resume.md +279 -0
  25. package/assets/skills/oat-project-import-plan/SKILL.md +16 -8
  26. package/assets/skills/oat-project-plan/SKILL.md +15 -7
  27. package/assets/skills/oat-project-plan-writing/SKILL.md +74 -40
  28. package/assets/skills/oat-project-quick-start/SKILL.md +16 -8
  29. package/assets/skills/oat-project-review-provide/SKILL.md +8 -5
  30. package/assets/skills/oat-worktree-bootstrap/SKILL.md +22 -12
  31. package/assets/skills/oat-worktree-bootstrap/references/worktree-conventions.md +8 -8
  32. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +233 -44
  33. package/dist/commands/doctor/index.d.ts.map +1 -1
  34. package/dist/commands/doctor/index.js +7 -4
  35. package/dist/commands/gate/index.d.ts +9 -1
  36. package/dist/commands/gate/index.d.ts.map +1 -1
  37. package/dist/commands/gate/index.js +62 -2
  38. package/dist/commands/project/dispatch-ceiling/index.js +2 -2
  39. package/package.json +4 -4
  40. package/assets/skills/oat-worktree-bootstrap-auto/scripts/bootstrap.sh +0 -236
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan-writing
3
- version: 1.2.9
3
+ version: 1.2.12
4
4
  description: Use when authoring or mutating plan.md in any OAT workflow. Defines canonical format invariants — stable task IDs, required sections, review table rules, and resume guardrails.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -23,6 +23,21 @@ This is a sub-phase indicator; the calling skill owns the top-level banner.
23
23
 
24
24
  - When invoked by a calling skill, print the sub-banner immediately before plan authoring begins.
25
25
 
26
+ ## Shared Subagent Dispatch Contract
27
+
28
+ Before every artifact self-review dispatch, read and follow
29
+ `.agents/skills/oat-project-dispatch-subagents/SKILL.md`, which then requires
30
+ `.agents/skills/oat-dispatch-subagents/SKILL.md`. This explicit two-skill load
31
+ is mandatory; do not rely on ambient skill discovery. Planning self-review
32
+ inherits the planning parent by default. The shared contracts own any
33
+ catalog-aware exception, launch acceptance boundary, and dispatch record; this
34
+ skill continues to own plan readiness and review disposition.
35
+
36
+ After resolving the review provider, read exactly one active-provider
37
+ reference from `.agents/skills/oat-dispatch-subagents/references/`
38
+ (`provider-cursor.md`, `provider-codex.md`, or `provider-claude.md`). Do not
39
+ merge provider mechanics.
40
+
26
41
  ## Managed Dispatch Readiness and Review Contract
27
42
 
28
43
  All plan-producing workflows and their artifact reviews use this contract:
@@ -83,40 +98,58 @@ scope.
83
98
 
84
99
  ### Reviewer Ceiling Contract
85
100
 
86
- A managed active-provider result is runnable only when the resolver returns
87
- concrete native dispatch controls or an explicit deferred cross-harness target.
88
- Otherwise treat the active-provider reviewer contract as unresolved.
89
- Reviewer resolution uses the final candidate of the configured review ceiling:
90
- call `--role reviewer` without an ephemeral implementer candidate request.
91
- Do not select a lower candidate for artifact, phase, project, or final review
92
- unless a separate reviewed contract explicitly authorizes reviewer lowering and
93
- defines its bounds. A `## Dispatch Profile` row alone is not such a contract.
94
-
95
- Bind every concrete managed reviewer target to the actual provider
96
- invocation before probing generic reviewer availability or selecting an
97
- execution tier. That target takes precedence over every availability, tier,
98
- timeout, and inline fallback.
99
- A concrete managed Codex target takes precedence over tier availability.
100
-
101
- - Codex: use the exact registered reviewer variant returned by
102
- `providers.codex.dispatchArgs.variant` when the host can select that role.
103
- If the exact role is unavailable or the current host cannot select it,
104
- launch a fresh Codex child with the resolver target's explicit model,
105
- reasoning effort, and canonical role instructions from
106
- `.agents/agents/oat-reviewer.md`. If the fresh child cannot preserve the
107
- target, use only a verified-equivalent inline route or block the review.
101
+ A managed active-provider result is runnable only when the resolver identifies
102
+ the final candidate of the configured review ceiling. Call `--role reviewer`
103
+ without an ephemeral implementer candidate request. Use that result as the
104
+ planning-parent capability threshold, not as an unconditional child pin.
105
+
106
+ The default planning auto-review route is deliberate parent inheritance:
107
+
108
+ 1. Read launcher-owned evidence for the planning parent's configured model and
109
+ effort.
110
+ 2. Compare it with the resolved ceiling target on the provider's independent
111
+ axes.
112
+ 3. When the parent is known at or above the ceiling, omit the child model,
113
+ record `selection_reason: inherit`, and preserve the parent evidence.
114
+ 4. When the parent is unknown or below the ceiling, select the concrete ceiling
115
+ target before launch as the fail-closed exception below.
116
+
117
+ Do not assume parent strength from self-report. Do not select a lower candidate
118
+ for an exception. A `## Dispatch Profile` row alone cannot authorize reviewer
119
+ lowering; only a separate reviewed contract may define a bounded lower
120
+ candidate exception.
121
+
122
+ For the exception route, bind every concrete managed reviewer target to the
123
+ actual provider invocation before probing generic reviewer availability or
124
+ selecting execution mechanics. A concrete managed Codex target takes precedence
125
+ over generic tier availability.
126
+
127
+ - Codex: when the resolver returns a materialized
128
+ `providers.codex.dispatchArgs.variant`, first launch that exact registered
129
+ reviewer variant as native `agent_type`. Only a recorded actual pre-start
130
+ native role-selection rejection permits a fresh Codex child with the resolver
131
+ target's explicit model, reasoning effort, and canonical role instructions
132
+ from `.agents/agents/oat-reviewer.md`. A separately pre-selected CLI route is
133
+ allowed only when native dispatch cannot express the complete target and no
134
+ child has started. If another route cannot preserve the target, use only a
135
+ verified-equivalent inline route or block the review.
108
136
  - Claude: require a non-empty `providers.claude.dispatchArgs.model` and put
109
137
  that exact value in the actual provider invocation as its `model` argument.
110
138
  - Cursor: treat `providers.cursor.dispatchArgs.model` as opaque and put that
111
139
  exact, unnormalized string in the actual provider invocation as its `model`
112
140
  argument.
113
141
 
114
- Build the actual host invocation payload before declaring the target enforced.
115
- On timeout, retry, or artifact rewrite/re-dispatch, reuse the same exact role or
116
- complete provider payload, including the exact model argument. If the host
117
- cannot apply the required role or model argument, fail closed or block unless
118
- the guarded inline-equivalence rule below applies. Never continue through a
119
- generic tier fallback.
142
+ If the host cannot apply, pass, or bind the required exception role/model
143
+ controls, fail closed or block unless verified equivalent inline controls are
144
+ already established.
145
+
146
+ Build the actual host invocation payload before declaring the exception target
147
+ enforced. If the accepted reviewer does not conclude, continue, poll, or nudge
148
+ the same child handle. A terminal timeout blocks or escalates without another
149
+ launch. Only explicit pre-start rejection permits a new recorded selection.
150
+ After an artifact rewrite following a completed review, the next review is a
151
+ new attempt and reuses the same deliberate inheritance or exact exception
152
+ policy. Never continue through a generic tier fallback.
120
153
 
121
154
  Workflow correctness must not require provider restart or hot reload.
122
155
  Runtime materialization may be best effort, but it is not the correctness
@@ -125,10 +158,10 @@ unavailable in the current session. Base Codex roles are allowed only for
125
158
  explicit inherit/default behavior and the documented managed-uncapped reviewer
126
159
  fallback.
127
160
 
128
- Inline review of a concrete managed target is permitted only after verifying
129
- equivalent current-host model and effort controls. Otherwise inline or base
130
- execution is limited to explicit inherit/default behavior or the documented
131
- managed-uncapped reviewer fallback.
161
+ Inline review of a concrete managed exception target is permitted only with
162
+ verified equivalent current-host model and effort controls. The default
163
+ inheritance route may review inline because the planning parent is the selected
164
+ reviewer context.
132
165
 
133
166
  The Auto Artifact-Review Loop below consumes this reviewer dispatch contract.
134
167
  Tier selection happens only after the target-preserving route is known and
@@ -269,11 +302,11 @@ Use this loop after an artifact has been written and before the calling skill ha
269
302
  - The bound controls rewrite/re-dispatch cycles after the initial review. A bound of `0` still permits the initial structured review, then surfaces residual findings without retrying.
270
303
 
271
304
  3. **Dispatch `oat-reviewer` in structured mode**
272
- - When the resolver returned a concrete managed Codex target, use its exact registered reviewer or a fresh child pinned to the same model, effort, and canonical instructions. If neither is possible, run inline only with verified equivalent current-host controls; otherwise block.
273
- - When the resolver returned a concrete managed Claude or Cursor target, require `providers.claude.dispatchArgs.model` or `providers.cursor.dispatchArgs.model` respectively and pass that exact value in the actual provider invocation's `model` argument. Cursor values are opaque and must not be normalized. If the host cannot apply the model argument, fail closed unless inline execution has verified equivalent controls.
274
- - For explicit inherit/default behavior or the documented managed-uncapped reviewer fallback, Tier 1 uses the configured `oat-reviewer` subagent when available and authorized; Tier 2 may run the same reviewer prompt inline.
305
+ - Default: after the parent-at-or-above-ceiling check succeeds, omit the child model deliberately and record `selection_reason: inherit`. Tier 1 uses the configured `oat-reviewer` subagent; Tier 2 runs the same structured prompt in the planning parent.
306
+ - Exception: when the planning parent is unknown or below the ceiling, use the resolver's concrete ceiling target. Codex uses its exact registered reviewer or a fresh child pinned to the same model, effort, and canonical instructions after pre-start role rejection. Claude or Cursor requires the exact `providers.<provider>.dispatchArgs.model` value on the actual invocation; Cursor values remain opaque. If the host cannot preserve that target, block unless inline execution has verified equivalent controls.
307
+ - If an accepted child does not conclude, continue only through its existing handle. A terminal timeout blocks or escalates and cannot launch a replacement child.
275
308
  - Always set `oat_output_mode: structured`; the loop consumes `StructuredFindings` in-memory and the reviewer writes no artifact.
276
- - Do not downgrade the resolved target or checklist when changing execution mechanics.
309
+ - Do not downgrade the selected inheritance/exception policy or checklist when changing execution mechanics.
277
310
 
278
311
  4. **Apply or offer fixes by severity**
279
312
  - If the structured review is clean, proceed to outcome recording.
@@ -282,7 +315,7 @@ Use this loop after an artifact has been written and before the calling skill ha
282
315
  - If a finding cannot be fixed within the artifact boundary, preserve it as residual and surface it before handoff.
283
316
 
284
317
  5. **Rewrite and re-dispatch within the bound**
285
- - After applying fixes, rewrite the artifact and re-dispatch `oat-reviewer` with the same complete target payload, including the exact Claude or Cursor `dispatchArgs.model` argument.
318
+ - After applying fixes, rewrite the artifact and start a new review attempt with the same deliberate inheritance policy or complete exception payload, including any exact Claude or Cursor `dispatchArgs.model` argument.
286
319
  - Each rewrite/re-dispatch cycle consumes one retry.
287
320
  - Stop when the reviewer returns no findings or when the retry bound is exhausted.
288
321
 
@@ -330,8 +363,9 @@ Additional frontmatter keys (`oat_phase`, `oat_phase_status`, `oat_blockers`, `o
330
363
  `## Dispatch Profile` is optional and should be omitted by default. A profile
331
364
  may narrow a phase to a named ceiling at or below the project ceiling. The
332
365
  named ceiling is a maximum candidate tier, not an exact model-family or effort
333
- preference; the later coordinator chooses exact task targets from the complete
334
- configured ladder.
366
+ preference; the implementation root chooses one exact phase-implementer target
367
+ from the complete configured ladder. Optional nested work resolves separately
368
+ only when the phase implementer justifies and launches it.
335
369
 
336
370
  Only include the section when the user has explicit constraints or preferences. Routine hand-tuning can be worse than runtime selection because the orchestrator has fresher phase context and host capability information at dispatch time.
337
371
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-quick-start
3
- version: 2.1.14
3
+ version: 2.1.15
4
4
  description: Use when a task is small enough for quick mode or rapid iteration is preferred. Scaffolds a lightweight OAT project from discovery directly to a runnable plan, with optional brainstorming and lightweight design.
5
5
  argument-hint: '<project-name> ["project description"]'
6
6
  oat_gateable: true
@@ -608,13 +608,21 @@ Apply the shared loop exactly:
608
608
 
609
609
  - Resolve `workflow.autoArtifactReview.plan`; only an explicit `false` skips the loop.
610
610
  - Resolve `oat_orchestration_retry_limit` from project state, defaulting to `2`.
611
- - For a concrete managed target, dispatch the exact registered reviewer role. If the host cannot select it, launch a fresh Codex child pinned to the resolved model and reasoning effort with the canonical reviewer instructions.
612
- - For Claude or Cursor, pass the exact resolver-returned
613
- `providers.<provider>.dispatchArgs.model` as the actual invocation's model
614
- argument. Preserve the same complete payload on timeout and retry; Cursor
615
- strings remain opaque.
616
- - Run inline only with verified equivalent current-host model and effort controls, or for explicit inherit/default behavior or the managed-uncapped reviewer exception. If none applies, fail closed before artifact review.
617
- - If the reviewer times out or does not conclude, poll and nudge once, then retry the same exact role or pinned child within the retry bound. If that target-preserving retry still fails, fail closed; never downgrade the review to inline.
611
+ - Review in the current planning parent by deliberate inheritance by default.
612
+ Do not launch a managed child unless launcher-owned evidence identifies that
613
+ parent as unknown or below the resolved reviewer ceiling.
614
+ - For that exception only, apply the shared concrete target contract. A Codex
615
+ materialized variant must first be launched as the exact native `agent_type`;
616
+ only a recorded actual pre-start role-selection rejection permits a fresh
617
+ child pinned to the resolved model and effort. Claude and Cursor use the
618
+ exact resolver-returned `providers.<provider>.dispatchArgs.model` value;
619
+ Cursor strings remain opaque.
620
+ - After acceptance, poll, nudge, or continue only through the existing reviewer
621
+ handle. A terminal timeout blocks or escalates without another launch.
622
+ Replacement eligibility is limited to explicit pre-start rejection.
623
+ - Run an exception inline only with verified equivalent current-host model and
624
+ effort controls. Default inherited review runs in the planning parent. If
625
+ neither route applies, fail closed before artifact review.
618
626
  - Apply Critical and Important artifact-local fixes when unambiguous; offer Medium and Minor fixes instead of silently applying them.
619
627
  - Re-dispatch after rewrites until clean or the retry bound is exhausted.
620
628
  - Update the `plan` artifact row in the `## Reviews` table to `passed` when clean. If residual findings remain, preserve the row and surface the residual findings before downstream handoff.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-review-provide
3
- version: 1.3.14
3
+ version: 1.3.15
4
4
  description: Use when the user explicitly asks to review an OAT project — e.g. "review project", "review the project", "run project review", or confirms a previously offered review. Do NOT auto-invoke on completed work alone. Resolves a project review scope and offers before running.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -588,10 +588,13 @@ terminal blocking review outcome: it blocks the review and does not invoke or
588
588
  trigger the fresh-child fallback. Absent findings from that terminal must not
589
589
  be parsed, interpreted, or treated as a passing review.
590
590
 
591
- On timeout or retry, reuse the same exact role or complete invocation payload,
592
- including the Claude or Cursor model argument. If the host cannot apply a
593
- required role or model argument, fail closed or block unless inline execution
594
- has verified equivalent current-host controls.
591
+ Before acceptance, an explicit transport or role-selection rejection may retry
592
+ with the same exact role and complete invocation payload, including the Claude
593
+ or Cursor model argument. After acceptance, poll, nudge, or continue only
594
+ through the existing reviewer handle. Terminal timeout, interruption, or
595
+ `BLOCKED` blocks or escalates without another launch. If the host cannot apply
596
+ a required role or model argument before launch, fail closed or block unless
597
+ inline execution has verified equivalent current-host controls.
595
598
  Workflow correctness must not require provider restart or hot reload.
596
599
  Never use a managed base role because a target is missing or unavailable; a
597
600
  managed base role is forbidden except for
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-worktree-bootstrap
3
- version: 1.2.0
3
+ version: 1.2.1
4
4
  description: Use when creating or resuming a git worktree for OAT implementation. Creates or validates a worktree and runs OAT bootstrap checks.
5
5
  argument-hint: '<branch-name> [--base <ref>] [--path <root>] [--existing]'
6
6
  disable-model-invocation: true
@@ -15,7 +15,8 @@ Create or resume a git worktree and prepare it for OAT development.
15
15
  ## Prerequisites
16
16
 
17
17
  - Git repository is clean enough to create/switch worktrees.
18
- - Node.js and pnpm are available in the target environment.
18
+ - The toolchain required by the repository is available in the target
19
+ environment.
19
20
  - OAT project files exist (`.oat/`, `.agents/`).
20
21
 
21
22
  ## Mode Assertion
@@ -166,21 +167,30 @@ oat local sync "{target-path}" 2>/dev/null || true
166
167
  - Non-blocking: if sync fails or no `localPaths` are configured, bootstrap continues.
167
168
  - Does not overwrite existing paths in the target (use `--force` to override).
168
169
 
169
- ### Step 3: Run OAT Bootstrap
170
+ ### Step 3: Resolve and Run the Repository Bootstrap
170
171
 
171
- Run bootstrap and readiness checks in the target worktree:
172
+ Resolve setup from repository context; do not assume Node.js, pnpm, or any
173
+ other ecosystem:
172
174
 
173
- ```bash
174
- pnpm run worktree:init
175
- oat status --scope project
176
- pnpm test
177
- git status --porcelain
178
- ```
175
+ 1. Read the applicable agent instructions and contributing/setup guidance.
176
+ 2. Inspect repository task definitions, manifests, and lockfiles.
177
+ 3. Prefer an explicit worktree bootstrap command when the repository declares
178
+ one. For example, this repository documents a `worktree:init` script and its
179
+ package-manager invocation in `AGENTS.md` and `package.json`.
180
+ 4. If no command exists, derive the minimum safe setup needed for a fresh
181
+ worktree from repository context: dependency setup, generated files, build,
182
+ and any required local configuration.
183
+ 5. State the exact selected commands and evidence before executing them.
184
+
185
+ Run the selected bootstrap command, then the repository's documented readiness
186
+ check and a proportionate baseline verification. Run `oat status --scope
187
+ project` when the initialized repository contains an OAT project. Finish with
188
+ `git status --porcelain`.
179
189
 
180
190
  Required behavior:
181
191
 
182
- - Stop immediately if `worktree:init` or `status` fails.
183
- - If `pnpm test` fails:
192
+ - Stop immediately if the selected bootstrap or required status check fails.
193
+ - If the selected baseline verification fails:
184
194
  - show a concise failure summary
185
195
  - ask the user whether to `abort` or `proceed anyway`
186
196
  - if user proceeds:
@@ -24,14 +24,14 @@ For relative paths, resolve from repository root.
24
24
 
25
25
  ## Baseline Readiness
26
26
 
27
- Run baseline commands before reporting ready:
28
-
29
- ```bash
30
- pnpm run worktree:init
31
- oat status --scope project
32
- pnpm test
33
- git status --porcelain
34
- ```
27
+ Before reporting ready, resolve the repository's bootstrap contract from its
28
+ agent instructions, setup/contributing guidance, task definitions, manifests,
29
+ and lockfiles. Prefer an explicit worktree bootstrap command. If none exists,
30
+ derive the minimum safe setup for a fresh worktree from that context.
31
+
32
+ Do not assume a package manager, dependency strategy, build command, or test
33
+ command. Record the selected bootstrap and verification commands, run a
34
+ proportionate baseline check, and finish with `git status --porcelain`.
35
35
 
36
36
  If checks fail, stop and report exact remediation.
37
37