@open-agent-toolkit/cli 0.2.25 → 0.2.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/assets/docs/cli-utilities/configuration.md +42 -11
  2. package/assets/docs/workflows/projects/dispatch-ceiling.md +67 -16
  3. package/assets/public-package-versions.json +4 -4
  4. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
  5. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
  6. package/assets/skills/oat-project-implement/SKILL.md +9 -11
  7. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +18 -9
  8. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
  9. package/assets/skills/oat-project-implement/references/phase-execution.md +13 -4
  10. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
  11. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
  12. package/dist/commands/config/index.d.ts.map +1 -1
  13. package/dist/commands/config/index.js +27 -3
  14. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  15. package/dist/commands/project/dispatch-ceiling/index.js +90 -0
  16. package/dist/config/dispatch-notices.d.ts +8 -0
  17. package/dist/config/dispatch-notices.d.ts.map +1 -0
  18. package/dist/config/dispatch-notices.js +79 -0
  19. package/dist/config/dispatch-policy-options.d.ts +2 -0
  20. package/dist/config/dispatch-policy-options.d.ts.map +1 -1
  21. package/dist/config/dispatch-policy-options.js +14 -2
  22. package/dist/providers/identity/dispatch-report.d.ts +17 -0
  23. package/dist/providers/identity/dispatch-report.d.ts.map +1 -1
  24. package/dist/providers/identity/dispatch-report.js +30 -0
  25. package/package.json +2 -2
@@ -308,6 +308,15 @@ Adoption fills missing provider/tier cells and preserves explicit existing
308
308
  values. Planning shows the complete bundled recommendation before asking for
309
309
  this scope, then rechecks the effective ladder. If explicit cells still leave
310
310
  the ladder incomplete, readiness blocks; OAT does not overwrite them.
311
+ `workflow.dispatchCeiling.recommendationVersion` describes only the bundled
312
+ recommendation that was adopted. Dispatch targets, structured notices, and
313
+ runtime disclosure come from the effective ladder after explicit cells have
314
+ been preserved.
315
+
316
+ A recommended Fable target may require model access from the executing
317
+ provider. The adopting organization is responsible for confirming its
318
+ applicable retention policy. OAT does not determine model access or
319
+ organizational retention eligibility.
311
320
 
312
321
  Scope determines ownership and Codex/Cursor materialization:
313
322
 
@@ -366,13 +375,13 @@ tiers are trimmed for readability.
366
375
 
367
376
  The bundled recommendation covers 13 Codex model/effort combinations: Luna and
368
377
  Terra at `low`, `medium`, `high`, and `xhigh`, plus Sol at those efforts and
369
- `max`. Claude covers `haiku`, `sonnet`, `opus`, and `fable`. Cursor covers 16
370
- candidates across four tiers, drawn from a materialization catalogue of 18
371
- verified multi-family flat IDs spanning Composer, Claude (Sonnet, Opus, and
372
- Fable), GPT, and Grok; the two figures differ because some approved mappings
373
- stay materializable without being recommended. An explicit mapping connects
374
- each flat ladder ID to a separate bracket-form frontmatter model; configuration
375
- and skills never derive or normalize either form.
378
+ `max`. Claude covers `haiku`, `sonnet`, `opus`, and `fable`. The recommendation
379
+ carries 14 Cursor candidates across four tiers, drawn from a materialization
380
+ catalogue with 18 catalogued multi-family flat IDs spanning Composer, Claude
381
+ (Sonnet, Opus, and Fable), GPT, and Grok; the two figures differ because some
382
+ approved mappings stay materializable without being recommended. An explicit
383
+ mapping connects each flat ladder ID to a separate bracket-form frontmatter
384
+ model; configuration and skills never derive or normalize either form.
376
385
 
377
386
  The corresponding pinned Codex variant catalogue includes
378
387
  `gpt-5.6-luna-high`, `gpt-5.6-terra-xhigh`, `gpt-5.6-sol-high`, and
@@ -432,6 +441,10 @@ oat project dispatch-ceiling resolve \
432
441
  --ceiling-tier high \
433
442
  --candidate-model gpt-5.6-terra \
434
443
  --candidate-effort medium \
