@open-agent-toolkit/cli 0.1.72 → 0.1.74

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 (134) hide show
  1. package/README.md +1 -0
  2. package/assets/config/dispatch-matrix-recommendation.json +13 -17
  3. package/assets/docs/cli-utilities/configuration.md +42 -60
  4. package/assets/docs/cli-utilities/index.md +1 -0
  5. package/assets/docs/cli-utilities/project-log.md +183 -0
  6. package/assets/docs/cli-utilities/workflow-gates.md +38 -2
  7. package/assets/docs/provider-sync/providers.md +15 -17
  8. package/assets/docs/reference/cli-reference.md +1 -0
  9. package/assets/docs/workflows/projects/artifacts.md +1 -1
  10. package/assets/docs/workflows/projects/dispatch-ceiling.md +29 -33
  11. package/assets/docs/workflows/projects/implementation-execution.md +7 -4
  12. package/assets/docs/workflows/projects/lifecycle.md +4 -3
  13. package/assets/public-package-versions.json +4 -4
  14. package/assets/skills/oat-dispatch-subagents/SKILL.md +1 -1
  15. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +27 -15
  16. package/assets/skills/oat-project-autonomous/SKILL.md +1 -1
  17. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -3
  18. package/assets/skills/oat-project-complete/SKILL.md +60 -1
  19. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -3
  20. package/assets/skills/oat-project-implement/SKILL.md +18 -2
  21. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +17 -15
  22. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +15 -9
  23. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -3
  24. package/assets/skills/oat-project-implement/references/phase-execution.md +11 -5
  25. package/assets/skills/oat-project-import-plan/SKILL.md +30 -8
  26. package/assets/skills/oat-project-plan/SKILL.md +30 -8
  27. package/assets/skills/oat-project-plan-writing/SKILL.md +12 -9
  28. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -3
  29. package/assets/skills/oat-project-quick-start/SKILL.md +30 -8
  30. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -3
  31. package/assets/skills/oat-project-review-provide/SKILL.md +19 -11
  32. package/assets/skills/oat-project-review-provide-remote/SKILL.md +27 -4
  33. package/assets/skills/oat-project-summary/SKILL.md +122 -18
  34. package/assets/templates/project-log.md +47 -0
  35. package/dist/commands/config/index.d.ts.map +1 -1
  36. package/dist/commands/config/index.js +41 -0
  37. package/dist/commands/doctor/index.d.ts +2 -1
  38. package/dist/commands/doctor/index.d.ts.map +1 -1
  39. package/dist/commands/doctor/index.js +37 -1
  40. package/dist/commands/gate/index.d.ts +3 -1
  41. package/dist/commands/gate/index.d.ts.map +1 -1
  42. package/dist/commands/gate/index.js +134 -7
  43. package/dist/commands/init/index.d.ts +1 -1
  44. package/dist/commands/init/index.d.ts.map +1 -1
  45. package/dist/commands/init/index.js +40 -8
  46. package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
  47. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  48. package/dist/commands/init/tools/shared/skill-manifest.js +1 -0
  49. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  50. package/dist/commands/project/dispatch-ceiling/index.js +17 -9
  51. package/dist/commands/project/index.d.ts.map +1 -1
  52. package/dist/commands/project/index.js +2 -0
  53. package/dist/commands/project/log/append.d.ts +41 -0
  54. package/dist/commands/project/log/append.d.ts.map +1 -0
  55. package/dist/commands/project/log/append.js +241 -0
  56. package/dist/commands/project/log/check.d.ts +66 -0
  57. package/dist/commands/project/log/check.d.ts.map +1 -0
  58. package/dist/commands/project/log/check.js +194 -0
  59. package/dist/commands/project/log/grammar.d.ts +28 -0
  60. package/dist/commands/project/log/grammar.d.ts.map +1 -0
  61. package/dist/commands/project/log/grammar.js +31 -0
  62. package/dist/commands/project/log/index.d.ts +9 -0
  63. package/dist/commands/project/log/index.d.ts.map +1 -0
  64. package/dist/commands/project/log/index.js +13 -0
  65. package/dist/commands/project/log/rollup.d.ts +40 -0
  66. package/dist/commands/project/log/rollup.d.ts.map +1 -0
  67. package/dist/commands/project/log/rollup.js +203 -0
  68. package/dist/commands/project/log/synthesize.d.ts +23 -0
  69. package/dist/commands/project/log/synthesize.d.ts.map +1 -0
  70. package/dist/commands/project/log/synthesize.js +112 -0
  71. package/dist/commands/project/new/index.d.ts +1 -0
  72. package/dist/commands/project/new/index.d.ts.map +1 -1
  73. package/dist/commands/project/new/index.js +7 -0
  74. package/dist/commands/project/new/scaffold.d.ts +1 -0
  75. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  76. package/dist/commands/project/new/scaffold.js +24 -0
  77. package/dist/commands/shared/codex-strays.d.ts +9 -0
  78. package/dist/commands/shared/codex-strays.d.ts.map +1 -1
  79. package/dist/commands/shared/codex-strays.js +4 -0
  80. package/dist/commands/status/index.d.ts +7 -1
  81. package/dist/commands/status/index.d.ts.map +1 -1
  82. package/dist/commands/status/index.js +53 -17
  83. package/dist/commands/sync/apply.d.ts.map +1 -1
  84. package/dist/commands/sync/apply.js +50 -24
  85. package/dist/commands/sync/dry-run.d.ts.map +1 -1
  86. package/dist/commands/sync/dry-run.js +31 -18
  87. package/dist/commands/sync/index.d.ts.map +1 -1
  88. package/dist/commands/sync/index.js +34 -25
  89. package/dist/commands/sync/sync.types.d.ts +26 -11
  90. package/dist/commands/sync/sync.types.d.ts.map +1 -1
  91. package/dist/commands/sync/sync.utils.d.ts.map +1 -1
  92. package/dist/commands/sync/sync.utils.js +3 -2
  93. package/dist/config/oat-config.d.ts +3 -0
  94. package/dist/config/oat-config.d.ts.map +1 -1
  95. package/dist/config/oat-config.js +7 -0
  96. package/dist/config/resolve.d.ts.map +1 -1
  97. package/dist/config/resolve.js +2 -0
  98. package/dist/engine/index.d.ts +1 -1
  99. package/dist/engine/index.d.ts.map +1 -1
  100. package/dist/engine/index.js +1 -1
  101. package/dist/engine/scanner.d.ts +3 -1
  102. package/dist/engine/scanner.d.ts.map +1 -1
  103. package/dist/engine/scanner.js +4 -2
  104. package/dist/providers/ceiling/registry.d.ts +2 -0
  105. package/dist/providers/ceiling/registry.d.ts.map +1 -1
  106. package/dist/providers/ceiling/registry.js +20 -4
  107. package/dist/providers/codex/codec/sync-extension.d.ts +11 -10
  108. package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
  109. package/dist/providers/codex/codec/sync-extension.js +42 -14
  110. package/dist/providers/cursor/codec/catalog.d.ts +18 -0
  111. package/dist/providers/cursor/codec/catalog.d.ts.map +1 -0
  112. package/dist/providers/cursor/codec/catalog.js +39 -0
  113. package/dist/providers/cursor/codec/materialize.d.ts +24 -0
  114. package/dist/providers/cursor/codec/materialize.d.ts.map +1 -0
  115. package/dist/providers/cursor/codec/materialize.js +166 -0
  116. package/dist/providers/cursor/codec/shared.d.ts +14 -0
  117. package/dist/providers/cursor/codec/shared.d.ts.map +1 -0
  118. package/dist/providers/cursor/codec/shared.js +76 -0
  119. package/dist/providers/cursor/codec/sync-extension.d.ts +37 -0
  120. package/dist/providers/cursor/codec/sync-extension.d.ts.map +1 -0
  121. package/dist/providers/cursor/codec/sync-extension.js +393 -0
  122. package/dist/providers/cursor/index.d.ts +3 -0
  123. package/dist/providers/cursor/index.d.ts.map +1 -1
  124. package/dist/providers/cursor/index.js +3 -0
  125. package/dist/providers/identity/availability.d.ts +7 -0
  126. package/dist/providers/identity/availability.d.ts.map +1 -1
  127. package/dist/providers/identity/availability.js +23 -0
  128. package/dist/providers/shared/index.d.ts +2 -0
  129. package/dist/providers/shared/index.d.ts.map +1 -1
  130. package/dist/providers/shared/index.js +1 -0
  131. package/dist/providers/shared/materialization-extension.d.ts +44 -0
  132. package/dist/providers/shared/materialization-extension.d.ts.map +1 -0
  133. package/dist/providers/shared/materialization-extension.js +26 -0
  134. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan
