@open-agent-toolkit/cli 0.1.52 → 0.1.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/docs/cli-utilities/tool-packs.md +23 -2
- package/assets/docs/contributing/skills.md +16 -0
- package/assets/docs/workflows/projects/implementation-execution.md +20 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-dispatch-subagents/SKILL.md +222 -0
- package/assets/skills/oat-dispatch-subagents/references/provider-claude.md +44 -0
- package/assets/skills/oat-dispatch-subagents/references/provider-codex.md +69 -0
- package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +61 -0
- package/assets/skills/oat-dispatch-subagents/references/record-schema.md +100 -0
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +218 -0
- package/assets/skills/oat-repo-improve/SKILL.md +137 -0
- package/assets/skills/oat-repo-improve/references/audit-playbook.md +130 -0
- package/assets/skills/oat-repo-improve/references/closing-the-loop.md +96 -0
- package/assets/skills/oat-repo-improve/references/plan-template.md +199 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +3 -0
- package/package.json +2 -2
|
@@ -17,13 +17,34 @@ This page covers CLI commands that manage bundled OAT tool packs and installed O
|
|
|
17
17
|
|
|
18
18
|
- `core` - foundational diagnostics and docs access (`oat-doctor`, `oat-docs`)
|
|
19
19
|
- `docs` - docs and agent-instructions governance workflows
|
|
20
|
-
- `workflows` - project lifecycle skills, wrap-up reporting, reviewer agents, and core project templates
|
|
20
|
+
- `workflows` - project lifecycle skills, 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
|
|
22
|
+
- `utility` - review and repo-maintenance helpers plus the provider-neutral subagent-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
|
|
28
|
+
|
|
29
|
+
The reusable dispatch contracts intentionally span two packs:
|
|
30
|
+
|
|
31
|
+
- `utility` owns `oat-dispatch-subagents`, the provider-neutral engine for
|
|
32
|
+
capability checks, catalog-aware selection, launch evidence, and recovery.
|
|
33
|
+
- `workflows` owns `oat-project-dispatch-subagents`, the adapter that adds OAT
|
|
34
|
+
project lifecycle context without duplicating provider mechanics.
|
|
35
|
+
|
|
36
|
+
Install both packs when project lifecycle skills need the adapter:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
oat tools install utility
|
|
40
|
+
oat tools install workflows
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The packs remain independently installable. If the workflows adapter is
|
|
44
|
+
present without the utility engine, it fails closed and reports the missing
|
|
45
|
+
dependency instead of inventing a fallback route. Non-project analytical
|
|
46
|
+
skills can use the utility engine directly.
|
|
47
|
+
|
|
27
48
|
## `oat tools` command group
|
|
28
49
|
|
|
29
50
|
The `oat tools` command group provides a unified interface for managing installed tools (skills and agents) across scopes.
|
|
@@ -75,6 +75,22 @@ At minimum, the skill contract should:
|
|
|
75
75
|
- Stop before side effects if delegation is required for correctness and authorization remains unresolved.
|
|
76
76
|
- Document the fallback path and any quality or independence tradeoff.
|
|
77
77
|
|
|
78
|
+
OAT-specific skills should compose with the internal
|
|
79
|
+
`oat-dispatch-subagents` contract instead of copying provider selection and
|
|
80
|
+
recovery rules. The caller still owns decomposition, user interaction,
|
|
81
|
+
verification of load-bearing claims, cross-lane synthesis, and artifact
|
|
82
|
+
writes. The dispatch contract owns capability and authorization checks, live
|
|
83
|
+
catalog evidence, route/model/effort selection, launch acceptance, recovery,
|
|
84
|
+
and the neutral dispatch record.
|
|
85
|
+
|
|
86
|
+
Keep project lifecycle policy out of that general layer. A lifecycle caller
|
|
87
|
+
loads `oat-project-dispatch-subagents` to resolve project, phase/task, gate,
|
|
88
|
+
write-boundary, commit, and worktree context, then passes a generic request to
|
|
89
|
+
`oat-dispatch-subagents`. Analytical callers such as repository audits can use
|
|
90
|
+
the general contract directly without requiring an active project. In either
|
|
91
|
+
case, resolve the provider first and load exactly one provider-specific
|
|
92
|
+
reference rather than merging provider mechanics into a universal catalog.
|
|
93
|
+
|
|
78
94
|
Use `create-agnostic-skill` or `create-oat-skill` as the starting point; both include the current delegation guidance and optional capability-detection template.
|
|
79
95
|
|
|
80
96
|
## Gate-aware skills
|
|
@@ -25,6 +25,26 @@ ceiling.
|
|
|
25
25
|
|
|
26
26
|
## Execution Layers
|
|
27
27
|
|
|
28
|
+
### Reusable dispatch boundary
|
|
29
|
+
|
|
30
|
+
OAT ships two internal contracts for lifecycle skills that need subagents:
|
|
31
|
+
|
|
32
|
+
- `oat-project-dispatch-subagents` translates resolved project, phase/task,
|
|
33
|
+
gate, write-boundary, commit, and worktree policy into a generic dispatch
|
|
34
|
+
request.
|
|
35
|
+
- `oat-dispatch-subagents` performs provider-neutral capability and
|
|
36
|
+
authorization checks, catalog-aware selection, launch evidence, and
|
|
37
|
+
recovery.
|
|
38
|
+
|
|
39
|
+
The project adapter composes with the general engine; the engine never reads
|
|
40
|
+
project state. Lifecycle callers remain responsible for phase scheduling,
|
|
41
|
+
task boundaries, review and fix-loop policy, project artifacts, commits, and
|
|
42
|
+
worktree fan-in. This is the extension contract for lifecycle dispatch—not a
|
|
43
|
+
license for the general engine to mutate project bookkeeping or reinterpret
|
|
44
|
+
worker results. Individual lifecycle skills may adopt the contract
|
|
45
|
+
incrementally; their own reviewed process contracts remain authoritative until
|
|
46
|
+
that wiring is explicit.
|
|
47
|
+
|
|
28
48
|
### Orchestrator
|
|
29
49
|
|
|
30
50
|
The root `oat-project-implement` workflow resolves project state, chooses Tier
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oat-dispatch-subagents
|
|
3
|
+
version: 1.0.0
|
|
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
|
+
disable-model-invocation: true
|
|
6
|
+
user-invocable: false
|
|
7
|
+
allowed-tools: Read
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Dispatching OAT Subagents
|
|
11
|
+
|
|
12
|
+
Use this internal contract to delegate bounded work while keeping judgment in
|
|
13
|
+
the calling skill. It standardizes provider selection and launch evidence. It
|
|
14
|
+
does not decide what work should be delegated or synthesize worker results.
|
|
15
|
+
|
|
16
|
+
## Progress Indicators (User-Facing)
|
|
17
|
+
|
|
18
|
+
This skill is an internal dependency; the calling skill owns the user-facing
|
|
19
|
+
mode and decides whether a sub-banner is useful. When surfacing a distinct
|
|
20
|
+
dispatch wave, use:
|
|
21
|
+
|
|
22
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
23
|
+
OAT ▸ SUBAGENT DISPATCH
|
|
24
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
25
|
+
|
|
26
|
+
Do not repeat the banner for every lane. Return a compact selection or blocking
|
|
27
|
+
summary for the caller to incorporate.
|
|
28
|
+
|
|
29
|
+
## Ownership Boundary
|
|
30
|
+
|
|
31
|
+
The calling skill owns:
|
|
32
|
+
|
|
33
|
+
- decomposition, lane boundaries, and output schemas;
|
|
34
|
+
- user-facing progress, authorization context, and decisions;
|
|
35
|
+
- verification of load-bearing worker claims;
|
|
36
|
+
- cross-lane synthesis, prioritization, and artifact writes.
|
|
37
|
+
|
|
38
|
+
This skill owns:
|
|
39
|
+
|
|
40
|
+
- capability and authorization probing;
|
|
41
|
+
- live catalog evidence and candidate intersection;
|
|
42
|
+
- model, effort, role, route, authority, and deadline selection;
|
|
43
|
+
- launch acceptance, continuation, recovery, and dispatch records.
|
|
44
|
+
|
|
45
|
+
Do not read OAT project state, interpret `pNN-tNN` identifiers, or add phase,
|
|
46
|
+
gate, commit, or worktree policy here. Project workflows must load
|
|
47
|
+
`oat-project-dispatch-subagents`, which adapts those concerns into this
|
|
48
|
+
contract.
|
|
49
|
+
|
|
50
|
+
## Required Loading
|
|
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.
|
|
62
|
+
|
|
63
|
+
Read `references/record-schema.md` only when constructing or validating a
|
|
64
|
+
dispatch request, dispatch record, or homogeneous recon-wave record.
|
|
65
|
+
|
|
66
|
+
## Caller Request Contract
|
|
67
|
+
|
|
68
|
+
Require the caller to provide:
|
|
69
|
+
|
|
70
|
+
- a unique request ID and calling skill;
|
|
71
|
+
- bounded objective and scope;
|
|
72
|
+
- action and role name mapped to a baseline role class;
|
|
73
|
+
- expected output and verification evidence;
|
|
74
|
+
- authority, deadline, escalation conditions, and retry limit;
|
|
75
|
+
- fallback policy and authorization scope;
|
|
76
|
+
- optional resolved dispatch policy or named ceiling.
|
|
77
|
+
|
|
78
|
+
Reject an over-broad request before selection. Every nontrivial request must
|
|
79
|
+
state the exact objective, scope, expected output, verification evidence, and
|
|
80
|
+
conditions that require escalation. Model routing never repairs poor
|
|
81
|
+
decomposition.
|
|
82
|
+
|
|
83
|
+
The optional policy and ceiling are already-resolved inputs. Do not infer where
|
|
84
|
+
they came from or resolve project state to obtain them.
|
|
85
|
+
|
|
86
|
+
## Capability and Authorization
|
|
87
|
+
|
|
88
|
+
Classify delegation before launch:
|
|
89
|
+
|
|
90
|
+
| State | Meaning | Action |
|
|
91
|
+
| --------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
92
|
+
| `available` | The host exposes a usable launch surface now. | Continue to catalog observation and selection. |
|
|
93
|
+
| `authorization-required` | A usable surface exists but needs user approval or scope grant. | Ask once, preserve the approved scope, then re-probe. |
|
|
94
|
+
| `unresolved-or-unsupported` | No exact usable surface can be established in this environment. | Use only a pre-approved alternate route or block; do not invent syntax. |
|
|
95
|
+
|
|
96
|
+
Authorization-required is not unavailability. Do not silently reduce coverage
|
|
97
|
+
or run expensive work inline merely because one approval question is needed.
|
|
98
|
+
The caller owns the user interaction; this skill returns the question and
|
|
99
|
+
required scope.
|
|
100
|
+
|
|
101
|
+
## Dispatch Axes
|
|
102
|
+
|
|
103
|
+
Keep these controls independent in selection and evidence:
|
|
104
|
+
|
|
105
|
+
- dispatch context: root native, nested native, provider CLI, workflow, gate,
|
|
106
|
+
or blocked;
|
|
107
|
+
- role or agent definition;
|
|
108
|
+
- model selector and selector granularity;
|
|
109
|
+
- effort or reasoning selector, when exposed;
|
|
110
|
+
- inheritance source and context-fork controls;
|
|
111
|
+
- authority, writable roots, deadline, and retry limit;
|
|
112
|
+
- route and fallback policy.
|
|
113
|
+
|
|
114
|
+
A materialized role may package defaults, but its record must preserve each
|
|
115
|
+
configured axis separately.
|
|
116
|
+
|
|
117
|
+
## Baseline Role Classes
|
|
118
|
+
|
|
119
|
+
Specific role names are extensible, but map every dispatch to one class:
|
|
120
|
+
|
|
121
|
+
| Class | Default contract |
|
|
122
|
+
| -------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
123
|
+
| `recon` | Read-only, bounded evidence collection. Select an explicit economical target; never silently inherit an expensive root model. |
|
|
124
|
+
| `dossier-lead` | Reconcile dispersed evidence within one declared scope. May coordinate bounded recon only when nesting is supported and approved. |
|
|
125
|
+
| `generator` | Produce a self-contained artifact within caller-declared authority. |
|
|
126
|
+
| `worker` | Execute bounded work with explicit authority, outputs, and verification. |
|
|
127
|
+
| `reviewer` | Perform independent or inherited review exactly as caller policy specifies. |
|
|
128
|
+
| `coordinator` | Coordinate a caller-defined topology without taking over caller synthesis or user dialogue. |
|
|
129
|
+
|
|
130
|
+
Use stronger workers when context, ambiguity, or consequence requires them,
|
|
131
|
+
not merely because many files exist. Keep coherence-critical synthesis and
|
|
132
|
+
cross-scope judgment in the root caller.
|
|
133
|
+
|
|
134
|
+
## Catalog Evidence
|
|
135
|
+
|
|
136
|
+
A catalog snapshot belongs to one dispatch context. A root native catalog does
|
|
137
|
+
not establish a nested coordinator's catalog, and a provider CLI account
|
|
138
|
+
catalog does not establish native eligibility.
|
|
139
|
+
|
|
140
|
+
Before explicit selection:
|
|
141
|
+
|
|
142
|
+
1. Observe selectors exposed to the dispatcher that will launch the child.
|
|
143
|
+
2. Observe role or agent-type selectors when exposed before selection.
|
|
144
|
+
3. Record catalog source, context, and observation time.
|
|
145
|
+
4. Intersect configured candidates allowed by policy and ceiling with that
|
|
146
|
+
catalog, preserving exact provider strings.
|
|
147
|
+
5. Keep volatile observations out of durable configuration unless the user
|
|
148
|
+
explicitly changes the owning configuration.
|
|
149
|
+
|
|
150
|
+
Do not launch a diagnostic child solely to obtain a catalog the provider
|
|
151
|
+
cannot expose before selection. Record the visibility timing instead.
|
|
152
|
+
|
|
153
|
+
## Full-Information Selection
|
|
154
|
+
|
|
155
|
+
For every dispatch:
|
|
156
|
+
|
|
157
|
+
1. Validate the caller request and capability state.
|
|
158
|
+
2. Resolve provider, context, role class, policy, ceiling, and candidates.
|
|
159
|
+
3. Observe the launching dispatcher's relevant catalogs.
|
|
160
|
+
4. Compute the exact native intersection.
|
|
161
|
+
5. Select one native, inherited, provider-CLI, workflow, gate, or blocked route
|
|
162
|
+
before launch.
|
|
163
|
+
6. Build the complete redacted payload.
|
|
164
|
+
7. Record route, selection reason, candidates, catalog source, authority, and
|
|
165
|
+
deadline.
|
|
166
|
+
8. Launch once.
|
|
167
|
+
9. Record launch acceptance separately from child outcome and runtime identity.
|
|
168
|
+
|
|
169
|
+
```mermaid
|
|
170
|
+
flowchart TD
|
|
171
|
+
A[Validate bounded request] --> B[Observe dispatcher catalogs]
|
|
172
|
+
B --> C[Intersect policy candidates with live selectors]
|
|
173
|
+
C --> D{Satisfactory native target?}
|
|
174
|
+
D -->|Yes| E[Build exact native payload]
|
|
175
|
+
D -->|No| F{Deliberate inheritance allowed?}
|
|
176
|
+
F -->|Yes| G[Build inherited payload]
|
|
177
|
+
F -->|No| H{Exact alternate route selected pre-start?}
|
|
178
|
+
H -->|Yes| I[Build external payload]
|
|
179
|
+
H -->|No| J[Block]
|
|
180
|
+
E --> K[Record then launch once]
|
|
181
|
+
G --> K
|
|
182
|
+
I --> K
|
|
183
|
+
K --> L{Accepted?}
|
|
184
|
+
L -->|No| M[Record pre-start rejection]
|
|
185
|
+
L -->|Yes| N[Record outcome; no replacement]
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Homogeneous Recon Waves
|
|
189
|
+
|
|
190
|
+
Multiple read-only recon lanes may share one selection record only when all of
|
|
191
|
+
these axes are identical: provider, dispatch context, catalog snapshot,
|
|
192
|
+
selected route, role class, role selector, model, effort, authority, deadline,
|
|
193
|
+
retry limit, and fallback. Include a lane manifest with lane-specific scope,
|
|
194
|
+
acceptance, and outcome.
|
|
195
|
+
|
|
196
|
+
If any axis differs, create separate records. The record-level scope is the
|
|
197
|
+
aggregate wave boundary; each lane may narrow that boundary.
|
|
198
|
+
|
|
199
|
+
## Acceptance and Recovery
|
|
200
|
+
|
|
201
|
+
- An accepted launch is terminal for automatic replacement eligibility.
|
|
202
|
+
- Completion, failure, timeout, interruption, `BLOCKED`, and contract refusal
|
|
203
|
+
are post-acceptance outcomes; none makes another route eligible.
|
|
204
|
+
- A wrapper failure or payload rejection before child start is a pre-start
|
|
205
|
+
rejection. A new recorded selection is allowed only within caller retry
|
|
206
|
+
policy.
|
|
207
|
+
- Continuing the same accepted child through its valid handle is allowed.
|
|
208
|
+
Record continuation separately and preserve selectors and route.
|
|
209
|
+
- Operator-authorized recovery is a new explicit action, never automatic
|
|
210
|
+
fallback.
|
|
211
|
+
- Runtime identity is optional corroboration. Missing runtime identity does not
|
|
212
|
+
invalidate launcher-owned configured invocation evidence.
|
|
213
|
+
|
|
214
|
+
## Return Contract
|
|
215
|
+
|
|
216
|
+
Return the structured record plus the child output or blocking diagnostic to
|
|
217
|
+
the caller. Do not write caller artifacts, reinterpret results, or make user
|
|
218
|
+
decisions. The caller verifies claims before depending on them.
|
|
219
|
+
|
|
220
|
+
Use the schema in `references/record-schema.md`. Existing parseable dispatch
|
|
221
|
+
stamps may remain for compatibility, but they do not replace the structured
|
|
222
|
+
record.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Claude Subagent Dispatch
|
|
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.
|
|
5
|
+
|
|
6
|
+
## Control Surfaces
|
|
7
|
+
|
|
8
|
+
| Surface | Controls | Qualification |
|
|
9
|
+
| ----------------- | ------------------------------------------ | ------------------------------------------------------ |
|
|
10
|
+
| Native agent tool | Agent type plus optional model | Effort may not be exposed on this surface. |
|
|
11
|
+
| Agent definition | Default model in frontmatter | Between explicit call selection and inheritance. |
|
|
12
|
+
| Workflow agent | Agent type, model, and effort when exposed | Use only controls present in the live schema. |
|
|
13
|
+
| `claude -p` | Alias or full model ID plus CLI effort | Verify current CLI help before constructing a route. |
|
|
14
|
+
| Continuation | Existing child handle through message send | Preserves context; a new launch creates another child. |
|
|
15
|
+
|
|
16
|
+
Native model resolution commonly follows explicit call model, agent-definition
|
|
17
|
+
model, then parent/session inheritance. Treat omission as a deliberate
|
|
18
|
+
inheritance selection. Never omit a worker model when inheritance is not the
|
|
19
|
+
recorded policy.
|
|
20
|
+
|
|
21
|
+
## Native Topology
|
|
22
|
+
|
|
23
|
+
Use economical workers for bounded reconnaissance and stronger workers for
|
|
24
|
+
context-heavy dossiers or subtle decisions. Keep cross-dossier synthesis and
|
|
25
|
+
user dialogue in the root caller. A dossier lead may coordinate bounded recon
|
|
26
|
+
only when the live host supports nesting and the caller declared it.
|
|
27
|
+
|
|
28
|
+
The current nested model enum may be visible before selection while nested
|
|
29
|
+
agent types become visible later. Read what the dispatcher exposes, use only a
|
|
30
|
+
known role from the active contract when a pre-call role list is unavailable,
|
|
31
|
+
and record visibility timing. Do not launch a diagnostic child solely to
|
|
32
|
+
satisfy a universal catalog rule.
|
|
33
|
+
|
|
34
|
+
## Surface-Aware Selection
|
|
35
|
+
|
|
36
|
+
- Select an exact accepted alias from the native enum for native dispatch.
|
|
37
|
+
- Select a CLI route before launch when a full model ID or explicit effort is
|
|
38
|
+
required and native controls cannot express it.
|
|
39
|
+
- Record selector granularity such as `tier-alias` or `exact-model-id`.
|
|
40
|
+
- Record native effort as `not-exposed`, not globally `not-applicable`.
|
|
41
|
+
- Keep acceptance, outcome, runtime identity, and continuation separate.
|
|
42
|
+
|
|
43
|
+
Verify current `claude --help` before using a CLI route. Preserve the caller's
|
|
44
|
+
authority and construct a self-contained bounded prompt.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Codex Subagent Dispatch
|
|
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.
|
|
5
|
+
|
|
6
|
+
## Independent Controls
|
|
7
|
+
|
|
8
|
+
Codex may expose independent native controls for:
|
|
9
|
+
|
|
10
|
+
- registered agent type;
|
|
11
|
+
- model and reasoning effort;
|
|
12
|
+
- service tier and forked context;
|
|
13
|
+
- maximum nesting depth;
|
|
14
|
+
- sandbox and scoped writable roots.
|
|
15
|
+
|
|
16
|
+
A materialized role may package defaults, but preserve role, model, effort,
|
|
17
|
+
service tier, fork behavior, and authority as separate configured axes.
|
|
18
|
+
|
|
19
|
+
## Native Topology
|
|
20
|
+
|
|
21
|
+
When subagents are available, keep judgment in the root caller and delegate
|
|
22
|
+
bounded volume. A dossier lead may dispatch its own recon workers only when the
|
|
23
|
+
effective nesting depth permits it and the caller declared that topology.
|
|
24
|
+
|
|
25
|
+
Before a write-capable launch, verify the minimum scoped writable roots needed
|
|
26
|
+
for the task, shared Git metadata, and managed output. Native nesting does not
|
|
27
|
+
grant filesystem authority.
|
|
28
|
+
|
|
29
|
+
## Exact Native Selection
|
|
30
|
+
|
|
31
|
+
1. Read live registered roles and model/effort selectors.
|
|
32
|
+
2. Read effective depth and sandbox configuration.
|
|
33
|
+
3. Resolve one configured candidate allowed by policy and ceiling.
|
|
34
|
+
4. Use the exact registered role as `agent_type` only when guaranteed by the
|
|
35
|
+
live host.
|
|
36
|
+
5. Use the fork mode allowed by the live schema for explicit overrides.
|
|
37
|
+
6. Record materialized configuration and live schema as distinct sources.
|
|
38
|
+
|
|
39
|
+
Prefer economical high-effort workers for narrow, independently verifiable
|
|
40
|
+
recon. Move to a context-heavier worker when success depends on reconciling
|
|
41
|
+
dispersed evidence, and to a stronger reasoning route when ambiguity,
|
|
42
|
+
consequence, or adversarial analysis dominates. Do not escalate merely because
|
|
43
|
+
many files must be searched.
|
|
44
|
+
|
|
45
|
+
Native spawn acceptance is configured-invocation evidence. Missing runtime
|
|
46
|
+
model identity does not invalidate an accepted configured payload.
|
|
47
|
+
|
|
48
|
+
Only an actual role-selection rejection before child start permits another
|
|
49
|
+
recorded route. Timeout, interruption, `BLOCKED`, or task failure after
|
|
50
|
+
acceptance does not.
|
|
51
|
+
|
|
52
|
+
## CLI Route
|
|
53
|
+
|
|
54
|
+
When native dispatch cannot express the complete target and the route is
|
|
55
|
+
selected before launch, use current `codex exec --help` to construct a
|
|
56
|
+
self-contained invocation. A typical read-only shape is:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
codex exec \
|
|
60
|
+
--ephemeral \
|
|
61
|
+
--sandbox read-only \
|
|
62
|
+
--model '<model>' \
|
|
63
|
+
-c 'model_reasoning_effort="<effort>"' \
|
|
64
|
+
'<self-contained bounded prompt>'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Honor the caller's authorization boundary. Record model, effort, sandbox, and
|
|
68
|
+
route as configured invocation evidence; do not infer runtime identity from a
|
|
69
|
+
successful process alone.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Cursor Subagent Dispatch
|
|
2
|
+
|
|
3
|
+
Load this reference only when the active provider is Cursor. Cursor IDE and
|
|
4
|
+
Cursor CLI are separate harness contexts. Treat every observed catalog as a
|
|
5
|
+
volatile snapshot, never a durable inventory.
|
|
6
|
+
|
|
7
|
+
## Control Surfaces
|
|
8
|
+
|
|
9
|
+
| Source | Establishes | Does not establish |
|
|
10
|
+
| ---------------------------- | --------------------------------------------------------- | -------------------------------------------------------------- |
|
|
11
|
+
| Native Task/Subagent schema | Roles and opaque selectors for that dispatcher invocation | CLI account eligibility or another dispatcher's native catalog |
|
|
12
|
+
| `cursor-agent --list-models` | Opaque selectors accepted by the account CLI | Native Task eligibility |
|
|
13
|
+
| Cursor UI role configuration | User-selected defaults and role settings | Live root or nested schema without a new observation |
|
|
14
|
+
|
|
15
|
+
Root and nested catalogs are independent, volatile observations. Equality in
|
|
16
|
+
one run does not establish equality in another run or nesting boundary.
|
|
17
|
+
|
|
18
|
+
## Native Selection
|
|
19
|
+
|
|
20
|
+
1. Read the native model enum from the dispatcher that will launch the child.
|
|
21
|
+
2. Intersect configured candidates with that exact snapshot.
|
|
22
|
+
3. Pass the selected opaque string byte-for-byte.
|
|
23
|
+
4. Treat an omitted model as deliberate parent inheritance, not generic
|
|
24
|
+
defaulting or evidence that a target was unavailable.
|
|
25
|
+
5. Record requested selector, acceptance, outcome, and runtime identity
|
|
26
|
+
separately.
|
|
27
|
+
|
|
28
|
+
Do not infer Cursor IDE behavior from a headless CLI surface. Keep bounded
|
|
29
|
+
recon on economical explicit targets and reserve stronger targets for
|
|
30
|
+
context-heavy or consequential work.
|
|
31
|
+
|
|
32
|
+
## Pre-Start CLI Routes
|
|
33
|
+
|
|
34
|
+
When the current native intersection is absent or unsatisfactory, a caller may
|
|
35
|
+
use a deliberate pre-start CLI route only when:
|
|
36
|
+
|
|
37
|
+
- the caller's fallback policy allows it;
|
|
38
|
+
- the exact CLI selector exists in the account catalog;
|
|
39
|
+
- native mismatch, route, reason, and candidates are recorded before launch;
|
|
40
|
+
- the prompt is self-contained and authority-bounded.
|
|
41
|
+
|
|
42
|
+
Verify current CLI help before use. A typical shape is:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
cursor-agent \
|
|
46
|
+
--trust \
|
|
47
|
+
--print \
|
|
48
|
+
--model '<exact-opaque-model>' \
|
|
49
|
+
'<self-contained bounded prompt>'
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
CLI completion proves configured invocation completion. It does not prove an
|
|
53
|
+
inner native selection or runtime model identity.
|
|
54
|
+
|
|
55
|
+
## Catalog-Mismatch Advisory
|
|
56
|
+
|
|
57
|
+
Report configured candidates missing from the current native catalog, nearby
|
|
58
|
+
native candidates as possible ladder additions, selected route, and the exact
|
|
59
|
+
observation boundary. Do not remove CLI-capable candidates solely because the
|
|
60
|
+
native surface cannot pin them, and do not write observed catalogs into durable
|
|
61
|
+
configuration without explicit user choice.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Dispatch Record Schema
|
|
2
|
+
|
|
3
|
+
Load this reference only when constructing or validating dispatch evidence.
|
|
4
|
+
Use neutral scope, action, role, and authority fields. Calling workflows may
|
|
5
|
+
add namespaced metadata without redefining these fields.
|
|
6
|
+
|
|
7
|
+
## Request
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
request_id: dispatch-unique-id
|
|
11
|
+
caller: oat-repo-improve
|
|
12
|
+
scope: repo:packages/cli
|
|
13
|
+
objective: Audit CLI correctness hotspots
|
|
14
|
+
action: analysis
|
|
15
|
+
role:
|
|
16
|
+
name: repo-audit-scout
|
|
17
|
+
class: recon
|
|
18
|
+
provider: codex
|
|
19
|
+
dispatch_context: root-native
|
|
20
|
+
dispatch_policy: economy
|
|
21
|
+
dispatch_ceiling: high
|
|
22
|
+
authority: read-only
|
|
23
|
+
expected_output: structured-findings
|
|
24
|
+
verification_evidence: file-line-references
|
|
25
|
+
deadline_seconds: 300
|
|
26
|
+
retry_limit: 1
|
|
27
|
+
authorization_scope: this-audit-run
|
|
28
|
+
fallback:
|
|
29
|
+
mode: explicit-downgrade
|
|
30
|
+
target: reduced-quick-audit
|
|
31
|
+
escalate_when:
|
|
32
|
+
- evidence requires cross-package reconciliation
|
|
33
|
+
- security impact is consequential
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`dispatch_policy` and `dispatch_ceiling` are optional resolved inputs. The
|
|
37
|
+
general engine does not resolve their source.
|
|
38
|
+
|
|
39
|
+
## Record
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
request_id: dispatch-unique-id
|
|
43
|
+
caller: oat-repo-improve
|
|
44
|
+
scope: repo:packages/cli
|
|
45
|
+
objective: Audit CLI correctness hotspots
|
|
46
|
+
action: analysis
|
|
47
|
+
role_name: repo-audit-scout
|
|
48
|
+
role_class: recon
|
|
49
|
+
provider: codex
|
|
50
|
+
dispatch_context: root-native
|
|
51
|
+
dispatch_policy: economy
|
|
52
|
+
dispatch_ceiling: high
|
|
53
|
+
catalog_snapshot:
|
|
54
|
+
id: root-native-1
|
|
55
|
+
source: tool-schema
|
|
56
|
+
observed_at: 2026-07-12T00:00:00Z
|
|
57
|
+
authority: read-only
|
|
58
|
+
role_selector: oat-recon-worker
|
|
59
|
+
model_selector: opaque-provider-selector
|
|
60
|
+
model_selector_granularity: opaque
|
|
61
|
+
effort_selector: economical
|
|
62
|
+
selection_source: explicit-call
|
|
63
|
+
candidates_considered:
|
|
64
|
+
- opaque-provider-selector
|
|
65
|
+
selection_reason: native-catalog
|
|
66
|
+
selected_route: native
|
|
67
|
+
deadline_seconds: 300
|
|
68
|
+
retry_limit: 1
|
|
69
|
+
payload: {}
|
|
70
|
+
launch_status: accepted
|
|
71
|
+
child_outcome: completed
|
|
72
|
+
configured_invocation_evidence: []
|
|
73
|
+
runtime_confirmation: not-reported
|
|
74
|
+
diagnostics: []
|
|
75
|
+
continuation_events: []
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`role_selector` is the exact provider or harness agent-type selector, when that
|
|
79
|
+
surface exists. Preserve opaque selectors byte-for-byte.
|
|
80
|
+
|
|
81
|
+
## Recon Wave
|
|
82
|
+
|
|
83
|
+
```yaml
|
|
84
|
+
wave_id: repo-audit-wave-1
|
|
85
|
+
scope: repo:packages/cli
|
|
86
|
+
shared_dispatch_record: dispatch-unique-id
|
|
87
|
+
lanes:
|
|
88
|
+
- lane_id: correctness
|
|
89
|
+
scope: packages/cli/src
|
|
90
|
+
launch_status: accepted
|
|
91
|
+
child_outcome: completed
|
|
92
|
+
- lane_id: security
|
|
93
|
+
scope: packages/cli/src
|
|
94
|
+
launch_status: accepted
|
|
95
|
+
child_outcome: completed
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
The wave scope is the aggregate boundary. Lane scope may narrow it. Use one
|
|
99
|
+
shared record only when every dispatch axis listed in the main skill is
|
|
100
|
+
identical.
|