444
+ --task-class default-implementation \
445
+ --task-effort medium \
446
+ --report-scope p02 \
447
+ --report-action implementation \
435
448
  --json
436
449
 
437
450
  oat project dispatch-ceiling resolve \
@@ -439,6 +452,9 @@ oat project dispatch-ceiling resolve \
439
452
  --role implementer \
440
453
  --ceiling-tier high \
441
454
  --candidate-model sonnet \
455
+ --task-class default-implementation \
456
+ --report-scope p02 \
457
+ --report-action implementation \
442
458
  --json
443
459
 
444
460
  oat project dispatch-ceiling resolve \
@@ -446,19 +462,34 @@ oat project dispatch-ceiling resolve \
446
462
  --role implementer \
447
463
  --ceiling-tier high \
448
464
  --candidate-model gpt-5.6-sol-high \
465
+ --task-class default-implementation \
466
+ --report-scope p02 \
467
+ --report-action implementation \
449
468
  --json
450
469
  ```
451
470
 
471
+ Use the same classification flags and `--report-action fix` for bounded fixes.
472
+ Reviewer routes carry neither `--task-class` nor `--task-effort`; the CLI
473
+ rejects classification flags for reviewers. Before any implementation, fix, or
474
+ reviewer launch, display `dispatchReport.notices` and the formatted report. The
475
+ effective resolver target—not the recommendation version—owns runtime
476
+ disclosure.
477
+
452
478
  `--ceiling-tier` is invocation-only. It accepts `economy`, `balanced`, `high`,
453
479
  or `frontier`, overrides layered active-policy ceilings for that call, and never
454
480
  writes user, shared, local, or project configuration. JSON reports top-level
455
481
  `source: invocation`; `providers.<provider>.cellSource` still identifies the
456
482
  config layer that owns the selected candidate.
457
483
 
458
- The resolver fails closed when a candidate is missing, above the maximum,
459
- ambiguous, malformed, or cannot compile exact provider controls. `--preferred`
460
- remains compatibility behavior for legacy scalar ceilings and managed
461
- `Uncapped`; it is not the exact managed phase-agent path.
484
+ The resolver fails closed when a requested candidate is above the maximum,
485
+ ambiguous, malformed, or cannot compile exact provider controls. Omitting an
486
+ exact candidate from a managed named-cap implementation or fix currently
487
+ preserves compatibility by resolving successfully at the cap; with report
488
+ context, human and JSON output include the
489
+ `managed-capped-selection-skipped` warning. Callers must surface that warning
490
+ and select an exact candidate before launch. `--preferred` remains
491
+ compatibility behavior for legacy scalar ceilings and managed `Uncapped`; it is
492
+ not the exact managed phase-agent path.
462
493
 
463
494
  ### Provider enforcement and materialization
464
495
 
@@ -63,6 +63,10 @@ Adoption fills missing provider/tier cells and records
63
63
  existing cells. Planning shows the complete recommendation before asking which
64
64
  scope should own it. If the resulting ladder is still missing or incomplete,
65
65
  planning remains blocked rather than replacing the user's explicit values.
66
+ The recommendation version describes only the bundled recommendation. After
67
+ preserving existing cells, OAT resolves the effective ladder and uses that
68
+ effective result—not the recommendation version—for dispatch targets and
69
+ runtime disclosure.
66
70
 
67
71
  ### Upgrading to a newer recommendation version
68
72
 
@@ -91,6 +95,12 @@ does not compare the two rungs. Both models remain in the pin catalog and stay
91
95
  available to a hand-edited ladder. An adopter still on the prior version keeps their existing
92
96
  Cursor tiers untouched until they take one of the actions above.
93
97
 
98
+ The terminal Fable target may require model access from the executing provider.
99
+ The adopting organization is responsible for confirming its applicable
100
+ retention policy. OAT does not determine model access or organizational
101
+ retention eligibility; recommendation membership and catalogue presence are
102
+ configuration data, not an eligibility decision.
103
+
94
104
  The terminal entries in that version are chosen, not incidental. Because the
95
105
  final candidate in a tier is the target its implementation-phase self-review
96
106
  pins, reordering a tier changes who reviews it even when the membership is
@@ -274,6 +284,10 @@ oat project dispatch-ceiling resolve \
274
284
  --ceiling-tier high \
275
285
  --candidate-model gpt-5.6-terra \
276
286
  --candidate-effort medium \
287
+ --task-class default-implementation \
288
+ --task-effort medium \
289
+ --report-scope p02 \
290
+ --report-action implementation \
277
291
  --json
278
292
 
279
293
  # Claude: exact model argument
@@ -282,6 +296,9 @@ oat project dispatch-ceiling resolve \
282
296
  --role implementer \
283
297
  --ceiling-tier high \
284
298
  --candidate-model sonnet \
299
+ --task-class default-implementation \
300
+ --report-scope p02 \
301
+ --report-action implementation \
285
302
  --json
286
303
 
287
304
  # Cursor: exact opaque configured string
@@ -290,9 +307,16 @@ oat project dispatch-ceiling resolve \
290
307
  --role implementer \
291
308
  --ceiling-tier high \
292
309
  --candidate-model gpt-5.6-sol-high \
310
+ --task-class default-implementation \
311
+ --report-scope p02 \
312
+ --report-action implementation \
293
313
  --json
294
314
  ```
