@open-agent-toolkit/cli 0.2.13 → 0.2.14

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 (38) hide show
  1. package/assets/agents/oat-phase-implementer.md +5 -2
  2. package/assets/agents/oat-reviewer.md +2 -2
  3. package/assets/docs/cli-utilities/tool-packs.md +25 -7
  4. package/assets/docs/contributing/skills.md +17 -10
  5. package/assets/docs/reference/cli-reference.md +1 -1
  6. package/assets/docs/workflows/projects/orchestration-model.md +14 -7
  7. package/assets/docs/workflows/projects/programmatic-execution.md +1 -1
  8. package/assets/docs/workflows/projects/reviews.md +18 -11
  9. package/assets/docs/workflows/skills/index.md +2 -0
  10. package/assets/docs/workflows/skills/repo-improve.md +13 -1
  11. package/assets/public-package-versions.json +4 -4
  12. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +12 -5
  13. package/assets/skills/oat-dispatch-subagents/SKILL.md +81 -24
  14. package/assets/skills/oat-dispatch-subagents/references/provider-claude.md +10 -7
  15. package/assets/skills/oat-dispatch-subagents/references/provider-codex.md +18 -13
  16. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +30 -23
  17. package/assets/skills/oat-dispatch-subagents/references/record-schema.md +86 -2
  18. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +2 -2
  19. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +8 -3
  20. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +2 -2
  21. package/assets/skills/oat-project-implement/SKILL.md +9 -5
  22. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +2 -2
  23. package/assets/skills/oat-project-plan-writing/SKILL.md +9 -5
  24. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +2 -2
  25. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +2 -2
  26. package/assets/skills/oat-repo-improve/SKILL.md +9 -2
  27. package/assets/skills/subagent-orchestration/SKILL.md +109 -0
  28. package/assets/skills/subagent-orchestration/references/evidence-and-refresh.md +103 -0
  29. package/assets/skills/subagent-orchestration/references/model-selection-principles.md +105 -0
  30. package/assets/skills/subagent-orchestration/references/provider-claude.md +81 -0
  31. package/assets/skills/subagent-orchestration/references/provider-codex.md +63 -0
  32. package/assets/skills/subagent-orchestration/references/provider-cursor.md +78 -0
  33. package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
  34. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  35. package/dist/commands/init/tools/shared/skill-manifest.js +1 -0
  36. package/dist/commands/init/tools/utility/index.d.ts.map +1 -1
  37. package/dist/commands/init/tools/utility/index.js +16 -2
  38. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-phase-implementer
3
- version: 1.0.8
3
+ version: 1.0.9
4
4
  description: Implements one plan phase end-to-end, commits each task separately, self-checks between tasks, and handles bounded review fixes when resumed by oat-project-implement.
5
5
  tools: Read, Write, Edit, Bash, Grep, Glob, Task
6
6
  color: cyan
@@ -60,7 +60,10 @@ read and follow:
60
60
 
61
61
  1. `.agents/skills/oat-project-dispatch-subagents/SKILL.md`;
62
62
  2. `.agents/skills/oat-dispatch-subagents/SKILL.md`; and
63
- 3. read exactly one active-provider reference from
63
+ 3. `.agents/skills/subagent-orchestration/references/model-selection-principles.md`;
64
+ 4. read exactly one active-provider selection reference from
65
+ `.agents/skills/subagent-orchestration/references/`; and
66
+ 5. read the matching mechanics reference from
64
67
  `.agents/skills/oat-dispatch-subagents/references/`.
65
68
 
66
69
  Every optional launch must have a bounded objective, explicit read/write
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-reviewer
3
- version: 1.1.8
3
+ version: 1.1.9
4
4
  description: Unified reviewer for OAT projects - mode-aware verification of requirements/design alignment and code quality. Writes a review artifact to disk by default, or returns structured findings in-memory when dispatched in structured-output mode.
5
5
  tools: Read, Bash, Grep, Glob, Write, Task
6
6
  color: yellow
@@ -80,7 +80,7 @@ The primary reviewer must establish the authoritative scope before considering d
80
80
  When delegation is eligible:
81
81
 
82
82
  1. Use one bounded, read-only, non-recursive reconnaissance round with disjoint lane scopes. This is a one-level fan-out limit: lane workers must not spawn additional workers.
