@open-agent-toolkit/cli 0.3.13 → 0.3.15
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/README.md +1 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/index.md +14 -1
- package/assets/docs/contributing/markdown-features.md +38 -0
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +23 -16
- package/assets/docs/contributing/updating-model-guidance.md +2 -2
- package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +338 -2
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/getting-started/concepts.md +120 -0
- package/assets/docs/getting-started/index.md +68 -0
- package/assets/docs/getting-started/meta.json +4 -0
- package/assets/docs/getting-started/quickstart.md +174 -0
- package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +25 -2
- package/assets/docs/provider-sync/config.md +60 -1
- package/assets/docs/provider-sync/index.md +31 -15
- package/assets/docs/provider-sync/instruction-sync.md +32 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +92 -0
- package/assets/docs/provider-sync/meta.json +1 -0
- package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
- package/assets/docs/provider-sync/scope-and-surface.md +37 -3
- package/assets/docs/reference/cli-reference.md +33 -33
- package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
- package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
- package/assets/docs/reference/file-locations.md +4 -1
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -1
- package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
- package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +28 -21
- package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
- package/assets/docs/reference/troubleshooting.md +125 -10
- package/assets/docs/reference/what-oat-writes.md +410 -0
- package/assets/docs/skills/brainstorm.md +77 -0
- package/assets/docs/skills/diagnostics.md +56 -0
- package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
- package/assets/docs/skills/index.md +416 -0
- package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
- package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
- package/assets/docs/skills/repo-improve.md +254 -0
- package/assets/docs/skills/research.md +237 -0
- package/assets/docs/skills/session-closeout.md +61 -0
- package/assets/docs/workflows/advanced/autonomy.md +344 -0
- package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
- package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
- package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +20 -13
- package/assets/docs/workflows/advanced/index.md +19 -0
- package/assets/docs/workflows/advanced/meta.json +13 -0
- package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +108 -35
- package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
- package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
- package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
- package/assets/docs/workflows/approvals-and-automation.md +261 -0
- package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
- package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
- package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
- package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
- package/assets/docs/workflows/choose-workflow.md +114 -0
- package/assets/docs/workflows/ideas/index.md +3 -3
- package/assets/docs/workflows/ideas/lifecycle.md +225 -1
- package/assets/docs/workflows/index.md +11 -62
- package/assets/docs/workflows/meta.json +10 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
- package/assets/docs/workflows/projects/closeout/index.md +14 -0
- package/assets/docs/workflows/projects/closeout/meta.json +4 -0
- package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
- package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
- package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +52 -38
- package/assets/docs/workflows/projects/execution/index.md +15 -0
- package/assets/docs/workflows/projects/execution/meta.json +9 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
- package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
- package/assets/docs/workflows/projects/index.md +38 -49
- package/assets/docs/workflows/projects/lifecycle.md +159 -74
- package/assets/docs/workflows/projects/meta.json +2 -23
- package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
- package/assets/docs/workflows/projects/planning/index.md +16 -0
- package/assets/docs/workflows/projects/planning/meta.json +10 -0
- package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
- package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
- package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
- package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
- package/assets/docs/workflows/projects/reviews/meta.json +4 -0
- package/assets/docs/workflows/projects/reviews/review-flavors.md +650 -0
- package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
- package/assets/docs/workflows/waves/index.md +12 -0
- package/assets/docs/workflows/waves/meta.json +4 -0
- package/assets/docs/workflows/waves/wave-workflows.md +206 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs/SKILL.md +19 -19
- package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
- package/assets/skills/oat-docs-apply/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
- package/assets/templates/docs-app-fuma/app/globals.css +1 -0
- package/dist/release/public-package-contract.js +1 -1
- package/package.json +2 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
- package/assets/docs/cli-utilities/index.md +0 -74
- package/assets/docs/cli-utilities/meta.json +0 -13
- package/assets/docs/cli-utilities/remote-project-management.md +0 -191
- package/assets/docs/guide/concepts.md +0 -88
- package/assets/docs/guide/index.md +0 -31
- package/assets/docs/guide/meta.json +0 -4
- package/assets/docs/quickstart.md +0 -88
- package/assets/docs/workflows/projects/autonomy.md +0 -196
- package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
- package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
- package/assets/docs/workflows/projects/review-flavors.md +0 -138
- package/assets/docs/workflows/skills/index.md +0 -184
- package/assets/docs/workflows/skills/repo-improve.md +0 -89
- package/assets/docs/workflows/wave-workflows.md +0 -77
|
@@ -15,13 +15,59 @@ constraints:
|
|
|
15
15
|
- A **phase target** is one exact configured candidate selected at invocation
|
|
16
16
|
time at or below the named maximum. Optional nested work resolves separately.
|
|
17
17
|
|
|
18
|
+
**In short:**
|
|
19
|
+
|
|
20
|
+
- **What this page is for:** choosing the _dispatch policy_, the highest model
|
|
21
|
+
tier (Economy, Balanced, High, or Frontier) that OAT may use when it starts
|
|
22
|
+
agents to implement and review each phase, or no cap, or leaving model choice
|
|
23
|
+
to the provider; and deciding where the list of candidate models (the
|
|
24
|
+
_ladder_) is stored.
|
|
25
|
+
- **Who needs it:** anyone starting a quick, spec-driven, lite, or imported
|
|
26
|
+
project, because planning asks you to choose a policy; and team leads who
|
|
27
|
+
manage model cost.
|
|
28
|
+
- **Know first:** there is no default policy, and a policy set in any config
|
|
29
|
+
file overrides the one each project chose. A tier is a cap: phase agents may
|
|
30
|
+
run below it, but per-phase and final code reviews run on the last model
|
|
31
|
+
listed in the capped tier. Codex and Claude enforce the cap; Cursor pins the model
|
|
32
|
+
but cannot confirm which one ran; other providers treat it as a suggestion.
|
|
33
|
+
- **Decide:** [Which tier for which work](#which-tier-for-which-work),
|
|
34
|
+
[How each provider applies the cap](#how-each-provider-applies-the-cap), and
|
|
35
|
+
[Where the ladder lives](#where-the-ladder-lives). Most other sections are
|
|
36
|
+
the detailed resolution contract.
|
|
37
|
+
|
|
18
38
|
The CLI command remains `oat project dispatch-ceiling resolve` for compatibility.
|
|
19
39
|
Legacy `workflow.dispatchCeiling.*` and `oat_dispatch_ceiling` values remain
|
|
20
40
|
readable, but new projects use ordered candidates plus `oat_dispatch_policy`.
|
|
21
41
|
|
|
22
|
-
For raw config keys, see [Configuration](../../
|
|
42
|
+
For raw config keys, see [Configuration](../../reference/configuration.md).
|
|
23
43
|
For the root-owned phase-agent loop, see
|
|
24
|
-
[Implementation Execution](implementation-execution.md).
|
|
44
|
+
[Implementation Execution](../projects/execution/implementation-execution.md).
|
|
45
|
+
|
|
46
|
+
To pick a tier for a project, start with
|
|
47
|
+
[Which tier for which work](#which-tier-for-which-work) and the rest of
|
|
48
|
+
[Choosing policy and ladder ownership](#choosing-policy-and-ladder-ownership)
|
|
49
|
+
near the end of this page.
|
|
50
|
+
|
|
51
|
+
## How each provider applies the cap
|
|
52
|
+
|
|
53
|
+
The cap is the named ceiling: the highest tier a project or phase may use. A
|
|
54
|
+
provider is the agent tool running OAT. How firmly the cap holds depends on
|
|
55
|
+
the provider:
|
|
56
|
+
|
|
57
|
+
- **Codex: enforced.** OAT launches each phase on an agent role that
|
|
58
|
+
`oat sync` generated, pinned to one model and effort.
|
|
59
|
+
- **Claude: enforced.** OAT launches a generated role pinned to one model and
|
|
60
|
+
effort, or passes the exact model on each call.
|
|
61
|
+
- **Cursor: pinned, not verified.** OAT launches a generated role pinned to
|
|
62
|
+
the mapped model, but Cursor can substitute a different model without an
|
|
63
|
+
error, for example when your plan or account cannot use the pinned one or
|
|
64
|
+
the pin has a typo. OAT records the model it requested, not the model that
|
|
65
|
+
ran.
|
|
66
|
+
- **Other providers: advisory.** OAT has no way to pin a model there, so the
|
|
67
|
+
cap is only a suggestion.
|
|
68
|
+
|
|
69
|
+
The full rules are in [Provider Enforcement](#provider-enforcement) and
|
|
70
|
+
[Cursor evidence authority](#cursor-evidence-authority).
|
|
25
71
|
|
|
26
72
|
## Named Policy Choices
|
|
27
73
|
|
|
@@ -36,8 +82,11 @@ For the root-owned phase-agent loop, see
|
|
|
36
82
|
|
|
37
83
|
A named `High` ceiling therefore keeps configured Economy, Balanced, and High
|
|
38
84
|
candidates eligible and available. It does not pin Sol, `opus`, one Cursor
|
|
39
|
-
string, or one effort value.
|
|
40
|
-
|
|
85
|
+
string, or one effort value. (Model names on this page, such as Sol, Luna,
|
|
86
|
+
Astra, Opus, Sonnet, and Fable, are provider models listed in the ladder that
|
|
87
|
+
ships with OAT; they are examples, and your own ladder may list different
|
|
88
|
+
models.) The project root, meaning the main agent session running the project,
|
|
89
|
+
chooses one exact candidate it judges sufficient for the phase.
|
|
41
90
|
|
|
42
91
|
`Uncapped` is explicit managed state. It is not represented by omitted policy
|
|
43
92
|
state. `Unresolved` is a planning or preflight deferral and cannot begin
|
|
@@ -45,6 +94,18 @@ implementation.
|
|
|
45
94
|
|
|
46
95
|
## Ownership and Adoption
|
|
47
96
|
|
|
97
|
+
**Who chose the bundled ladder.** OAT ships a recommended ladder, the bundled
|
|
98
|
+
recommendation. OAT's maintainers choose which models go in each tier and in
|
|
99
|
+
what order, using provider documentation, vendor benchmarks and their own
|
|
100
|
+
model-selection guidance, and they refresh it as providers release new models
|
|
101
|
+
(see [Updating Model Guidance](../../contributing/updating-model-guidance.md)).
|
|
102
|
+
OAT has not compared these models on its own workloads, so treat the ladder as
|
|
103
|
+
the maintainers' recommended starting point, not a measured ranking. Your team
|
|
104
|
+
does not have to use it as shipped. You can adopt it and then edit any cell in
|
|
105
|
+
the config file that owns it (see [Config Shapes](#config-shapes)), or write
|
|
106
|
+
your own cells without adopting. Rerunning adoption later replaces edited cells
|
|
107
|
+
unless you pass `--keep-existing`.
|
|
108
|
+
|
|
48
109
|
Adopt the complete bundled recommendation into one explicit owning scope:
|
|
49
110
|
|
|
50
111
|
```bash
|
|
@@ -58,6 +119,10 @@ oat config adopt dispatch-matrix --local
|
|
|
58
119
|
oat config adopt dispatch-matrix --user
|
|
59
120
|
```
|
|
60
121
|
|
|
122
|
+
With no scope flag, `oat config adopt dispatch-matrix` writes repo-local config
|
|
123
|
+
(`.oat/config.local.json`), the same as `--local`. The examples on this page
|
|
124
|
+
pass a flag so the owning scope is always explicit.
|
|
125
|
+
|
|
61
126
|
Adoption replaces populated cells from the bundled recommendation in the
|
|
62
127
|
chosen scope, fills missing cells, and retains extra custom tiers when the
|
|
63
128
|
bundled provider remains a tier map. A bundled provider-level scalar replaces
|
|
@@ -87,9 +152,10 @@ Run the same command without `--dry-run` to replace bundled cells. Use
|
|
|
87
152
|
|
|
88
153
|
Version `2026-10-01.1` is the current bundled recommendation. It prefers
|
|
89
154
|
GPT-6 Luna and GPT-6.1 Sol in Codex, then Sol 6.1 xhigh, Astra high, and Astra xhigh in
|
|
90
|
-
Codex Frontier.
|
|
91
|
-
|
|
92
|
-
|
|
155
|
+
Codex Frontier. OAT's maintainers added the Astra entries as a preference:
|
|
156
|
+
public benchmarks show task-dependent gains for Astra over GPT-6 Sol, but OAT
|
|
157
|
+
has not tested Astra on its own workloads, and the maintainers' separate
|
|
158
|
+
model-selection review has not yet confirmed the choice. Sonnet 5.5 medium replaces Sonnet 5 medium
|
|
93
159
|
in Claude Economy; the older generation stays supported for explicit cells.
|
|
94
160
|
Opus 5.5 low/medium/high remains in Claude High.
|
|
95
161
|
The Claude low option suits bounded intelligent recon in Balanced or High;
|
|
@@ -100,9 +166,9 @@ Opus 5.5 low above Terra high, High orders Sol medium, Opus low, Sol high,
|
|
|
100
166
|
Opus medium, then Opus high, and Frontier places Opus high and xhigh between
|
|
101
167
|
Sol max and Fable 5.1. Grok 4.6 medium replaces Grok 4.5 high at the bottom of
|
|
102
168
|
Balanced, and Fable 5.1 thinking high replaces Fable 5 as Frontier's terminal
|
|
103
|
-
target.
|
|
104
|
-
|
|
105
|
-
|
|
169
|
+
target. OAT's maintainers chose this ordering using vendor benchmarks and their
|
|
170
|
+
model-selection guidance; it is not the result of comparing models on OAT's own
|
|
171
|
+
workloads. Grok 4.5 and Fable 5 stay supported for explicit configurations.
|
|
106
172
|
Rerunning adoption replaces the bundled cells in the chosen scope; use
|
|
107
173
|
`--keep-existing` to preserve explicit older cells. For the complete
|
|
108
174
|
maintenance procedure, see
|
|
@@ -455,9 +521,8 @@ defaults to `xhigh`. A typo in a pinned selector therefore ships a
|
|
|
455
521
|
working-but-wrong model that silently tracks a vendor-controlled default, so
|
|
456
522
|
capability can change with no corresponding change in the repository.
|
|
457
523
|
|
|
458
|
-
OAT does not currently validate effort rungs at sync time; that is
|
|
459
|
-
|
|
460
|
-
the only guard.
|
|
524
|
+
OAT does not currently validate effort rungs at sync time; that check is
|
|
525
|
+
planned but not yet built. Until it is, the probe runbook is the only guard.
|
|
461
526
|
|
|
462
527
|
## Phase and Optional-Worker Layers
|
|
463
528
|
|
|
@@ -476,7 +541,7 @@ tasks and do not own phase commits or review dispatch.
|
|
|
476
541
|
Tasks run serially in the same worktree. Parallelism remains limited to
|
|
477
542
|
plan-declared phase worktrees unless optional work has explicitly isolated
|
|
478
543
|
write authority. See
|
|
479
|
-
[Implementation Execution](implementation-execution.md) for the full loop.
|
|
544
|
+
[Implementation Execution](../projects/execution/implementation-execution.md) for the full loop.
|
|
480
545
|
|
|
481
546
|
## Dispatch Report V1 and Producer Provenance
|
|
482
547
|
|
|
@@ -585,7 +650,87 @@ The following remain readable during migration:
|
|
|
585
650
|
- project `oat_dispatch_ceiling`
|
|
586
651
|
- `--preferred` resolver selection
|
|
587
652
|
|
|
588
|
-
Legacy
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
pins.
|
|
653
|
+
Legacy presets (`cost-conscious`, `balanced`, `maximum`) compile to bare legacy
|
|
654
|
+
provider ceilings, not complete named candidate tiers. Their values can resemble
|
|
655
|
+
tier caps without supplying a ladder. They remain migration inputs, not evidence
|
|
656
|
+
that a new project should persist exact provider-family pins.
|
|
657
|
+
|
|
658
|
+
## Choosing policy and ladder ownership
|
|
659
|
+
|
|
660
|
+
The dispatch policy decides how strong (and how expensive) the models that OAT
|
|
661
|
+
starts for each phase and review may be. A **ladder** is the configured list of
|
|
662
|
+
model and effort candidates for each provider, grouped into four tiers from
|
|
663
|
+
Economy to Frontier. The policy sets the highest tier a project may use.
|
|
664
|
+
Planning asks you for the policy and saves it in the project's `state.md`.
|
|
665
|
+
|
|
666
|
+
> [!WARNING]
|
|
667
|
+
> A dispatch policy set in any config file (`workflow.dispatchPolicy.*`, or a
|
|
668
|
+
> legacy plain value in `workflow.dispatchCeiling.providers.<provider>`)
|
|
669
|
+
> overrides the policy every project chose for itself in `state.md`. To let each
|
|
670
|
+
> project choose its own policy, leave those keys unset. Adopting a ladder is a
|
|
671
|
+
> separate step from setting a policy.
|
|
672
|
+
|
|
673
|
+
| Policy | Choose it when | What you give up |
|
|
674
|
+
| ------------------ | ------------------------------------------------------ | -------------------------------------------------------------------------- |
|
|
675
|
+
| Economy / Balanced | Routine or normal work where cost matters | The higher tiers |
|
|
676
|
+
| High / Frontier | Broad, security-sensitive, or consequential changes | Cost: implementation code reviews run on the cap tier, which can cost more |
|
|
677
|
+
| Uncapped | You trust the main session to choose a model per phase | Any tier ceiling on cost. You must choose it explicitly |
|
|
678
|
+
| Inherit | The provider's own model settings must stay untouched | All OAT model control: OAT passes no model or effort setting |
|
|
679
|
+
|
|
680
|
+
There is no default policy, and a missing policy never means Uncapped. If a
|
|
681
|
+
project has none when implementation starts, an interactive run asks you and a
|
|
682
|
+
non-interactive run stops. The agents that implement a phase may use a lower
|
|
683
|
+
tier than the cap, but when a cap is set, the per-phase and final code reviews
|
|
684
|
+
always use the last candidate listed in the cap tier. Planning-artifact reviews
|
|
685
|
+
and gates choose their reviewers separately.
|
|
686
|
+
|
|
687
|
+
- If you are trying OAT for the first time, choose Balanced for the project.
|
|
688
|
+
- If cost matters most, choose Economy for routine work or Balanced for normal
|
|
689
|
+
work.
|
|
690
|
+
- If the change is high-risk, choose High. Choose Frontier only if you want
|
|
691
|
+
every implementation code review to run on Frontier's last candidate. For a
|
|
692
|
+
reviewer from a different model family, add a
|
|
693
|
+
[gate](workflow-gates.md#choosing-gate-posture) instead.
|
|
694
|
+
- If the provider's own settings must stay untouched, choose Inherit.
|
|
695
|
+
|
|
696
|
+
### Which tier for which work
|
|
697
|
+
|
|
698
|
+
The tier is a cap, not a target: for each phase the main session still picks
|
|
699
|
+
one candidate at or below it. A Dispatch Profile row is an optional per-phase
|
|
700
|
+
limit in `plan.md` that can lower the cap for one phase.
|
|
701
|
+
|
|
702
|
+
| Work | Tier to start with | What the tier limits | Cost and speed direction |
|
|
703
|
+
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
|
|
704
|
+
| Routine, bounded work: one component and a clear outcome, such as a bug fix | Balanced, or Economy if cost matters most | Phase agents use only Economy and Balanced candidates. Per-phase and final code reviews run on the last Balanced candidate | Lower cost; usually faster |
|
|
705
|
+
| Ambiguous or cross-cutting work: a broad change across several components | High | Economy through High candidates are eligible. Code reviews run on the last High candidate | Higher, because every implementation code review runs at High |
|
|
706
|
+
| Consequential or high-risk change: security-sensitive, or a missed defect costs more than the run | High. Choose Frontier only if every implementation code review should run on Frontier's last candidate | At Frontier all four tiers are eligible, and its last candidate may need model access your account lacks. For a reviewer from a different model family, add a [gate](workflow-gates.md#choosing-gate-posture) | Higher at High; highest and usually slowest at Frontier |
|
|
707
|
+
| Cost-sensitive team | Economy for routine work and Balanced for normal work, set per project | Economy allows only Economy candidates. A Dispatch Profile row can lower one phase, but code reviews still run at the project cap | Lowest of the managed tiers |
|
|
708
|
+
|
|
709
|
+
OAT sets no prices and does not measure cost or speed. What a run costs depends
|
|
710
|
+
on your provider plan and on the models in your ladder. The directions above
|
|
711
|
+
assume a ladder ordered like the bundled one, where higher tiers hold larger
|
|
712
|
+
models or higher effort settings, which usually cost more per run and take
|
|
713
|
+
longer.
|
|
714
|
+
|
|
715
|
+
### Where the ladder lives
|
|
716
|
+
|
|
717
|
+
`oat config adopt dispatch-matrix` writes the bundled ladder to the config scope
|
|
718
|
+
you choose, and to repo-local config if you pass no flag. Without
|
|
719
|
+
`--keep-existing` it replaces cells you already set, so preview with `--dry-run`
|
|
720
|
+
first.
|
|
721
|
+
|
|
722
|
+
- If you are rolling OAT out to a team, adopt the ladder with `--shared` so
|
|
723
|
+
everyone uses the same candidates and the change is reviewed in Git.
|
|
724
|
+
- If you are trying OAT alone, run `oat config adopt dispatch-matrix --user
|
|
725
|
+
--dry-run`, then rerun it without `--dry-run`. A shared or repo-local ladder
|
|
726
|
+
in a repository still overrides your user ladder there.
|
|
727
|
+
- If you are testing candidates in one checkout, use `--local`. After
|
|
728
|
+
`oat sync`, the agent roles generated from it still appear in the tracked
|
|
729
|
+
`.codex`, `.claude`, and `.cursor` folders, so check `git status` before
|
|
730
|
+
committing.
|
|
731
|
+
|
|
732
|
+
How firmly the cap holds depends on the provider. Codex and Claude enforce the
|
|
733
|
+
model and effort that OAT selects. Cursor pins mapped candidates, but OAT
|
|
734
|
+
cannot confirm at run time which model actually ran, so it records what it
|
|
735
|
+
requested. Other providers treat the cap as a suggestion only. See
|
|
736
|
+
[Provider Enforcement](#provider-enforcement).
|
|
@@ -19,21 +19,28 @@ never gates a conclusion on its own.
|
|
|
19
19
|
|
|
20
20
|
## Layer map
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
flowchart TD
|
|
24
|
-
L1["Layer 1 — Policy resolution\nnamed ceiling · candidates · capped/uncapped mode"]
|
|
25
|
-
L2["Layer 2 — Launcher-owned configured invocation\nroute · target/model/effort axes · selection reason ·\ncandidates considered · launch acceptance"]
|
|
26
|
-
L3["Layer 3 — Runtime-observed identity (optional)\nproducer + model, only under trusted provenance"]
|
|
22
|
+
=== "Diagram"
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+

|
|
25
|
+

|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
A -->|assert on| L2
|
|
32
|
-
A -.->|record only| L3
|
|
27
|
+
=== "Mermaid source"
|
|
33
28
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
```mermaid
|
|
30
|
+
flowchart TD
|
|
31
|
+
L1["Layer 1 — Policy resolution\nnamed ceiling · candidates · capped/uncapped mode"]
|
|
32
|
+
L2["Layer 2 — Launcher-owned configured invocation\nroute · target/model/effort axes · selection reason ·\ncandidates considered · launch acceptance"]
|
|
33
|
+
L3["Layer 3 — Runtime-observed identity (optional)\nproducer + model, only under trusted provenance"]
|
|
34
|
+
|
|
35
|
+
L1 --> L2 --> L3
|
|
36
|
+
|
|
37
|
+
A["Assertions"] -->|assert on| L1
|
|
38
|
+
A -->|assert on| L2
|
|
39
|
+
A -.->|record only| L3
|
|
40
|
+
|
|
41
|
+
L3 --> R["reported\n(both present + trusted provenance)"]
|
|
42
|
+
L3 --> NR["not-reported\n(anything else normalizes here)"]
|
|
43
|
+
```
|
|
37
44
|
|
|
38
45
|
Assertions bind to Layers 1 and 2. Layer 3 is recorded as `reported` or
|
|
39
46
|
`not-reported`; its absence never invalidates Layer 2.
|
|
@@ -235,7 +242,7 @@ For how to run this end to end and when to refresh the fixture, see
|
|
|
235
242
|
producer-provenance record that back Layers 1 and 2.
|
|
236
243
|
- [Orchestration Model](orchestration-model.md) — the dispatch topology that
|
|
237
244
|
produces these records.
|
|
238
|
-
- [Review Flavors](review-flavors.md) — how the four review flavors are recorded
|
|
245
|
+
- [Review Flavors](../projects/reviews/review-flavors.md) — how the four review flavors are recorded
|
|
239
246
|
through the same launcher-owned evidence.
|
|
240
247
|
- [Smoke testing](../../contributing/smoke-testing.md) — operating the evidence
|
|
241
248
|
pipeline against real providers.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Advanced
|
|
3
|
+
description: 'Dispatch, autonomy, execution surfaces, evidence layers and workflow gates.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Advanced
|
|
7
|
+
|
|
8
|
+
Use these guides for advanced workflow execution and its safety boundaries.
|
|
9
|
+
|
|
10
|
+
## Contents
|
|
11
|
+
|
|
12
|
+
- [Worktree bootstrap](worktree-bootstrap.md) - Prepare an isolated checkout with repository-specific readiness checks.
|
|
13
|
+
- [Workflow Gates](workflow-gates.md) - Completion-safe headless reviews, budgets, liveness evidence, and cross-runtime dispatch with `oat gate`.
|
|
14
|
+
- [Autonomous Project Execution](autonomy.md) - Session-scoped autonomy signals, gate boundaries, review requirements, and execution learnings.
|
|
15
|
+
- [OAT in Cursor Cloud](cursor-cloud.md) - Project-home, provisioning, asset-precedence, and execution-surface guidance for cloud agents.
|
|
16
|
+
- [Dispatch Policy](dispatch-ceiling.md) - Managed capped tiers, managed Uncapped, Inherit Host Defaults, and provider-specific enforcement.
|
|
17
|
+
- [Orchestration Model](orchestration-model.md) - The layered dispatch model: roles, selection flow, and per-harness topology.
|
|
18
|
+
- [Evidence Layers](evidence-layers.md) - The three-layer dispatch evidence model behind records and smoke verification.
|
|
19
|
+
- [Programmatic Execution](programmatic-execution.md) - Per-harness headless/CLI execution surfaces and where OAT uses them.
|
|
@@ -15,27 +15,46 @@ OAT separates lifecycle ownership from implementation ownership:
|
|
|
15
15
|
This topology keeps model control at the meaningful phase boundary without
|
|
16
16
|
making every task pay another dispatch and context-loading round.
|
|
17
17
|
|
|
18
|
+
Terms used on this page:
|
|
19
|
+
|
|
20
|
+
- **Phase:** one numbered section of a project's `plan.md` (for example `p02`)
|
|
21
|
+
that groups related tasks.
|
|
22
|
+
- **Dispatch:** launching a worker or reviewer subagent on a chosen model and
|
|
23
|
+
route. The **dispatch policy** is the project's rule for which models those
|
|
24
|
+
subagents may use; see [Dispatch Policy](dispatch-ceiling.md).
|
|
25
|
+
- **Worktree:** a separate Git checkout of the same repository on its own
|
|
26
|
+
branch, used so parallel phases do not overwrite each other's files.
|
|
27
|
+
- **HiLL checkpoint:** a human-in-the-loop stop after a phase where an
|
|
28
|
+
interactive run waits for your approval.
|
|
29
|
+
|
|
18
30
|
## Default Topology
|
|
19
31
|
|
|
20
|
-
|
|
21
|
-
flowchart TD
|
|
22
|
-
Root["Project root\nlifecycle owner"]
|
|
23
|
-
Adapter["Project dispatch adapter"]
|
|
24
|
-
Engine["Provider-neutral dispatch engine"]
|
|
32
|
+
=== "Diagram"
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
P --> T1["Planned task commit"]
|
|
29
|
-
P --> T2["Planned task commit"]
|
|
30
|
-
P -. optional .-> Recon["Recon / specialist / isolated fanout"]
|
|
34
|
+

|
|
35
|
+

|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
Engine -. exact reviewer route .-> R["Phase reviewer"]
|
|
34
|
-
R -->|blocking findings| Root
|
|
35
|
-
Root -->|resume bounded fix| P
|
|
37
|
+
=== "Mermaid source"
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
```mermaid
|
|
40
|
+
flowchart TD
|
|
41
|
+
Root["Project root\nlifecycle owner"]
|
|
42
|
+
Adapter["Project dispatch adapter"]
|
|
43
|
+
Engine["Provider-neutral dispatch engine"]
|
|
44
|
+
|
|
45
|
+
Root --> Adapter --> Engine
|
|
46
|
+
Engine --> P["Phase implementer\none per phase"]
|
|
47
|
+
P --> T1["Planned task commit"]
|
|
48
|
+
P --> T2["Planned task commit"]
|
|
49
|
+
P -. optional .-> Recon["Recon / specialist / isolated fanout"]
|
|
50
|
+
|
|
51
|
+
Root -. independent review lane .-> Adapter
|
|
52
|
+
Engine -. exact reviewer route .-> R["Phase reviewer"]
|
|
53
|
+
R -->|blocking findings| Root
|
|
54
|
+
Root -->|resume bounded fix| P
|
|
55
|
+
|
|
56
|
+
Root -. external gate lane .-> G["Configured cross-runtime gate"]
|
|
57
|
+
```
|
|
39
58
|
|
|
40
59
|
The solid implementation lane is mandatory. The dotted nested lane is
|
|
41
60
|
benefit-driven. A run does not fail merely because the phase agent cannot or
|
|
@@ -71,21 +90,28 @@ matrix. The lifecycle workflow remains authoritative for classification,
|
|
|
71
90
|
selection judgment, synthesis, and state mutation. The dispatch engine does
|
|
72
91
|
not edit `plan.md`, `implementation.md`, or project state.
|
|
73
92
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
=== "Diagram"
|
|
94
|
+
|
|
95
|
+

|
|
96
|
+

|
|
97
|
+
|
|
98
|
+
=== "Mermaid source"
|
|
99
|
+
|
|
100
|
+
```mermaid
|
|
101
|
+
sequenceDiagram
|
|
102
|
+
participant Root as Project root
|
|
103
|
+
participant Adapter as Project adapter
|
|
104
|
+
participant Engine as Dispatch engine
|
|
105
|
+
participant Record as Run record in implementation.md
|
|
106
|
+
participant Phase as Phase implementer
|
|
107
|
+
|
|
108
|
+
Root->>Adapter: Phase + lifecycle authority
|
|
109
|
+
Adapter->>Engine: Provider-neutral dispatch request
|
|
110
|
+
Engine-->>Root: Exact route + request ID
|
|
111
|
+
Root->>Phase: Phase Scope
|
|
112
|
+
Root->>Record: Accepted or blocked-before-start result
|
|
113
|
+
Phase-->>Root: Phase report + commits
|
|
114
|
+
```
|
|
89
115
|
|
|
90
116
|
## Phase Execution
|
|
91
117
|
|
|
@@ -103,7 +129,7 @@ The root verifies the report against Git rather than trusting child prose:
|
|
|
103
129
|
- clean worktree; and
|
|
104
130
|
- optional child records, if any.
|
|
105
131
|
|
|
106
|
-
See [Implementation Execution](implementation-execution.md) for the executable
|
|
132
|
+
See [Implementation Execution](../projects/execution/implementation-execution.md) for the executable
|
|
107
133
|
contract.
|
|
108
134
|
|
|
109
135
|
## Independent Phase Review
|
|
@@ -172,7 +198,7 @@ terminated at its background-wait ceiling (600 seconds by default). Interactive
|
|
|
172
198
|
Claude Code is unaffected. Headless gate children therefore do not follow the
|
|
173
199
|
ordinary background preference; they use the gate's inline or synchronously
|
|
174
200
|
awaited route and fail closed when neither is available. See
|
|
175
|
-
[Workflow Gates](
|
|
201
|
+
[Workflow Gates](workflow-gates.md#headless-completion-safety).
|
|
176
202
|
|
|
177
203
|
## Catalogs and Exact Selection
|
|
178
204
|
|
|
@@ -229,9 +255,56 @@ optional child has explicitly isolated write authority.
|
|
|
229
255
|
|
|
230
256
|
## Related
|
|
231
257
|
|
|
232
|
-
- [Implementation Execution](implementation-execution.md)
|
|
258
|
+
- [Implementation Execution](../projects/execution/implementation-execution.md)
|
|
233
259
|
- [Dispatch Policy](dispatch-ceiling.md)
|
|
234
|
-
- [Review Flavors](review-flavors.md)
|
|
260
|
+
- [Review Flavors](../projects/reviews/review-flavors.md)
|
|
235
261
|
- [Programmatic Execution](programmatic-execution.md)
|
|
236
262
|
- [Evidence Layers](evidence-layers.md)
|
|
237
263
|
- [Workflow Smoke Testing](../../contributing/smoke-testing.md)
|
|
264
|
+
|
|
265
|
+
## subagent-orchestration
|
|
266
|
+
|
|
267
|
+
Use this skill to decide what to delegate and which capability class the task
|
|
268
|
+
needs. It supplies model-selection guidance, not a command that launches workers.
|
|
269
|
+
OAT's dispatch skills own capability checks, exact routes, acceptance records,
|
|
270
|
+
and recovery.
|
|
271
|
+
|
|
272
|
+
**Invocation:** Give the agent a bounded delegation decision. The slash form is
|
|
273
|
+
a skill request, not a terminal command. Providers with `$` syntax use
|
|
274
|
+
`$subagent-orchestration`.
|
|
275
|
+
|
|
276
|
+
```text
|
|
277
|
+
/subagent-orchestration
|
|
278
|
+
Classify a read-only API-usage audit and a final approval-provenance review. Define their scopes, required evidence, and escalation conditions before selecting models.
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Prerequisites:** Needs an active OAT project: no. The guidance is
|
|
282
|
+
self-contained and needs no OAT project or installation. You need the task's
|
|
283
|
+
objective, authority, verification needs, and active provider context. Read
|
|
284
|
+
exactly that provider's selection reference. Current catalogs and instructions
|
|
285
|
+
outrank dated model examples.
|
|
286
|
+
|
|
287
|
+
**What it does without asking:** nothing outside the conversation. The skill
|
|
288
|
+
is guidance only: it writes no files, makes no commits, and launches no
|
|
289
|
+
subagents. Any launch happens later, through the dispatch skills, under their
|
|
290
|
+
own checks.
|
|
291
|
+
|
|
292
|
+
**Example scenario:** A root agent needs an unfamiliar API audit and an
|
|
293
|
+
independent review of approval handling. The audit needs intelligent
|
|
294
|
+
reconnaissance because a missed usage could be silent. Approval provenance
|
|
295
|
+
needs consequential review because a subtle miss could authorize unsafe work.
|
|
296
|
+
The root keeps authorization and cross-scope judgment while defining each
|
|
297
|
+
worker's output and evidence. Choosing a stronger model does not repair an
|
|
298
|
+
over-broad assignment.
|
|
299
|
+
|
|
300
|
+
**Expected output:** A routing decision states the task class, role, exact model
|
|
301
|
+
selector, provider-native effort, service tier, route, and authority separately.
|
|
302
|
+
It preserves each class's capability floor and names escalation conditions.
|
|
303
|
+
Load-bearing worker claims require verified evidence before the root acts on
|
|
304
|
+
them. File count or duration alone does not justify a higher reasoning class.
|
|
305
|
+
|
|
306
|
+
**Next step:** Use the appropriate dispatch machinery only after the bounded
|
|
307
|
+
scope and route are justified. Within OAT, follow the project adapter
|
|
308
|
+
(`oat-project-dispatch-subagents`) and the dispatch engine
|
|
309
|
+
(`oat-dispatch-subagents`). Guidance alone is not evidence that a worker launched or that
|
|
310
|
+
its result passed review.
|
|
@@ -77,14 +77,14 @@ independent of the harness's native subagent catalog — the point of a gate is
|
|
|
77
77
|
route the producing context could not have selected for itself. The
|
|
78
78
|
lifecycle/final gate is the one flavor that may spawn a **nested managed
|
|
79
79
|
reviewer child inside the gate exec target**; see
|
|
80
|
-
[Review Flavors](review-flavors.md) for which flavor fires when and how
|
|
80
|
+
[Review Flavors](../projects/reviews/review-flavors.md) for which flavor fires when and how
|
|
81
81
|
independent each must be.
|
|
82
82
|
|
|
83
83
|
Gates **fail closed**. If no different-family target is available, OAT records
|
|
84
84
|
the degraded achieved level rather than pretending diversity was achieved, and
|
|
85
85
|
an unavailable required-independent target blocks the gate instead of quietly
|
|
86
86
|
downgrading to a same-context self-review. Only summarize the execution-surface
|
|
87
|
-
angle here — see [Workflow Gates](
|
|
87
|
+
angle here — see [Workflow Gates](workflow-gates.md) for the
|
|
88
88
|
gate envelope, exec-target configuration, receive-eligibility, and completion
|
|
89
89
|
contract. The cross-runtime `gates.execTargets` design (host-avoidance and
|
|
90
90
|
independence from native catalogs) is the smoke fixture's cross-runtime gate
|
|
@@ -126,13 +126,13 @@ require either capability.
|
|
|
126
126
|
|
|
127
127
|
- [Orchestration Model](orchestration-model.md) — route tiers, native-first
|
|
128
128
|
selection, and per-harness topology.
|
|
129
|
-
- [Review Flavors](review-flavors.md) — the four review flavors and which one
|
|
129
|
+
- [Review Flavors](../projects/reviews/review-flavors.md) — the four review flavors and which one
|
|
130
130
|
may spawn a nested managed reviewer inside a gate.
|
|
131
131
|
- [Evidence Layers](evidence-layers.md) — the three-layer dispatch evidence
|
|
132
132
|
model these launches feed.
|
|
133
133
|
- [Dispatch Policy](dispatch-ceiling.md) — candidate ladders, named ceilings,
|
|
134
134
|
and the dispatch report.
|
|
135
|
-
- [Workflow Gates](
|
|
135
|
+
- [Workflow Gates](workflow-gates.md) — gate envelope,
|
|
136
136
|
exec-target configuration, and completion contract.
|
|
137
137
|
- [Smoke Testing](../../contributing/smoke-testing.md) — per-harness drive
|
|
138
138
|
protocols and live evidence.
|