@open-agent-toolkit/cli 0.2.24 → 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 (46) hide show
  1. package/assets/agents/oat-reviewer.md +12 -1
  2. package/assets/docs/cli-utilities/configuration.md +44 -15
  3. package/assets/docs/reference/cli-reference.md +1 -1
  4. package/assets/docs/workflows/projects/dispatch-ceiling.md +67 -16
  5. package/assets/docs/workflows/projects/reviews.md +19 -10
  6. package/assets/public-package-versions.json +4 -4
  7. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -4
  8. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -4
  9. package/assets/skills/oat-project-implement/SKILL.md +9 -11
  10. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +18 -9
  11. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -4
  12. package/assets/skills/oat-project-implement/references/phase-execution.md +42 -4
  13. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -4
  14. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -4
  15. package/assets/skills/oat-project-review-provide/SKILL.md +124 -26
  16. package/assets/skills/oat-project-review-provide-remote/SKILL.md +64 -15
  17. package/assets/skills/oat-project-review-receive/SKILL.md +21 -1
  18. package/assets/skills/oat-project-review-receive-remote/SKILL.md +39 -2
  19. package/assets/skills/oat-review-provide-remote/SKILL.md +55 -12
  20. package/assets/templates/plan.md +13 -7
  21. package/dist/commands/config/index.d.ts.map +1 -1
  22. package/dist/commands/config/index.js +35 -11
  23. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  24. package/dist/commands/project/dispatch-ceiling/index.js +90 -0
  25. package/dist/commands/review/latest.d.ts.map +1 -1
  26. package/dist/commands/review/latest.js +22 -9
  27. package/dist/config/dispatch-notices.d.ts +8 -0
  28. package/dist/config/dispatch-notices.d.ts.map +1 -0
  29. package/dist/config/dispatch-notices.js +79 -0
  30. package/dist/config/dispatch-policy-options.d.ts +2 -0
  31. package/dist/config/dispatch-policy-options.d.ts.map +1 -1
  32. package/dist/config/dispatch-policy-options.js +14 -2
  33. package/dist/config/resolve.js +1 -1
  34. package/dist/providers/identity/dispatch-report.d.ts +17 -0
  35. package/dist/providers/identity/dispatch-report.d.ts.map +1 -1
  36. package/dist/providers/identity/dispatch-report.js +30 -0
  37. package/dist/review-remote/body-builder.d.ts +12 -3
  38. package/dist/review-remote/body-builder.d.ts.map +1 -1
  39. package/dist/review-remote/body-builder.js +11 -0
  40. package/dist/review-remote/marker-parser.d.ts +8 -3
  41. package/dist/review-remote/marker-parser.d.ts.map +1 -1
  42. package/dist/review-remote/marker-parser.js +13 -2
  43. package/dist/review-remote/narrowing.d.ts +44 -8
  44. package/dist/review-remote/narrowing.d.ts.map +1 -1
  45. package/dist/review-remote/narrowing.js +106 -10
  46. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-reviewer
3
- version: 1.1.9
3
+ version: 1.2.0
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
@@ -55,6 +55,7 @@ You will be given a "Review Scope" block including:
55
55
  - **tasks_in_scope**: Task IDs being reviewed (if task/phase scope)
56
56
  - **oat_output_mode**: Optional output-sink selector. Absent (or any value other than `structured`) means **artifact mode** — write the review artifact to disk per Step 8. `structured` means **structured-output mode** — return a `StructuredFindings` object in-memory and write NO artifact file (see **Structured-Output Mode**). This key parallels the existing `oat_review_invocation` dispatch-payload naming.
57
57
  - **oat_review_invocation**: Optional provenance selector for artifact-mode reviews. Use `manual`, `auto`, or `gate`; default to `manual` when absent.