3
- version: 1.4.1
3
+ version: 1.4.2
4
4
  description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
5
5
  oat_gateable: true
6
6
  disable-model-invocation: true
@@ -492,9 +492,12 @@ Apply the shared loop exactly:
492
492
  - For that exception only, apply the shared concrete target contract. A Codex
493
493
  materialized variant must first be launched as the exact native `agent_type`;
494
494
  only a recorded actual pre-start role-selection rejection permits a fresh
495
- child pinned to the resolved model and effort. Claude and Cursor use the
496
- exact resolver-returned `providers.<provider>.dispatchArgs.model` value;
497
- Cursor strings remain opaque.
495
+ child pinned to the resolved model and effort. Claude uses the exact
496
+ resolver-returned `providers.claude.dispatchArgs.model` value. Cursor
497
+ launches the exact resolver-returned
498
+ `providers.cursor.dispatchArgs.variant` native reviewer variant first;
499
+ Cursor model strings remain opaque inside the mapping and resolver. Only a
500
+ pre-start native role-selection rejection permits another route.
498
501
  - After acceptance, poll, nudge, or continue only through the existing reviewer
499
502
  handle. A terminal timeout blocks or escalates without another launch.
500
503
  Replacement eligibility is limited to explicit pre-start rejection.
@@ -526,21 +529,40 @@ the last check before the completion boundary:
526
529
 
