@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
|
@@ -166,7 +166,7 @@ is evaluated.
|
|
|
166
166
|
- **Passing gate** (no findings at or above the threshold): receive runs a non-pausing **judgment sweep**. It makes a per-finding decision for each Medium/Low — defer to final review (the default, recorded so [final review](#phase-and-final-review) resurfaces it), address now (only for small, contained, low-risk fixes, which do **not** re-trigger the standard reviewer or re-gate the phase), or reject with rationale — then archives the artifact. Address-now is an exception, not the norm; if such a fix reveals a Critical/High concern it escalates to the blocking path.
|
|
167
167
|
- **Blocking gate** (one or more findings at or above the threshold): receive converts findings to fix tasks and implementation re-runs the standard reviewer and the gate for the phase. These block → fix → re-gate rounds are bounded by `oat_orchestration_retry_limit` (default `2`); exhausting the bound stops a sequential run or excludes the phase in a parallel group, matching the standard fix loop's terminal handling.
|
|
168
168
|
|
|
169
|
-
Gate-originated artifacts (`oat_review_invocation: gate`) are excluded from the same-scope review-cycle cap in `oat-project-review-receive`. The cap measures failed fix cycles of the standard review loop, so counting gate artifacts would trip it on artifact volume rather than real fix rounds.
|
|
169
|
+
Gate-originated artifacts (`oat_review_invocation: gate`) and saved complexity reports are excluded from the same-scope review-cycle cap in `oat-project-review-receive`. The cap measures failed fix cycles of the standard review loop, so counting gate artifacts would trip it on artifact volume rather than real fix rounds.
|
|
170
170
|
|
|
171
171
|
When a phase is re-gated multiple times, each round produces a distinct review artifact — filenames and `oat_generated_at` are seconds-precision, so rounds never collide and `oat review latest` resolves the newest. An orchestrator should know a gate finished from the `oat --json gate review` result envelope on process exit (`status`, `runId`, `generatedAt`), not by watching the `reviews/` directory or the provider's log; see [Gate completion signal](../../advanced/workflow-gates.md#gate-completion-signal).
|
|
172
172
|
|
|
@@ -226,6 +226,68 @@ Final review `passed` gate requires:
|
|
|
226
226
|
- Deferred Medium findings resurfaced and explicitly dispositioned.
|
|
227
227
|
- Low findings explicitly dispositioned (after plain-language explanation).
|
|
228
228
|
|
|
229
|
+
## Complexity review at budget exhaustion
|
|
230
|
+
|
|
231
|
+
When a review or gate budget runs out, another round of the same review is
|
|
232
|
+
unlikely to converge. Before asking the operator how to proceed, the root
|
|
233
|
+
dispatches one complexity review and shows it together with the reasons the
|
|
234
|
+
loop stopped. The review asks whether the reviewed work, and the machinery the
|
|
235
|
+
findings keep demanding, earns its cost against the contract. It is not
|
|
236
|
+
another correctness review.
|
|
237
|
+
|
|
238
|
+
It runs at every budget-exhaustion point:
|
|
239
|
+
|
|
240
|
+
| Exhaustion point | Owning skill |
|
|
241
|
+
| ------------------------------------------------------------- | ---------------------------- |
|
|
242
|
+
| Phase review fix rounds reach `oat_orchestration_retry_limit` | `oat-project-implement` |
|
|
243
|
+
| A phase review gate still blocks at that limit | `oat-project-implement` |
|
|
244
|
+
| The final review reaches its three-cycle cap | `oat-project-implement` |
|
|
245
|
+
| The implementation exit gate ends in `block` at `maxAttempts` | `oat-project-implement` |
|
|
246
|
+
| A review scope reaches the three-cycle cap | `oat-project-review-receive` |
|
|
247
|
+
| The quick-start plan gate ends in `block` at `maxAttempts` | `oat-project-quick-start` |
|
|
248
|
+
|
|
249
|
+
A single `prompt` failure, a `warn` outcome, and launch or transport failures
|
|
250
|
+
that consume no attempt are not budget exhaustions. The operator can ask for
|
|
251
|
+
the same review at any other time; there is no automatic early trigger.
|
|
252
|
+
|
|
253
|
+
How it runs:
|
|
254
|
+
|
|
255
|
+
- **Probe.** OAT looks for an installed `complexity-review` skill in
|
|
256
|
+
`~/.agents/skills`, then `~/.claude/skills`, then the repository's
|
|
257
|
+
`.agents/skills`. When one is found, the reviewer follows it as a document,
|
|
258
|
+
without asking questions. Otherwise the reviewer follows a condensed method
|
|
259
|
+
bundled with the lifecycle skills: restate the contract from independent
|
|
260
|
+
sources, establish the simplest viable baseline, inventory the machinery,
|
|
261
|
+
apply the deletion test, build a ledger (Item, Claimed value, Evidence,
|
|
262
|
+
Lifecycle cost, Recommendation), and give a verdict of
|
|
263
|
+
`Deletion-rule compliant`, `Partially compliant`, or `Not compliant`.
|
|
264
|
+
- **Read-only reviewer.** One reviewer-class subagent at the resolved reviewer
|
|
265
|
+
ceiling reads the reviewed target, the contract sources (backlog items,
|
|
266
|
+
discovery, spec, design, and decision records), and every review artifact of
|
|
267
|
+
the exhausted loop. It writes nothing and returns its report to the root.
|
|
268
|
+
Outside an implement run (quick-start, or a standalone review-receive), the
|
|
269
|
+
root loads the project dispatch skills and resolves the reviewer ceiling with
|
|
270
|
+
`oat project dispatch-ceiling resolve --role reviewer`.
|
|
271
|
+
- **One review per exhausted loop.** A saved report for the scope that is newer
|
|
272
|
+
than every review artifact of that scope is reused, so re-entering a capped
|
|
273
|
+
receive does not dispatch a second review.
|
|
274
|
+
- **OAT additions.** The report marks rows only the operator can settle as
|
|
275
|
+
`REQUIRES-OPERATOR`, classifies each open finding as an accepted
|
|
276
|
+
requirement, a regression, or new hardening, lists the findings a
|
|
277
|
+
simplification would dissolve, and recommends a disposition: extra cycles,
|
|
278
|
+
proceed with override, corrective revision, or **simplify**.
|
|
279
|
+
- **Decision message.** The root saves the report as
|
|
280
|
+
`reviews/archived/complexity-<scope>-<timestamp>.md` (outside the top-level
|
|
281
|
+
`reviews/` directory, so routers never mistake it for an unprocessed review,
|
|
282
|
+
and outside the review-cycle count), shows one decision message with the
|
|
283
|
+
stop reasons, verdict, dissolvable findings, and operator questions, and
|
|
284
|
+
records the operator's choice with the report path in `implementation.md`.
|
|
285
|
+
|
|
286
|
+
Agents never select the disposition, including the recommended one. Under
|
|
287
|
+
`OAT_AUTONOMOUS=1` the run stops at its boundary report, which carries the same
|
|
288
|
+
content. The condensed method adapts the operator's `complexity-review` skill
|
|
289
|
+
from `tkstang/skills`; see `NOTICES.md`.
|
|
290
|
+
|
|
229
291
|
## Subagent Compatibility
|
|
230
292
|
|
|
231
293
|
`oat-project-review-provide` uses provider-aware subagent dispatch when available. This outer dispatch starts the primary `oat-reviewer`; it is separate from any optional reconnaissance workers that the reviewer may launch after resolving its authoritative review scope:
|
|
@@ -113,7 +113,9 @@ for your approval before the first wave starts. When the final wave merges,
|
|
|
113
113
|
the skill stops at one human-gated checkpoint that asks whether to run the
|
|
114
114
|
deferred completion tail (archive, S3 upload, and active-project clear) for
|
|
115
115
|
every wave's wrapper project; autonomous runs never answer that question
|
|
116
|
-
themselves.
|
|
116
|
+
themselves. On yes, it runs `oat-project-complete-auto` once in batch mode;
|
|
117
|
+
a wrapper the companion refuses keeps its deferral, and the report names its
|
|
118
|
+
next step (usually completing it with `oat-project-complete`).
|
|
117
119
|
|
|
118
120
|
**Example scenario:** Twelve reviewed external plans include a shared API
|
|
119
121
|
foundation, client changes, and independent documentation work. Use `new` to
|
|
@@ -173,7 +175,10 @@ closeout it archives the wave's backlog items with `oat backlog archive` and
|
|
|
173
175
|
runs the configured closeout sequence (which can open the PR). It then stops
|
|
174
176
|
once at a HiLL (human-in-the-loop) approval checkpoint before running the
|
|
175
177
|
`oat-project-complete` process, including project archive and any configured
|
|
176
|
-
S3 upload.
|
|
178
|
+
S3 upload. Under autonomous execution it runs that process through the
|
|
179
|
+
`oat-project-complete-auto` companion, which needs
|
|
180
|
+
`workflow.autonomousComplete: true` and records a completion-before-merge
|
|
181
|
+
exception for the open wave PR. After you merge the wave, it resets the working branch, deletes
|
|
177
182
|
stale phase branches, and runs `oat-wave-program wave-close`. Merging the wave
|
|
178
183
|
into `main` stays your decision.
|
|
179
184
|
|
|
@@ -192,7 +197,10 @@ presented as proof the integrated tree passes.
|
|
|
192
197
|
|
|
193
198
|
Closeout writes end-of-run synthesis before archive work. Autonomous execution
|
|
194
199
|
can defer a wrapper's archive tail to program close only with an explicit
|
|
195
|
-
ledger disposition
|
|
200
|
+
ledger disposition, and only when the companion refuses for a deferrable
|
|
201
|
+
reason (the opt-in is off, the PR precondition is unmet, or a completion
|
|
202
|
+
question has no recorded answer); any other refusal stops closeout at a
|
|
203
|
+
boundary. That deferral does not satisfy the full completion tail.
|
|
196
204
|
Source-plan requirements remain intact even when live drift changes a mechanism.
|
|
197
205
|
|
|
198
206
|
**Next step:** Follow the wave's reported review and merge boundary. After the
|