58
+ - **Code-review provenance**: For artifact-mode code reviews, resolve the authoritative range head with `git rev-parse <authoritative-range-head>^{commit}` and record the resulting full 40-character commit SHA as `oat_review_head_sha`. If the review is narrowed, also record the resolved range, prior artifact path, and prior reviewed head supplied by the caller.
58
59
  - **Gate invocation fields**: For `oat_review_invocation: gate`, the prompt supplies exact `oat_gate_run_id`, `oat_gate_target`, `oat_gate_runtime`, `oat_invocation_model`, `oat_invocation_reasoning_effort`, and `oat_invocation_source` values. Copy them verbatim into artifact frontmatter. They describe OAT's configured invocation, not model self-identification.
59
60
  - **model_axis**: Optional model dispatch state selected by the orchestrator (`selected:<value>`, `inherited`, `not-applicable`, or `host-auto`)
60
61
  - **effort_axis**: Optional effort dispatch state selected by the orchestrator (`selected:<value>`, `provider-default`, `inherited`, `not-applicable`, or `host-auto`)
@@ -357,6 +358,12 @@ oat_review_scope: { scope }
357
358
  oat_review_type: { code|artifact|analysis }
358
359
  oat_review_invocation: { manual|auto|gate }
359
360
  oat_project: { project-path }