527
530
  If the resolved command invokes `oat gate review`, the configured review command must already include `--project "$PROJECT_PATH"` and must not include `--target <id>`. A valid reusable shape is `oat gate review --project "$PROJECT_PATH" ...`. If the declaration is missing, stop and migrate the stored gate command; do not inject or append arguments at execution time.
528
531
 
529
- 3. Execute the resolved command exactly as configured. Capture stdout, stderr, the exit code, and the structured JSON result. A zero exit code means the review passed its threshold, but it does not by itself authorize artifact receipt or complete the handoff.
532
+ 3. Resolve the current planning parent's model identity from session context.
533
+ When that identity is non-empty and the resolved configured command invokes
534
+ `oat gate review`, export
535
+ `OAT_GATE_PRODUCER_IDENTITY=<model>:declared` for that command invocation.
536
+ For a non-review configured command or unavailable current identity, ensure
537
+ `OAT_GATE_PRODUCER_IDENTITY` is unset. Do not persist the value or alter the
538
+ configured command.
530
539
 
531
- 4. Review-artifact handoff:
540
+ 4. Execute the resolved command exactly as configured and unchanged. Capture
541
+ stdout, stderr, the exit code, and the structured JSON result. A zero exit
542
+ code means the review passed its threshold, but it does not by itself
543
+ authorize artifact receipt or complete the handoff.
544
+
545
+ 5. Review-artifact handoff:
532
546
  - Parse the structured gate result. An exit code or artifact path alone never authorizes `oat-project-review-receive`.
533
547
  - Invoke receive only when all three conditions hold: `status` is `ok` or `blocked`, the envelope explicitly sets `receiveEligible: true`, and a non-null `handoff` confirms the artifact was corroborated.
534
548
  - `receiveEligible: false` is a hard stop even when `artifactPath` is present. Never receive `targeting_correlation_failed`; correct the project/run routing and run a new gate.