295
315
 
316
+ Use the same classification flags and `--report-action fix` for a bounded fix.
317
+ Reviewer routes use neither `--task-class` nor `--task-effort`; the CLI rejects
318
+ classification flags for reviewers.
319
+
296
320
  `--ceiling-tier` accepts `economy`, `balanced`, `high`, or `frontier`. It
297
321
  overrides a layered active-policy ceiling for that resolver invocation only. It
298
322
  does not modify user, shared, local, or project configuration.
@@ -306,10 +330,14 @@ Successful JSON reports:
306
330
  `selection.requestedCandidate`
307
331
  - the exact provider-specific `dispatchArgs`
308
332
 
309
- The resolver rejects a missing candidate, an above-ceiling candidate, an
310
- ambiguous route, malformed ordering, a reviewer candidate request, or controls
311
- that cannot compile exactly. The root blocks instead of reusing its own target,
312
- a base role, or a provider default.
333
+ The resolver rejects an above-ceiling candidate, an ambiguous route, malformed
334
+ ordering, a reviewer candidate request, or controls that cannot compile
335
+ exactly. For compatibility, omitting an exact candidate from a managed
336
+ named-cap implementation or fix still resolves successfully at the cap. When
337
+ report context is present, that path emits the coded
338
+ `managed-capped-selection-skipped` warning in human and JSON output. The root
339
+ must treat the warning as a dispatch-policy violation and select an exact
340
+ candidate before launch even though the command retains exit code `0`.
313
341
 
314
342
  Implementer and fix resolution has two mutually exclusive selection branches:
315
343
 
@@ -411,20 +439,38 @@ write authority. See
411
439
 
412
440
  Resolver calls that pass `--report-scope` and `--report-action` include a
413
441
  `dispatchReport` object in JSON output. Consumers must require
414
- `dispatchReport.schemaVersion: 1` before dispatch. The report keeps four
415
- different decisions separate:
416
-
417
- | Report area | What it means |
418
- | ------------------------------------------------------------------- | -------------------------------------------------------------------- |
419
- | `policy` | The resolved managed/inherit policy, its status, name, and source |
420
- | `selection.ceilingTier` / `selection.ceilingTarget` | The maximum allowed tier and its boundary target |
421
- | `selection.requestedCandidate` / `candidateTier` / `candidateIndex` | The exact candidate requested for this bounded task and its position |
422
- | `selection.exactSelectedTarget` / `route.target` | The compiled provider target and actual invocation route |
442
+ `dispatchReport.schemaVersion: 1` before dispatch. The report keeps these
443
+ concerns separate:
444
+
445
+ | Report area | What it means |
446
+ | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
447
+ | `policy` | The resolved managed/inherit policy, its status, name, and source |
448
+ | `selection.ceilingTier` / `selection.ceilingTarget` | The maximum allowed tier and its boundary target |
449
+ | `selection.requestedCandidate` / `candidateTier` / `candidateIndex` | The exact candidate requested for this bounded task and its position |
450
+ | `selection.preferredValue` | The legacy `--preferred` selection value, or `null` when that compatibility path was not used |
451
+ | `selection.exactSelectedTarget` / `route.target` | The compiled provider target and actual invocation route |
452
+ | `classification` | Caller-reported task class, applicable Codex preferred effort, and provenance source |
453
+ | `notices` | Ordered coded warnings and advisories derived from the effective dispatch context |
423
454
 
