@open-agent-toolkit/cli 0.3.6 → 0.3.8
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/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/configuration.md +38 -18
- package/assets/docs/cli-utilities/workflow-gates.md +37 -0
- package/assets/docs/contributing/updating-model-guidance.md +6 -6
- package/assets/docs/provider-sync/commands.md +6 -0
- package/assets/docs/provider-sync/providers.md +24 -0
- package/assets/docs/provider-sync/scope-and-surface.md +2 -0
- package/assets/docs/reference/cli-reference.md +2 -1
- package/assets/docs/workflows/projects/autonomy.md +1 -1
- package/assets/docs/workflows/projects/dispatch-ceiling.md +26 -20
- package/assets/docs/workflows/projects/evidence-layers.md +5 -1
- package/assets/docs/workflows/projects/retro.md +7 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-agent-instructions-analyze/SKILL.md +1 -1
- package/assets/skills/oat-agent-instructions-analyze/scripts/resolve-providers.sh +17 -6
- package/assets/skills/oat-dispatch-subagents/SKILL.md +1 -1
- package/assets/skills/oat-dispatch-subagents/references/managed-claude-example.json +387 -0
- package/assets/skills/oat-dispatch-subagents/references/record-schema.md +75 -0
- package/assets/skills/oat-doctor/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +24 -22
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-import-plan/SKILL.md +4 -4
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-plan/SKILL.md +4 -4
- package/assets/skills/oat-project-plan-writing/SKILL.md +4 -4
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-quick-start/SKILL.md +4 -4
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-retro/SKILL.md +70 -6
- package/assets/skills/oat-project-review-provide/SKILL.md +3 -1
- package/assets/skills/oat-project-review-provide-remote/SKILL.md +3 -1
- package/dist/agents/canonical/resolve.d.ts +6 -4
- package/dist/agents/canonical/resolve.d.ts.map +1 -1
- package/dist/agents/canonical/resolve.js +6 -4
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +210 -28
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +51 -2
- package/dist/commands/gate/review-verdict.d.ts +22 -0
- package/dist/commands/gate/review-verdict.d.ts.map +1 -1
- package/dist/commands/gate/review-verdict.js +111 -0
- package/dist/commands/project/dispatch/canonical-role.d.ts +33 -0
- package/dist/commands/project/dispatch/canonical-role.d.ts.map +1 -0
- package/dist/commands/project/dispatch/canonical-role.js +114 -0
- package/dist/commands/project/dispatch/index.d.ts.map +1 -1
- package/dist/commands/project/dispatch/index.js +3 -1
- package/dist/commands/project/dispatch/record.d.ts.map +1 -1
- package/dist/commands/project/dispatch/record.js +146 -4
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +28 -21
- package/dist/commands/tools/shared/sync-evidence.d.ts.map +1 -1
- package/dist/commands/tools/shared/sync-evidence.js +32 -5
- package/dist/config/oat-config.d.ts +8 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +116 -1
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +31 -3
- package/dist/providers/claude/dispatch-envelope.d.ts +53 -0
- package/dist/providers/claude/dispatch-envelope.d.ts.map +1 -1
- package/dist/providers/claude/dispatch-envelope.js +324 -48
- package/dist/providers/claude/rule-transform.js +1 -1
- package/dist/providers/copilot/rule-transform.js +1 -1
- package/dist/providers/cursor/rule-transform.js +1 -1
- package/dist/providers/identity/absolute-paths.d.ts +13 -0
- package/dist/providers/identity/absolute-paths.d.ts.map +1 -1
- package/dist/providers/identity/absolute-paths.js +27 -14
- package/dist/providers/identity/generic-dispatch-record.d.ts +212 -0
- package/dist/providers/identity/generic-dispatch-record.d.ts.map +1 -1
- package/dist/providers/identity/generic-dispatch-record.js +78 -19
- package/dist/providers/identity/oat-dispatch-record.d.ts +5 -0
- package/dist/providers/identity/oat-dispatch-record.d.ts.map +1 -1
- package/dist/providers/identity/oat-dispatch-record.js +11 -2
- package/dist/providers/shared/registry.d.ts +6 -0
- package/dist/providers/shared/registry.d.ts.map +1 -1
- package/dist/providers/shared/registry.js +30 -0
- package/dist/rules/canonical/parse.d.ts.map +1 -1
- package/dist/rules/canonical/parse.js +38 -3
- package/package.json +2 -2
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Managed Claude validation-only inputs for `oat project dispatch record --event-file <file> --json` (no --project). Each role key is one complete input. claudeLaunch.resolution is `oat project dispatch-ceiling resolve --provider claude --role <role> --json` output verbatim; claudeLaunch.definition is the generated Claude agent file content; claudeLaunch.payload is the exact launch payload; event is `oat project dispatch canonical-role --json` output. Built from fixture agents, so the definition body, role version, and content digest are illustrative. See record-schema.md, Managed Claude Validation Input.",
|
|
3
|
+
"implementer": {
|
|
4
|
+
"claudeLaunch": {
|
|
5
|
+
"resolution": {
|
|
6
|
+
"status": "resolved",
|
|
7
|
+
"provider": "claude",
|
|
8
|
+
"value": "claude-opus-5-5",
|
|
9
|
+
"policyMode": "managed",
|
|
10
|
+
"policy": "high",
|
|
11
|
+
"source": "repo-config",
|
|
12
|
+
"preset": "high",
|
|
13
|
+
"unresolved": false,
|
|
14
|
+
"projectPath": null,
|
|
15
|
+
"providerDefaultEffort": "not-applicable",
|
|
16
|
+
"matrix": {
|
|
17
|
+
"claude": {
|
|
18
|
+
"economy": {
|
|
19
|
+
"candidates": [
|
|
20
|
+
{
|
|
21
|
+
"harness": "claude",
|
|
22
|
+
"model": "claude-sonnet-5",
|
|
23
|
+
"effort": "medium"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"balanced": {
|
|
28
|
+
"candidates": [
|
|
29
|
+
{
|
|
30
|
+
"harness": "claude",
|
|
31
|
+
"model": "claude-sonnet-5",
|
|
32
|
+
"effort": "high"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"high": {
|
|
37
|
+
"candidates": [
|
|
38
|
+
{
|
|
39
|
+
"harness": "claude",
|
|
40
|
+
"model": "claude-opus-5-5",
|
|
41
|
+
"effort": "high"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"frontier": {
|
|
46
|
+
"candidates": [
|
|
47
|
+
{
|
|
48
|
+
"harness": "claude",
|
|
49
|
+
"model": "claude-opus-5-5",
|
|
50
|
+
"effort": "xhigh"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"ladderCompleteness": {
|
|
57
|
+
"complete": false,
|
|
58
|
+
"missingCells": [
|
|
59
|
+
"codex.economy",
|
|
60
|
+
"codex.balanced",
|
|
61
|
+
"codex.high",
|
|
62
|
+
"codex.frontier",
|
|
63
|
+
"cursor.economy",
|
|
64
|
+
"cursor.balanced",
|
|
65
|
+
"cursor.high",
|
|
66
|
+
"cursor.frontier"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"providers": {
|
|
70
|
+
"claude": {
|
|
71
|
+
"value": "claude-opus-5-5",
|
|
72
|
+
"mode": "enforced",
|
|
73
|
+
"mechanism": "pinned-variant",
|
|
74
|
+
"dispatchArgs": {
|
|
75
|
+
"variant": "oat-phase-implementer-claude-claude-opus-5-5-high"
|
|
76
|
+
},
|
|
77
|
+
"modelAxis": "selected:claude-opus-5-5",
|
|
78
|
+
"effortAxis": "selected:high",
|
|
79
|
+
"verifyOnDispatch": false,
|
|
80
|
+
"cellSource": "repo-config",
|
|
81
|
+
"target": {
|
|
82
|
+
"harness": "claude",
|
|
83
|
+
"model": "claude-opus-5-5",
|
|
84
|
+
"effort": "high",
|
|
85
|
+
"crossHarness": false,
|
|
86
|
+
"routeIndex": 0,
|
|
87
|
+
"routeLength": 1,
|
|
88
|
+
"capabilityEvidence": {
|
|
89
|
+
"source": "explicit-model-id",
|
|
90
|
+
"modelReference": "claude-opus-5-5",
|
|
91
|
+
"exactModel": true,
|
|
92
|
+
"generation": "opus-5-5",
|
|
93
|
+
"capabilitiesSource": "dispatch-target-model",
|
|
94
|
+
"supportedEfforts": ["low", "medium", "high", "xhigh", "max"]
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"selection": {
|
|
98
|
+
"role": "implementer",
|
|
99
|
+
"policyMode": "managed",
|
|
100
|
+
"policy": "high",
|
|
101
|
+
"cellSource": "repo-config",
|
|
102
|
+
"target": {
|
|
103
|
+
"harness": "claude",
|
|
104
|
+
"model": "claude-opus-5-5",
|
|
105
|
+
"effort": "high",
|
|
106
|
+
"crossHarness": false,
|
|
107
|
+
"routeIndex": 0,
|
|
108
|
+
"routeLength": 1,
|
|
109
|
+
"capabilityEvidence": {
|
|
110
|
+
"source": "explicit-model-id",
|
|
111
|
+
"modelReference": "claude-opus-5-5",
|
|
112
|
+
"exactModel": true,
|
|
113
|
+
"generation": "opus-5-5",
|
|
114
|
+
"capabilitiesSource": "dispatch-target-model",
|
|
115
|
+
"supportedEfforts": ["low", "medium", "high", "xhigh", "max"]
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"requestedCandidate": null,
|
|
119
|
+
"candidateTier": null,
|
|
120
|
+
"candidateIndex": null,
|
|
121
|
+
"ceilingTier": "high",
|
|
122
|
+
"ceilingTarget": {
|
|
123
|
+
"harness": "claude",
|
|
124
|
+
"model": "claude-opus-5-5",
|
|
125
|
+
"effort": "high",
|
|
126
|
+
"crossHarness": false,
|
|
127
|
+
"routeIndex": 0,
|
|
128
|
+
"routeLength": 1,
|
|
129
|
+
"capabilityEvidence": {
|
|
130
|
+
"source": "explicit-model-id",
|
|
131
|
+
"modelReference": "claude-opus-5-5",
|
|
132
|
+
"exactModel": true,
|
|
133
|
+
"generation": "opus-5-5",
|
|
134
|
+
"capabilitiesSource": "dispatch-target-model",
|
|
135
|
+
"supportedEfforts": ["low", "medium", "high", "xhigh", "max"]
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"preferredValue": null,
|
|
139
|
+
"selectedValue": "claude-opus-5-5",
|
|
140
|
+
"capped": false,
|
|
141
|
+
"selectionMode": "capped",
|
|
142
|
+
"selectionBranch": "matrix-pinned",
|
|
143
|
+
"family": "claude"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"definition": "---\n# oat-managed: true\n# oat-role: oat-phase-implementer-claude-claude-opus-5-5-high\n# oat-owner: user-config\n# oat-provider: claude\n# oat-capability-evidence: {\"source\":\"explicit-model-id\",\"modelReference\":\"claude-opus-5-5\",\"exactModel\":true,\"generation\":\"opus-5-5\",\"capabilitiesSource\":\"dispatch-target-model\",\"supportedEfforts\":[\"low\",\"medium\",\"high\",\"xhigh\",\"max\"]}\nname: oat-phase-implementer-claude-claude-opus-5-5-high\ndescription: Example fixture role for the managed Claude dispatch-record\n example. Claude-native claude-opus-5-5/high effort variant managed by OAT.\nmodel: claude-opus-5-5\neffort: high\n---\n\n## Role\n\nFixture body; `oat sync` generates the real definition.\n",
|
|
149
|
+
"payload": {
|
|
150
|
+
"variant": "oat-phase-implementer-claude-claude-opus-5-5-high"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"recordBase": {
|
|
154
|
+
"request_id": "example-p01-implementation",
|
|
155
|
+
"caller": "oat-project-implement",
|
|
156
|
+
"scope": "p01",
|
|
157
|
+
"objective": "Implement phase p01",
|
|
158
|
+
"action": "implementation",
|
|
159
|
+
"role_class": "implementation",
|
|
160
|
+
"dispatch_context": "phase-dispatch",
|
|
161
|
+
"catalog_snapshot": {
|
|
162
|
+
"id": "claude-generated-role-catalog",
|
|
163
|
+
"source": "user-sync",
|
|
164
|
+
"observed_at": "2026-09-27T00:00:00.000Z"
|
|
165
|
+
},
|
|
166
|
+
"authority": "phase-files",
|
|
167
|
+
"reasoning_mode_selector": null,
|
|
168
|
+
"service_tier_selector": null,
|
|
169
|
+
"deadline_seconds": 7200,
|
|
170
|
+
"retry_limit": 0,
|
|
171
|
+
"launch_status": "planned",
|
|
172
|
+
"child_outcome": null,
|
|
173
|
+
"runtime_confirmation": "not-reported",
|
|
174
|
+
"diagnostics": [],
|
|
175
|
+
"continuation_events": []
|
|
176
|
+
},
|
|
177
|
+
"event": {
|
|
178
|
+
"kind": "canonical-role-resolution",
|
|
179
|
+
"requestId": "example-p01-implementation",
|
|
180
|
+
"source": "canonical-role-resolver",
|
|
181
|
+
"evidence": {
|
|
182
|
+
"status": "resolved",
|
|
183
|
+
"dependency": "workflows",
|
|
184
|
+
"canonicalRole": "oat-phase-implementer",
|
|
185
|
+
"tier": "loaded",
|
|
186
|
+
"validation": "direct-canonical",
|
|
187
|
+
"canonicalPath": "<user>/agents/oat-phase-implementer.md",
|
|
188
|
+
"selectedPath": "<loaded>/agents/oat-phase-implementer.md",
|
|
189
|
+
"roleVersion": "1.0.0",
|
|
190
|
+
"contentDigest": "sha256:9df1dbd23a835f2329a63bbf7f75b1db0c6a5d14ffd703ec47f4a199abe2c506",
|
|
191
|
+
"candidateMisses": []
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"reviewer": {
|
|
196
|
+
"claudeLaunch": {
|
|
197
|
+
"resolution": {
|
|
198
|
+
"status": "resolved",
|
|
199
|
+
"provider": "claude",
|
|
200
|
+
"value": "claude-opus-5-5",
|
|
201
|
+
"policyMode": "managed",
|
|
202
|
+
"policy": "high",
|
|
203
|
+
"source": "repo-config",
|
|
204
|
+
"preset": "high",
|
|
205
|
+
"unresolved": false,
|
|
206
|
+
"projectPath": null,
|
|
207
|
+
"providerDefaultEffort": "not-applicable",
|
|
208
|
+
"matrix": {
|
|
209
|
+
"claude": {
|
|
210
|
+
"economy": {
|
|
211
|
+
"candidates": [
|
|
212
|
+
{
|
|
213
|
+
"harness": "claude",
|
|
214
|
+
"model": "claude-sonnet-5",
|
|
215
|
+
"effort": "medium"
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
"balanced": {
|
|
220
|
+
"candidates": [
|
|
221
|
+
{
|
|
222
|
+
"harness": "claude",
|
|
223
|
+
"model": "claude-sonnet-5",
|
|
224
|
+
"effort": "high"
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"high": {
|
|
229
|
+
"candidates": [
|
|
230
|
+
{
|
|
231
|
+
"harness": "claude",
|
|
232
|
+
"model": "claude-opus-5-5",
|
|
233
|
+
"effort": "high"
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
},
|
|
237
|
+
"frontier": {
|
|
238
|
+
"candidates": [
|
|
239
|
+
{
|
|
240
|
+
"harness": "claude",
|
|
241
|
+
"model": "claude-opus-5-5",
|
|
242
|
+
"effort": "xhigh"
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"ladderCompleteness": {
|
|
249
|
+
"complete": false,
|
|
250
|
+
"missingCells": [
|
|
251
|
+
"codex.economy",
|
|
252
|
+
"codex.balanced",
|
|
253
|
+
"codex.high",
|
|
254
|
+
"codex.frontier",
|
|
255
|
+
"cursor.economy",
|
|
256
|
+
"cursor.balanced",
|
|
257
|
+
"cursor.high",
|
|
258
|
+
"cursor.frontier"
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
"providers": {
|
|
262
|
+
"claude": {
|
|
263
|
+
"value": "claude-opus-5-5",
|
|
264
|
+
"mode": "enforced",
|
|
265
|
+
"mechanism": "pinned-variant",
|
|
266
|
+
"dispatchArgs": {
|
|
267
|
+
"variant": "oat-reviewer-claude-claude-opus-5-5-high"
|
|
268
|
+
},
|
|
269
|
+
"modelAxis": "selected:claude-opus-5-5",
|
|
270
|
+
"effortAxis": "selected:high",
|
|
271
|
+
"verifyOnDispatch": false,
|
|
272
|
+
"cellSource": "repo-config",
|
|
273
|
+
"target": {
|
|
274
|
+
"harness": "claude",
|
|
275
|
+
"model": "claude-opus-5-5",
|
|
276
|
+
"effort": "high",
|
|
277
|
+
"crossHarness": false,
|
|
278
|
+
"routeIndex": 0,
|
|
279
|
+
"routeLength": 1,
|
|
280
|
+
"capabilityEvidence": {
|
|
281
|
+
"source": "explicit-model-id",
|
|
282
|
+
"modelReference": "claude-opus-5-5",
|
|
283
|
+
"exactModel": true,
|
|
284
|
+
"generation": "opus-5-5",
|
|
285
|
+
"capabilitiesSource": "dispatch-target-model",
|
|
286
|
+
"supportedEfforts": ["low", "medium", "high", "xhigh", "max"]
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"selection": {
|
|
290
|
+
"role": "reviewer",
|
|
291
|
+
"policyMode": "managed",
|
|
292
|
+
"policy": "high",
|
|
293
|
+
"cellSource": "repo-config",
|
|
294
|
+
"target": {
|
|
295
|
+
"harness": "claude",
|
|
296
|
+
"model": "claude-opus-5-5",
|
|
297
|
+
"effort": "high",
|
|
298
|
+
"crossHarness": false,
|
|
299
|
+
"routeIndex": 0,
|
|
300
|
+
"routeLength": 1,
|
|
301
|
+
"capabilityEvidence": {
|
|
302
|
+
"source": "explicit-model-id",
|
|
303
|
+
"modelReference": "claude-opus-5-5",
|
|
304
|
+
"exactModel": true,
|
|
305
|
+
"generation": "opus-5-5",
|
|
306
|
+
"capabilitiesSource": "dispatch-target-model",
|
|
307
|
+
"supportedEfforts": ["low", "medium", "high", "xhigh", "max"]
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"requestedCandidate": null,
|
|
311
|
+
"candidateTier": null,
|
|
312
|
+
"candidateIndex": null,
|
|
313
|
+
"ceilingTier": "high",
|
|
314
|
+
"ceilingTarget": {
|
|
315
|
+
"harness": "claude",
|
|
316
|
+
"model": "claude-opus-5-5",
|
|
317
|
+
"effort": "high",
|
|
318
|
+
"crossHarness": false,
|
|
319
|
+
"routeIndex": 0,
|
|
320
|
+
"routeLength": 1,
|
|
321
|
+
"capabilityEvidence": {
|
|
322
|
+
"source": "explicit-model-id",
|
|
323
|
+
"modelReference": "claude-opus-5-5",
|
|
324
|
+
"exactModel": true,
|
|
325
|
+
"generation": "opus-5-5",
|
|
326
|
+
"capabilitiesSource": "dispatch-target-model",
|
|
327
|
+
"supportedEfforts": ["low", "medium", "high", "xhigh", "max"]
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
"preferredValue": null,
|
|
331
|
+
"selectedValue": "claude-opus-5-5",
|
|
332
|
+
"capped": false,
|
|
333
|
+
"selectionMode": "review-target",
|
|
334
|
+
"selectionBranch": "matrix-pinned",
|
|
335
|
+
"family": "claude"
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
"definition": "---\n# oat-managed: true\n# oat-role: oat-reviewer-claude-claude-opus-5-5-high\n# oat-owner: user-config\n# oat-provider: claude\n# oat-capability-evidence: {\"source\":\"explicit-model-id\",\"modelReference\":\"claude-opus-5-5\",\"exactModel\":true,\"generation\":\"opus-5-5\",\"capabilitiesSource\":\"dispatch-target-model\",\"supportedEfforts\":[\"low\",\"medium\",\"high\",\"xhigh\",\"max\"]}\nname: oat-reviewer-claude-claude-opus-5-5-high\ndescription: Example fixture role for the managed Claude dispatch-record\n example. Claude-native claude-opus-5-5/high effort variant managed by OAT.\nmodel: claude-opus-5-5\neffort: high\n---\n\n## Role\n\nFixture body; `oat sync` generates the real definition.\n",
|
|
341
|
+
"payload": {
|
|
342
|
+
"variant": "oat-reviewer-claude-claude-opus-5-5-high"
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
"recordBase": {
|
|
346
|
+
"request_id": "example-p01-review",
|
|
347
|
+
"caller": "oat-project-implement",
|
|
348
|
+
"scope": "p01",
|
|
349
|
+
"objective": "Review phase p01",
|
|
350
|
+
"action": "review",
|
|
351
|
+
"role_class": "review",
|
|
352
|
+
"dispatch_context": "phase-dispatch",
|
|
353
|
+
"catalog_snapshot": {
|
|
354
|
+
"id": "claude-generated-role-catalog",
|
|
355
|
+
"source": "user-sync",
|
|
356
|
+
"observed_at": "2026-09-27T00:00:00.000Z"
|
|
357
|
+
},
|
|
358
|
+
"authority": "review-artifact",
|
|
359
|
+
"reasoning_mode_selector": null,
|
|
360
|
+
"service_tier_selector": null,
|
|
361
|
+
"deadline_seconds": 7200,
|
|
362
|
+
"retry_limit": 0,
|
|
363
|
+
"launch_status": "planned",
|
|
364
|
+
"child_outcome": null,
|
|
365
|
+
"runtime_confirmation": "not-reported",
|
|
366
|
+
"diagnostics": [],
|
|
367
|
+
"continuation_events": []
|
|
368
|
+
},
|
|
369
|
+
"event": {
|
|
370
|
+
"kind": "canonical-role-resolution",
|
|
371
|
+
"requestId": "example-p01-review",
|
|
372
|
+
"source": "canonical-role-resolver",
|
|
373
|
+
"evidence": {
|
|
374
|
+
"status": "resolved",
|
|
375
|
+
"dependency": "workflows",
|
|
376
|
+
"canonicalRole": "oat-reviewer",
|
|
377
|
+
"tier": "loaded",
|
|
378
|
+
"validation": "direct-canonical",
|
|
379
|
+
"canonicalPath": "<user>/agents/oat-reviewer.md",
|
|
380
|
+
"selectedPath": "<loaded>/agents/oat-reviewer.md",
|
|
381
|
+
"roleVersion": "1.0.0",
|
|
382
|
+
"contentDigest": "sha256:0d33889c3fc61be27d6ce8c7516d74830f70d42c2eab89a627a5e649f51a2ec3",
|
|
383
|
+
"candidateMisses": []
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
@@ -208,6 +208,81 @@ otherwise agent-proposed alternate route approved for the current run. For
|
|
|
208
208
|
`configured_invocation_evidence`. CLI or SDK availability alone is never a
|
|
209
209
|
selection source.
|
|
210
210
|
|
|
211
|
+
## Managed Claude Validation Input
|
|
212
|
+
|
|
213
|
+
Before every managed, effort-pinned Claude implementer or reviewer launch,
|
|
214
|
+
`oat-project-implement` runs `oat project dispatch record --event-file <file>
|
|
215
|
+
--json` without `--project` and requires `status: validated-only`. That input
|
|
216
|
+
replaces `record` with three top-level keys:
|
|
217
|
+
|
|
218
|
+
- `claudeLaunch`, an object with three keys of its own:
|
|
219
|
+
- `resolution`: the output of
|
|
220
|
+
`oat project dispatch-ceiling resolve --provider claude --role <implementer|reviewer> --json`,
|
|
221
|
+
verbatim.
|
|
222
|
+
- `definition`: the full text of the generated Claude agent file for the
|
|
223
|
+
selected variant.
|
|
224
|
+
- `payload`: the exact launch payload, `{ "variant": "<variant>" }`,
|
|
225
|
+
optionally with `model` equal to the selected model.
|
|
226
|
+
- `recordBase`: the caller-authored generic fields below.
|
|
227
|
+
- `event`: the `canonical-role-resolution` event, produced rather than written
|
|
228
|
+
by hand.
|
|
229
|
+
|
|
230
|
+
The command derives these fields from the accepted launch, and `recordBase`
|
|
231
|
+
must omit them: `provider`, `dispatch_policy`, `dispatch_ceiling`,
|
|
232
|
+
`role_name`, `role_selector`, `model_selector`,
|
|
233
|
+
`model_selector_granularity`, `effort_selector`, `selection_source`,
|
|
234
|
+
`candidates_considered`, `selection_reason`, `selected_route`, `payload`, and
|
|
235
|
+
`configured_invocation_evidence`. `recordBase` supplies every other required
|
|
236
|
+
generic field: `request_id`, `caller`, `scope`, `objective`, `action`,
|
|
237
|
+
`role_class`, `dispatch_context`, `catalog_snapshot`, `authority`,
|
|
238
|
+
`deadline_seconds`, `retry_limit`, `launch_status`, `child_outcome`,
|
|
239
|
+
`runtime_confirmation`, `diagnostics`, and `continuation_events`. `action` is
|
|
240
|
+
`implementation` or `fix` for the implementer and `review` for the reviewer.
|
|
241
|
+
|
|
242
|
+
Produce the event with the resolver itself:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
oat project dispatch canonical-role --role <oat-phase-implementer|oat-reviewer> \
|
|
246
|
+
--request-id <recordBase.request_id> --skill-dir <loaded oat-project-implement dir> --json
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
`--skill-dir` is required because the loaded tier is derived from it; the user
|
|
250
|
+
tier is `$HOME/.agents` and the project tier is `<repo>/.agents`. The command
|
|
251
|
+
is read-only. Its event carries `kind: canonical-role-resolution`, `requestId`
|
|
252
|
+
equal to `recordBase.request_id`, `source: canonical-role-resolver`, and
|
|
253
|
+
`evidence`. Resolved evidence has `dependency`, `canonicalRole`, `tier`,
|
|
254
|
+
`validation` (`direct-canonical` or `exact-canonical-symlink`),
|
|
255
|
+
`canonicalPath`, `selectedPath`, `roleVersion`, `contentDigest`, and
|
|
256
|
+
`candidateMisses`. Paths use the redacted form
|
|
257
|
+
`<loaded|user|project>/agents/<name>.md`, never an absolute or `<repo>` path,
|
|
258
|
+
and `contentDigest` is `sha256:<64 lowercase hex>` of the canonical role file.
|
|
259
|
+
Missing evidence has `status: missing`, the tier misses, and `recovery`
|
|
260
|
+
commands; it validates, but a fallback claim requires resolved evidence.
|
|
261
|
+
|
|
262
|
+
One run reports every violation it can find, one `stage path: message` line
|
|
263
|
+
each, where `stage` is `claudeLaunch`, `recordBase`, or `event`. The
|
|
264
|
+
`recordBase` cross-field rules run even when a required field is missing. A
|
|
265
|
+
check that needs a value that failed to parse is skipped and named on a final
|
|
266
|
+
line: the launch consistency checks when the resolution is malformed, the
|
|
267
|
+
payload variant and model checks when the payload is malformed, and the
|
|
268
|
+
action/role check without a parsed resolution. Fix the reported violations and
|
|
269
|
+
run again. Secret-shaped values are scrubbed from the report as
|
|
270
|
+
`<redacted-secret>`, and absolute paths as `<redacted-path>`.
|
|
271
|
+
|
|
272
|
+
[`managed-claude-example.json`](managed-claude-example.json) holds one complete
|
|
273
|
+
input per role and validates as published. It is built from fixture agents
|
|
274
|
+
rather than the shipped roles, so its definition body, role version, and
|
|
275
|
+
content digest are illustrative. To regenerate it, run `dispatch-ceiling
|
|
276
|
+
resolve` for each role, materialize each definition from a fixture agent with
|
|
277
|
+
the Claude materializer that `oat sync` uses, and run `canonical-role` against
|
|
278
|
+
fixture role files; the CLI test that pins the example must still pass. The
|
|
279
|
+
published events come from a fixture home whose `.agents/agents/` holds both
|
|
280
|
+
roles and whose `.agents/skills/oat-project-implement/` is the `--skill-dir`,
|
|
281
|
+
so the loaded root is that home's `.agents`: expect `tier: loaded`,
|
|
282
|
+
`selectedPath: <loaded>/agents/<role>.md`, and
|
|
283
|
+
`canonicalPath: <user>/agents/<role>.md`. Another layout yields different but
|
|
284
|
+
equally valid tier labels.
|
|
285
|
+
|
|
211
286
|
## Recon Wave
|
|
212
287
|
|
|
213
288
|
```yaml
|
|
@@ -6,7 +6,7 @@ disable-model-invocation: true
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Bash, Glob, Grep, AskUserQuestion
|
|
8
8
|
metadata:
|
|
9
|
-
version: 2.0.
|
|
9
|
+
version: 2.0.1
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# OAT Doctor
|
|
@@ -111,7 +111,7 @@ Each finding is one line with an **area**, a **severity**, a one-line **summary*
|
|
|
111
111
|
- `activeProject` or `lastPausedProject` set to a path that does not exist → `error`; fix `oat config set activeProject ''` / `oat config set lastPausedProject ''` (the CLI refuses `unset` for these two lifecycle keys). `activeIdea` set to a missing path → `error`; fix `oat config unset activeIdea --local` (or `--user` for a user-level value).
|
|
112
112
|
- A set key whose `describe` entry carries `deprecated` → `warning`; summary names the key and its `deprecated.supersededBy`; when `deprecated.legacyValues` is present the finding fires only when the set value is one of those values; fix = the entry's `owningCommand` for the successor.
|
|
113
113
|
- A key set on a surface that is not one of the surfaces its `describe` entry's `file` names → `warning`; fix `oat config unset <key> --<surface>` then `oat config set <key> <value> --<right surface>`.
|
|
114
|
-
- The `
|
|
114
|
+
- The `project:dispatch_matrix` check (command 1, config area) reports target availability, not parity with the bundled recommendation. Do not infer parity from `workflow.dispatchCeiling.recommendationVersion`: it identifies the bundle last written by adoption. In the config dive, `oat config adopt dispatch-matrix --shared --keep-existing` fills missing cells and reports preserved differences; a direct adoption without `--keep-existing` replaces bundled cells in the chosen scope, so preview it with `--dry-run`.
|
|
115
115
|
- A documented key group with nothing set on any surface → one `info` per group, expanded only in the dive.
|
|
116
116
|
- Synced project health: `project:synced_tracked_artifacts`, `project:synced_gitignore`, `project:synced_projects`, `project:synced_editor_hint`, and per-project `project:synced_<slug>_<kind>` checks from command 1 → severity from status, summary from the message; report them without treating an absent checkout as proof that no synced project exists (an absent checkout is materialized by `oat project pull`, which the check's message names).
|
|
117
117
|
|
|
@@ -6,7 +6,7 @@ disable-model-invocation: true
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.0.
|
|
9
|
+
version: 1.0.17
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Autonomous OAT Project
|
|
@@ -375,7 +375,7 @@ provider scalar or is shadowed by one at higher precedence, and block without
|
|
|
375
375
|
mutation only when no authorized adoption-compatible scope remains. Existing
|
|
376
376
|
explicit matrix cells are preserved by adoption; their provenance does not
|
|
377
377
|
choose the persistence scope. Run exactly one matching
|
|
378
|
-
`oat config adopt dispatch-matrix` command and re-run the reviewer preflight.
|
|
378
|
+
`oat config adopt dispatch-matrix --keep-existing` command and re-run the reviewer preflight.
|
|
379
379
|
Block when the ladder remains incomplete after adoption.
|
|
380
380
|
|
|
381
381
|
At every required artifact or code review:
|
|
@@ -274,7 +274,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
274
274
|
| `oat-dispatch-subagents/references/provider-claude.md` | `fbe3a21e9533 -> NG` |
|
|
275
275
|
| `oat-dispatch-subagents/references/provider-codex.md` | `95b0f82018c7 -> NG` |
|
|
276
276
|
| `oat-dispatch-subagents/references/provider-cursor.md` | `f781555295a9 -> NG`; `55ccfef14fd6 -> NG` |
|
|
277
|
-
| `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG`; `1c9a84c4d1e0 -> NG`; `2a63da6e3a96 -> NG`; `30762d53b043 -> NG`
|
|
277
|
+
| `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG`; `1c9a84c4d1e0 -> NG`; `2a63da6e3a96 -> NG`; `30762d53b043 -> NG`; `66bc2f0d4fda -> NG` |
|
|
278
278
|
| `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
|
|
279
279
|
| `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
|
|
280
280
|
| `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `3c0b26f0ff1c -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
|