535
549
  - Keep `artifact_validation_failed` outside receive until the artifact is corrected and the gate successfully revalidates it. Treat `review_failed`, unknown statuses, null handoffs, and contradictory eligibility fields as operational failures.
536
550
  - `blocked` exits nonzero but is receive-eligible; `ok` exits zero and still requires durable receive disposition. Route by structured status and eligibility, not by exit code.
537
551
 
538
- 5. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
552
+ 6. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
539
553
  - `block`: read gate feedback, remediate, and re-run the gate up to `maxAttempts` attempts (default `2`). If attempts are exhausted, escalate to the human with accumulated feedback and append that feedback to `implementation.md`. Treat a launch failure, missing CLI, or no eligible runtime as escalation-biased and do not spend it as a remediation attempt.
540
554
  - `prompt`: surface the gate failure and ask the human how to proceed.
541
555
  - `warn`: record the gate failure and continue.
542
556
 
543
- 6. Runtime selection note (V1): the step runs the gate `command` as-is and reads no OAT runtime env var. By default, `oat gate review` and `oat gate cross-provider-exec` resolve the current host from built-in `hostDetectionCommand`s and avoid the same runtime when no exact target is supplied. Reusable lifecycle skill-gate commands must not include `--target <id>` so independent review stays provider-neutral. Use explicit targets only for manual/debug commands or deliberate local/user-specific overrides; do not hardcode provider/model targets in bundled skill guidance or shared lifecycle gate examples.
557
+ 7. Runtime selection note: the review-only declaration carries producer
558
+ identity, not reviewer runtime identity. By default, `oat gate review` and
559
+ `oat gate cross-provider-exec` resolve the current host from built-in
560
+ `hostDetectionCommand`s and avoid the same runtime when no exact target is
561
+ supplied. Reusable lifecycle skill-gate commands must not include
562
+ `--target <id>` so independent review stays provider-neutral. Use explicit
563
+ targets only for manual/debug commands or deliberate local/user-specific
564
+ overrides; do not hardcode provider/model targets in bundled skill guidance
565
+ or shared lifecycle gate examples.
544
566
 
545
567
  A gate that ends in `block` after attempts are exhausted, or at an unresolved
546
568
  `prompt` boundary, means the completion steps below MUST NOT run; the phase
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan-writing
3
- version: 1.2.15
3
+ version: 1.2.16
4
4
  description: Use when authoring or mutating plan.md in any OAT workflow. Defines canonical format invariants — stable task IDs, required sections, review table rules, and resume guardrails.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -161,13 +161,16 @@ over generic tier availability.
161
161
  verified-equivalent inline route or block the review.
162
162
  - Claude: require a non-empty `providers.claude.dispatchArgs.model` and put
163
163
  that exact value in the actual provider invocation as its `model` argument.
164
- - Cursor: treat `providers.cursor.dispatchArgs.model` as opaque and put that
165
- exact, unnormalized string in the actual provider invocation as its `model`
166
- argument.
164
+ - Cursor: require a non-empty `providers.cursor.dispatchArgs.variant` and
165
+ launch that exact resolver-returned native reviewer variant as the native
166
+ agent type first. Keep Cursor model strings opaque inside the resolver and
167
+ materialized mapping; skills never normalize them. Only a recorded pre-start
168
+ native role-selection rejection before any child starts permits another
169
+ target-preserving route.
167
170
 
168
- If the host cannot apply, pass, or bind the required exception role/model
169
- controls, fail closed or block unless verified equivalent inline controls are
170
- already established.
171
+ If the host cannot apply, pass, or bind the required exception role, variant,
172
+ or model controls, fail closed or block unless verified equivalent inline
173
+ controls are already established.
171
174
 
172
175
  Build the actual host invocation payload before declaring the exception target
173
176
  enforced. If the accepted reviewer does not conclude, continue, poll, or nudge
@@ -340,7 +343,7 @@ Use this loop after an artifact has been written and before the calling skill ha
340
343
 
341
344
  3. **Dispatch `oat-reviewer` in structured mode**