424
455
  A named policy or ceiling is never a substitute for the requested candidate or
425
- exact selected target. `requestedControls` records what OAT put into the host
426
- payload. `configuredDefaults` records fallback configuration and is explicitly
427
- not a runtime observation.
456
+ exact selected target. Classification is provenance only: it records the
457
+ root's judgment but does not participate in candidate normalization or let OAT
458
+ judge whether that classification was correct. `requestedControls` records
459
+ what OAT put into the host payload. `configuredDefaults` records fallback
460
+ configuration and is explicitly not a runtime observation.
461
+
462
+ Managed named-cap implementation and fix reports can include two warning codes:
463
+
464
+ - `managed-capped-selection-skipped` means no exact candidate or legacy
465
+ preferred value was supplied, so compatibility behavior selected the cap.
466
+ - `managed-capped-classification-missing` means an exact candidate was supplied
467
+ without `--task-class`.
468
+
469
+ Both warnings preserve resolved status and exit code `0`. They do not apply to
470
+ policy-only preflight, reviewer, inherit, uncapped, unresolved, or
471
+ legacy-preferred routes. `terminal-reviewer-eligibility` is an advisory tied to
472
+ an effective Fable reviewer target, not proof of model access or organizational
473
+ retention eligibility.
428
474
 
429
475
  `gateInvocation` is an immutable copy of configured gate controls.
430
476
  `runtimeIdentity` is separate and stays `not-reported` until independently
@@ -446,6 +492,11 @@ when OAT can establish it; otherwise it is `unknown`. `provenance` is
446
492
  `declared`, `observed`, `inferred`, or `unknown`. Selected model and effort axes
447
493
  can remain exact even when runtime producer identity is not reported.
448
494
 
495
+ Before launching an implementation, fix, or reviewer, surface the structured
496
+ notices in `dispatchReport.notices` and render the report. Structured notices
497
+ and runtime disclosure use the effective target returned by that resolver call,
498
+ never a target inferred from the bundled recommendation version.
499
+
449
500
  ## Legacy Compatibility
450
501
 
451
502
  The following remain readable during migration:
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.2.25",
3
- "docs-config": "0.2.25",
4
- "docs-theme": "0.2.25",
5
- "docs-transforms": "0.2.25"
2
+ "cli": "0.2.26",
3
+ "docs-config": "0.2.26",
4
+ "docs-theme": "0.2.26",
5
+ "docs-transforms": "0.2.26"
6
6
  }
@@ -233,7 +233,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
233
233
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
234
234
  | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
235
235
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09` |
236
- | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
236
+ | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
237
237
  | `oat-project-implement/references/completion-and-closeout.md` | `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `567d43ab0c2e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
238
238
  | `oat-project-implement/references/dispatch-and-dry-run.md` | `21b85f5e4daa -> IMPLEMENT-08`; `74c92b32bb2a -> IMPLEMENT-08`; `8efd2d0517ab -> IMPLEMENT-09`; `461ed9b3e495 -> IMPLEMENT-09`; `b5ad64fd744d -> NG`; `14ce436cfffa -> NG`; `043ca36da3e2 -> NG`; `a23e45c1dc8d -> NG`; `498143bb41a7 -> NG`; `4fe3eb179023 -> NG`; `7f75485e5a33 -> NG`; `8ec3a96df029 -> NG`; `16c3f96e758d -> NG`; `5915c41fe058 -> NG`; `f51e43eeac56 -> NG`; `fd41c25623cb -> NG`; `58a932ed6453 -> NG`; `4718bd3ce12d -> NG`; `58c444a2126b -> NG`; `2df3adae4120 -> NG`; `e75df892b55c -> NG`; `8ba5dbd2a0d8 -> NG` |
239
239
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
@@ -233,7 +233,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
233
233
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
234
234
  | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
235
235
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09` |
236
- | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
236
+ | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
237
237
  | `oat-project-implement/references/completion-and-closeout.md` | `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `567d43ab0c2e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