83
- 2. Before launching any lane, read `.agents/skills/oat-dispatch-subagents/SKILL.md`, resolve the active provider, and read exactly one matching active-provider reference under `.agents/skills/oat-dispatch-subagents/references/`. Reviewer-local reconnaissance must not read or load `.agents/skills/oat-project-dispatch-subagents/SKILL.md`; that adapter is reserved for project lifecycle phase/task policy.
83
+ 2. Before launching any lane, read `.agents/skills/oat-dispatch-subagents/SKILL.md` and `.agents/skills/subagent-orchestration/references/model-selection-principles.md`. Resolve the active provider, then read exactly one matching selection reference under `.agents/skills/subagent-orchestration/references/` and one matching mechanics reference under `.agents/skills/oat-dispatch-subagents/references/`. Reviewer-local reconnaissance must not read or load `.agents/skills/oat-project-dispatch-subagents/SKILL.md`; that adapter is reserved for project lifecycle phase/task policy.
84
84
  3. Map every lane worker to the shared `recon` role class (`role.class: recon`); role authority stays read-only and advisory. Assign the independent `task_class`, `classification_source: caller`, and non-empty `classification_reason` fields after understanding the artifacts and diff. These task-class fields are required for reviewer-local reconnaissance even though the generic dispatch contract keeps them optional for other callers.
85
85
  4. Classify each lane as `mechanical-recon`, `intelligent-recon`, `default-implementation`, `hard-reasoning`, or `consequential`. Use the stronger floor when uncertain. Classification proceeds from deterministic verification to silent-miss risk, then dispersed context, ambiguity, and consequence; file count alone never justifies escalation.
86
86
  - `mechanical-recon`: deterministic inventories, parity checks, and test/lint/format/build execution whose misses are visible and cheaply checked.
@@ -19,17 +19,35 @@ This page covers CLI commands that manage bundled OAT tool packs and installed O
19
19
  - `docs` - docs and agent-instructions governance workflows
20
20
  - `workflows` - project lifecycle skills, wave-program orchestration (`oat-wave-program`, `oat-wave-execute`), the project subagent-dispatch adapter, wrap-up reporting, reviewer agents, and core project templates
21
21
  - `ideas` - lightweight ideation and promotion flows
22
- - `utility` - review and repo-maintenance helpers plus the provider-neutral subagent-dispatch engine
22
+ - `utility` - review and repo-maintenance helpers plus portable subagent-selection guidance and the provider-neutral dispatch engine
23
23
  - `project-management` - file-backed backlog/reference skills plus backlog, roadmap, current-state, file-per-record decision, and AGENTS-guide templates
24
24
  - `research` - research, analysis, comparison, and synthesis skills
25
25
  - `brainstorm` - always-on brainstorming entry point with visual companion
26
26
 
27
- ### Cross-pack dispatch dependency
27
+ ### Orchestration guidance and dispatch dependencies
28
28
 
29
- The reusable dispatch contracts intentionally span two packs:
29
+ The utility pack ships the reusable orchestration pair:
30
+
31
+ - `subagent-orchestration` owns durable task classes, model-selection
32
+ principles, dated provider selection matrices, and refresh evidence.
33
+ - `oat-dispatch-subagents` owns capability checks, live catalog intersection,
34
+ authorized routes, launch acceptance, recovery, and dispatch records.
35
+
36
+ Provider-aware callers load the generic principles plus exactly one provider
37
+ selection reference, then the dispatch contract plus exactly one matching
38
+ provider mechanics reference. The first reference answers which candidates
39
+ satisfy the task-class floor; the second answers how the active provider can
40
+ launch them. Root callers retain classification, selection judgment,
41
+ cross-lane synthesis, and final authority.
42
+
43
+ Custom utility selection has a directional dependency: choosing
44
+ `oat-dispatch-subagents` automatically includes `subagent-orchestration`, while
45
+ the self-contained guidance skill may be installed alone. Full utility-pack
46
+ update and removal treat both as explicit members. Removing either skill by
47
+ name does not implicitly remove the other.
48
+
49
+ The OAT lifecycle adapter intentionally lives in a separate pack:
30
50
 
31
- - `utility` owns `oat-dispatch-subagents`, the provider-neutral engine for
32
- capability checks, catalog-aware selection, launch evidence, and recovery.
33
51
  - `workflows` owns `oat-project-dispatch-subagents`, the adapter that adds OAT
34
52
  project lifecycle context without duplicating provider mechanics.
35
53
 