342
345
  - Default: after the parent-at-or-above-ceiling check succeeds, omit the child model deliberately and record `selection_reason: inherit`. Tier 1 uses the configured `oat-reviewer` subagent; Tier 2 runs the same structured prompt in the planning parent.
343
- - Exception: when the planning parent is unknown or below the ceiling, use the resolver's concrete ceiling target. Codex uses its exact registered reviewer or a fresh child pinned to the same model, effort, and canonical instructions after pre-start role rejection. Claude or Cursor requires the exact `providers.<provider>.dispatchArgs.model` value on the actual invocation; Cursor values remain opaque. If the host cannot preserve that target, block unless inline execution has verified equivalent controls.
346
+ - Exception: when the planning parent is unknown or below the ceiling, use the resolver's concrete ceiling target. Codex uses its exact registered reviewer or a fresh child pinned to the same model, effort, and canonical instructions after pre-start role rejection. Claude requires the exact `providers.claude.dispatchArgs.model` value on the actual invocation. Cursor requires the exact `providers.cursor.dispatchArgs.variant` native reviewer variant first; skills keep its mapped model opaque, and only a pre-start native role-selection rejection permits another route. If the host cannot preserve that target, block unless inline execution has verified equivalent controls.
344
347
  - If an accepted child does not conclude, continue only through its existing handle. A terminal timeout blocks or escalates and cannot launch a replacement child.
345
348
  - Always set `oat_output_mode: structured`; the loop consumes `StructuredFindings` in-memory and the reviewer writes no artifact.
346
349
  - Do not downgrade the selected inheritance/exception policy or checklist when changing execution mechanics.
@@ -352,7 +355,7 @@ Use this loop after an artifact has been written and before the calling skill ha
352
355
  - If a finding cannot be fixed within the artifact boundary, preserve it as residual and surface it before handoff.
353
356
 
354
357
  5. **Rewrite and re-dispatch within the bound**
355
- - After applying fixes, rewrite the artifact and start a new review attempt with the same deliberate inheritance policy or complete exception payload, including any exact Claude or Cursor `dispatchArgs.model` argument.
358
+ - After applying fixes, rewrite the artifact and start a new review attempt with the same deliberate inheritance policy or complete exception payload, including the exact Claude `dispatchArgs.model` argument or Cursor `dispatchArgs.variant`.
356
359
  - Each rewrite/re-dispatch cycle consumes one retry.
357
360
  - Stop when the reviewer returns no findings or when the retry bound is exhausted.
358
361
 
@@ -225,15 +225,15 @@ remains immutable baseline evidence for the original p01-t01 verification.
225
225
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
226
226
  | `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` |
227
227
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `b137f73db20c -> 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` |
228
- | `oat-project-implement/SKILL.md` | `c6732295bc8c -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
229
- | `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `14d89fe39c8c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `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`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
228
+ | `oat-project-implement/SKILL.md` | `853d44621b72 -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
229
+ | `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `6d33ea58da2c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `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`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
230
230
  | `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` |
231
231
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
232
232
  | `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10` |
233
233
  | `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07` |
234
234
  | `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `173a1c48e53c -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
235
235
  | `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
236
- | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `c9b36a381b8e -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `24f1f127f580 -> NG`; `626e6d6f4455 -> NG`; `f58150418ef5 -> NG`; `349f0a976a3a -> NG`; `c26231b8bb48 -> NG`; `ab1d4a57bebb -> NG`; `696bb6045b6a -> NG` |
236
+ | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `696bb6045b6a -> NG`; `bcb503aaefb5 -> NG`; `f3e49b727752 -> NG`; `f583e86359ae -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG` |
237
237
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
238
238
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
239
239
  | `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,6 +248,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
248
248
  | `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