238
238
  | `oat-project-implement/references/dispatch-and-dry-run.md` | `21b85f5e4daa -> IMPLEMENT-08`; `74c92b32bb2a -> IMPLEMENT-08`; `8efd2d0517ab -> IMPLEMENT-09`; `461ed9b3e495 -> IMPLEMENT-09`; `b5ad64fd744d -> NG`; `14ce436cfffa -> NG`; `043ca36da3e2 -> NG`; `a23e45c1dc8d -> NG`; `498143bb41a7 -> NG`; `4fe3eb179023 -> NG`; `7f75485e5a33 -> NG`; `8ec3a96df029 -> NG`; `16c3f96e758d -> NG`; `5915c41fe058 -> NG`; `f51e43eeac56 -> NG`; `fd41c25623cb -> NG`; `58a932ed6453 -> NG`; `4718bd3ce12d -> NG`; `58c444a2126b -> NG`; `2df3adae4120 -> NG`; `e75df892b55c -> NG`; `8ba5dbd2a0d8 -> NG` |
239
239
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-implement
3
- version: 2.2.2
3
+ version: 2.2.3
4
4
  description: Use when plan.md is ready for execution. Dispatches one phase implementer per phase, owns independent phase review and bounded fix routing, and supports plan-declared worktree-isolated parallel phases.
5
5
  oat_gateable: true
6
6
  argument-hint: '[--retry-limit <N>] [--dry-run]'
@@ -19,16 +19,14 @@ Execute the implementation plan task-by-task with full state tracking.
19
19
 
20
20
  ## Shared Subagent Dispatch Contract
21
21
 
22
- Before resolving or launching any phase implementer, optional nested worker,
23
- fix continuation, or reviewer, read and follow
24
- `.agents/skills/oat-project-dispatch-subagents/SKILL.md`. The project adapter
25
- resolves lifecycle scope and then requires
26
- `.agents/skills/oat-dispatch-subagents/SKILL.md` for provider-neutral
27
- selection, recovery, and evidence. This explicit two-skill load is mandatory;
28
- do not rely on ambient skill discovery. This implementation skill retains
29
- lifecycle sequencing, verification, integration, and approval-aware final
30
- closeout.
31
- Correctness must not require a provider restart or hot reload.
22
+ Before resolving or launching a phase implementer, optional child, fix, or
23
+ reviewer, read `.agents/skills/oat-project-dispatch-subagents/SKILL.md`, then
24
+ `.agents/skills/oat-dispatch-subagents/SKILL.md`. The former resolves lifecycle
25
+ scope; the latter owns provider-neutral selection, recovery, and evidence.
26
+ Display structured resolver notices before every implementation, fix, or
27
+ reviewer launch. Runtime disclosure uses the effective resolved target, never
28
+ the bundled recommendation version. This explicit load is mandatory, and
29
+ correctness must not require a provider restart or hot reload.
32
30
 
33
31
  Read
34
32
  `.agents/skills/subagent-orchestration/references/model-selection-principles.md`.
@@ -157,7 +157,7 @@ Use the CLI resolver as the source of truth. The command name remains
157
157
  policy:
158
158
 
159
159
  ```bash
160
- oat project dispatch-ceiling resolve --provider <active-provider> --preflight --report-scope implementation-preflight --report-action implementation --json
160
+ oat project dispatch-ceiling resolve --provider <active-provider> --preflight --task-class <task-class> [--task-effort <codex-preferred-effort>] --report-scope implementation-preflight --report-action implementation --json
161
161
  ```
162
162
 
163
163
  If `oat` is not in PATH, run the same command through
@@ -317,9 +317,11 @@ report context:
317
317
  - review: `--report-scope <phase-or-review-scope> --report-action review`
318
318
 
319
319
  Require `dispatchReport.schemaVersion: 1` in the completed resolver JSON before
320
- dispatch. Consume the report as the human/audit source: render the versioned
321
- block with `formatDispatchReport(dispatchReport)` semantics, and derive the
322
- formal compatibility line only through
320
+ dispatch. Surface every structured entry in `dispatchReport.notices`, then
321
+ render the versioned block with `formatDispatchReport(dispatchReport)`
322
+ semantics, before the implementation, fix, or reviewer launch. Consume the
323
+ report as the human/audit source, and derive the formal compatibility line only
324
+ through
323
325
  `formatDispatchStamp(dispatchReport)` / `toDispatchStampRecord(dispatchReport)`.
