@open-agent-toolkit/cli 0.2.2 → 0.2.4
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/agents/oat-reviewer.md +59 -3
- package/assets/docs/cli-utilities/project-log.md +16 -0
- package/assets/docs/cli-utilities/workflow-gates.md +69 -8
- package/assets/docs/workflows/projects/autonomy.md +20 -6
- package/assets/docs/workflows/projects/implementation-execution.md +46 -0
- package/assets/docs/workflows/projects/lifecycle.md +29 -6
- package/assets/docs/workflows/projects/reviews.md +88 -1
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-dispatch-subagents/SKILL.md +90 -15
- package/assets/skills/oat-dispatch-subagents/references/provider-claude.md +21 -0
- package/assets/skills/oat-dispatch-subagents/references/provider-codex.md +22 -0
- package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +66 -15
- package/assets/skills/oat-dispatch-subagents/references/record-schema.md +63 -2
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +147 -139
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +147 -139
- package/assets/skills/oat-project-implement/SKILL.md +17 -6
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +387 -58
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +147 -139
- package/assets/skills/oat-project-implement/references/phase-execution.md +35 -2
- package/assets/skills/oat-project-next/SKILL.md +59 -18
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +147 -139
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +147 -139
- package/assets/skills/oat-project-review-provide/SKILL.md +38 -2
- package/assets/skills/oat-wave-execute/SKILL.md +16 -1
- package/assets/skills/oat-wave-program/SKILL.md +16 -1
- package/assets/templates/state.md +32 -0
- package/dist/commands/gate/index.d.ts +1 -0
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +5 -1
- package/dist/commands/shared/frontmatter.d.ts +1 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +1 -0
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-dispatch-subagents
|
|
3
|
-
version: 1.1.
|
|
3
|
+
version: 1.1.5
|
|
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
|
|
@@ -76,6 +76,19 @@ Require the caller to provide:
|
|
|
76
76
|
- route-selection source for any non-native route;
|
|
77
77
|
- optional resolved dispatch policy or named ceiling.
|
|
78
78
|
|
|
79
|
+
The caller may also provide `task_class`, `classification_source`, and
|
|
80
|
+
`classification_reason`. This task-class metadata is optional for existing
|
|
81
|
+
generic callers. When supplied, all three fields are required:
|
|
82
|
+
|
|
83
|
+
- `task_class`: `mechanical-recon`, `intelligent-recon`,
|
|
84
|
+
`default-implementation`, `hard-reasoning`, or `consequential`;
|
|
85
|
+
- `classification_source`: the literal `caller`; and
|
|
86
|
+
- `classification_reason`: a non-empty artifact-informed rationale.
|
|
87
|
+
|
|
88
|
+
The caller owns classification. `oat-reviewer` requires these fields for every
|
|
89
|
+
reviewer-local reconnaissance lane; other callers that omit them retain
|
|
90
|
+
role-based selection behavior and records without class-floor fields.
|
|
91
|
+
|
|
79
92
|
Reject an over-broad request before selection. Every nontrivial request must
|
|
80
93
|
state the exact objective, scope, expected output, verification evidence, and
|
|
81
94
|
conditions that require escalation. Model routing never repairs poor
|
|
@@ -169,19 +182,55 @@ or a second launch.
|
|
|
169
182
|
|
|
170
183
|
Specific role names are extensible, but map every dispatch to one class:
|
|
171
184
|
|
|
172
|
-
| Class | Default contract
|
|
173
|
-
| -------------- |
|
|
174
|
-
| `recon` | Read-only, bounded evidence collection.
|
|
175
|
-
| `dossier-lead` | Reconcile dispersed evidence within one declared scope. May coordinate bounded recon only when nesting is supported and approved.
|
|
176
|
-
| `generator` | Produce a self-contained artifact within caller-declared authority.
|
|
177
|
-
| `worker` | Execute bounded work with explicit authority, outputs, and verification.
|
|
178
|
-
| `reviewer` | Perform independent or inherited review exactly as caller policy specifies.
|
|
179
|
-
| `coordinator` | Coordinate a caller-defined topology without taking over caller synthesis or user dialogue.
|
|
185
|
+
| Class | Default contract |
|
|
186
|
+
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
187
|
+
| `recon` | Read-only, bounded evidence collection. Meet any supplied `task_class` / `model_class_floor` at or above the floor; select an explicit economical target only when no task-class floor was supplied. Never silently inherit a root model. |
|
|
188
|
+
| `dossier-lead` | Reconcile dispersed evidence within one declared scope. May coordinate bounded recon only when nesting is supported and approved. |
|
|
189
|
+
| `generator` | Produce a self-contained artifact within caller-declared authority. |
|
|
190
|
+
| `worker` | Execute bounded work with explicit authority, outputs, and verification. |
|
|
191
|
+
| `reviewer` | Perform independent or inherited review exactly as caller policy specifies. |
|
|
192
|
+
| `coordinator` | Coordinate a caller-defined topology without taking over caller synthesis or user dialogue. |
|
|
180
193
|
|
|
181
194
|
Use stronger workers when context, ambiguity, or consequence requires them,
|
|
182
195
|
not merely because many files exist. Keep coherence-critical synthesis and
|
|
183
196
|
cross-scope judgment in the root caller.
|
|
184
197
|
|
|
198
|
+
## Task Classes and Model Floors
|
|
199
|
+
|
|
200
|
+
Role class and task class are independent. Role class controls authority and
|
|
201
|
+
output ownership; task class is the minimum model-capability floor for one
|
|
202
|
+
bounded objective. A `role.class: recon` worker remains read-only and advisory
|
|
203
|
+
at every task class.
|
|
204
|
+
|
|
205
|
+
Classify by deterministic verifiability, silent-miss risk, dispersed context,
|
|
206
|
+
ambiguity, and consequence, in that order. File count alone never justifies
|
|
207
|
+
escalation:
|
|
208
|
+
|
|
209
|
+
| Task class | Minimum capability contract |
|
|
210
|
+
| ------------------------ | ------------------------------------------------------------------------------------------------------- |
|
|
211
|
+
| `mechanical-recon` | Deterministic inventories, parity checks, or test/lint/format/build execution whose misses are visible. |
|
|
212
|
+
| `intelligent-recon` | Interpretation, unfamiliar-code auditing, or policy/semantic evidence where a miss could be silent. |
|
|
213
|
+
| `default-implementation` | Retain and reconcile dispersed context inside one independently bounded scope. |
|
|
214
|
+
| `hard-reasoning` | Ambiguity, novelty, architecture analysis, or competing interpretations dominate. |
|
|
215
|
+
| `consequential` | Security, release safety, irreversible impact, adversarial analysis, or expensive failure dominates. |
|
|
216
|
+
|
|
217
|
+
Mechanical workers may execute checks and return exact output. Interpretation
|
|
218
|
+
and policy judgment require a stronger class or stay with the root caller. When
|
|
219
|
+
uncertain between classes, use the stronger floor.
|
|
220
|
+
|
|
221
|
+
For unconstrained legacy recon with no `task_class` supplied, select an
|
|
222
|
+
explicit economical target rather than silently inheriting the root model.
|
|
223
|
+
Class-constrained recon must select a target at or above the supplied
|
|
224
|
+
`model_class_floor`; otherwise set `floor_satisfaction: unsatisfied` and return
|
|
225
|
+
the lane through `caller-inline`. An economical target is not a universal
|
|
226
|
+
baseline for the `recon` role.
|
|
227
|
+
|
|
228
|
+
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.
|
|
233
|
+
|
|
185
234
|
## Catalog Evidence
|
|
186
235
|
|
|
187
236
|
A catalog snapshot belongs to one dispatch context. A root native catalog does
|
|
@@ -206,9 +255,11 @@ cannot expose before selection. Record the visibility timing instead.
|
|
|
206
255
|
For every dispatch:
|
|
207
256
|
|
|
208
257
|
1. Validate the caller request and capability state.
|
|
209
|
-
2. Resolve provider, context, role class,
|
|
258
|
+
2. Resolve provider, context, role class, optional task class and model-class
|
|
259
|
+
floor, policy, ceiling, and candidates.
|
|
210
260
|
3. Observe the launching dispatcher's relevant catalogs.
|
|
211
|
-
4. Compute the exact native intersection
|
|
261
|
+
4. Compute the exact native intersection at or above the supplied task-class
|
|
262
|
+
floor, when present.
|
|
212
263
|
5. Prefer an eligible native route. Otherwise select one policy-resolved or
|
|
213
264
|
explicitly authorized inherited, provider-CLI/programmatic, workflow, gate,
|
|
214
265
|
or blocked route before launch.
|
|
@@ -239,14 +290,38 @@ flowchart TD
|
|
|
239
290
|
|
|
240
291
|
## Homogeneous Recon Waves
|
|
241
292
|
|
|
293
|
+
A homogeneous wave may share one record only when `task_class` and
|
|
294
|
+
`model_class_floor` match in addition to every existing dispatch axis.
|
|
242
295
|
Multiple read-only recon lanes may share one selection record only when all of
|
|
243
296
|
these axes are identical: provider, dispatch context, catalog snapshot,
|
|
244
297
|
selected route, role class, role selector, model, effort, authority, deadline,
|
|
245
|
-
retry limit, and
|
|
246
|
-
acceptance, and outcome.
|
|
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.
|
|
302
|
+
|
|
303
|
+
If any axis differs or either class field does not match, create separate
|
|
304
|
+
records and waves. The record-level scope is the aggregate wave boundary; each
|
|
305
|
+
lane may narrow that boundary.
|
|
306
|
+
|
|
307
|
+
## Class-Constrained Fallback
|
|
308
|
+
|
|
309
|
+
For a request with task-class metadata, record `model_class_floor` equal to
|
|
310
|
+
`task_class` and set `floor_satisfaction` to `satisfied` or `unsatisfied`.
|
|
311
|
+
An unsatisfied floor blocks launch and returns control to the caller; it never
|
|
312
|
+
records a weaker selection as success.
|
|
313
|
+
|
|
314
|
+
Reviewer-local requests use:
|
|
315
|
+
|
|
316
|
+
```yaml
|
|
317
|
+
fallback:
|
|
318
|
+
mode: caller-inline
|
|
319
|
+
allow_below_task_class_floor: false
|
|
320
|
+
```
|
|
247
321
|
|
|
248
|
-
|
|
249
|
-
|
|
322
|
+
Below-floor selection is prohibited. The legacy `explicit-downgrade` fallback
|
|
323
|
+
remains available only to unconstrained callers without task-class metadata or
|
|
324
|
+
a declared class floor.
|
|
250
325
|
|
|
251
326
|
## Acceptance and Recovery
|
|
252
327
|
|
|
@@ -31,6 +31,27 @@ known role from the active contract when a pre-call role list is unavailable,
|
|
|
31
31
|
and record visibility timing. Do not launch a diagnostic child solely to
|
|
32
32
|
satisfy a universal catalog rule.
|
|
33
33
|
|
|
34
|
+
## Task-Class Resolution
|
|
35
|
+
|
|
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:
|
|
40
|
+
|
|
41
|
+
- `mechanical-recon`: the fastest economical class suitable for deterministic
|
|
42
|
+
inventories, parity, and command execution;
|
|
43
|
+
- `intelligent-recon`: a stronger fast class that can interpret unfamiliar
|
|
44
|
+
code, semantics, and silent-miss-prone evidence;
|
|
45
|
+
- `default-implementation`: a context-retentive implementation class for
|
|
46
|
+
independently bounded dossier work;
|
|
47
|
+
- `hard-reasoning`: a strong reasoning class for ambiguity or architecture;
|
|
48
|
+
- `consequential`: the strongest allowed class for security, release safety,
|
|
49
|
+
irreversible impact, or expensive failure.
|
|
50
|
+
|
|
51
|
+
A stale or unavailable named example requires a newer eligible model meeting
|
|
52
|
+
the same class floor or a route one class up. Selection below the floor is
|
|
53
|
+
prohibited. Record the exact selector and `floor_satisfaction`.
|
|
54
|
+
|
|
34
55
|
## Surface-Aware Selection
|
|
35
56
|
|
|
36
57
|
- Select an exact accepted alias from the native enum for native dispatch.
|
|
@@ -42,6 +42,28 @@ dispersed evidence, and to a stronger reasoning route when ambiguity,
|
|
|
42
42
|
consequence, or adversarial analysis dominates. Do not escalate merely because
|
|
43
43
|
many files must be searched.
|
|
44
44
|
|
|
45
|
+
## Task-Class Resolution
|
|
46
|
+
|
|
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
|
+
|
|
52
|
+
- `mechanical-recon`: an economical class and effort suitable for
|
|
53
|
+
deterministic inventories, parity, and command execution;
|
|
54
|
+
- `intelligent-recon`: a stronger fast class for interpretation,
|
|
55
|
+
unfamiliar-code auditing, and silent-miss-prone evidence;
|
|
56
|
+
- `default-implementation`: a context-retentive implementation class for an
|
|
57
|
+
independently bounded dossier;
|
|
58
|
+
- `hard-reasoning`: a strong reasoning class for ambiguity or architecture;
|
|
59
|
+
- `consequential`: the strongest allowed class for security, release safety,
|
|
60
|
+
irreversible impact, or expensive failure.
|
|
61
|
+
|
|
62
|
+
A stale or unavailable named example requires a newer eligible model meeting
|
|
63
|
+
the same class floor or a route one class up. Selection below the floor is
|
|
64
|
+
prohibited. Keep model and reasoning effort as separate recorded axes, and
|
|
65
|
+
record `floor_satisfaction`.
|
|
66
|
+
|
|
45
67
|
Native spawn acceptance is configured-invocation evidence. Missing runtime
|
|
46
68
|
model identity does not invalidate an accepted configured payload.
|
|
47
69
|
|
|
@@ -15,15 +15,37 @@ volatile snapshot, never a durable inventory.
|
|
|
15
15
|
Root and nested catalogs are independent, volatile observations. Equality in
|
|
16
16
|
one run does not establish equality in another run or nesting boundary.
|
|
17
17
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
the
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
## Task-Class Resolution
|
|
19
|
+
|
|
20
|
+
Apply active user and repository instructions first; they override the dated
|
|
21
|
+
model-family examples in this provider reference. Intersect that guidance with
|
|
22
|
+
the exact model choices advertised by the dispatcher, the supplied policy and
|
|
23
|
+
ceiling, and the requested class floor:
|
|
24
|
+
|
|
25
|
+
- `mechanical-recon`: the fastest economical class suitable for deterministic
|
|
26
|
+
inventories, parity, and command execution;
|
|
27
|
+
- `intelligent-recon`: a stronger fast class for interpretation,
|
|
28
|
+
unfamiliar-code auditing, and silent-miss-prone evidence;
|
|
29
|
+
- `default-implementation`: a context-retentive implementation class for an
|
|
30
|
+
independently bounded dossier;
|
|
31
|
+
- `hard-reasoning`: a strong reasoning class for ambiguity or architecture;
|
|
32
|
+
- `consequential`: the strongest allowed class for security, release safety,
|
|
33
|
+
irreversible impact, or expensive failure.
|
|
34
|
+
|
|
35
|
+
A stale or unavailable example requires a newer eligible model meeting the
|
|
36
|
+
same class floor or a route one class up. Selection below the floor is
|
|
37
|
+
prohibited.
|
|
38
|
+
|
|
39
|
+
## Outer Lifecycle Native Selection
|
|
40
|
+
|
|
41
|
+
Outer lifecycle implementer and reviewer dispatch uses the exact
|
|
42
|
+
`providers.cursor.dispatchArgs.variant` returned by the lifecycle resolver.
|
|
43
|
+
The resolver maps an opaque flat model ID and owns the bracket-form model pin
|
|
44
|
+
inside the materialized definition; skills never parse, normalize, or
|
|
45
|
+
reconstruct either model string.
|
|
46
|
+
|
|
47
|
+
1. Require a non-empty resolver-returned variant for managed dispatch.
|
|
48
|
+
2. Launch that exact native agent type first.
|
|
27
49
|
3. Treat native launch acceptance plus the complete launcher payload as
|
|
28
50
|
configured-invocation evidence, not observed runtime model identity.
|
|
29
51
|
4. Permit a replacement route only after a recorded pre-start native
|
|
@@ -36,9 +58,34 @@ never parse, normalize, or reconstruct either model string.
|
|
|
36
58
|
7. Record selected variant, mapped target, acceptance, outcome, and runtime
|
|
37
59
|
identity separately.
|
|
38
60
|
|
|
61
|
+
## Reviewer-Local Nested Selection
|
|
62
|
+
|
|
63
|
+
Reviewer-local recon uses `generalPurpose` with an
|
|
64
|
+
`exact-native-model-choice` selector.
|
|
65
|
+
Reviewer-local reconnaissance is a separate nested native surface. It does not
|
|
66
|
+
use the lifecycle resolver because no materialized lifecycle `recon` role
|
|
67
|
+
exists.
|
|
68
|
+
|
|
69
|
+
1. Read the model choices advertised by the nested Task/Subagent dispatcher.
|
|
70
|
+
2. Intersect those advertised model choices with active user and repository
|
|
71
|
+
model-class instructions, this provider reference, the supplied
|
|
72
|
+
policy/ceiling, and the requested `model_class_floor`.
|
|
73
|
+
3. Use the native `generalPurpose` agent type and pass the exact model choice
|
|
74
|
+
advertised by the current nested dispatcher byte-for-byte.
|
|
75
|
+
4. Record the selector as `model_selector` with
|
|
76
|
+
`model_selector_granularity: exact-native-model-choice`.
|
|
77
|
+
5. Treat an omitted model as deliberate parent inheritance only for an
|
|
78
|
+
unconstrained caller whose recorded policy permits inheritance. A
|
|
79
|
+
class-constrained reviewer lane never omits the model.
|
|
80
|
+
|
|
81
|
+
This nested path does not call the lifecycle resolver, parse bracket-form
|
|
82
|
+
model pins, or reconstruct a lifecycle variant. If no exact nested selector
|
|
83
|
+
satisfies the floor, record `floor_satisfaction: unsatisfied` and return the
|
|
84
|
+
lane for caller-inline coverage without launching a weaker worker.
|
|
85
|
+
|
|
39
86
|
Do not infer Cursor IDE behavior from a headless CLI surface. Keep bounded
|
|
40
|
-
recon on economical explicit targets
|
|
41
|
-
|
|
87
|
+
mechanical recon on economical explicit targets. Stronger lanes use a
|
|
88
|
+
floor-satisfying target when advertised or stay with the primary reviewer.
|
|
42
89
|
|
|
43
90
|
## Dispatch Mode and Liveness
|
|
44
91
|
|
|
@@ -63,13 +110,17 @@ verdict.
|
|
|
63
110
|
|
|
64
111
|
## Pre-Start CLI Routes
|
|
65
112
|
|
|
66
|
-
|
|
67
|
-
|
|
113
|
+
Any native mismatch is recorded before launch with the route, reason, and
|
|
114
|
+
candidate set.
|
|
115
|
+
|
|
116
|
+
When exact outer lifecycle role selection rejects the resolver-selected
|
|
117
|
+
variant before launch, or a generic caller's current native intersection is
|
|
118
|
+
unsatisfactory, a caller may use a deliberate pre-start CLI route only when:
|
|
68
119
|
|
|
69
120
|
- the caller's fallback policy allows it;
|
|
70
121
|
- the exact CLI selector exists in the account catalog;
|
|
71
|
-
- the native mismatch, rejected variant, route, reason, and
|
|
72
|
-
recorded before launch;
|
|
122
|
+
- the native mismatch, rejected variant when applicable, route, reason, and
|
|
123
|
+
candidates are recorded before launch;
|
|
73
124
|
- the prompt is self-contained and authority-bounded.
|
|
74
125
|
|
|
75
126
|
Verify current CLI help before use. A typical shape is:
|
|
@@ -37,6 +37,28 @@ escalate_when:
|
|
|
37
37
|
`dispatch_policy` and `dispatch_ceiling` are optional resolved inputs. The
|
|
38
38
|
general engine does not resolve their source.
|
|
39
39
|
|
|
40
|
+
Task-class metadata is also generic-optional. A class-constrained caller adds
|
|
41
|
+
all of these fields; `oat-reviewer` requires them for reviewer-local recon:
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
task_class: intelligent-recon
|
|
45
|
+
classification_source: caller
|
|
46
|
+
classification_reason: >-
|
|
47
|
+
Determining whether semantic tests pin safety boundaries requires
|
|
48
|
+
interpretation, and a silent miss would survive mechanical checks.
|
|
49
|
+
fallback:
|
|
50
|
+
mode: caller-inline
|
|
51
|
+
allow_below_task_class_floor: false
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`task_class` is one of `mechanical-recon`, `intelligent-recon`,
|
|
55
|
+
`default-implementation`, `hard-reasoning`, or `consequential`.
|
|
56
|
+
`classification_source` is the literal `caller`, and
|
|
57
|
+
`classification_reason` is non-empty. Legacy callers may omit all three and
|
|
58
|
+
retain the original role-based selection and fallback behavior. The legacy
|
|
59
|
+
`explicit-downgrade` example above is valid only for an unconstrained request
|
|
60
|
+
without task-class metadata or a declared class floor.
|
|
61
|
+
|
|
40
62
|
## Record
|
|
41
63
|
|
|
42
64
|
```yaml
|
|
@@ -76,6 +98,41 @@ diagnostics: []
|
|
|
76
98
|
continuation_events: []
|
|
77
99
|
```
|
|
78
100
|
|
|
101
|
+
For a class-constrained dispatch, the record also includes:
|
|
102
|
+
|
|
103
|
+
```yaml
|
|
104
|
+
task_class: intelligent-recon
|
|
105
|
+
model_class_floor: intelligent-recon
|
|
106
|
+
classification_source: caller
|
|
107
|
+
classification_reason: Semantic contract interpretation has silent-miss risk.
|
|
108
|
+
floor_satisfaction: satisfied
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
`model_class_floor` equals the requested `task_class`.
|
|
112
|
+
`floor_satisfaction` is `satisfied` or `unsatisfied`. An unsatisfied floor
|
|
113
|
+
blocks launch and records no weaker selection as success. These five fields
|
|
114
|
+
remain absent when a legacy request omits task-class metadata.
|
|
115
|
+
|
|
116
|
+
For a Cursor reviewer-local request whose advertised nested model choices do
|
|
117
|
+
not satisfy the class floor, record the blocked selection without inventing a
|
|
118
|
+
selector:
|
|
119
|
+
|
|
120
|
+
```yaml
|
|
121
|
+
role_selector: generalPurpose
|
|
122
|
+
model_selector: null
|
|
123
|
+
model_selector_granularity: exact-native-model-choice
|
|
124
|
+
floor_satisfaction: unsatisfied
|
|
125
|
+
fallback:
|
|
126
|
+
mode: caller-inline
|
|
127
|
+
allow_below_task_class_floor: false
|
|
128
|
+
launch_status: blocked-before-start
|
|
129
|
+
child_outcome: caller-inline-completed
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
`exact-native-model-choice` means an exact model choice advertised by the
|
|
133
|
+
current nested dispatcher. It does not imply a stable enum or authorize
|
|
134
|
+
reconstruction of a materialized lifecycle variant.
|
|
135
|
+
|
|
79
136
|
`role_selector` is the exact provider or harness agent-type selector, when that
|
|
80
137
|
surface exists. Preserve opaque selectors byte-for-byte.
|
|
81
138
|
|
|
@@ -98,6 +155,8 @@ selection source.
|
|
|
98
155
|
wave_id: repo-audit-wave-1
|
|
99
156
|
scope: repo:packages/cli
|
|
100
157
|
shared_dispatch_record: dispatch-unique-id
|
|
158
|
+
task_class: intelligent-recon
|
|
159
|
+
model_class_floor: intelligent-recon
|
|
101
160
|
lanes:
|
|
102
161
|
- lane_id: correctness
|
|
103
162
|
scope: packages/cli/src
|
|
@@ -110,5 +169,7 @@ lanes:
|
|
|
110
169
|
```
|
|
111
170
|
|
|
112
171
|
The wave scope is the aggregate boundary. Lane scope may narrow it. Use one
|
|
113
|
-
shared record only when every dispatch axis listed in the main skill
|
|
114
|
-
identical.
|
|
172
|
+
shared record only when every dispatch axis listed in the main skill,
|
|
173
|
+
`task_class`, and `model_class_floor` are identical. Lane entries do not
|
|
174
|
+
redefine the shared class fields. Mixed classes require separate records and
|
|
175
|
+
waves.
|