249
249
  | `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
250
250
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
251
+ | `oat-project-complete/SKILL.md` | `b4934a85feee -> NG` |
251
252
 
252
253
  ## Prompt-scan comparison
253
254
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-quick-start
3
- version: 2.3.2
3
+ version: 2.3.3
4
4
  description: Use when a task is small enough for quick mode or rapid iteration is preferred. Scaffolds a lightweight OAT project from discovery directly to a runnable plan, with optional brainstorming and lightweight design.
5
5
  argument-hint: '<project-name> ["project description"]'
6
6
  oat_gateable: true
@@ -649,9 +649,12 @@ Apply the shared loop exactly:
649
649
  - For that exception only, apply the shared concrete target contract. A Codex
650
650
  materialized variant must first be launched as the exact native `agent_type`;
651
651
  only a recorded actual pre-start role-selection rejection permits a fresh
652
- child pinned to the resolved model and effort. Claude and Cursor use the
653
- exact resolver-returned `providers.<provider>.dispatchArgs.model` value;
654
- Cursor strings remain opaque.
652
+ child pinned to the resolved model and effort. Claude uses the exact
653
+ resolver-returned `providers.claude.dispatchArgs.model` value. Cursor
654
+ launches the exact resolver-returned
655
+ `providers.cursor.dispatchArgs.variant` native reviewer variant first;
656
+ Cursor model strings remain opaque inside the mapping and resolver. Only a
657
+ pre-start native role-selection rejection permits another route.
655
658
  - After acceptance, poll, nudge, or continue only through the existing reviewer
656
659
  handle. A terminal timeout blocks or escalates without another launch.
657
660
  Replacement eligibility is limited to explicit pre-start rejection.
@@ -701,21 +704,40 @@ as the last check before plan and project completion:
701
704
 
702
705
  If the resolved command invokes `oat gate review`, the configured review command must already include `--project "$PROJECT_PATH"` and must not include `--target <id>`. A valid reusable shape is `oat gate review --project "$PROJECT_PATH" ...`. If the declaration is missing, stop and migrate the stored gate command; do not inject or append arguments at execution time.
703
706
 
704
- 3. Execute the resolved command exactly as configured. Capture stdout, stderr, the exit code, and the structured JSON result. A zero exit code means the review passed its threshold, but it does not by itself authorize artifact receipt or complete the handoff.
707
+ 3. Resolve the current planning parent's model identity from session context.
708
+ When that identity is non-empty and the resolved configured command invokes
709
+ `oat gate review`, export
710
+ `OAT_GATE_PRODUCER_IDENTITY=<model>:declared` for that command invocation.
711
+ For a non-review configured command or unavailable current identity, ensure
712
+ `OAT_GATE_PRODUCER_IDENTITY` is unset. Do not persist the value or alter the
713
+ configured command.
705
714
 
706
- 4. Review-artifact handoff:
715
+ 4. Execute the resolved command exactly as configured and unchanged. Capture
716
+ stdout, stderr, the exit code, and the structured JSON result. A zero exit
717
+ code means the review passed its threshold, but it does not by itself
718
+ authorize artifact receipt or complete the handoff.
719
+
720
+ 5. Review-artifact handoff:
707
721
  - Parse the structured gate result. An exit code or artifact path alone never authorizes `oat-project-review-receive`.
708
722
  - Invoke receive only when all three conditions hold: `status` is `ok` or `blocked`, the envelope explicitly sets `receiveEligible: true`, and a non-null `handoff` confirms the artifact was corroborated.
709
723
  - `receiveEligible: false` is a hard stop even when `artifactPath` is present. Never receive `targeting_correlation_failed`; correct the project/run routing and run a new gate.
710
724
  - Keep `artifact_validation_failed` outside receive until the artifact is corrected and the gate successfully revalidates it. Treat `review_failed`, unknown statuses, null handoffs, and contradictory eligibility fields as operational failures.
711
725
  - `blocked` exits nonzero but is receive-eligible; `ok` exits zero and still requires durable receive disposition. Route by structured status and eligibility, not by exit code.
712
726
 
713
- 5. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
727
+ 6. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
714
728
  - `block`: read gate feedback, remediate, and re-run the gate up to `maxAttempts` attempts (default `2`). If attempts are exhausted, escalate to the human with accumulated feedback and append that feedback to `implementation.md`. Treat a launch failure, missing CLI, or no eligible runtime as escalation-biased and do not spend it as a remediation attempt.
715
729
  - `prompt`: surface the gate failure and ask the human how to proceed.
716
730
  - `warn`: record the gate failure and continue.
717
731
 
718
- 6. Runtime selection note (V1): the step runs the gate `command` as-is and reads no OAT runtime env var. By default, `oat gate review` and `oat gate cross-provider-exec` resolve the current host from built-in `hostDetectionCommand`s and avoid the same runtime when no exact target is supplied. Reusable lifecycle skill-gate commands must not include `--target <id>` so independent review stays provider-neutral. Use explicit targets only for manual/debug commands or deliberate local/user-specific overrides; do not hardcode provider/model targets in bundled skill guidance or shared lifecycle gate examples.
732
+ 7. Runtime selection note: the review-only declaration carries producer
733
+ identity, not reviewer runtime identity. By default, `oat gate review` and
734
+ `oat gate cross-provider-exec` resolve the current host from built-in
735
+ `hostDetectionCommand`s and avoid the same runtime when no exact target is
736
+ supplied. Reusable lifecycle skill-gate commands must not include
737
+ `--target <id>` so independent review stays provider-neutral. Use explicit
738
+ targets only for manual/debug commands or deliberate local/user-specific
739
+ overrides; do not hardcode provider/model targets in bundled skill guidance
740
+ or shared lifecycle gate examples.
719
741
 
720
742
  A gate that ends in `block` after attempts are exhausted, or at an unresolved
721
743
  `prompt` boundary, means the completion steps below MUST NOT run; the phase
@@ -225,15 +225,15 @@ remains immutable baseline evidence for the original p01-t01 verification.
225
225
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
226
226
  | `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` |
227
227
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `b137f73db20c -> 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` |
228
- | `oat-project-implement/SKILL.md` | `c6732295bc8c -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
229
- | `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `14d89fe39c8c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `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`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
228
+ | `oat-project-implement/SKILL.md` | `853d44621b72 -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
229
+ | `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `6d33ea58da2c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `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`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
230
230
  | `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` |
231
231
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
232
232
  | `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10` |
233
233
  | `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07` |
234
234
  | `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `173a1c48e53c -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
235
235
  | `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