@@ -41,9 +59,9 @@ oat tools install workflows
41
59
  ```
42
60
 
43
61
  The packs remain independently installable. If the workflows adapter is
44
- present without the utility engine, it fails closed and reports the missing
62
+ present without the utility contracts, it fails closed and reports the missing
45
63
  dependency instead of inventing a fallback route. Non-project analytical
46
- skills can use the utility engine directly.
64
+ skills can use the utility guidance and dispatch layers directly.
47
65
 
48
66
  ### Cross-pack explainer dependency
49
67
 
@@ -97,21 +97,28 @@ At minimum, the skill contract should:
97
97
  - Stop before side effects if delegation is required for correctness and authorization remains unresolved.
98
98
  - Document the fallback path and any quality or independence tradeoff.
99
99
 
100
- OAT-specific skills should compose with the internal
101
- `oat-dispatch-subagents` contract instead of copying provider selection and
102
- recovery rules. The caller still owns decomposition, user interaction,
103
- verification of load-bearing claims, cross-lane synthesis, and artifact
104
- writes. The dispatch contract owns capability and authorization checks, live
105
- catalog evidence, route/model/effort selection, launch acceptance, recovery,
106
- and the neutral dispatch record.
100
+ Delegation-capable skills should load `subagent-orchestration` instead of
101
+ copying task classes, model-selection principles, dated provider matrices, or
102
+ refresh evidence. Load exactly one active-provider selection reference from
103
+ that skill. The caller applies the guidance and still owns decomposition,
104
+ classification judgment, user interaction, verification of load-bearing
105
+ claims, cross-lane synthesis, and artifact writes.
106
+
107
+ OAT-specific skills should separately compose with the internal
108
+ `oat-dispatch-subagents` contract instead of copying launch or recovery rules.
109
+ Load exactly one matching provider mechanics reference from that skill. The
110
+ dispatch contract owns capability and authorization checks, live catalog
111
+ evidence, authorized routes, launch acceptance, recovery, and the neutral
112
+ dispatch record. Keep model/effort/reasoning/service-tier axes explicit and do
113
+ not collapse the selection and mechanics references into one provider matrix.
107
114
 
108
115
  Keep project lifecycle policy out of that general layer. A lifecycle caller
109
116
  loads `oat-project-dispatch-subagents` to resolve project, phase/task, gate,
110
117
  write-boundary, commit, and worktree context, then passes a generic request to
111
118
  `oat-dispatch-subagents`. Analytical callers such as repository audits can use
112
- the general contract directly without requiring an active project. In either
113
- case, resolve the provider first and load exactly one provider-specific
114
- reference rather than merging provider mechanics into a universal catalog.
119
+ the guidance and dispatch contracts without requiring an active project. In
120
+ either case, resolve the provider first, then load one selection reference and
121
+ the matching mechanics reference.
115
122
 
116
123
  Use `create-agnostic-skill` or `create-oat-skill` as the starting point; both include the current delegation guidance and optional capability-detection template.
117
124
 
@@ -66,7 +66,7 @@ Notable commands introduced in the current CLI surface:
66
66
  - `oat project complete-state <project-path>` - apply the canonical completed-state mutation to a project's `state.md`; used by `oat-project-complete` during lifecycle closeout
67
67
  - `oat project archive [project-path] [--project-recap-run <project-relative-path>]` - archive a tracked project through the same local move, summary export, and optional S3 upload path used by completion. When omitted, the project path falls back to the active project. The optional recap path must identify a `project-recap` run inside the project's `explainers/` directory. Archive stages the selected complete package into `.oat/repo/reference/project-recaps/<YYYYMMDD-project-slug>/`, verifies every manifest-declared immutable file byte, then atomically installs the export before deleting the active project. Existing destinations, incomplete legacy hash coverage, stale bytes, path escapes, and recipe mismatches fail without removing the active project.
68
68
  - `oat repo archive sync [project-name]` - hydrate archived project snapshots from the configured repo-scoped S3 archive into `.oat/projects/archived/`. The old `oat project archive sync` path remains as a deprecated shim.
69
- - `oat project validate-plan --project-path <path>` - validates `oat_plan_parallel_groups` metadata in `plan.md`; exits non-zero on invalid. See [Implementation Execution](../workflows/projects/implementation-execution.md#plan-declared-parallelism).
69
+ - `oat project validate-plan --project-path <path>` - validates `oat_plan_parallel_groups` metadata in `plan.md`; exits non-zero on invalid. See [Implementation Execution](../workflows/projects/implementation-execution.md#parallel-phase-groups).
70
70
  - `oat project log append|check|synthesize|rollup` - manage the optional append-only project observation log: append validated judgment or structural entries, inspect grammar and synthesis status, complete end-of-run synthesis, and roll observations into `summary.md` plus the configured repository ledger. See [Project Log](../cli-utilities/project-log.md).
71
71
  - `oat project set-mode` — deprecated no-op. Execution mode is no longer user-selectable; emits a deprecation warning and preserves the `--json` contract.
72
72
  - `oat gate review <prompt...>` - run a stateful, headless OAT review through the target registry, parse the produced review artifact, and exit nonzero for configured blocking findings. `--timeout-ms <milliseconds>` overrides target, `workflow.gateTimeouts`, environment, and scope defaults; accepted values are 1,000–14,400,000. Final/phase/range code reviews default to 30 minutes, while task code and artifact reviews default to 15 minutes. With `--json`, the result envelope on exit is the canonical completion signal: `status` is `ok` | `blocked` | `review_failed` | `artifact_validation_failed` | `targeting_correlation_failed`, alongside `runId`, `generatedAt`, and `artifactPath` when available. For `targeting_correlation_failed`, do not run review-receive even if an artifact path is present. For `artifact_validation_failed`, correct the artifact and rerun the gate until it revalidates as `ok` or `blocked`. Invoke `oat-project-review-receive` only when all three conditions hold: `status` is `ok` or `blocked`, `receiveEligible` is `true`, and `handoff` is non-null. `review_failed` may include structured `refusal`, `noOutputProduced`, and metadata-only `activityEvidence`; these diagnostic fields never make a run receive-eligible. After a timeout, a validated run-correlated artifact returns the ordinary `ok` or `blocked` envelope with additive `lateCompletion: true`. Duplicate run-ID matches or a changed artifact with a mismatched run ID retain `targeting_correlation_failed` and `receiveEligible: false`. Orchestrators should read the structured result rather than poll the filesystem. See [Workflow Gates](../cli-utilities/workflow-gates.md).
@@ -53,16 +53,23 @@ does not launch a third tier.
53
53
 
54
54
  ## Dispatch Layers
55
55
 
56
- Every lifecycle launch flows through two contracts:
56
+ Every lifecycle launch composes three responsibilities:
57
57
 
58
58
  1. `oat-project-dispatch-subagents` resolves project state, role policy,
59
59
  ceilings, scope, files, commits, worktrees, and checkpoints.
60
- 2. `oat-dispatch-subagents` resolves capabilities, catalogs, exact routes,
61
- launch acceptance, continuation, and generic evidence.
62
-
63
- The lifecycle workflow remains authoritative for synthesis and state mutation.
64
- The dispatch engine does not edit `plan.md`, `implementation.md`, or project
65
- state.
60
+ 2. `subagent-orchestration` supplies the durable task classes and
61
+ model-selection principles. The caller loads exactly one active-provider
62
+ selection reference for dated candidates and refresh evidence.
63
+ 3. `oat-dispatch-subagents` resolves capabilities, live catalogs, exact
64
+ routes, launch acceptance, continuation, recovery, and dispatch records. It
65
+ loads exactly one matching provider mechanics reference.
66
+
67
+ The selection and mechanics references form a two-reference provider contract:
68
+ the first owns model guidance, while the second owns provider control surfaces.
69
+ They are loaded together for dispatch but never collapsed into one universal
70
+ matrix. The lifecycle workflow remains authoritative for classification,
71
+ selection judgment, synthesis, and state mutation. The dispatch engine does
72
+ not edit `plan.md`, `implementation.md`, or project state.
66
73
 
67
74
  ```mermaid