324
326
  Never hand-assemble a second `Dispatch:` schema from policy labels, role names,
325
327
  candidate strings, or target names.
@@ -329,6 +331,10 @@ The exact provider invocation remains authoritative in
329
331
  the report does not replace or weaken target-pinned dispatch. Add independently
330
332
  observed runtime identity to `dispatchReport.runtimeIdentity` only when such an
331
333
  observation exists. Requested/configured controls are not runtime observation.
334
+ Runtime disclosure must use the effective resolved target in that completed
335
+ response. Never infer runtime controls or eligibility from
336
+ `recommendationVersion`, which identifies only the bundled recommendation that
337
+ was adopted.
332
338
  For gate-originated review, keep `dispatchReport.gateInvocation`, existing
333
339
  work-producer `diversity`, and reviewer `runtimeIdentity` as three distinct
334
340
  facts; producer stamps or self-report never overwrite configured invocation.
@@ -369,8 +375,9 @@ requested; never silently downgrade to it.
369
375
  6. For managed capped phase-implementer/fix dispatch, choose an exact
370
376
  configured candidate and use the exact-candidate branch, not the
371
377
  preferred-selection branch. For implementation, call
372
- `oat project dispatch-ceiling resolve --provider codex --role implementer --ceiling-tier <project-or-phase-tier> --candidate-model <model> --candidate-effort <effort> --escalation-level <route-level> --report-scope <phase-id> --report-action implementation --json`.
378
+ `oat project dispatch-ceiling resolve --provider codex --role implementer --ceiling-tier <project-or-phase-tier> --candidate-model <model> --candidate-effort <effort> --task-class <task-class> --task-effort <preferred-effort> --escalation-level <route-level> --report-scope <phase-id> --report-action implementation --json`.
373
379
  For a bounded fix, use the same phase target with
380
+ the same `--task-class` and `--task-effort` classification provenance and
374
381
  `--report-scope <phase-or-fix-scope> --report-action fix`. Read
375
382
  `providers.codex.dispatchArgs.variant` and
376
383
  `providers.codex.selection.target`; never reuse a cap-only variant.
@@ -406,8 +413,9 @@ Claude rules:
406
413
  - Capped managed policy: target the configured policy cap directly.
407
414
  - Managed `Uncapped` or inherit/default: no reviewer target exists; omit `model` and log inherited/default model behavior.
408
415
  - For managed capped phase-implementer/fix dispatch, call
409
- `oat project dispatch-ceiling resolve --provider claude --role implementer --ceiling-tier <project-or-phase-tier> --candidate-model <model> --orchestrator-tier <current-orchestrator-tier> --escalation-level <route-level> --report-scope <phase-id> --report-action implementation --json`.
410
- For bounded fixes, reuse the exact phase target with a bounded fix scope.
416
+ `oat project dispatch-ceiling resolve --provider claude --role implementer --ceiling-tier <project-or-phase-tier> --candidate-model <model> --task-class <task-class> --orchestrator-tier <current-orchestrator-tier> --escalation-level <route-level> --report-scope <phase-id> --report-action implementation --json`.
417
+ For bounded fixes, reuse the exact phase target and task classification with a
418
+ bounded fix scope.
411
419
  For review dispatch, call the resolver with
412
420
  `--role reviewer --report-scope <phase-or-review-scope> --report-action review --json`
413
421
  and no candidate flags. Read `providers.claude.dispatchArgs.model` and pass it
@@ -443,8 +451,9 @@ Cursor rules:
443
451
  task-class resolution independently arrives there; reaching it because no
444
452
  candidate was selected is a defect.
445
453
  - For managed capped phase-implementer/fix dispatch, call