236
- | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `c9b36a381b8e -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `24f1f127f580 -> NG`; `626e6d6f4455 -> NG`; `f58150418ef5 -> NG`; `349f0a976a3a -> NG`; `c26231b8bb48 -> NG`; `ab1d4a57bebb -> NG`; `696bb6045b6a -> NG` |
236
+ | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `696bb6045b6a -> NG`; `bcb503aaefb5 -> NG`; `f3e49b727752 -> NG`; `f583e86359ae -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG` |
237
237
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
238
238
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
239
239
  | `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,6 +248,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
248
248
  | `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
249
249
  | `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
250
250
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
251
+ | `oat-project-complete/SKILL.md` | `b4934a85feee -> NG` |
251
252
 
252
253
  ## Prompt-scan comparison
253
254
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-review-provide
3
- version: 1.3.20
3
+ version: 1.3.21
4
4
  description: Use when the user explicitly asks to review an OAT project — e.g. "review project", "review the project", "run project review", or confirms a previously offered review. Do NOT auto-invoke on completed work alone. Resolves a project review scope and offers before running.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -575,9 +575,12 @@ Build the actual provider invocation before reporting the target as enforced:
575
575
  only a verified-equivalent inline route or block the review.
576
576
  - Claude requires a non-empty `providers.claude.dispatchArgs.model`; the actual
577
577
  provider invocation must include that exact value as its `model` argument.
578
- - Cursor requires a non-empty `providers.cursor.dispatchArgs.model`; the actual
579
- provider invocation must include that exact opaque string as its `model`
580
- argument without normalization.
578
+ - Cursor requires a non-empty `providers.cursor.dispatchArgs.variant`; the
579
+ actual provider invocation must launch that exact resolver-returned native
580
+ reviewer variant as the native agent type first. Keep Cursor model strings
581
+ opaque inside the materialized mapping and resolver. Only a recorded
582
+ pre-start native role-selection rejection of that exact variant before any
583
+ reviewer starts permits another target-preserving route.
581
584
 