361
+ # Code-review only: required full 40-character SHA.
362
+ oat_review_head_sha: { authoritative range head commit SHA }
363
+ # Narrowed code-review only: copy the complete resolved provenance chain.
364
+ oat_review_range: { prior reviewed head }..{ authoritative range head }
365
+ oat_prior_review_artifact: { prior artifact path }
366
+ oat_prior_review_head_sha: { prior artifact's full reviewed head commit SHA }
360
367
  # Gate-only: copy the exact prompt-provided fields below.
361
368
  oat_gate_run_id: { gate run id }
362
369
  oat_gate_target: { configured target id }
@@ -458,6 +465,10 @@ Run the `oat-project-review-receive` skill to convert findings into plan tasks.
458
465
 
459
466
  Gate parsing contract: artifact-mode reviews, including reviews spawned by `oat gate review`, MUST include either the complete `Findings: {N} critical, {N} important, {N} medium, {N} minor` count line or the standard `## Findings` sections shown above with every severity subsection present.
460
467
 
468
+ For every artifact-mode code review, `oat_review_head_sha` is required and must be the full 40-character commit SHA at the head of the authoritative review range. Resolve it with `git rev-parse <authoritative-range-head>^{commit}`. An abbreviated SHA, symbolic ref, or range string is invalid. When the review narrowed, `oat_review_range`, `oat_prior_review_artifact`, and `oat_prior_review_head_sha` are also required; the prior head must likewise be a full 40-character SHA. These code-review fields are independent of the gate-only block and do not apply to artifact, analysis, or structured-output reviews.
469
+
470
+ For a narrowed review, do not restate requirements-coverage claims that this pass did not itself verify. Reference the prior artifact's coverage or mark inherited coverage rows as inherited so the union of passes remains auditable.
471
+
461
472
  For gate-originated artifacts, all six gate-only fields are required when the prompt supplies gate context. Copy the values exactly. Do not parse the provider command, infer values from the target id, or replace configured values with observed/self-reported identity. Any optional self-report belongs in review prose and is non-authoritative; the gate validates the copied frontmatter against its immutable configured invocation record before applying severity thresholds.
462
473
 
463
474
 
@@ -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
 
@@ -540,7 +571,7 @@ Workflow preference keys live under the `workflow.*` namespace:
540
571
  - `workflow.postImplementSequence` — legacy `wait`, `summary`, `pr`, or `docs-pr`, or `{ "preApproval": [...], "postApproval": [...] }`. Legacy values remain strings; structured arrays contain ordered, globally unique `summary`, `document`, and `pr` steps. Pre-approval steps run after final review and before final HiLL approval; post-approval steps run only after that approval. Plain retrieval keeps legacy strings and prints structured values as compact JSON; `--json` returns the raw value.
541
572
  - `workflow.reviewExecutionModel` — `subagent`, `inline`, or `fresh-session`. Default final-review execution model in `oat-project-implement`. `subagent` and `inline` run automatically. `fresh-session` is a soft preference: the skill prints guidance to run the review in another session but still offers escape hatches to `subagent` or `inline` if you change your mind. When unset, the skill prompts.
542
573
  - `workflow.autoReviewAtHillCheckpoints` — boolean. Automatically run the extra lifecycle review when a HiLL checkpoint is reached. This does not control Tier 1 per-phase `oat-reviewer` gates, which run after each phase in Tier 1 regardless of this setting. When unset, the skill prompts.
543
- - `workflow.autoNarrowReReviewScope` — boolean. Auto-narrow re-review scope to fix-task commits only in `oat-project-review-provide`. When unset, the skill prompts.
574
+ - `workflow.autoNarrowReReviewScope` — boolean, default `true`. Re-reviews automatically use the guarded range after the prior matching review's recorded head. Unset and `true` enable narrowing without a prompt; set `false` to opt out and use the nominal full scope.
544
575
  - `workflow.autoArtifactReview.plan` — boolean, default `true`. Automatically run the bounded artifact-review loop for generated `plan.md` files before implementation handoff. Set to `false` only when you intentionally want to skip the plan artifact review.
545
576
  - `workflow.autoArtifactReview.analysis` — boolean, default `true`. Automatically run the bounded accuracy-review loop for generated docs and agent-instructions analysis artifacts before the matching apply workflow consumes them.
546
577
  - `workflow.projectLog` — `auto`, `true`, or `false`; default `auto`. `auto` creates the append-only `project-log.md` on the first lifecycle append, `true` also enables scaffold-time creation, and `false` skips appends when no log exists. An existing artifact remains enabled regardless of the current setting.
@@ -617,7 +648,6 @@ oat config set workflow.createPrOnComplete true --user
617
648
  oat config set workflow.postImplementSequence pr --user
618
649
  oat config set workflow.reviewExecutionModel subagent --user
619
650
  oat config set workflow.autoReviewAtHillCheckpoints true --user
620
- oat config set workflow.autoNarrowReReviewScope true --user
621
651
  oat config set workflow.designMode selective --user
622
652
  oat config set workflow.dispatchCeiling.preset balanced --user
623
653
  oat config adopt dispatch-matrix --user
@@ -668,11 +698,10 @@ Other preferences **depend on per-repo configuration** to be safe. These should
668
698
  **Recommended split for most users:**
669
699
 
670
700
  ```bash
671
- # Personal defaults (apply everywhere)
701
+ # Personal preferences that differ from built-in defaults (apply everywhere)
672
702
  oat config set workflow.hillCheckpointDefault final --user
673
703
  oat config set workflow.reviewExecutionModel subagent --user
674
704
  oat config set workflow.autoReviewAtHillCheckpoints true --user
675
- oat config set workflow.autoNarrowReReviewScope true --user
676
705
 
677
706
  # Per-repo team decisions (set in each repo where they apply)
678
707
  oat config set workflow.archiveOnComplete true --shared
@@ -99,7 +99,7 @@ The `workflow.*` namespace holds user-facing workflow preferences that let you a
99
99
  - `workflow.postImplementSequence` (legacy `wait` | `summary` | `pr` | `docs-pr`, or structured `{preApproval, postApproval}` arrays) — approval-aware post-implementation chaining
100
100
  - `workflow.reviewExecutionModel` (`subagent` | `inline` | `fresh-session`) — default final-review execution model
101
101
  - `workflow.autoReviewAtHillCheckpoints` (`boolean`) — auto-run the extra lifecycle review at HiLL checkpoints
102
- - `workflow.autoNarrowReReviewScope` (`boolean`) — auto-narrow re-review scope to fix-task commits
102
+ - `workflow.autoNarrowReReviewScope` (`boolean`, default `true`) — automatically narrow re-reviews to the guarded range after the prior matching review's recorded head; set `false` to use the nominal full scope
103
103
  - `workflow.autoArtifactReview.plan` (`boolean`, default `true`) — auto-run the bounded `plan.md` artifact-review loop before implementation handoff
104
104
  - `workflow.autoArtifactReview.analysis` (`boolean`, default `true`) — auto-run the bounded accuracy-review loop for generated analysis artifacts before apply workflows consume them
105
105
  - `workflow.gateTimeouts.code` / `workflow.gateTimeouts.artifact` (integer milliseconds from 1,000–14,400,000) — review-type budget defaults below CLI and target overrides
@@ -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:
@@ -188,21 +188,30 @@ Only an explicit `false` skips a loop. The retry bound comes from `oat_orchestra
188
188
 
189
189
  ## Re-review scope narrowing
190
190
 
191
- When re-reviewing after fix tasks have been applied, `oat-project-review-provide` detects completed `(review)` fix tasks and offers to narrow the re-review scope to just the fix-task commits. This avoids re-examining already-approved code.
191
+ Re-reviews narrow by default to the commits after the prior matching review's recorded head. Set `workflow.autoNarrowReReviewScope` to `false` to opt out and use the nominal full scope. An unset value and an explicit `true` both enable narrowing; the re-review path does not prompt for this decision.
192
192
 
193
- The behavior can be set as a default via `workflow.autoNarrowReReviewScope`:
193
+ Initial reviews have no prior reviewed head and therefore use the nominal full scope. A follow-up review narrows only from a completed review in the same lineage:
194
194
 
195
- - `true` automatically narrow to fix commits, no prompt
196
- - `false` always use the full scope, no prompt
197
- - unset (default) prompt the user on each re-review
195
+ - Lifecycle reviews (`manual` and `auto`) can build only on prior lifecycle reviews for the same project and exact scope.
196
+ - A configured gate can build only on its own prior run for the same exact gate target and scope. It never inherits a lifecycle review or another gate's coverage.
197
+ - Project remote and ad-hoc remote reviews use their own GitHub review-marker lineages. No rail borrows another rail's reviewed head merely because the commit exists.
198
198
 
199
- Typically set at user scope since it's a personal workflow preference:
199
+ Each rail owns its provenance:
200
200
 
201
- ```bash
202
- oat config set workflow.autoNarrowReReviewScope true --user
203
- ```
201
+ - The local project rail checks the matching review artifact and the lineage-qualified tracked Reviews row. The artifact is primary while present; the row preserves the reviewed head after receive, archival, cleanup, or a worktree hand-off. If both sources exist, they must agree.
202
+ - The project remote rail reads same-project, same-scope, same-lineage GitHub review marker blocks.
203
+ - The ad-hoc remote rail reads ad-hoc GitHub review marker blocks and has no project-plan fallback.
204
+ - A configured gate reads its target-qualified gate-owned state and artifacts.
205
+
206
+ A candidate reviewed head must be a full 40-character hexadecimal commit SHA. OAT verifies that the commit exists and is an ancestor of the current review head before accepting the exact `<prior-reviewed-head>..<current-head>` range. An explicit `base_sha=<sha>` or `<sha1>..<sha2>` input overrides automatic narrowing. On the project remote rail, `--narrow` forces narrowing even when the configured preference is `false`, while `--no-narrow` forces the nominal full scope. Nominal scope tokens such as `pNN`, `pNN-tNN`, `pNN-pMM`, and `final` still participate in automatic narrowing; they identify the review subject rather than overriding its range.
207
+
208
+ Automatic narrowing fails open to the nominal full scope and reports why when there is no matching prior review, a legacy artifact or Reviews row has no usable lineage, a reviewed head is missing or invalid, local provenance sources disagree, the commit does not exist, ancestry fails, or remote prior-review discovery is unavailable. A forced remote `--narrow` request instead treats discovery or guard failure as an error. These guards intentionally make narrowing opportunistic: rebases, integration merges, force pushes, shallow history, and worktree consolidation can invalidate the prior commit relationship and cause a full-scope review.
209
+
210
+ Every re-review reports one resolution line naming the selected range, the reason narrowing applied or fell back, and an `empty`, `bookkeeping-only`, or `substantive` classification. Explicit range overrides are classified too. `empty` means the resolved diff has no changed paths. Classification is informational only; every classification still dispatches the review over the complete resolved range.
211
+
212
+ A narrowed artifact names the prior artifact and reviewed head it builds on. It must not restate requirements-coverage claims that the narrowed pass did not verify; it references the prior artifact's coverage or marks inherited rows as inherited so the union of passes remains auditable.
204
213
 
205
- The preference only applies when there are completed fix tasks to narrow to. Initial reviews (before any fix tasks exist) always use the full scope regardless of the preference. See [Workflow preferences in the Configuration guide](../../cli-utilities/configuration.md#workflow-preferences-workflow) for the full list of preference keys.
214
+ See [Workflow preferences in the Configuration guide](../../cli-utilities/configuration.md#workflow-preferences-workflow) for config scopes and the full list of preference keys.
206
215
 
207
216
  ## Phase and final review
208
217
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.2.24",
3
- "docs-config": "0.2.24",
4
- "docs-theme": "0.2.24",
5
- "docs-transforms": "0.2.24"
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
  }
@@ -187,7 +187,7 @@ remains.
187
187
  | REVIEWPROVIDE-02 | `oat-project-review-provide` | Missing type or scope | Infer then ask for confirmation | Use caller-provided scope or deterministic project-state inference; ambiguity stops | `auto-resolve` / `boundary:product-judgment` | Review Scope metadata |
188
188
  | REVIEWPROVIDE-03 | `oat-project-review-provide` | Detached branch | Ask which branch to review | Resolve only from authoritative worktree metadata; otherwise stop | `boundary:repository-policy-approval` | Branch-resolution diagnostic |
189
189
  | REVIEWPROVIDE-04 | `oat-project-review-provide` | Different branch without worktree | Switch, inline-only, or cancel | Do not switch branches or discard context autonomously; stop for a correct checkout/worktree | `boundary:repository-policy-approval` | Branch/worktree diagnostic |
190
- | REVIEWPROVIDE-05 | `oat-project-review-provide` | Re-review narrowing | Narrow to fixes or review full scope | Use configured preference; when unset, narrow to completed fix commits | `auto-resolve` | Review Scope metadata |
190
+ | REVIEWPROVIDE-05 | `oat-project-review-provide` | Re-review narrowing | Narrow automatically or use full scope | Use configured preference without prompting: unset or `true` narrows from a guarded prior same-lineage reviewed head, `false` uses full scope; fail open to full scope when provenance or Git guards fail | `auto-resolve` | Review Scope metadata |
191
191
  | REVIEWPROVIDE-06 | `oat-project-review-provide` | Commit-range fallback | Supply a range or accept merge-base | Use a verified merge-base-to-HEAD range when it covers the declared scope; otherwise stop | `auto-resolve` / `boundary:product-judgment` | Review Scope metadata |
192
192
  | REVIEWPROVIDE-07 | `oat-project-review-provide` | Reviewer delegation authorization | Authorize `oat-reviewer` | Approve once for the exact bounded review scope | `auto-resolve` | Dispatch authorization and record |
193
193
  | REVIEWPROVIDE-08 | `oat-project-review-provide` | Fresh-session or inline fallback | Choose execution route | Use the pre-launch-selected target-preserving route; a blocking review with no adequate route stops | `auto-resolve` / `boundary:missing-credentials` | Dispatch record |
@@ -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` |
@@ -245,7 +245,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
245
245
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
246
246
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
247
247
  | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `ffcdc9d576c0 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `9497d9f94eed -> COMPLETE-01`; `7b59c728d3fb -> COMPLETE-01`; `48e10a9636fe -> COMPLETE-01`; `c0dad37fc166 -> COMPLETE-01`; `aa9a36243ec1 -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG` |
248
- | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `fab62c510bd0 -> REVIEWPROVIDE-05`; `a9f30853c867 -> REVIEWPROVIDE-05`; `0929c916fc20 -> REVIEWPROVIDE-05`; `f9a37c63afab -> REVIEWPROVIDE-05`; `687bb9368f92 -> REVIEWPROVIDE-05`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `fcb9de611ff3 -> NG`; `d2a838dfb18d -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
248
+ | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `fcb9de611ff3 -> NG`; `d2a838dfb18d -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
249
249
  | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `df49c8c6f192 -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `c8ab5dd90075 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `3ad3aadb8c60 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `3f758313fedb -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `aba178a21441 -> REVIEWRECEIVE-04`; `a37e601cd731 -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `90001dadf75f -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
250
250
  | `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
251
251
  | `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
@@ -297,7 +297,7 @@ inventory`). The file-and-line mappings below were captured against that commit.
297
297
  | `oat-project-summary/SKILL.md` | `4,7,30 -> NG`; `86 -> SUMMARY-01`; `201,203,209-210,249,257,297 -> NG` |
298
298
  | `oat-project-pr-final/SKILL.md` | `4,7,26,43 -> NG`; `104 -> PRFINAL-01` |
299
299
  | `oat-project-complete/SKILL.md` | `7,16 -> NG`; `57,61,63,80,89,92,95,103,105,114,124 -> COMPLETE-01`; `140 -> NG`; `205,214 -> COMPLETE-02`; `219,223 -> COMPLETE-03`; `283,468 -> NG` |
300
- | `oat-project-review-provide/SKILL.md` | `4,7,28,34,44,93 -> NG`; `166 -> REVIEWPROVIDE-02`; `236,239-240,261 -> REVIEWPROVIDE-04`; `308,314-316,318 -> REVIEWPROVIDE-05`; `370,373 -> REVIEWPROVIDE-06`; `621 -> REVIEWPROVIDE-07`; `632,664 -> REVIEWPROVIDE-08`; `645,647,751,770-772,778 -> NG`; `869 -> REVIEWPROVIDE-09`; `911,927 -> NG` |
300
+ | `oat-project-review-provide/SKILL.md` | `4,7,28,34,44,93 -> NG`; `166 -> REVIEWPROVIDE-02`; `236,239-240,261 -> REVIEWPROVIDE-04`; `308,314-316,318 -> REVIEWPROVIDE-05`; `370,373 -> REVIEWPROVIDE-06`; `621 -> REVIEWPROVIDE-07`; `632,664 -> REVIEWPROVIDE-08`; `645,647,751,770-772,778 -> NG`; `869 -> REVIEWPROVIDE-09`; `915,931 -> NG` |
301
301
  | `oat-project-review-receive/SKILL.md` | `4,7,26,40,71,128,178,211,215,252,259 -> NG`; `267 -> REVIEWRECEIVE-01`; `273-274,278 -> NG`; `482 -> REVIEWRECEIVE-08`; `517 -> REVIEWRECEIVE-02`; `548 -> REVIEWRECEIVE-04`; `590 -> REVIEWRECEIVE-05`; `614 -> REVIEWRECEIVE-06`; `647 -> REVIEWRECEIVE-07`; `721,724 -> NG` |
302
302
  | `oat-dispatch-subagents/SKILL.md` | `94,98 -> DISPATCH-01`; `110 -> PDISPATCH-01`; `117,123 -> DISPATCH-02`; `126 -> PDISPATCH-01` |
303
303
  | `oat-dispatch-subagents/references/provider-cursor.md` | `40,49 -> NG` |