@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.
Files changed (124) hide show
  1. package/README.md +1 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/contributing/index.md +14 -1
  4. package/assets/docs/contributing/markdown-features.md +38 -0
  5. package/assets/docs/contributing/skills.md +64 -2
  6. package/assets/docs/contributing/smoke-testing.md +23 -16
  7. package/assets/docs/contributing/updating-model-guidance.md +2 -2
  8. package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
  9. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
  10. package/assets/docs/docs-tooling/agent-instructions.md +131 -0
  11. package/assets/docs/docs-tooling/index.md +1 -0
  12. package/assets/docs/docs-tooling/meta.json +1 -1
  13. package/assets/docs/docs-tooling/workflows.md +338 -2
  14. package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
  15. package/assets/docs/getting-started/concepts.md +120 -0
  16. package/assets/docs/getting-started/index.md +68 -0
  17. package/assets/docs/getting-started/meta.json +4 -0
  18. package/assets/docs/getting-started/quickstart.md +174 -0
  19. package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
  20. package/assets/docs/index.md +47 -48
  21. package/assets/docs/meta.json +6 -7
  22. package/assets/docs/provider-sync/commands.md +25 -2
  23. package/assets/docs/provider-sync/config.md +60 -1
  24. package/assets/docs/provider-sync/index.md +31 -15
  25. package/assets/docs/provider-sync/instruction-sync.md +32 -1
  26. package/assets/docs/provider-sync/manifest-and-drift.md +92 -0
  27. package/assets/docs/provider-sync/meta.json +1 -0
  28. package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
  29. package/assets/docs/provider-sync/scope-and-surface.md +37 -3
  30. package/assets/docs/reference/cli-reference.md +33 -33
  31. package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
  32. package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
  33. package/assets/docs/reference/file-locations.md +4 -1
  34. package/assets/docs/reference/index.md +13 -1
  35. package/assets/docs/reference/meta.json +7 -1
  36. package/assets/docs/reference/oat-directory-structure.md +1 -1
  37. package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
  38. package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +28 -21
  39. package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
  40. package/assets/docs/reference/troubleshooting.md +125 -10
  41. package/assets/docs/reference/what-oat-writes.md +410 -0
  42. package/assets/docs/skills/brainstorm.md +77 -0
  43. package/assets/docs/skills/diagnostics.md +56 -0
  44. package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
  45. package/assets/docs/skills/index.md +416 -0
  46. package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
  47. package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
  48. package/assets/docs/skills/repo-improve.md +254 -0
  49. package/assets/docs/skills/research.md +237 -0
  50. package/assets/docs/skills/session-closeout.md +61 -0
  51. package/assets/docs/workflows/advanced/autonomy.md +344 -0
  52. package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
  53. package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
  54. package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +20 -13
  55. package/assets/docs/workflows/advanced/index.md +19 -0
  56. package/assets/docs/workflows/advanced/meta.json +13 -0
  57. package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +108 -35
  58. package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
  59. package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
  60. package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
  61. package/assets/docs/workflows/approvals-and-automation.md +261 -0
  62. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
  63. package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
  64. package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
  65. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
  66. package/assets/docs/workflows/choose-workflow.md +114 -0
  67. package/assets/docs/workflows/ideas/index.md +3 -3
  68. package/assets/docs/workflows/ideas/lifecycle.md +225 -1
  69. package/assets/docs/workflows/index.md +11 -62
  70. package/assets/docs/workflows/meta.json +10 -2
  71. package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
  72. package/assets/docs/workflows/projects/closeout/index.md +14 -0
  73. package/assets/docs/workflows/projects/closeout/meta.json +4 -0
  74. package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
  75. package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
  76. package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
  77. package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +52 -38
  78. package/assets/docs/workflows/projects/execution/index.md +15 -0
  79. package/assets/docs/workflows/projects/execution/meta.json +9 -0
  80. package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
  81. package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
  82. package/assets/docs/workflows/projects/index.md +38 -49
  83. package/assets/docs/workflows/projects/lifecycle.md +159 -74
  84. package/assets/docs/workflows/projects/meta.json +2 -23
  85. package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
  86. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
  87. package/assets/docs/workflows/projects/planning/index.md +16 -0
  88. package/assets/docs/workflows/projects/planning/meta.json +10 -0
  89. package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
  90. package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
  91. package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
  92. package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
  93. package/assets/docs/workflows/projects/reviews/meta.json +4 -0
  94. package/assets/docs/workflows/projects/reviews/review-flavors.md +650 -0
  95. package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
  96. package/assets/docs/workflows/waves/index.md +12 -0
  97. package/assets/docs/workflows/waves/meta.json +4 -0
  98. package/assets/docs/workflows/waves/wave-workflows.md +206 -0
  99. package/assets/public-package-versions.json +4 -4
  100. package/assets/skills/oat-docs/SKILL.md +19 -19
  101. package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
  102. package/assets/skills/oat-docs-apply/SKILL.md +1 -1
  103. package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
  104. package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
  105. package/assets/skills/oat-doctor/SKILL.md +25 -25
  106. package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
  107. package/assets/templates/docs-app-fuma/app/globals.css +1 -0
  108. package/dist/release/public-package-contract.js +1 -1
  109. package/package.json +2 -2
  110. package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
  111. package/assets/docs/cli-utilities/index.md +0 -74
  112. package/assets/docs/cli-utilities/meta.json +0 -13
  113. package/assets/docs/cli-utilities/remote-project-management.md +0 -191
  114. package/assets/docs/guide/concepts.md +0 -88
  115. package/assets/docs/guide/index.md +0 -31
  116. package/assets/docs/guide/meta.json +0 -4
  117. package/assets/docs/quickstart.md +0 -88
  118. package/assets/docs/workflows/projects/autonomy.md +0 -196
  119. package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
  120. package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
  121. package/assets/docs/workflows/projects/review-flavors.md +0 -138
  122. package/assets/docs/workflows/skills/index.md +0 -184
  123. package/assets/docs/workflows/skills/repo-improve.md +0 -89
  124. 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](../../cli-utilities/configuration.md).
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. The project root chooses one exact candidate it
40
- judges sufficient for the phase.
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. Astra's task advantage has not been measured locally; this is
91
- an explicit user-directed preference, not acceptance by the separately
92
- maintained model-selection policy. Sonnet 5.5 medium replaces Sonnet 5 medium
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. The ordering is an explicit user-directed preference informed by
104
- vendor benchmarks and the model-selection matrix, not a local workload
105
- comparison. Grok 4.5 and Fable 5 stay supported for explicit configurations.
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 tracked as
459
- `BL-260726-validate-cursor-pin-effort`. Until it lands, the probe runbook is
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 preset names map to managed named tiers: `cost-conscious` to Economy,
589
- `balanced` to Balanced, and `maximum` to High. Legacy values are migration
590
- inputs, not evidence that a new project should persist exact provider-family
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
- ```mermaid
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
- L1 --> L2 --> L3
24
+ ![Three evidence layers: policy resolution, launcher-owned configured invocation, and optional runtime-observed identity; assertions check layers 1 and 2 and only record layer 3, which resolves to reported or not-reported](/diagrams/evidence-layers-light.svg)
25
+ ![Three evidence layers: policy resolution, launcher-owned configured invocation, and optional runtime-observed identity; assertions check layers 1 and 2 and only record layer 3, which resolves to reported or not-reported](/diagrams/evidence-layers-dark.svg)
29
26
 
30
- A["Assertions"] -->|assert on| L1
31
- A -->|assert on| L2
32
- A -.->|record only| L3
27
+ === "Mermaid source"
33
28
 
34
- L3 --> R["reported\n(both present + trusted provenance)"]
35
- L3 --> NR["not-reported\n(anything else normalizes here)"]
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.
@@ -0,0 +1,13 @@
1
+ {
2
+ "title": "Advanced",
3
+ "pages": [
4
+ "worktree-bootstrap",
5
+ "workflow-gates",
6
+ "autonomy",
7
+ "cursor-cloud",
8
+ "dispatch-ceiling",
9
+ "orchestration-model",
10
+ "evidence-layers",
11
+ "programmatic-execution"
12
+ ]
13
+ }
@@ -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
- ```mermaid
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
- Root --> Adapter --> Engine
27
- Engine --> P["Phase implementer\none per phase"]
28
- P --> T1["Planned task commit"]
29
- P --> T2["Planned task commit"]
30
- P -. optional .-> Recon["Recon / specialist / isolated fanout"]
34
+ ![Default topology: the project root goes through the dispatch adapter and provider-neutral engine to one phase implementer per phase, which makes planned task commits and optionally a recon or specialist fanout; the engine routes an exact phase reviewer whose blocking findings return to the root, which resumes a bounded fix; dashed lanes show independent review and an external cross-runtime gate](/diagrams/orchestration-model-1-default-topology-light.svg)
35
+ ![Default topology: the project root goes through the dispatch adapter and provider-neutral engine to one phase implementer per phase, which makes planned task commits and optionally a recon or specialist fanout; the engine routes an exact phase reviewer whose blocking findings return to the root, which resumes a bounded fix; dashed lanes show independent review and an external cross-runtime gate](/diagrams/orchestration-model-1-default-topology-dark.svg)
31
36
 