582
585
  Managed incomplete resolver results, including a missing or incomplete
583
586
  candidate ladder, fail closed before review. Route interactive repair through
@@ -609,11 +612,12 @@ be parsed, interpreted, or treated as a passing review.
609
612
 
610
613
  Before acceptance, an explicit transport or role-selection rejection may retry
611
614
  with the same exact role and complete invocation payload, including the Claude
612
- or Cursor model argument. After acceptance, poll, nudge, or continue only
613
- through the existing reviewer handle. Terminal timeout, interruption, or
614
- `BLOCKED` blocks or escalates without another launch. If the host cannot apply
615
- a required role or model argument before launch, fail closed or block unless
616
- inline execution has verified equivalent current-host controls.
615
+ model argument or Cursor native variant. After acceptance, poll, nudge, or
616
+ continue only through the existing reviewer handle. Terminal timeout,
617
+ interruption, or `BLOCKED` blocks or escalates without another launch. If the
618
+ host cannot apply a required role, variant, or model argument before launch,
619
+ fail closed or block unless inline execution has verified equivalent
620
+ current-host controls.
617
621
  Workflow correctness must not require provider restart or hot reload.
618
622
  Never use a managed base role because a target is missing or unavailable; a
619
623
  managed base role is forbidden except for
@@ -683,7 +687,11 @@ Before selecting a tier, announce the probe and its result so the user can see w
683
687
  Detection logic:
684
688
 
685
689
  - If the host is Claude Code, use Task-style subagent dispatch with `subagent_type: "oat-reviewer"` and resolve from `.claude/agents/oat-reviewer.md`.
686
- - If the host is Cursor, invoke `oat-reviewer` using Cursor-native explicit invocation (`/oat-reviewer`) or natural mention, and resolve from `.cursor/agents/oat-reviewer.md` (or `.claude/agents/oat-reviewer.md` compatibility path).
690
+ - If the host is Cursor, invoke the exact resolver-selected native reviewer
691
+ variant when a concrete managed target exists. Use base `oat-reviewer` only
692
+ for an explicit inherit/default exception, resolved from
693
+ `.cursor/agents/oat-reviewer.md` (or the `.claude/agents/oat-reviewer.md`
694
+ compatibility path).
687
695
  - If the host is Codex multi-agent, verify Codex requirements first:
688
696
  - `[features] multi_agent = true` is enabled in active Codex config.
689
697
  - For a concrete managed target, `agent_type` must be the exact custom role declared under `[agents.<name>]`; built-in roles and auto-selection are not equivalent fallbacks.
@@ -709,7 +717,7 @@ Then spawn the reviewer:
709
717
 
710
718
  - Use provider-appropriate dispatch:
711
719
  - Claude Code: Task tool with `subagent_type: "oat-reviewer"` (resolves from `.claude/agents/oat-reviewer.md`). For a concrete managed target, the payload must also contain `model: providers.claude.dispatchArgs.model` with the resolver-returned value.
712
- - Cursor: explicit invocation `/oat-reviewer` (or natural mention) with agent resolved from `.cursor/agents/oat-reviewer.md` or `.claude/agents/oat-reviewer.md` compatibility path. For a concrete managed target, the invocation must also contain `model: providers.cursor.dispatchArgs.model` with the exact opaque resolver-returned string.
720
+ - Cursor: for a concrete managed target, invoke `providers.cursor.dispatchArgs.variant` as the exact resolver-selected native reviewer variant. Do not attach a Task-level model argument or normalize the mapped model. Base `oat-reviewer` is allowed only for explicit inherit/default behavior. A pre-start native role-selection rejection is the only replacement boundary.
713
721
  - Codex style: for a concrete managed target, first spawn the exact resolver-returned native `agent_type`; only an explicit pre-start native role-selection rejection permits the explicitly pinned fresh-child route from Step 6.0. Generic auto-selection is permitted only for the documented base-role exceptions.
714
722
  - Pass the Review Scope metadata block from Step 5 as the prompt
715
723
  - Include the pre-computed artifact path for the subagent to write to