446
- `oat project dispatch-ceiling resolve --provider cursor --role implementer --ceiling-tier <project-or-phase-tier> --candidate-model <opaque-model> --report-scope <phase-id> --report-action implementation --json`.
447
- For bounded fixes, reuse the exact phase target with a bounded fix scope.
454
+ `oat project dispatch-ceiling resolve --provider cursor --role implementer --ceiling-tier <project-or-phase-tier> --candidate-model <opaque-model> --task-class <task-class> --report-scope <phase-id> --report-action implementation --json`.
455
+ For bounded fixes, reuse the exact phase target and task classification with a
456
+ bounded fix scope.
448
457
  - Require `providers.cursor.dispatchArgs.variant` and launch that exact
449
458
  resolver-selected native agent type first. Native acceptance plus the
450
459
  complete launcher payload is configured invocation evidence; it does not
@@ -233,7 +233,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
233
233
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
234
234
  | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
235
235
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09` |
236
- | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
236
+ | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
237
237
  | `oat-project-implement/references/completion-and-closeout.md` | `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `567d43ab0c2e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
238
238
  | `oat-project-implement/references/dispatch-and-dry-run.md` | `21b85f5e4daa -> IMPLEMENT-08`; `74c92b32bb2a -> IMPLEMENT-08`; `8efd2d0517ab -> IMPLEMENT-09`; `461ed9b3e495 -> IMPLEMENT-09`; `b5ad64fd744d -> NG`; `14ce436cfffa -> NG`; `043ca36da3e2 -> NG`; `a23e45c1dc8d -> NG`; `498143bb41a7 -> NG`; `4fe3eb179023 -> NG`; `7f75485e5a33 -> NG`; `8ec3a96df029 -> NG`; `16c3f96e758d -> NG`; `5915c41fe058 -> NG`; `f51e43eeac56 -> NG`; `fd41c25623cb -> NG`; `58a932ed6453 -> NG`; `4718bd3ce12d -> NG`; `58c444a2126b -> NG`; `2df3adae4120 -> NG`; `e75df892b55c -> NG`; `8ba5dbd2a0d8 -> NG` |
239
239
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
@@ -20,13 +20,18 @@ responsible for file boundaries, verification, and task commits.
20
20
  Before each phase:
21
21
 
22
22
  1. Resolve the project dispatch policy and optional narrower phase maximum from
23
- the plan's `## Dispatch Profile`.
23
+ the plan's `## Dispatch Profile`. Classify the complete phase scope and
24
+ record the classification source and rationale. For Codex, also classify
25
+ the preferred task effort.
24
26
  2. Resolve one exact phase implementer target with
25
- `--role implementer --ceiling-tier <project-or-phase-named-tier> --report-scope <pNN> --report-action implementation`.
27
+ `--role implementer --ceiling-tier <project-or-phase-named-tier> --task-class <task-class> [--task-effort <codex-preferred-effort>] --report-scope <pNN> --report-action implementation`.
26
28
  Use the phase scope, not each task ID. Omit `--ceiling-tier` only for
27
29
  uncapped or inherit/default policy.
28
- 3. Build the provider invocation before recording target, model/effort axes,
29
- selection reason, candidates, and formal dispatch stamp.
30
+ 3. Require the completed Dispatch Report, surface its structured notices, and
31
+ render the report before launch. Build the provider invocation before
32
+ recording target, model/effort axes, selection reason, candidates, and
33
+ formal dispatch stamp. Runtime disclosure comes from the effective resolved
34
+ target, never `recommendationVersion`.
30
35
  4. Record `PHASE_BASE_HEAD=$(git rev-parse HEAD)` and require a clean worktree.
31
36
  5. Send one self-contained Phase Scope:
32
37
 
@@ -54,6 +59,10 @@ Before each phase:
54
59
  dispatch_args: {complete provider invocation payload}
55
60
  model_axis: {resolver value}
56
61
  effort_axis: {resolver value}
62
+ task_class: {mechanical-recon|intelligent-recon|default-implementation|hard-reasoning|consequential}
63
+ preferred_effort: {codex low|medium|high|xhigh|max; null for other providers}
64
+ classification_source: {plan dispatch profile|phase scope analysis|other explicit source}
65
+ classification_rationale: {short rationale grounded in the complete phase scope}
57
66
  selection_reason: {stable shared reason}
58
67
  candidates_considered: {ordered exact candidates}
59
68
  dispatch_stamp: {formal Dispatch: line}