68
75
  sequenceDiagram
@@ -23,7 +23,7 @@ comes from configured dispatch policy or a configured cross-family gate
23
23
  (standing, scope-bound), or from explicit user approval for the current run.
24
24
  Availability of a provider CLI is capability evidence, not authorization. See
25
25
  the route tiers in
26
- [Orchestration Model](orchestration-model.md#route-tiers-and-terminality) for
26
+ [Orchestration Model](orchestration-model.md#accepted-launch-terminality) for
27
27
  how native, policy-resolved, and improvised routes are ranked, and why an
28
28
  accepted launch is terminal for automatic replacement.
29
29
 
@@ -276,8 +276,8 @@ task class sets its minimum model-capability floor:
276
276
  File count alone does not justify escalation. Interpretation and policy
277
277
  judgment either use an adequate stronger class or remain with the primary
278
278
  reviewer. Active user and repository instructions, the active-provider
279
- guidance, and the live nested catalog resolve current model examples; the
280
- canonical reviewer does not promise named models.
279
+ selection guidance, and the live nested catalog resolve current model
280
+ examples; the canonical reviewer does not promise named models.
281
281
 
282
282
  Reviewer-local fan-out is limited to one bounded, read-only, non-recursive
283
283
  round. Each worker receives a disjoint scope, cannot modify files or spawn more
@@ -288,15 +288,22 @@ workers, and returns a compact advisory report containing:
288
288
  - gaps in the assigned scope; and
289
289
  - explicit uncertainty, including uncertainty about absence claims.
290
290
 
291
- Before launching these lanes, the reviewer loads the generic
292
- `oat-dispatch-subagents` contract and exactly one active-provider reference.
293
- That shared contract owns nested capability checks, worker catalog resolution,
294
- model and effort selection, routing, authorization, launch evidence, and
295
- provider-specific mechanics. It records each lane's task class, model-class
296
- floor, classification rationale, and floor satisfaction without assuming that
297
- workers inherit the primary reviewer's target. Lanes may share one wave only
298
- when their task classes, model floors, and all other dispatch axes match;
299
- mixed-class reviews use separate waves and records.
291
+ Before launching these lanes, the reviewer loads `subagent-orchestration` for
292
+ durable task classes and model-selection principles, then exactly one
293
+ active-provider selection reference. The reviewer applies that guidance and
294
+ retains the classification, authority, reconciliation, and final finding
295
+ judgment.
296
+
297
+ The reviewer separately loads the internal `oat-dispatch-subagents` contract
298
+ and exactly one matching provider mechanics reference. That layer owns nested
299
+ capability checks, live worker-catalog resolution, authorized routing, launch
300
+ acceptance, recovery, and dispatch records. Selection guidance owns dated
301
+ provider matrices and refresh evidence; dispatch mechanics do not duplicate
302
+ them. The dispatch record preserves each reviewer-supplied task class,
303
+ model-class floor, classification rationale, selected axes, and floor
304
+ satisfaction without assuming workers inherit the primary reviewer's target.
305
+ Lanes may share one wave only when their task classes, model floors, and all
306
+ other dispatch axes match; mixed-class reviews use separate waves and records.
300
307
 
301
308
  This generic reviewer-local use is distinct from
302
309
  `oat-project-dispatch-subagents`, which is reserved for OAT lifecycle phase and
@@ -26,6 +26,7 @@ Use this section when you want to choose the right OAT skill for a task. If you
26
26
  - Capture a scoped, shippable backlog item: `oat-pjm-add-backlog-item` directly when the work is already scoped, or `oat-brainstorm` when the thought hasn't converged yet — the brainstorm dispatcher's "scoped backlog item" destination pre-fills the title / description / acceptance criteria / scope estimate / priority from the conversation and then runs `oat-pjm-add-backlog-item` with confirmed inputs
27
27
  - Manage the repo backlog and reference docs: `oat-pjm-update-repo-reference`, `oat-pjm-review-backlog`
28
28
  - Turn a repo audit, maintainability review, backlog review, backlog directory, or backlog item into standalone external implementation plans: `oat-repo-improve`. Plans land under `.oat/repo/reference/external-plans/`; execute them directly or optionally pass one to `oat-project-import-plan` for tracked OAT execution.
29
+ - Choose what to delegate and route bounded work by task class across Codex, Claude, or Cursor: `subagent-orchestration`. It is self-contained and usable without OAT; live catalogs and current instructions take precedence over its dated provider examples.
29
30
  - Build visual project explainers and final project recaps: `oat-explainer-kit`, backed by the destination-neutral `explainer-kit` core. See [Explainer Kit](explainer-kit.md).
30
31
  - Work on docs surfaces: `authoring-docs` (general documentation baseline), `oat-docs-authoring` (targeted OAT/Fumadocs authoring), `oat-docs-bootstrap` (guided bootstrap of a new docs app), `oat-docs-analyze`, `oat-docs-apply`, and `oat-project-document`
31
32
  - Generate a shipping digest or scheduled recap: `oat-wrap-up`
@@ -123,6 +124,7 @@ Use this section when you want to choose the right OAT skill for a task. If you
123
124
 
124
125
  === "Scaffolding and utility"
125
126
 
127
+ - `subagent-orchestration`
126
128
  - `explainer-kit`
127
129
  - `oat-worktree-bootstrap`
128
130
  - `oat-worktree-bootstrap-auto`
@@ -56,4 +56,16 @@ Failure to publish a backlog item or issue does not invalidate a successfully wr
56
56
 
57
57
  ## Orchestration
58
58
 
59
- Full repository audits use `oat-dispatch-subagents` for bounded read-only reconnaissance while the root agent retains vetting, prioritization, and plan writing. Dispatch is native-first. Configured project/workflow policy may authorize required CLI or cross-runtime routes; an agent-improvised alternate route requires explicit current-run approval.
59
+ Full repository audits use bounded read-only reconnaissance while the root
60
+ agent retains classification, vetting, prioritization, cross-lane synthesis,
61
+ and plan writing. Before launch, the caller loads the durable task classes and
62
+ model-selection principles from `subagent-orchestration` plus exactly one
63
+ active-provider selection reference.
64
+
65
+ The internal `oat-dispatch-subagents` skill then owns capability checks, live
66
+ catalog intersection, exact route selection, launch acceptance, recovery, and
67
+ dispatch records. It loads exactly one matching provider mechanics reference;
68
+ selection and mechanics references are not merged into one universal provider
69
+ contract. Dispatch is native-first. Configured project/workflow policy may
70
+ authorize required CLI or cross-runtime routes; an agent-improvised alternate
71
+ route requires explicit current-run approval.
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.2.13",
3
- "docs-config": "0.2.13",
4
- "docs-theme": "0.2.13",
5
- "docs-transforms": "0.2.13"
2
+ "cli": "0.2.14",
3
+ "docs-config": "0.2.14",
4
+ "docs-theme": "0.2.14",
5
+ "docs-transforms": "0.2.14"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-cursor-cloud-projects
3
- version: 1.0.1
3
+ version: 1.0.2
4
4
  description: Use when OAT work is mentioned in a Cursor Cloud environment. Orients agents to cloud detection, repo-rooted project homes, user-first assets, CLI availability, and Cursor dispatch context without owning lifecycle execution.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -236,10 +236,17 @@ For Cursor review/worker dispatch:
236
236
 
237
237
  1. Read `references/cursor-cloud-mechanics.md`.
238
238
  2. Resolve and read the selected user-scope
239
- `oat-dispatch-subagents/references/provider-cursor.md` by absolute path,
240
- falling back to repo/bundled tiers only when the user skill is absent.
241
- 3. Let `oat-project-dispatch-subagents` adapt lifecycle scope and policy.
242
- 4. Let `oat-dispatch-subagents` own capability, catalog, route, launch,
239
+ `oat-dispatch-subagents/SKILL.md` by absolute path, falling back to
240
+ repo/bundled tiers only when the user skill is absent.
241
+ 3. Resolve and read the selected user-scope
242
+ `subagent-orchestration/references/model-selection-principles.md` and
243
+ `subagent-orchestration/references/provider-cursor.md` by absolute path,
244
+ with the same fallback rule.
245
+ 4. Resolve and read the selected user-scope
246
+ `oat-dispatch-subagents/references/provider-cursor.md` mechanics reference
247
+ by absolute path, with the same fallback rule.
248
+ 5. Let `oat-project-dispatch-subagents` adapt lifecycle scope and policy.
249
+ 6. Let `oat-dispatch-subagents` own capability, catalog, route, launch,
243
250
  recovery, and generic evidence.
244
251
 
245
252
  This skill supplies identity and catalog context only. Do not restate or alter
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-dispatch-subagents
3
- version: 1.1.5
3
+ version: 1.2.1
4
4
  description: Use when an OAT skill or workflow needs provider-neutral selection, launch, recovery, or evidence for bounded subagent work without project lifecycle policy.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -39,7 +39,7 @@ This skill owns:
39
39
 
40
40
  - capability and authorization probing;
41
41
  - live catalog evidence and candidate intersection;
42
- - model, effort, role, route, authority, and deadline selection;
42
+ - model, effort, reasoning mode, service tier, role, route, authority, and deadline selection;
43
43
  - launch acceptance, continuation, recovery, and dispatch records.
44
44
 
45
45
  Do not read OAT project state, interpret `pNN-tNN` identifiers, or add phase,
@@ -49,16 +49,35 @@ contract.
49
49
 
50
50
  ## Required Loading
51
51
 
52
- Read this file before every OAT-managed subagent dispatch. Resolve the active
53
- provider first, then read exactly one provider reference:
54
-
55
- - Claude: `references/provider-claude.md`
56
- - Codex: `references/provider-codex.md`
57
- - Cursor: `references/provider-cursor.md`
58
-
59
- Do not merge provider references into one policy. For an unsupported provider,
60
- apply this provider-neutral contract and fail closed when exact launch controls
61
- cannot be established.
52
+ Model-selection policy lives in the `subagent-orchestration` skill (same
53
+ pack); this skill owns launch mechanics. Read this file before every
54
+ OAT-managed subagent dispatch, then read
55
+ `.agents/skills/subagent-orchestration/references/model-selection-principles.md`.
56
+ Resolve the active provider and read exactly one selection reference from
57
+ that skill plus the matching mechanics reference from this one:
58
+
59
+ - Claude: `subagent-orchestration/references/provider-claude.md`, then
60
+ `references/provider-claude.md`
61
+ - Codex or direct OpenAI: `subagent-orchestration/references/provider-codex.md`,
62
+ then `references/provider-codex.md`
63
+ - Cursor: `subagent-orchestration/references/provider-cursor.md`, then
64
+ `references/provider-cursor.md`
65
+
66
+ Do not merge provider references into one policy. The principles file contains
67
+ the durable task-class contract; the selection reference contains dated model
68
+ mappings; the mechanics reference contains surface-specific launch controls.
69
+ For an unsupported provider, apply the provider-neutral contract and fail
70
+ closed when exact launch controls cannot be established.
71
+
72
+ If the `subagent-orchestration` skill is not installed, treat model guidance
73
+ as unresolved: fail closed for class-constrained dispatch, and for
74
+ unconstrained dispatch select only through active user and repository
75
+ instructions intersected with the live catalog.
76
+
77
+ Read `subagent-orchestration/references/evidence-and-refresh.md` when
78
+ selection guidance is review-required or stale, when a newer model or unknown
79
+ control is observed, or when a consequential dispatch depends on evidence that
80
+ is not current.
62
81
 
63
82
  Read `references/record-schema.md` only when constructing or validating a
64
83
  dispatch request, dispatch record, or homogeneous recon-wave record.
@@ -150,10 +169,17 @@ Keep these controls independent in selection and evidence:
150
169
  workflow, gate, or blocked;
151
170
  - role or agent definition;
152
171
  - model selector and selector granularity;
153
- - effort or reasoning selector, when exposed;
172
+ - provider-native effort or reasoning selector, when exposed;
173
+ - reasoning mode when exposed independently of effort;
174
+ - service tier, including fast or priority variants;
154
175
  - inheritance source and context-fork controls;
155
176
  - authority, writable roots, deadline, and retry limit;
156
- - route and fallback policy.
177
+ - route and fallback policy;
178
+ - provider-guidance version, verification date, and freshness state.
179
+
180
+ Do not normalize effort labels across providers. A fast or priority tier is a
181
+ latency control unless current provider documentation explicitly establishes a
182
+ capability difference; it never satisfies a higher task-class floor.
157
183
 
158
184
  A materialized role may package defaults, but its record must preserve each
159
185
  configured axis separately.
@@ -226,10 +252,35 @@ the lane through `caller-inline`. An economical target is not a universal
226
252
  baseline for the `recon` role.
227
253
 
228
254
  Resolve current class examples through active user and repository instructions
229
- first, then the active-provider reference and live catalog, all constrained by
230
- the supplied policy and ceiling. Provider-reference model names are dated
231
- examples, not canonical requirements. Select an exact eligible target at or
232
- above the requested floor; never silently downgrade.
255
+ first, then the active-provider selection reference and live catalog, all
256
+ constrained by the supplied policy and ceiling. Named models in the guidance
257
+ layer are dated examples, not canonical requirements. Select an exact eligible
258
+ target at or above the requested floor; never silently downgrade.
259
+
260
+ ## Dated Guidance and Candidate Qualification
261
+
262
+ Task-class contracts are durable. Named models in the selection references are
263
+ dated examples. A newer model is a candidate, not an automatic upgrade.
264
+
265
+ Before using a provider mapping, determine its guidance state from the
266
+ selection-reference frontmatter and
267
+ `subagent-orchestration/references/evidence-and-refresh.md`:
268
+
269
+ - `fresh`: use the mapping after live catalog intersection;
270
+ - `review-required`: inspect current official controls and relevant evidence
271
+ before changing the incumbent;
272
+ - `stale`: do not rely on the named mapping without requalification. Retain a
273
+ known-good incumbent only when still available and floor-satisfying, or route
274
+ one class up.
275
+
276
+ A replacement must satisfy the class floor, be exactly selectable in the
277
+ launching harness, have understood effort and service-tier semantics, avoid a
278
+ material regression on relevant evidence, and fit the route's cost, latency,
279
+ tool, context, and safeguard requirements. When evidence is incomplete, keep
280
+ the incumbent or route one class up. Never silently select below the floor.
281
+
282
+ Record the guidance version, verification date, freshness state, and the reason
283
+ for any incumbent change.
233
284
 
234
285
  ## Catalog Evidence
235
286
 
@@ -265,7 +316,8 @@ For every dispatch:
265
316
  or blocked route before launch.
266
317
  6. Build the complete redacted payload.
267
318
  7. Record route, selection source, selection reason, candidates, catalog
268
- source, authority, and deadline.
319
+ source, model, effort, reasoning mode, service tier, guidance version,
320
+ authority, and deadline.
269
321
  8. Launch once.
270
322
  9. Record launch acceptance separately from child outcome and runtime identity.
271
323
 
@@ -294,11 +346,16 @@ A homogeneous wave may share one record only when `task_class` and
294
346
  `model_class_floor` match in addition to every existing dispatch axis.
295
347
  Multiple read-only recon lanes may share one selection record only when all of
296
348
  these axes are identical: provider, dispatch context, catalog snapshot,
297
- selected route, role class, role selector, model, effort, authority, deadline,
298
- retry limit, fallback, `task_class`, and `model_class_floor`. Include a lane
299
- manifest with lane-specific scope, acceptance, and outcome. A recon-wave record
300
- repeats the shared `task_class` and `model_class_floor` beside
301
- `shared_dispatch_record`; lane entries do not redefine them.
349
+ selected route, role class, role selector, model, effort, reasoning mode
350
+ (`reasoning_mode_selector`), service tier (`service_tier_selector`), guidance
351
+ reference (`guidance_reference`), guidance version (`guidance_version`),
352
+ guidance verification date (`guidance_verified_at`), guidance status
353
+ (`guidance_status`), authority, deadline, retry limit, fallback, `task_class`,
354
+ and `model_class_floor`. Optional model-guidance fields must be identically
355
+ present or absent across all lanes and, when present, have identical values.
356
+ Include a lane manifest with lane-specific scope, acceptance, and outcome. A
357
+ recon-wave record repeats the shared `task_class` and `model_class_floor`
358
+ beside `shared_dispatch_record`; lane entries do not redefine them.
302
359
 
303
360
  If any axis differs or either class field does not match, create separate
304
361
  records and waves. The record-level scope is the aggregate wave boundary; each
@@ -1,7 +1,8 @@
1
- # Claude Subagent Dispatch
1
+ # Claude Dispatch Mechanics
2
2
 
3
- Load this reference only when the active provider is Claude. Current
4
- user-level or repository instructions override model examples in this file.
3
+ Load this reference only when the active provider is Claude. Model-selection
4
+ policy for this provider lives in
5
+ `subagent-orchestration/references/provider-claude.md`; read it first.
5
6
 
6
7
  ## Control Surfaces
7
8
 
@@ -33,10 +34,10 @@ satisfy a universal catalog rule.
33
34
 
34
35
  ## Task-Class Resolution
35
36
 
36
- Apply active user and repository instructions first; they override the dated
37
- model-family examples in this provider reference. Intersect the resulting
38
- class guidance with the live native model enum and the supplied policy and
39
- ceiling. Select one exact accepted alias at or above the requested floor:
37
+ Apply active user and repository instructions first, then the dated class
38
+ guidance from the active provider selection reference. Intersect the resulting
39
+ guidance with the live native model enum and the supplied policy and ceiling.
40
+ Select one exact accepted alias at or above the requested floor:
40
41
 
41
42
  - `mechanical-recon`: the fastest economical class suitable for deterministic
42
43
  inventories, parity, and command execution;
@@ -59,7 +60,9 @@ prohibited. Record the exact selector and `floor_satisfaction`.
59
60
  required and native controls cannot express it.
60
61
  - Record selector granularity such as `tier-alias` or `exact-model-id`.
61
62
  - Record native effort as `not-exposed`, not globally `not-applicable`.
63
+ - Record service tier separately; fast Claude routes are latency purchases.
62
64
  - Keep acceptance, outcome, runtime identity, and continuation separate.
65
+ - Record the provider-guidance version and freshness state.
63
66
 
64
67
  Verify current `claude --help` before using a CLI route. Preserve the caller's
65
68
  authority and construct a self-contained bounded prompt.
@@ -1,20 +1,23 @@
1
- # Codex Subagent Dispatch
1
+ # Codex Dispatch Mechanics
2
2
 
3
- Load this reference only when the active provider is Codex. Current user-level
4
- or repository instructions override model examples in this file.
3
+ Load this reference only when the active provider is Codex or a direct OpenAI
4
+ API route. Model-selection policy for this provider lives in
5
+ `subagent-orchestration/references/provider-codex.md`; read it first.
5
6
 
6
7
  ## Independent Controls
7
8
 
8
9
  Codex may expose independent native controls for:
9
10
 
10
11
  - registered agent type;
11
- - model and reasoning effort;
12
+ - exact model and `reasoning.effort`;
13
+ - `reasoning.mode`, including `pro` where supported;
12
14
  - service tier and forked context;
13
15
  - maximum nesting depth;
14
16
  - sandbox and scoped writable roots.
15
17
 
16
18
  A materialized role may package defaults, but preserve role, model, effort,
17
- service tier, fork behavior, and authority as separate configured axes.
19
+ reasoning mode, service tier, fork behavior, and authority as separate
20
+ configured axes.
18
21
 
19
22
  ## Native Topology
20
23
 
@@ -28,13 +31,14 @@ grant filesystem authority.
28
31
 
29
32
  ## Exact Native Selection
30
33
 
31
- 1. Read live registered roles and model/effort selectors.
34
+ 1. Read live registered roles and model, effort, service-tier, and reasoning-mode selectors.
32
35
  2. Read effective depth and sandbox configuration.
33
36
  3. Resolve one configured candidate allowed by policy and ceiling.
34
37
  4. Use the exact registered role as `agent_type` only when guaranteed by the
35
38
  live host.
36
39
  5. Use the fork mode allowed by the live schema for explicit overrides.
37
40
  6. Record materialized configuration and live schema as distinct sources.
41
+ 7. Record the provider-guidance version and freshness state.
38
42
 
39
43
  Prefer economical high-effort workers for narrow, independently verifiable
40
44
  recon. Move to a context-heavier worker when success depends on reconciling
@@ -44,10 +48,10 @@ many files must be searched.
44
48
 
45
49
  ## Task-Class Resolution
46
50
 
47
- Apply active user and repository instructions first; they override the dated
48
- model-family examples in this provider reference. Intersect that guidance with
49
- the live model/effort selectors, registered roles, supplied policy and ceiling,
50
- and requested class floor:
51
+ Apply active user and repository instructions first, then the dated class
52
+ guidance from the active provider selection reference. Intersect that guidance
53
+ with the live model/effort selectors, registered roles, supplied policy and
54
+ ceiling, and requested class floor:
51
55
 
52
56
  - `mechanical-recon`: an economical class and effort suitable for
53
57
  deterministic inventories, parity, and command execution;
@@ -102,6 +106,7 @@ codex exec \
102
106
  '<self-contained bounded prompt>'
103
107
  ```
104
108
 
105
- Honor the caller's authorization boundary. Record model, effort, sandbox, and
106
- route as configured invocation evidence; do not infer runtime identity from a
107
- successful process alone.
109
+ Add a service tier or reasoning mode only through controls shown by the current
110
+ CLI/schema. Honor the caller's authorization boundary. Record every selector
111
+ as configured invocation evidence; do not infer runtime identity from process
112
+ success alone.