@open-agent-toolkit/cli 0.2.71 → 0.2.73
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 +4 -3
- package/assets/agents/recon-worker.md +42 -8
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/workflows/skills/recon.md +114 -23
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-review-receive/SKILL.md +14 -1
- package/assets/skills/recon/SKILL.md +103 -40
- package/assets/skills/recon/references/packet-contract.md +150 -67
- package/assets/skills/recon/references/profiles.md +38 -16
- package/assets/skills/recon/references/worker-contract.md +39 -8
- package/assets/skills/recon/scripts/lib/contracts.mjs +703 -55
- package/assets/skills/recon/scripts/lib/routing.mjs +588 -0
- package/assets/skills/recon/scripts/lib/validated-run.mjs +2 -0
- package/assets/skills/recon/scripts/prepare-routing.mjs +88 -0
- package/assets/skills/recon/scripts/render-packet.mjs +69 -1
- package/assets/skills/recon/scripts/validate-packet.mjs +473 -56
- package/assets/skills/subagent-orchestration/SKILL.md +18 -9
- package/assets/skills/subagent-orchestration/references/model-selection-principles.md +17 -8
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +45 -0
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-reviewer
|
|
3
|
-
version: 1.2.
|
|
3
|
+
version: 1.2.5
|
|
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
|
|
@@ -93,8 +93,9 @@ When delegation is eligible:
|
|
|
93
93
|
Mechanical workers may execute checks and report exact output, but interpretation and policy judgment require stronger classes or stay with the root reviewer.
|
|
94
94
|
|
|
95
95
|
5. The generic dispatch contract owns capability, catalog, model, effort, route, authorization, launch evidence, class-floor selection, and floor-satisfaction evidence. It applies active user and repository instructions, the active-provider reference, the live nested catalog, and the supplied policy/ceiling. Select an explicit target meeting the declared floor; never silently inherit the primary reviewer's model and never hard-code provider model names. Prefer a cheaper/faster worker only when the host reliably exposes that control and the target still satisfies the floor.
|
|
96
|
-
6.
|
|
97
|
-
7.
|
|
96
|
+
6. When the selected lane worker is the canonical `recon-worker`, construct and validate its complete Assignment Gate envelope before launch: run, wave, and lane IDs; approved manifest wave mode; worker assignment mode; bounded objective; included and excluded scope; allowed and excluded inputs; source-read authority and read-only tools; sole write path; artifact kind, schema version, and closed output schema; enforcement; deadline; and escalation path. If the complete envelope cannot be constructed, do not launch the worker; record the attempt as not attempted or failed as appropriate and cover the lane inline. Other worker roles follow their own contracts.
|
|
97
|
+
7. Give each lane an exact scope and a compact return contract: coverage, checks performed, exact `file:line` evidence, gaps, and explicit uncertainty. Reports are advisory candidate observations, not accepted findings.
|
|
98
|
+
8. Workers must not mutate files, emit final findings, assign severity, make validation decisions, write review artifacts or `StructuredFindings`, or otherwise write either output sink.
|
|
98
99
|
|
|
99
100
|
Lanes may share one homogeneous dispatch wave only when every existing dispatch axis, `task_class`, and `model_class_floor` match. Mixed task classes require separate records and waves. The one-level fan-out limit applies across all waves.
|
|
100
101
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recon-worker
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.1
|
|
4
4
|
description: Executes one bounded recon packet assignment as a non-interactive leaf worker and writes exactly one declared artifact.
|
|
5
5
|
tools: Read, Bash, Grep, Glob, Write, WebSearch, WebFetch
|
|
6
6
|
color: cyan
|
|
@@ -12,12 +12,31 @@ You are a non-interactive recon leaf worker. Execute exactly one assignment in
|
|
|
12
12
|
one declared mode: `map`, `gather`, `compile`, `verify`, `adversary`, `coverage`,
|
|
13
13
|
or `reconcile`. No other mode is valid.
|
|
14
14
|
|
|
15
|
+
The controller maps approved manifest waves to this closed vocabulary:
|
|
16
|
+
|
|
17
|
+
| Manifest wave mode | Worker assignment mode |
|
|
18
|
+
| -------------------------- | ---------------------- |
|
|
19
|
+
| `map` | `map` |
|
|
20
|
+
| `gather` | `gather` |
|
|
21
|
+
| `compile` | `compile` |
|
|
22
|
+
| `semantic-verification` | `verify` |
|
|
23
|
+
| `adversarial` | `adversary` |
|
|
24
|
+
| `coverage` | `coverage` |
|
|
25
|
+
| `reconciliation` | `reconcile` |
|
|
26
|
+
| `redundant-gather` | `gather` |
|
|
27
|
+
| `redundant-verification` | `verify` |
|
|
28
|
+
| `contradiction-resolution` | `adversary` |
|
|
29
|
+
|
|
30
|
+
Preserve the approved wave identity and target; never select or upgrade a
|
|
31
|
+
route yourself.
|
|
32
|
+
|
|
15
33
|
## Assignment Gate
|
|
16
34
|
|
|
17
35
|
Before work, require a complete envelope containing run, wave, and lane IDs;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
36
|
+
the approved manifest wave mode; exactly one worker assignment mode; bounded
|
|
37
|
+
objective; included and excluded scope; allowed inputs; excluded inputs;
|
|
38
|
+
source-read authority and read-only tools; sole write path; artifact kind and
|
|
39
|
+
schema version; output schema; enforcement level; and deadline.
|
|
21
40
|
|
|
22
41
|
Reject the assignment if inputs overlap exclusions, source authority is
|
|
23
42
|
missing, the write path is not unique and packet-contained, the schema is
|
|
@@ -70,6 +89,9 @@ reasoning, synthesis prose, or prior reviews.
|
|
|
70
89
|
Consume only declared scope, questions, and provisional statements. Search for
|
|
71
90
|
counterevidence, unsupported inference, incompatible interpretations, and
|
|
72
91
|
missing alternatives. Do not read gathering or prior-review conclusions.
|
|
92
|
+
When assigned a `contradiction-resolution` wave, seek discriminating evidence
|
|
93
|
+
for that named contradiction; do not reconcile the ledger or decide which
|
|
94
|
+
interpretation wins.
|
|
73
95
|
|
|
74
96
|
### `coverage`
|
|
75
97
|
|
|
@@ -86,14 +108,26 @@ the existing ledger in place.
|
|
|
86
108
|
|
|
87
109
|
## Output
|
|
88
110
|
|
|
89
|
-
Write one JSON artifact
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
111
|
+
Write one JSON artifact using only the supplied closed schema's fields. A
|
|
112
|
+
`recon.raw-dossier` identifies its approved manifest wave with `waveId` and its
|
|
113
|
+
closed worker assignment with `mode`; it also includes `laneId` and `outcome`.
|
|
114
|
+
A `recon.review-result` identifies its approved lane with `reviewerLane` and its
|
|
115
|
+
approved review discriminator with `reviewKind`. Include the remaining
|
|
116
|
+
required identity, input, exclusion, finding or disposition, uncertainty,
|
|
117
|
+
contradiction, gap, diagnostic, and direct-reference fields only as the
|
|
118
|
+
supplied schema permits.
|
|
119
|
+
|
|
120
|
+
Do not add a second mode field or any other unknown field. The controller
|
|
121
|
+
validates `waveId` and `mode`, or `reviewerLane` and `reviewKind`, against the
|
|
122
|
+
approved manifest wave before promoting the artifact.
|
|
93
123
|
|
|
94
124
|
Return only the artifact path and compact outcome. Do not return source bodies,
|
|
95
125
|
worker reasoning, or dossier contents to the controller.
|
|
96
126
|
|
|
127
|
+
The controller and caller decide whether the evidence is sufficient. Never turn
|
|
128
|
+
an assignment result into a downstream recommendation, architecture verdict, or
|
|
129
|
+
final review conclusion.
|
|
130
|
+
|
|
97
131
|
## Critical Rules
|
|
98
132
|
|
|
99
133
|
**ONE MODE. ONE ARTIFACT.** Perform only the assigned mode and write only its
|
|
@@ -10,6 +10,12 @@ It gathers source-grounded findings through approved worker waves, validates
|
|
|
10
10
|
their locators and assurance state, and gives the next consumer one compact
|
|
11
11
|
entry point instead of every worker transcript.
|
|
12
12
|
|
|
13
|
+
Recon controls the profile, routing proposal, and evidence flow. Shared
|
|
14
|
+
orchestration guidance classifies the concrete assignments, the dispatch skill
|
|
15
|
+
resolves and launches exact targets supported by the active harness, and the
|
|
16
|
+
calling agent owns scope, approval dialogue, sufficiency judgment, and final
|
|
17
|
+
conclusions.
|
|
18
|
+
|
|
13
19
|
The first release is standalone. It does not automatically run from project
|
|
14
20
|
discovery, quick start, `analyze`, or `deep-research`. Those workflows can
|
|
15
21
|
consume an explicitly supplied packet path without changing their own
|
|
@@ -45,10 +51,11 @@ oat tools update --pack research --scope project
|
|
|
45
51
|
|
|
46
52
|
The research pack acquires its two dispatch dependencies from the utility pack
|
|
47
53
|
at the same scope. You do not need to select a named model during installation.
|
|
48
|
-
At run time, OAT resolves
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
launches.
|
|
54
|
+
At run time, OAT resolves each wave independently against its task class and
|
|
55
|
+
floor, then asks you to approve every wave's exact supported provider-native
|
|
56
|
+
axes, role, topology, rationale, conditions, authority, and finite execution
|
|
57
|
+
limits before any worker launches. Active provider guidance and the live
|
|
58
|
+
catalog own current qualification; recon does not maintain a second model list.
|
|
52
59
|
|
|
53
60
|
## Run a Recon
|
|
54
61
|
|
|
@@ -59,21 +66,31 @@ context source, output directory, or strict authority:
|
|
|
59
66
|
/recon "How is provider sync materialized?" --profile standard --scope packages/cli/src/providers
|
|
60
67
|
```
|
|
61
68
|
|
|
62
|
-
The default profile is `standard`.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
The default profile is `standard`. Each homogeneous wave has an independently
|
|
70
|
+
selected and approved exact target. Bounded mapping, extraction, citation
|
|
71
|
+
reopening, counterexample search, and mechanical dossier compilation start with
|
|
72
|
+
economical qualified routes. A wave that genuinely requires interpretation or
|
|
73
|
+
reconciliation judgment can use a stronger approved target without raising the
|
|
74
|
+
cost of unrelated evidence waves.
|
|
75
|
+
|
|
76
|
+
| Profile | Use it for | Required assurance work | Claim ceiling |
|
|
77
|
+
| ---------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------- |
|
|
78
|
+
| `quick` | Bounded orientation | Mapping, gathering, compilation, schema validation, and locator validation; no independent semantic pass by design | `supported` |
|
|
79
|
+
| `standard` | Load-bearing evidence | Quick work plus blind semantic verification, adversarial review, coverage, and reconcile | `verified` |
|
|
80
|
+
| `thorough` | Expensive failure or correlated blind spots | Standard work plus required redundant gathering and redundant verification | `verified` |
|
|
81
|
+
|
|
82
|
+
A thorough run may additionally predeclare an optional, condition-bound
|
|
83
|
+
`contradiction-resolution` evidence wave. It runs only when its approved
|
|
84
|
+
predicate triggers and is not required when that branch is not triggered.
|
|
85
|
+
|
|
86
|
+
The approval manifest shows each wave's exact target, task class, class floor,
|
|
87
|
+
selection rationale, adaptive lane count, conditional rule, concurrency,
|
|
88
|
+
deadlines, retries, and source/write authority. An unsupported provider-native
|
|
89
|
+
control is shown explicitly as unavailable or null; recon never translates an
|
|
90
|
+
effort label across harnesses or infers capability from an opaque selector.
|
|
91
|
+
Declining approval launches nothing. Any target, topology, condition, or limit
|
|
92
|
+
change requires renewed approval; there is no silent substitution after
|
|
93
|
+
approval.
|
|
77
94
|
|
|
78
95
|
Before any worker launches, recon confirms that the live launch surface can run
|
|
79
96
|
the approved role, model, effort, and authority level. If it cannot, the run
|
|
@@ -82,6 +99,48 @@ launched. Deadlines are approved execution limits chosen for the task class,
|
|
|
82
99
|
not short watchdogs; an accepted lane is never interrupted by hand because a
|
|
83
100
|
displayed deadline elapsed.
|
|
84
101
|
|
|
102
|
+
### Preview and Check Routing
|
|
103
|
+
|
|
104
|
+
The installed proposal helper renders the complete envelope in Markdown or
|
|
105
|
+
JSON without recording approval or launching work. From a project-scoped
|
|
106
|
+
installation:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
node .agents/skills/recon/scripts/prepare-routing.mjs --manifest draft-manifest.json --format markdown
|
|
110
|
+
node .agents/skills/recon/scripts/prepare-routing.mjs --manifest draft-manifest.json --format json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Immediately before a launch, the controller uses the same production logic to
|
|
114
|
+
compare the constructed target with that wave's approved exact target:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
node .agents/skills/recon/scripts/prepare-routing.mjs --manifest manifest.json --wave gather-1 --check-target candidate-target.json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
These commands validate structure, approval integrity, and exact identity. They
|
|
121
|
+
do not launch a worker, rank model names, attest actual runtime identity, or
|
|
122
|
+
measure cost.
|
|
123
|
+
|
|
124
|
+
### Bounded Conditional Evidence
|
|
125
|
+
|
|
126
|
+
Standard and thorough may predeclare finite conditional
|
|
127
|
+
`contradiction-resolution` evidence waves. A completed predecessor can trigger
|
|
128
|
+
one such wave to seek discriminating evidence; accepted failure, cancellation,
|
|
129
|
+
timeout, or missing output cannot trigger a replacement. Triggered,
|
|
130
|
+
not-triggered, and unresolved dispositions remain visible. Both branches feed
|
|
131
|
+
the same single mandatory terminal reconciliation.
|
|
132
|
+
|
|
133
|
+
A triggered condition must cite complete, digest-bound evidence from an approved
|
|
134
|
+
predecessor in the same run. Evidence copied from another run cannot activate
|
|
135
|
+
the destination wave and fails packet validation with
|
|
136
|
+
`CONDITION_EVIDENCE_RUN_MISMATCH`.
|
|
137
|
+
|
|
138
|
+
If a need for stronger reconciliation judgment is foreseeable, select that one
|
|
139
|
+
terminal target before approval. If it appears only after approval, recon
|
|
140
|
+
preserves completed evidence and returns an unresolved, out-of-envelope gap for
|
|
141
|
+
renewed approval or a new run. It never mutates the target, silently retries,
|
|
142
|
+
or launches a second reconciliation.
|
|
143
|
+
|
|
85
144
|
## Destination Precedence
|
|
86
145
|
|
|
87
146
|
`recon` always creates a new topic-and-run directory. It never overwrites an
|
|
@@ -119,6 +178,26 @@ non-publishable candidate generation withdraws any existing `packet.md`:
|
|
|
119
178
|
- `raw/` contains worker dossiers, candidate artifacts, and safe failure
|
|
120
179
|
diagnostics. It is not normal consumer input.
|
|
121
180
|
|
|
181
|
+
The `recon.packet-manifest` contract accepts version 2 only. Evidence artifact
|
|
182
|
+
kinds remain independently versioned at version 1. Approval is session-local
|
|
183
|
+
and records only `{ type, approvedAt }`: resuming, reloading, or changing the
|
|
184
|
+
proposal requires a fresh preview and explicit approval before launch.
|
|
185
|
+
|
|
186
|
+
Every valid packet renders a compact Intended Routing section from the already
|
|
187
|
+
validated normalized view. It labels exact targets and condition dispositions
|
|
188
|
+
as approved intent, not proof of the native process that ran, launcher receipts,
|
|
189
|
+
token or billing totals, or universal correctness. A valid packet continues to
|
|
190
|
+
reference version 1 evidence artifacts. Evidence, claims, contradictions, and
|
|
191
|
+
gaps remain the packet's main consumer context.
|
|
192
|
+
|
|
193
|
+
Every dossier and review result identifies the approved wave and lane that wrote
|
|
194
|
+
it. Primary and redundant gather artifacts therefore satisfy only their owning
|
|
195
|
+
waves; lanes from one gather wave cannot impersonate the other pass. In a
|
|
196
|
+
thorough run, redundant gathering finishes before compilation, and the compiled
|
|
197
|
+
ledger must reference every completed primary and redundant gather dossier by
|
|
198
|
+
exact path and digest before review briefs are created. Missing provenance fails
|
|
199
|
+
with `MISSING_THOROUGH_GATHER_LEDGER_INPUT`.
|
|
200
|
+
|
|
122
201
|
The ledger compiler and packet validator enforce categorical referential
|
|
123
202
|
integrity on `synthesis.keyClaimIds` and `synthesis.unresolvedQuestionIds`. Any
|
|
124
203
|
reference to an unknown claim or question ID fails validation with
|
|
@@ -143,9 +222,11 @@ percentages:
|
|
|
143
222
|
- `unresolved`: available evidence cannot settle the claim; and
|
|
144
223
|
- `unsupported`: valid supporting evidence is absent or verification failed.
|
|
145
224
|
|
|
146
|
-
A quick packet
|
|
147
|
-
|
|
148
|
-
|
|
225
|
+
A quick packet is an evidence packet for an intelligent consumer and has no
|
|
226
|
+
independent semantic pass by design. It never promotes a claim to `verified`;
|
|
227
|
+
the caller assesses sufficiency and conclusions. Stronger profiles can promote
|
|
228
|
+
claims only when their required independent review artifacts validate and were
|
|
229
|
+
written by approved lanes.
|
|
149
230
|
|
|
150
231
|
When an independent semantic review rejects a proposed claim, the reconciler
|
|
151
232
|
transitions it to `unsupported` rather than deleting it. This preserves the
|
|
@@ -189,7 +270,17 @@ omitted passes, material gaps, affected claims, and required assurance
|
|
|
189
270
|
downgrades. A run may be partial even when it achieved the requested profile if
|
|
190
271
|
a material evidence gap remains. The achieved profile is derived from the
|
|
191
272
|
complete typed artifacts in the packet; each required pass without a complete
|
|
192
|
-
result needs a material `PASS_FAILED` or `PASS_OMITTED` gap
|
|
273
|
+
result needs a material `PASS_FAILED` or `PASS_OMITTED` gap. Each approved lane
|
|
274
|
+
must likewise have a complete artifact or a material outcome gap carrying its
|
|
275
|
+
exact `waveId` and `laneId`; legacy mode-only gaps remain valid only when the mode
|
|
276
|
+
unambiguously identifies one single-lane wave.
|
|
277
|
+
|
|
278
|
+
A complete artifact and material failure or omission for the same exact wave and
|
|
279
|
+
lane are contradictory, so validation fails closed with
|
|
280
|
+
`CONTRADICTORY_PASS_OUTCOME`. Complete evidence from one lane and exact failure
|
|
281
|
+
evidence from a different lane are not contradictory: the completed lane can
|
|
282
|
+
preserve the achieved pass while the failed lane makes the published run an
|
|
283
|
+
honest `partial` packet at that achieved profile.
|
|
193
284
|
|
|
194
285
|
Status updates and the final handoff label each failure as `worker`,
|
|
195
286
|
`provider/dispatch`, `contract validation`, or `source availability`, and
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: false
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash(git:*), Bash(oat:*), Glob, Grep, AskUserQuestion
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.6.
|
|
8
|
+
version: 1.6.6
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Receive Review
|
|
@@ -82,6 +82,19 @@ When executing this skill, provide lightweight progress feedback so the user can
|
|
|
82
82
|
- Routing to oat-project-implement
|
|
83
83
|
- For `artifact` reviews: updating reviewed artifact files directly after user confirmation
|
|
84
84
|
|
|
85
|
+
## Review Artifact Ownership
|
|
86
|
+
|
|
87
|
+
The receiving/root agent reads the selected review artifact completely and
|
|
88
|
+
interprets every finding. Do not delegate review-artifact reading, parsing,
|
|
89
|
+
finding analysis, disposition judgment, or artifact edits to an explorer or
|
|
90
|
+
reconnaissance worker.
|
|
91
|
+
|
|
92
|
+
After the root has read the artifact, it may delegate a bounded inspection of
|
|
93
|
+
explicitly scoped related code or evidence when corroboration is useful. That
|
|
94
|
+
assignment must exclude the review artifact, return exact `file:line` evidence,
|
|
95
|
+
and leave finding analysis, disposition, and all lifecycle mutations with the
|
|
96
|
+
receiving/root agent.
|
|
97
|
+
|
|
85
98
|
## Artifact Hygiene
|
|
86
99
|
|
|
87
100
|
Artifact hygiene contract: Before finishing or committing, format every file you created or edited. Use the concrete write/fix formatting command supplied by the governing plan, task, or brief. If none is usable, discover the repository's documented write/fix command from applicable `AGENTS.md`/`CLAUDE.md` instructions and relevant package manifests; do not infer or hardcode a formatter. Prefer a file-scoped invocation when supported, and avoid rewriting unrelated files. If no command is discoverable, warn once with `no format command discovered in repo instructions; skipping`, then continue.
|
|
@@ -6,15 +6,18 @@ disable-model-invocation: true
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Write, Glob, Grep, Bash, AskUserQuestion, Agent, mcp__*
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.1.
|
|
9
|
+
version: 1.1.2
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Recon
|
|
13
13
|
|
|
14
14
|
Compile a bounded investigation into a durable, validated evidence-packet
|
|
15
|
-
directory. `recon` is a provider-neutral controller: it owns
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
directory. `recon` is a provider-neutral controller: it owns profile topology,
|
|
16
|
+
routing proposals, evidence flow, artifact boundaries, and assurance.
|
|
17
|
+
`subagent-orchestration` owns task-class and qualification guidance;
|
|
18
|
+
`oat-dispatch-subagents` owns live target resolution and launch mechanics. The
|
|
19
|
+
calling agent owns scope, approval dialogue, evidence-sufficiency judgment, and
|
|
20
|
+
all downstream conclusions.
|
|
18
21
|
|
|
19
22
|
## When to Use
|
|
20
23
|
|
|
@@ -115,12 +118,19 @@ Initialize `manifest.json` and the directory skeleton, but do not create
|
|
|
115
118
|
|
|
116
119
|
Read `references/profiles.md`. Partition the scope into non-overlapping,
|
|
117
120
|
adaptive lanes within the profile's hard caps. Classify every required and
|
|
118
|
-
conditionally allowed wave
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
conditionally allowed wave from its concrete bounded assignment, not its phase
|
|
122
|
+
label. Start with the economical provider-qualified route for the actual work;
|
|
123
|
+
narrow the assignment before escalating, and preserve stronger capability when
|
|
124
|
+
the work itself requires judgment.
|
|
125
|
+
|
|
126
|
+
Use the complete mode policy from `references/profiles.md` and
|
|
127
|
+
`scripts/lib/routing.mjs`. Map manifest wave modes to the worker's closed
|
|
128
|
+
assignment vocabulary: `redundant-gather` to `gather`;
|
|
129
|
+
`semantic-verification` and `redundant-verification` to `verify`; `adversarial`
|
|
130
|
+
and `contradiction-resolution` to `adversary`; and only `reconciliation` to
|
|
131
|
+
`reconcile`. The remaining modes keep their same-named assignment. All lanes
|
|
132
|
+
within one launch are a homogeneous wave. Select each wave independently; a
|
|
133
|
+
stronger wave never raises unrelated waves' targets or effort.
|
|
124
134
|
|
|
125
135
|
### Step 4: Prepare One Exact Dispatch Manifest
|
|
126
136
|
|
|
@@ -141,34 +151,55 @@ pack is already installed, `oat tools update --pack utility --scope
|
|
|
141
151
|
|
|
142
152
|
Read `${UTILITY_SKILLS_ROOT}/oat-dispatch-subagents/SKILL.md` and perform
|
|
143
153
|
only the selection steps of its Full-Information Selection: observe the
|
|
144
|
-
catalog, resolve
|
|
145
|
-
launch step; nothing launches until Step 5 runs after approval. From
|
|
146
|
-
root, read
|
|
154
|
+
catalog, resolve each wave's exact target, and record each selection. Stop
|
|
155
|
+
before its launch step; nothing launches until Step 5 runs after approval. From
|
|
156
|
+
the same root, read
|
|
147
157
|
`subagent-orchestration/references/model-selection-principles.md`, exactly one
|
|
148
158
|
active-provider selection reference, and the matching
|
|
149
159
|
`oat-dispatch-subagents` provider mechanics reference. Do not copy provider
|
|
150
160
|
catalogs or exact launch construction into this skill.
|
|
151
161
|
|
|
152
|
-
Resolve every planned and conditional wave against
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
162
|
+
Resolve every planned and conditional wave independently against its recorded
|
|
163
|
+
task class and class floor. Preserve provider, route, role, model, effort,
|
|
164
|
+
reasoning mode, and service tier as separate provider-native axes. A null axis
|
|
165
|
+
means the adapter exposes no independently requested control; never translate
|
|
166
|
+
effort between harnesses or normalize an opaque selector. Prefer the canonical
|
|
167
|
+
`recon-worker` role. If that role is unavailable, plan the generic role with the
|
|
168
|
+
complete worker contract as a visible generic role fallback before approval. A
|
|
169
|
+
fallback after approval is forbidden.
|
|
170
|
+
|
|
171
|
+
Prepare a `schemaVersion: 2` draft manifest. Its execution object contains a
|
|
172
|
+
complete inherited `target`, limits, waves, conditions, and later the approval.
|
|
173
|
+
Every wave records `taskClass`, `classFloor`, a substantive
|
|
174
|
+
`selectionReason`, its lanes and conditional flag, and an optional complete
|
|
175
|
+
replacement `target`. Partial target overrides are invalid. Use the production
|
|
176
|
+
proposal helper rather than manually reinterpreting the manifest:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
node scripts/prepare-routing.mjs --manifest manifest.json --format markdown
|
|
180
|
+
```
|
|
157
181
|
|
|
158
|
-
|
|
182
|
+
The proposal shown for approval includes:
|
|
159
183
|
|
|
160
|
-
- provider, route, role, model, effort, reasoning
|
|
184
|
+
- every wave's exact effective provider, route, role, model, effort, reasoning
|
|
185
|
+
mode, and service tier;
|
|
161
186
|
- authority level, maximum concurrency, per-lane deadline, and retry limit; and
|
|
162
|
-
- every wave with its mode, task class,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
Present
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
187
|
+
- every wave with its mode, task class, class floor, selection reason, target,
|
|
188
|
+
and conditional flag; every condition with its predecessor, destination,
|
|
189
|
+
predicate, and single-activation cap; and every lane with its identity, read
|
|
190
|
+
scope, and worker-owned write root.
|
|
191
|
+
|
|
192
|
+
Present every wave's exact supported target axes, class/floor, lane count,
|
|
193
|
+
selection rationale, conditions, and finite worst-case concurrency, deadline,
|
|
194
|
+
retry, lane, and condition limits for explicit approval before any worker
|
|
195
|
+
launch. Name unsupported controls as null instead of inventing them. Named
|
|
196
|
+
model examples are illustrative and non-normative; never route from an example.
|
|
197
|
+
Declining approval leaves the run at `awaiting-approval` and launches nothing.
|
|
198
|
+
Approval records `explicit-user-approval` and the approval time. Approval is
|
|
199
|
+
session-local: it authorizes only the exact proposal shown in the same
|
|
200
|
+
uninterrupted control flow. If the run is resumed, reloaded, or changed before
|
|
201
|
+
launch, remove the approval, return to `awaiting-approval`, render the current
|
|
202
|
+
proposal again, and obtain fresh approval.
|
|
172
203
|
|
|
173
204
|
**Deadlines.** Choose the per-lane deadline from the expected task class and
|
|
174
205
|
scope, and show it in the approval envelope; it is an approved execution limit,
|
|
@@ -187,18 +218,30 @@ result. If any approved axis cannot be satisfied, stop with a
|
|
|
187
218
|
launch nothing. Never substitute a different axis to make the launch fit.
|
|
188
219
|
|
|
189
220
|
Launch each wave through the dispatch dependency with exactly the approved
|
|
190
|
-
axes. Immediately before each launch,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
221
|
+
axes. Immediately before each launch, check the constructed target through the
|
|
222
|
+
same production helper used by preview:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
node scripts/prepare-routing.mjs --manifest manifest.json --wave <wave-id> --check-target <candidate-target.json>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Any constructed-target mismatch returns the complete manifest for renewed
|
|
229
|
+
approval. This check proves invocation intent, not actual runtime
|
|
230
|
+
identity. Launch acceptance is distinct from worker completion. After
|
|
231
|
+
acceptance there is no replacement child, alternate route, target substitution,
|
|
232
|
+
and no silent retry. If an accepted lane fails, is cancelled, or times out,
|
|
233
|
+
record that lane as failed with a material `PASS_FAILED` gap carrying its exact
|
|
234
|
+
approved `waveId` and `laneId`. This structured identity is required for
|
|
235
|
+
conditional and non-conditional lanes alike; prose is descriptive, not
|
|
236
|
+
identity.
|
|
197
237
|
|
|
198
238
|
Run the passes in this order:
|
|
199
239
|
|
|
200
240
|
1. `map` and `gather` workers write unique dossiers under `raw/dossiers/`.
|
|
201
|
-
|
|
241
|
+
Thorough runs complete their independent `redundant-gather` wave here too.
|
|
242
|
+
2. `compile` writes a candidate canonical claim ledger. A thorough candidate
|
|
243
|
+
directly references a complete dossier from every approved primary and
|
|
244
|
+
redundant gather lane before any review brief is created.
|
|
202
245
|
3. Source preflight: run `scripts/validate-artifact.mjs` on the candidate
|
|
203
246
|
manifest and ledger, then reopen every declared source and evidence locator
|
|
204
247
|
with the checks in `scripts/validate-packet.mjs`. Resolve source roots to
|
|
@@ -206,10 +249,26 @@ Run the passes in this order:
|
|
|
206
249
|
mark them unavailable, and add a material gap for every ineligible source
|
|
207
250
|
and each affected claim. Do not create review briefs until the candidate
|
|
208
251
|
manifest and ledger pair validates.
|
|
209
|
-
4.
|
|
252
|
+
4. Profile-required `verify`, `adversary`, and `coverage` workers consume only
|
|
210
253
|
immutable selectively blind briefs created by
|
|
211
254
|
`scripts/create-review-brief.mjs` at unique paths.
|
|
212
|
-
5.
|
|
255
|
+
5. Evaluate each predeclared evidence condition only after its completed
|
|
256
|
+
predecessor artifacts exist. Record exactly one root-authored condition
|
|
257
|
+
outcome. A triggered `contradiction-resolution` wave runs once as an
|
|
258
|
+
`adversary` evidence assignment; a not-triggered or unresolved wave supplies
|
|
259
|
+
no artifact. Accepted failure, cancellation, timeout, or missing output never
|
|
260
|
+
authorizes replacement work.
|
|
261
|
+
6. Standard and thorough execute exactly one terminal `reconciliation` wave,
|
|
262
|
+
mapped to `reconcile`, after required review evidence and any triggered
|
|
263
|
+
contradiction investigation. It writes a new candidate ledger without
|
|
264
|
+
mutating the prior ledger.
|
|
265
|
+
|
|
266
|
+
If `reconciliation-needs-judgment` is foreseeable, select an adequate target
|
|
267
|
+
for that one terminal wave before approval. If it appears after approval and
|
|
268
|
+
the approved target is inadequate, preserve completed evidence and return an
|
|
269
|
+
explicit unresolved, out-of-envelope gap for renewed approval or a new run.
|
|
270
|
+
Never mutate the target, launch a second reconciliation, or substitute a
|
|
271
|
+
contradiction search for synthesis.
|
|
213
272
|
|
|
214
273
|
Use `references/worker-contract.md` for every assignment. Never allow two
|
|
215
274
|
workers to share a write path. Every dossier records its approved wave and lane;
|
|
@@ -247,6 +306,10 @@ refer to a different canonical generation.
|
|
|
247
306
|
Derive the achieved profile from complete, typed, digest-bound same-run
|
|
248
307
|
artifacts written by approved lanes. Do not accept a worker or manifest
|
|
249
308
|
assertion of achievement. A `quick` run can reach `supported` but never `verified`.
|
|
309
|
+
Quick is deliberately an evidence packet for an intelligent consumer and has
|
|
310
|
+
no independent semantic pass. Its consumer, not the packet, judges sufficiency
|
|
311
|
+
and conclusions. Standard and thorough retain their independent typed semantic,
|
|
312
|
+
adversarial, coverage, and single-terminal reconciliation requirements.
|
|
250
313
|
`verified` claims require unique complete semantic, adversarial, and coverage
|
|
251
314
|
results bound to immutable briefs and correct claim dispositions. Unresolved
|
|
252
315
|
material challenge prevents verification. A run with contested claims may
|