@open-agent-toolkit/cli 0.2.58 → 0.2.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.
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/configuration.md +16 -0
- package/assets/docs/cli-utilities/workflow-gates.md +88 -3
- package/assets/docs/contributing/skills.md +27 -5
- package/assets/docs/provider-sync/commands.md +23 -0
- package/assets/docs/workflows/projects/autonomy.md +5 -2
- package/assets/docs/workflows/projects/dispatch-ceiling.md +43 -7
- package/assets/docs/workflows/projects/implementation-execution.md +5 -2
- package/assets/docs/workflows/projects/lifecycle.md +4 -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 +45 -38
- package/assets/skills/oat-project-design/SKILL.md +10 -5
- package/assets/skills/oat-project-discover/SKILL.md +10 -5
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +45 -38
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +43 -9
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +14 -8
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +45 -38
- package/assets/skills/oat-project-import-plan/SKILL.md +29 -4
- package/assets/skills/oat-project-next/SKILL.md +29 -2
- package/assets/skills/oat-project-plan/SKILL.md +29 -4
- package/assets/skills/oat-project-plan-writing/SKILL.md +95 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +45 -38
- package/assets/skills/oat-project-progress/SKILL.md +12 -1
- package/assets/skills/oat-project-quick-start/SKILL.md +29 -4
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +45 -38
- package/assets/skills/oat-project-review-provide/SKILL.md +13 -6
- package/assets/skills/oat-project-review-provide-remote/SKILL.md +12 -5
- package/assets/templates/state.md +4 -1
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +102 -8
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +16 -1
- package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
- package/dist/commands/project/dispatch-ceiling/index.js +10 -1
- package/dist/commands/remove/skill/remove-skill.d.ts.map +1 -1
- package/dist/commands/remove/skill/remove-skill.js +10 -1
- package/dist/commands/shared/frontmatter.d.ts +32 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +92 -0
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +8 -1
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +40 -6
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +11 -17
- package/dist/commands/sync/sync.types.d.ts +6 -6
- package/dist/commands/sync/sync.types.d.ts.map +1 -1
- package/dist/config/resolve.d.ts +16 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +16 -8
- package/dist/engine/execute-plan.d.ts.map +1 -1
- package/dist/engine/execute-plan.js +6 -0
- package/dist/manifest/index.d.ts +2 -1
- package/dist/manifest/index.d.ts.map +1 -1
- package/dist/manifest/index.js +1 -1
- package/dist/manifest/manager.d.ts +40 -0
- package/dist/manifest/manager.d.ts.map +1 -1
- package/dist/manifest/manager.js +35 -0
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-import-plan
|
|
3
|
-
version: 1.4.
|
|
3
|
+
version: 1.4.13
|
|
4
4
|
description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
|
|
5
5
|
argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
|
|
6
6
|
oat_gateable: true
|
|
@@ -307,6 +307,25 @@ This Phase gate review setup is independent from HiLL checkpoints. Do not read o
|
|
|
307
307
|
change HiLL fields here, and do not add a provider/model `--target` to any
|
|
308
308
|
lifecycle command.
|
|
309
309
|
|
|
310
|
+
### Step 4.35: Configure Lifecycle Gate Posture
|
|
311
|
+
|
|
312
|
+
After normalization has produced stable phase IDs and before Step 4.5 starts
|
|
313
|
+
the import-aware plan artifact review, invoke the `Shared Lifecycle Gate Posture Setup Contract` from
|
|
314
|
+
`oat-project-plan-writing`: load the current
|
|
315
|
+
`oat-project-plan-writing/SKILL.md` and follow that contract as written. This
|
|
316
|
+
runs adjacent to, but independently from, the phase gate review setup above.
|
|
317
|
+
|
|
318
|
+
If `"$PROJECT_PATH/state.md"` already contains an explicit
|
|
319
|
+
`oat_skill_gate_overrides` map, preserve it through the shared contract without
|
|
320
|
+
probing, prompting, or mutation. Otherwise let the contract probe the configured
|
|
321
|
+
gate-aware skills and offer a keep-or-disable choice for each configured gate
|
|
322
|
+
independently.
|
|
323
|
+
|
|
324
|
+
Persist only disabled choices, and only in `"$PROJECT_PATH/state.md"`. Keeping
|
|
325
|
+
every gate leaves the map absent. Never modify the shared, local, or user
|
|
326
|
+
configuration layers, and never prompt or write a new map in non-interactive
|
|
327
|
+
mode.
|
|
328
|
+
|
|
310
329
|
### Step 4.5: Run Import-Aware Plan Artifact Review Loop
|
|
311
330
|
|
|
312
331
|
Before dispatching the artifact reviewer, invoke the `Managed Dispatch
|
|
@@ -452,13 +471,19 @@ fi
|
|
|
452
471
|
|
|
453
472
|
Before reporting this skill as complete, run the configured gate as the final step after artifact review, state sync, dashboard refresh, and the import artifact commit:
|
|
454
473
|
|
|
455
|
-
1. Resolve the gate for this skill:
|
|
474
|
+
1. Resolve the gate for this skill with project context:
|
|
456
475
|
|
|
457
476
|
```bash
|
|
458
|
-
oat gate resolve <this-skill> --json
|
|
477
|
+
oat gate resolve <this-skill> --project "$PROJECT_PATH" --json
|
|
459
478
|
```
|
|
460
479
|
|
|
461
|
-
|
|
480
|
+
Handle all three `resolution` values explicitly:
|
|
481
|
+
- `not_configured`: no gate is configured; the skill is complete.
|
|
482
|
+
- `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 the skill is complete. A project-disabled gate never enters the passed, missing, or failed branches, and its `configuredGate` is evidence only, never executed.
|
|
483
|
+
- `configured`: continue with the steps below, executing `effectiveGate` exactly as configured.
|
|
484
|
+
|
|
485
|
+
A null, missing, malformed, or unrecognized result is an operational failure
|
|
486
|
+
that fails closed as unresolved. Never treat it as "no gate configured."
|
|
462
487
|
|
|
463
488
|
2. Export the resolved project path into the command shell:
|
|
464
489
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-next
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.14
|
|
4
4
|
description: Use when continuing work on the active OAT project. Reads project state, determines the next lifecycle action, and invokes the appropriate skill automatically.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
@@ -302,7 +302,8 @@ unresolved or stale — resume with `oat-project-implement` before
|
|
|
302
302
|
post-implementation routing."
|
|
303
303
|
|
|
304
304
|
Only an `allowed` and fresh exit-gate disposition falls through to the normal
|
|
305
|
-
post-implementation checks.
|
|
305
|
+
post-implementation checks. Every other combination keeps its current
|
|
306
|
+
fail-closed routing.
|
|
306
307
|
|
|
307
308
|
Validate freshness from the complete persisted transition, not from `status`
|
|
308
309
|
alone:
|
|
@@ -316,6 +317,32 @@ alone:
|
|
|
316
317
|
`implementation_fingerprint`, configured gate-run provenance, and any eligible
|
|
317
318
|
receive durably completed. Qualified state also requires the complete rolling
|
|
318
319
|
freshness fields.
|
|
320
|
+
- `allowed/configured` with `disposition: project_disabled` is the third valid
|
|
321
|
+
combination. Null gate-run and artifact provenance is required here, not
|
|
322
|
+
merely tolerated: nothing launched, so any non-null launch provenance is
|
|
323
|
+
contradictory and fails closed. It additionally requires a matching
|
|
324
|
+
`config_fingerprint`, `reviewed_head`, and `implementation_fingerprint`, a
|
|
325
|
+
`project_override` sub-record recording the disabled value and its
|
|
326
|
+
`state.md:oat_skill_gate_overrides` source, and the same rolling-freshness
|
|
327
|
+
rules as every other allowed result. The complete accepted shape is
|
|
328
|
+
`resolved_command` set to the configured command, `launch_state:
|
|
329
|
+
not_started`, null `launch_attempt_id`, `launch_started_at`,
|
|
330
|
+
`launch_result_receipt`, `gate_run_marker`, `gate_run_id`, `envelope_status`,
|
|
331
|
+
`artifact`, and `handoff`, plus `receive_state: not_started`,
|
|
332
|
+
`receive_correlation`, `receive_source_artifact`,
|
|
333
|
+
`receive_archived_artifact`, `receive_event_identity`, `receive_pre_head`,
|
|
334
|
+
and `receive_commit` all null, `receive_eligible: false`,
|
|
335
|
+
`receive_completed: false`, `attempts_completed: 0`, and `failure: null`.
|
|
336
|
+
Any populated launch, receive, attempt, or failure field contradicts a gate
|
|
337
|
+
that never ran and fails closed.
|
|
338
|
+
- Because the override lives in the state carrier the implementation
|
|
339
|
+
fingerprint excludes, a persisted `project_disabled` result is never accepted
|
|
340
|
+
on its stored value alone. Re-resolve the gate with project context and
|
|
341
|
+
require that the current resolution is still `configured_disabled_by_project`
|
|
342
|
+
and that `config_fingerprint` recomputed from that current resolution equals
|
|
343
|
+
the persisted one. A re-enabled gate changes the resolution and the
|
|
344
|
+
fingerprint, so an override-era transition routes as stale and a fresh
|
|
345
|
+
configured run is required.
|
|
319
346
|
- `pending`, `blocked`, malformed, contradictory, or legacy-absent state never
|
|
320
347
|
falls through. Pending and blocked generations resume their persisted
|
|
321
348
|
configuration; configuration-fingerprint mismatch fails closed.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-plan
|
|
3
|
-
version: 1.4.
|
|
3
|
+
version: 1.4.8
|
|
4
4
|
description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
|
|
5
5
|
oat_gateable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -483,6 +483,25 @@ This Phase gate review setup is independent from HiLL checkpoints. Do not read o
|
|
|
483
483
|
change HiLL fields here, and do not add a provider/model `--target` to any
|
|
484
484
|
lifecycle command.
|
|
485
485
|
|
|
486
|
+
### Step 12.35: Configure Lifecycle Gate Posture
|
|
487
|
+
|
|
488
|
+
After the confirmed plan has stable phase IDs and before Step 12.5 starts the
|
|
489
|
+
plan artifact review, invoke the `Shared Lifecycle Gate Posture Setup Contract` from
|
|
490
|
+
`oat-project-plan-writing`: load the current
|
|
491
|
+
`oat-project-plan-writing/SKILL.md` and follow that contract as written. This
|
|
492
|
+
runs adjacent to, but independently from, the phase gate review setup above.
|
|
493
|
+
|
|
494
|
+
If `"$PROJECT_PATH/state.md"` already contains an explicit
|
|
495
|
+
`oat_skill_gate_overrides` map, preserve it through the shared contract without
|
|
496
|
+
probing, prompting, or mutation. Otherwise let the contract probe the configured
|
|
497
|
+
gate-aware skills and offer a keep-or-disable choice for each configured gate
|
|
498
|
+
independently.
|
|
499
|
+
|
|
500
|
+
Persist only disabled choices, and only in `"$PROJECT_PATH/state.md"`. Keeping
|
|
501
|
+
every gate leaves the map absent. Never modify the shared, local, or user
|
|
502
|
+
configuration layers, and never prompt or write a new map in non-interactive
|
|
503
|
+
mode.
|
|
504
|
+
|
|
486
505
|
### Step 12.5: Run Plan Artifact Review Loop
|
|
487
506
|
|
|
488
507
|
Before dispatching the artifact reviewer, invoke the `Managed Dispatch
|
|
@@ -540,13 +559,19 @@ Apply the shared loop exactly:
|
|
|
540
559
|
After the plan artifact is finalized and reviewed, run the configured gate as
|
|
541
560
|
the last check before the completion boundary:
|
|
542
561
|
|
|
543
|
-
1. Resolve the gate for this skill:
|
|
562
|
+
1. Resolve the gate for this skill with project context:
|
|
544
563
|
|
|
545
564
|
```bash
|
|
546
|
-
oat gate resolve <this-skill> --json
|
|
565
|
+
oat gate resolve <this-skill> --project "$PROJECT_PATH" --json
|
|
547
566
|
```
|
|
548
567
|
|
|
549
|
-
|
|
568
|
+
Handle all three `resolution` values explicitly:
|
|
569
|
+
- `not_configured`: no gate is configured; proceed directly to the completion steps in Step 13 below.
|
|
570
|
+
- `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 13 below. A project-disabled gate never enters the passed, missing, or failed branches, and its `configuredGate` is evidence only, never executed.
|
|
571
|
+
- `configured`: continue with the steps below, executing `effectiveGate` exactly as configured.
|
|
572
|
+
|
|
573
|
+
A null, missing, malformed, or unrecognized result is an operational failure
|
|
574
|
+
that fails closed as unresolved. Never treat it as "no gate configured."
|
|
550
575
|
|
|
551
576
|
2. Export the resolved project path into the command shell:
|
|
552
577
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-plan-writing
|
|
3
|
-
version: 1.2.
|
|
3
|
+
version: 1.2.22
|
|
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
|
|
@@ -403,6 +403,100 @@ This setup is independent from HiLL checkpoints. It must not read or change
|
|
|
403
403
|
choice is offered; normal lifecycle gate commands remain provider-neutral.
|
|
404
404
|
They must not add a provider/model `--target` argument.
|
|
405
405
|
|
|
406
|
+
## Shared Lifecycle Gate Posture Setup Contract
|
|
407
|
+
|
|
408
|
+
Every plan-producing workflow invokes this procedure after the complete plan
|
|
409
|
+
has stable phase IDs and before the plan artifact review begins, which is the
|
|
410
|
+
same boundary the phase gate review setup uses. It runs adjacent to, but
|
|
411
|
+
independently from, that setup: neither contract reads, writes, or
|
|
412
|
+
satisfies the other's setting. The calling skill owns the prompt and the write
|
|
413
|
+
to `"$PROJECT_PATH/state.md"`; this section owns the shared eligibility,
|
|
414
|
+
preservation, validation, and non-interactive behavior.
|
|
415
|
+
|
|
416
|
+
This contract governs the configured lifecycle gates declared with
|
|
417
|
+
`oat_gateable: true` in skill frontmatter. It never reads or writes
|
|
418
|
+
`oat_phase_review_gate`, HiLL policy, or any autonomous design-gate setting.
|
|
419
|
+
|
|
420
|
+
### 1. Preserve an explicit existing map
|
|
421
|
+
|
|
422
|
+
Inspect `"$PROJECT_PATH/state.md"` frontmatter before probing configuration. If
|
|
423
|
+
an explicit `oat_skill_gate_overrides` key is present, preserve the complete
|
|
424
|
+
value unchanged. Do not probe, prompt, or mutate it. This applies equally to
|
|
425
|
+
resumed and imported projects. Report:
|
|
426
|
+
|
|
427
|
+
```text
|
|
428
|
+
Lifecycle gate posture: preserved existing oat_skill_gate_overrides setting.
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
A malformed map is never silently repaired, replaced, or dropped. Stop and
|
|
432
|
+
report the offending project state path so the operator can correct it.
|
|
433
|
+
|
|
434
|
+
### 2. Probe configured gate-aware skills
|
|
435
|
+
|
|
436
|
+
When no explicit map exists, probe each gate-aware skill read-only. The probe
|
|
437
|
+
resolves configuration and never launches a gate:
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
oat gate resolve <gate-aware-skill> --project "$PROJECT_PATH" --json
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
A gate qualifies for a choice only when `resolution` is literally `configured`.
|
|
444
|
+
`not_configured` means no gate is configured for that skill: offer no choice and
|
|
445
|
+
never fabricate configuration from an override alone.
|
|
446
|
+
|
|
447
|
+
If the probe fails, emit exactly this concise warning and continue planning
|
|
448
|
+
without writing a map:
|
|
449
|
+
|
|
450
|
+
```text
|
|
451
|
+
Warning: Lifecycle gate posture probe failed; configured gates remain enabled.
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
If no gate is configured, emit:
|
|
455
|
+
|
|
456
|
+
```text
|
|
457
|
+
Lifecycle gate posture: no configured lifecycle gates; nothing to disable.
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### 3. Offer one choice per configured gate
|
|
461
|
+
|
|
462
|
+
When at least one gate is configured and an interactive user-response channel is
|
|
463
|
+
available, present each configured gate separately and let the user keep or
|
|
464
|
+
disable it independently. Granularity is per skill; no single answer disables
|
|
465
|
+
every gate at once.
|
|
466
|
+
|
|
467
|
+
For each configured gate, show the skill name, its configured command, and the
|
|
468
|
+
config source reported by the probe, then offer exactly these outcomes:
|
|
469
|
+
|
|
470
|
+
1. **Keep** - run this configured gate for this project.
|
|
471
|
+
2. **Disable** - skip this configured gate for this project only.
|
|
472
|
+
|
|
473
|
+
Persist only the disabled choices, as a strict map whose sole permitted value is
|
|
474
|
+
the literal `disabled`:
|
|
475
|
+
|
|
476
|
+
```yaml
|
|
477
|
+
oat_skill_gate_overrides:
|
|
478
|
+
oat-project-implement: disabled
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
Keeping every gate leaves the map absent; an explicitly empty map is equivalent.
|
|
482
|
+
Never write an `enabled` value, a boolean, or a list. Write the map only to
|
|
483
|
+
`"$PROJECT_PATH/state.md"`; the shared, local, and user configuration layers are
|
|
484
|
+
never modified. Disabling here records project posture, not gate outcome: it
|
|
485
|
+
never marks a gate passed, failed, or missing.
|
|
486
|
+
|
|
487
|
+
### 4. Handle non-interactive planning
|
|
488
|
+
|
|
489
|
+
Non-interactive mode includes `OAT_NON_INTERACTIVE=1` and any environment with
|
|
490
|
+
no user-response channel. Never prompt in this mode, and never write a new map,
|
|
491
|
+
even when configured gates exist. Leave the setting absent and emit:
|
|
492
|
+
|
|
493
|
+
```text
|
|
494
|
+
Lifecycle gate posture: configured gates unchanged (non-interactive; no selection recorded).
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
An explicit map that already exists is still preserved unchanged in this mode
|
|
498
|
+
under section 1.
|
|
499
|
+
|
|
406
500
|
## Auto Artifact-Review Loop
|
|
407
501
|
|
|
408
502
|
This is the canonical contract for bounded automated reviews of generated OAT artifacts. Calling skills own the concrete edits, progress indicators, and commits; this section defines the shared loop they must follow.
|