32
- Root -. independent review lane .-> Adapter
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
- Root -. external gate lane .-> G["Configured cross-runtime gate"]
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
- ```mermaid
75
- sequenceDiagram
76
- participant Root as Project root
77
- participant Adapter as Project adapter
78
- participant Engine as Dispatch engine
79
- participant Record as Run record in implementation.md
80
- participant Phase as Phase implementer
81
-
82
- Root->>Adapter: Phase + lifecycle authority
83
- Adapter->>Engine: Provider-neutral dispatch request
84
- Engine-->>Root: Exact route + request ID
85
- Root->>Phase: Phase Scope
86
- Root->>Record: Accepted or blocked-before-start result
87
- Phase-->>Root: Phase report + commits
88
- ```
93
+ === "Diagram"
94
+
95
+ ![Dispatch layers sequence: the project root passes phase and lifecycle authority to the adapter, the adapter sends a provider-neutral request to the engine, the engine returns the exact route and request ID, the root sends the phase scope and records the accepted or blocked result in implementation.md, and the implementer returns its report and commits](/diagrams/orchestration-model-2-dispatch-layers-light.svg)
96
+ ![Dispatch layers sequence: the project root passes phase and lifecycle authority to the adapter, the adapter sends a provider-neutral request to the engine, the engine returns the exact route and request ID, the root sends the phase scope and records the accepted or blocked result in implementation.md, and the implementer returns its report and commits](/diagrams/orchestration-model-2-dispatch-layers-dark.svg)
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](../../cli-utilities/workflow-gates.md#headless-completion-safety).
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](../../cli-utilities/workflow-gates.md) for the
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](../../cli-utilities/workflow-gates.md) — gate envelope,
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.