@open-agent-toolkit/cli 0.3.18 → 0.3.20

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 (132) hide show
  1. package/README.md +2 -1
  2. package/assets/agents/oat-phase-implementer.md +104 -3
  3. package/assets/agents/oat-reviewer.md +20 -5
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/reference/cli-reference.md +15 -7
  6. package/assets/docs/reference/oat-directory-structure.md +2 -0
  7. package/assets/docs/reference/project-artifacts.md +72 -1
  8. package/assets/docs/reference/project-state-machine.md +55 -6
  9. package/assets/docs/skills/brainstorm.md +3 -1
  10. package/assets/docs/skills/index.md +13 -9
  11. package/assets/docs/workflows/advanced/autonomy.md +12 -2
  12. package/assets/docs/workflows/advanced/dispatch-ceiling.md +2 -2
  13. package/assets/docs/workflows/advanced/workflow-gates.md +25 -7
  14. package/assets/docs/workflows/approvals-and-automation.md +25 -9
  15. package/assets/docs/workflows/choose-workflow.md +24 -8
  16. package/assets/docs/workflows/ideas/index.md +1 -1
  17. package/assets/docs/workflows/ideas/lifecycle.md +3 -2
  18. package/assets/docs/workflows/projects/closeout/closeout-skills.md +83 -5
  19. package/assets/docs/workflows/projects/closeout/pr-flow.md +9 -1
  20. package/assets/docs/workflows/projects/execution/execution-skills.md +27 -2
  21. package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
  22. package/assets/docs/workflows/projects/execution/picking-up-projects.md +20 -1
  23. package/assets/docs/workflows/projects/lifecycle.md +172 -9
  24. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
  25. package/assets/docs/workflows/projects/planning/planning-skills.md +13 -10
  26. package/assets/docs/workflows/projects/planning/starting-projects.md +138 -20
  27. package/assets/docs/workflows/projects/reviews/index.md +36 -2
  28. package/assets/docs/workflows/projects/reviews/review-flavors.md +7 -3
  29. package/assets/public-package-versions.json +4 -4
  30. package/assets/skills/oat-brainstorm/SKILL.md +58 -9
  31. package/assets/skills/oat-brainstorm/references/destinations.md +12 -4
  32. package/assets/skills/oat-docs/SKILL.md +13 -4
  33. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  34. package/assets/skills/oat-project-autonomous/SKILL.md +20 -8
  35. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +156 -122
  36. package/assets/skills/oat-project-brief/SKILL.md +592 -0
  37. package/assets/skills/oat-project-brief/references/brief-contract.md +743 -0
  38. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +412 -0
  39. package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +93 -0
  40. package/assets/skills/oat-project-capture/SKILL.md +2 -2
  41. package/assets/skills/oat-project-complete/SKILL.md +16 -2
  42. package/assets/skills/oat-project-discover/SKILL.md +4 -2
  43. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
  44. package/assets/skills/oat-project-document/SKILL.md +17 -1
  45. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +156 -122
  46. package/assets/skills/oat-project-goal/SKILL.md +697 -0
  47. package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +412 -0
  48. package/assets/skills/oat-project-goal/references/docs/gate-approval-record.md +93 -0
  49. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  50. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +107 -0
  51. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +156 -122
  52. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +13 -0
  53. package/assets/skills/oat-project-implement/references/phase-execution.md +173 -1
  54. package/assets/skills/oat-project-implement/references/plan-and-resume.md +124 -3
  55. package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
  56. package/assets/skills/oat-project-lite/SKILL.md +4 -1
  57. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +156 -122
  58. package/assets/skills/oat-project-new/SKILL.md +5 -1
  59. package/assets/skills/oat-project-next/SKILL.md +71 -14
  60. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +13 -0
  61. package/assets/skills/oat-project-plan/SKILL.md +24 -3
  62. package/assets/skills/oat-project-plan-writing/SKILL.md +8 -4
  63. package/assets/skills/oat-project-pr-final/SKILL.md +65 -3
  64. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +156 -122
  65. package/assets/skills/oat-project-pr-progress/SKILL.md +125 -4
  66. package/assets/skills/oat-project-progress/SKILL.md +63 -8
  67. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +13 -0
  68. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  69. package/assets/skills/oat-project-quick-start/SKILL.md +65 -1
  70. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +156 -122
  71. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +13 -0
  72. package/assets/skills/oat-project-reconcile/SKILL.md +94 -3
  73. package/assets/skills/oat-project-review-provide/SKILL.md +397 -12
  74. package/assets/skills/oat-project-review-receive/SKILL.md +155 -1
  75. package/assets/skills/oat-project-revise/SKILL.md +51 -4
  76. package/assets/skills/oat-project-summary/SKILL.md +150 -2
  77. package/assets/skills/oat-wave-execute/SKILL.md +3 -2
  78. package/assets/templates/implementation-brief.md +165 -0
  79. package/assets/templates/plan-brief.md +140 -0
  80. package/assets/templates/plan.md +1 -1
  81. package/assets/templates/state.md +8 -2
  82. package/dist/commands/project/closeout-check/closeout-invariant.d.ts +119 -3
  83. package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -1
  84. package/dist/commands/project/closeout-check/closeout-invariant.js +454 -2
  85. package/dist/commands/project/closeout-check/index.d.ts +21 -3
  86. package/dist/commands/project/closeout-check/index.d.ts.map +1 -1
  87. package/dist/commands/project/closeout-check/index.js +190 -4
  88. package/dist/commands/project/complete-state/index.d.ts +2 -1
  89. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  90. package/dist/commands/project/complete-state/index.js +7 -1
  91. package/dist/commands/project/delivery/check.d.ts +66 -0
  92. package/dist/commands/project/delivery/check.d.ts.map +1 -0
  93. package/dist/commands/project/delivery/check.js +232 -0
  94. package/dist/commands/project/delivery/evidence.d.ts +171 -0
  95. package/dist/commands/project/delivery/evidence.d.ts.map +1 -0
  96. package/dist/commands/project/delivery/evidence.js +902 -0
  97. package/dist/commands/project/delivery/index.d.ts +7 -0
  98. package/dist/commands/project/delivery/index.d.ts.map +1 -0
  99. package/dist/commands/project/delivery/index.js +13 -0
  100. package/dist/commands/project/delivery/refresh.d.ts +110 -0
  101. package/dist/commands/project/delivery/refresh.d.ts.map +1 -0
  102. package/dist/commands/project/delivery/refresh.js +441 -0
  103. package/dist/commands/project/index.d.ts.map +1 -1
  104. package/dist/commands/project/index.js +2 -0
  105. package/dist/commands/project/log/append.d.ts +6 -0
  106. package/dist/commands/project/log/append.d.ts.map +1 -1
  107. package/dist/commands/project/log/append.js +6 -1
  108. package/dist/commands/project/new/scaffold.d.ts +1 -1
  109. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  110. package/dist/commands/project/new/scaffold.js +81 -7
  111. package/dist/commands/project/promote/promote.d.ts +46 -1
  112. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  113. package/dist/commands/project/promote/promote.js +646 -5
  114. package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
  115. package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
  116. package/dist/commands/project/validate-plan/frontmatter.js +27 -0
  117. package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
  118. package/dist/commands/project/validate-plan/index.js +62 -18
  119. package/dist/commands/project/validate-plan/profiles.d.ts +69 -0
  120. package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
  121. package/dist/commands/project/validate-plan/profiles.js +420 -0
  122. package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
  123. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
  124. package/dist/commands/project/validate-plan/validate-plan.js +5 -82
  125. package/dist/commands/shared/frontmatter.d.ts +1 -1
  126. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  127. package/dist/commands/shared/frontmatter.js +2 -0
  128. package/dist/commands/state/generate.d.ts.map +1 -1
  129. package/dist/commands/state/generate.js +82 -2
  130. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  131. package/dist/commands/tools/shared/pack-manifest.js +4 -0
  132. package/package.json +2 -2
@@ -138,126 +138,150 @@ autonomy flag.
138
138
  may first perform safe, bounded work and stop only if the stated condition
139
139
  remains.
140
140
 
141
- | ID | Skill | Gate | Interactive behavior | Autonomous resolution | Classification | Provenance |
142
- | ---------------- | -------------------------------- | --------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
143
- | NEW-01 | `oat-project-new` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | New-project preflight note |
144
- | NEW-02 | `oat-project-new` | Missing project name | Ask for a slug | Derive a valid slug from the explicit autonomous goal; stop if identity or collision handling is ambiguous | `auto-resolve` / `boundary:product-judgment` | Scaffold output and project path |
145
- | QS-01 | `oat-project-quick-start` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Quick-start preflight note |
146
- | QS-02 | `oat-project-quick-start` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Discovery initial request |
147
- | QS-03 | `oat-project-quick-start` | Discovery questions and approach buy-in | Ask clarifying questions and confirm the chosen direction | Answer from repository evidence, select the supported recommendation, and record assumptions; material product ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` decisions and assumptions |
148
- | QS-04 | `oat-project-quick-start` | Design-depth choice | Choose plan, lightweight design, or spec-driven promotion | Use agent judgment from the documented heuristic and record the rationale | `auto-resolve` | `discovery.md` mode-choice rationale |
149
- | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
150
- | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
151
- | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
152
- | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
153
- | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
154
- | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
155
- | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
156
- | QS-12 | `oat-project-quick-start` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary; an exhausted `block` at `maxAttempts` must dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition; persist the outcome as `oat_quick_start_gate` | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition, `oat_quick_start_gate`, and complexity report path |
157
- | QS-13 | `oat-project-quick-start` | Lifecycle gate posture setup | Keep or disable each configured lifecycle gate | Use the shared non-interactive contract: preserve an explicit map; otherwise leave it absent and every configured gate enabled | `auto-resolve` | Gate posture setup status |
158
- | LITE-01 | `oat-project-lite` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Lite preflight note |
159
- | LITE-02 | `oat-project-lite` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Lite plan summary and project path |
160
- | LITE-03 | `oat-project-lite` | Batched critical interview | Ask one batched round and a conditional clarification | Answer from repository evidence, record careful assumptions, and stop when material product ambiguity cannot be resolved | `auto-resolve` / `boundary:product-judgment` | `plan.md` decisions and assumptions |
161
- | LITE-04 | `oat-project-lite` | Escalation to quick | Continue lite or promote the authored plan | Apply the documented single-sitting and unresolved-design heuristic; promote when triggered, otherwise record the supported lite rationale | `auto-resolve` / `boundary:product-judgment` | Authored plan and promotion result |
162
- | LITE-05 | `oat-project-lite` | Plan approval gate | Approve, revise, or promote | Auto-confirm the recorded requirement set; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Approval record in `plan.md` |
163
- | LITE-06 | `oat-project-lite` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
164
- | LITE-07 | `oat-project-lite` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
165
- | LITE-08 | `oat-project-lite` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and lite disposition |
166
- | LITE-09 | `oat-project-lite` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
167
- | LITE-10 | `oat-project-lite` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
168
- | DISC-01 | `oat-project-discover` | Active-project confirmation or switch | Confirm the active project or choose another | Use only an explicitly supplied or valid active project; otherwise stop without guessing | `boundary:product-judgment` | Resolved project path |
169
- | DISC-02 | `oat-project-discover` | Stale knowledge | Continue or refresh | Refresh through the canonical knowledge workflow when available; otherwise record staleness and continue only when it does not create material ambiguity | `auto-resolve` / `boundary:product-judgment` | Discovery evidence note |
170
- | DISC-03 | `oat-project-discover` | Gray areas and clarifying questions | Select areas and answer questions | Select risk-relevant areas from evidence and record supported answers/assumptions; material ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` Q&A and assumptions |
171
- | DISC-04 | `oat-project-discover` | Solution approach buy-in | Select or redirect the recommended approach | Select the evidence-backed recommendation and record tradeoffs; unsupported product choice stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` chosen direction |
172
- | DISC-05 | `oat-project-discover` | Mid-stream split choice | Split, continue broad discovery, or keep one project | Use the existing non-interactive behavior: record a high/soft split recommendation and stop; below threshold continues | `auto-resolve` / `boundary:product-judgment` | Detected Split Recommendation |
173
- | DISC-06 | `oat-project-discover` | Convergence split confirmation | Proceed as one project or split | Use the existing non-interactive behavior: below proceeds; high/soft records and stops | `auto-resolve` / `boundary:product-judgment` | Final split evaluation |
174
- | DISC-07 | `oat-project-discover` | Discovery HiLL approval | Approve artifact or wait | Run autonomous review/receive; approve only after passing review and no unresolved Critical finding | `auto-resolve` / `boundary:unresolved-critical-findings` | Review artifact, dispatch record, HiLL bookkeeping |
175
- | DISC-08 | `oat-project-discover` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
176
- | DES-01 | `oat-project-design` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
177
- | DES-02 | `oat-project-design` | Incomplete existing spec | Finish it or delete/regenerate | Never delete or overwrite it autonomously; stop for direction | `boundary:destructive-change-risk` | Incomplete-spec diagnostic |
178
- | DES-03 | `oat-project-design` | Design interaction mode | Choose collaborative, selective, or draft | `OAT_NON_INTERACTIVE=1` forces the existing draft-and-review path | `auto-resolve` | Design mode banner |
179
- | DES-04 | `oat-project-design` | Requirements completeness | Revise until the user confirms | Reconcile against discovery/evidence and self-confirm only when complete; material ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `spec.md` and review evidence |
180
- | DES-05 | `oat-project-design` | Approach reaffirmation | Confirm or revisit the approach | Preserve a supported discovery choice; otherwise choose the evidence-backed recommendation and record rationale | `auto-resolve` / `boundary:product-judgment` | Design Overview and alternatives |
181
- | DES-06 | `oat-project-design` | Selective plan and section approvals | Approve/revise review plan and sections | Unreachable in forced draft mode; do not simulate live approvals | `auto-resolve` | Design mode and review record |
182
- | DES-07 | `oat-project-design` | Design/spec HiLL approval | Approve, revise, or wait | Run autonomous review/receive and approve only after passing; unresolved Critical findings stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Review artifact, dispatch record, HiLL bookkeeping |
183
- | DES-08 | `oat-project-design` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; unresolved Critical findings are always a boundary and `prompt` cannot silently continue | `auto-resolve` / `boundary:unresolved-critical-findings` | Structured gate result and disposition |
184
- | PLAN-01 | `oat-project-plan` | Missing design detail | Ask whether to update design | Stop and return to design; do not invent a design decision | `boundary:product-judgment` | Planning blocker |
185
- | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
186
- | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
187
- | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
188
- | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
189
- | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
190
- | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
191
- | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
192
- | PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
193
- | PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
194
- | PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
195
- | PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
196
- | PLAN-13 | `oat-project-plan` | Lifecycle gate posture setup | Keep or disable each configured lifecycle gate | Use the shared non-interactive contract: preserve an explicit map; otherwise leave it absent and every configured gate enabled | `auto-resolve` | Gate posture setup status |
197
- | IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
198
- | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
199
- | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
200
- | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
201
- | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
202
- | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
203
- | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
204
- | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Low fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
205
- | IMPORT-09 | `oat-project-import-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
206
- | IMPORT-10 | `oat-project-import-plan` | Lifecycle gate posture setup | Keep or disable each configured lifecycle gate | Preserve an explicit imported map; otherwise use the shared non-interactive behavior and leave every configured gate enabled | `auto-resolve` | Gate posture setup status |
207
- | IMPLEMENT-01 | `oat-project-implement` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
208
- | IMPLEMENT-02 | `oat-project-implement` | Prior-run worktrees | Resume or clean up | Resume and reconcile non-destructively; cleanup that could discard work stops | `auto-resolve` / `boundary:destructive-change-risk` | Orchestration run reconciliation |
209
- | IMPLEMENT-03 | `oat-project-implement` | Unconfirmed HiLL phases | Choose every, selected, or final | When absent on an autonomous first run, take `hillCheckpointDefault: final`: write the explicit final phase array and enable auto-review; preserve valid `[]` and explicit arrays | `auto-resolve` | `plan.md` frontmatter and implementation log |
210
- | IMPLEMENT-04 | `oat-project-implement` | Auto-review preference | Enable or disable checkpoint review | Set `oat_auto_review_at_hill_checkpoints: true` for the autonomous default path | `auto-resolve` | `plan.md` frontmatter |
211
- | IMPLEMENT-05 | `oat-project-implement` | Malformed phase-review setting | Ask user to repair | Stop before task execution | `boundary:repository-policy-approval` | Validation diagnostic |
212
- | IMPLEMENT-06 | `oat-project-implement` | Stale bookkeeping reconciliation | Approve generated repair | Repair only when plan, log, and git evidence agree; conflicting evidence stops | `auto-resolve` / `boundary:product-judgment` | Bookkeeping repair commit |
213
- | IMPLEMENT-07 | `oat-project-implement` | Existing tracker overwrite | Require explicit confirmation | Never overwrite in autonomy; resume or stop on corruption | `boundary:destructive-change-risk` | Tracker diagnostic |
214
- | IMPLEMENT-08 | `oat-project-implement` | Subagent delegation authorization | Authorize implementer and reviewer for this run | Approve once for the bounded run and both declared roles; do not widen file or command authority | `auto-resolve` | Dispatch authorization scope |
215
- | IMPLEMENT-09 | `oat-project-implement` | Unresolved dispatch policy | Choose a runnable policy | Preserve configured/project policy; unresolved non-interactive preflight stops | `boundary:repository-policy-approval` | Resolver report |
216
- | IMPLEMENT-10 | `oat-project-implement` | Non-final checkpoint pause | Wait after review | Run auto-review, auto-receive, record provenance, and continue after a passing disposition | `auto-resolve` / `boundary:unresolved-critical-findings` | Review artifact, receive commit, dispatch record |
217
- | IMPLEMENT-11 | `oat-project-implement` | Final-review execution route | Choose subagent, fresh session, or guarded inline | Select the highest policy-compliant target-preserving route and launch without prompting | `auto-resolve` | Final-review dispatch record |
218
- | IMPLEMENT-12 | `oat-project-implement` | Failed or unavailable final review | Retry/fix or wait for user | Apply bounded fix/re-review cycles; a failed blocking review or no adequate route stops; at the three-cycle final review cap, dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition | `boundary:unresolved-critical-findings` / `boundary:missing-credentials` | Review rows and blocker report plus complexity report path |
219
- | IMPLEMENT-13 | `oat-project-implement` | Post-implement sequence unset | Choose summary/docs/PR or exit | Snapshot the autonomous default `{preApproval: [summary, document, pr], postApproval: []}`; do not prompt | `auto-resolve` | `oat_post_implement_sequence` with source `autonomous-default` |
220
- | IMPLEMENT-14 | `oat-project-implement` | Legacy post-implement sequence | Execute `wait`, `summary`, `pr`, or `docs-pr` | Normalize through the documented legacy mapping and preserve the resulting arrays; do not reinterpret an explicit value | `auto-resolve` | Immutable sequence snapshot |
221
- | IMPLEMENT-15 | `oat-project-implement` | Structured pre/post sequence | Execute ordered pre- and post-approval steps | Preserve exact array order and resume from the first incomplete step | `auto-resolve` | Immutable sequence snapshot and per-step commits |
222
- | IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
223
- | IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
224
- | IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn`; an exhausted `block` at `maxAttempts` must dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition plus complexity report path |
225
- | IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | Re-read persisted intent at the consumer boundary; a persisted skip suppresses discovery and generation, while generate reuses a fresh satisfied package or runs the agent-authored flow; in autonomy retry one unsatisfied run once, then persist `skip` / `failed_attempt` with a project-relative proof locator and consume it only after canonical project/run containment plus terminal validation; never block completion on `built-needs-review` or a validated persisted skip | `auto-resolve` | Recap manifest or failure, QA result, persisted intent, and outcome record |
226
- | IMPLEMENT-20 | `oat-project-implement` | Required manual or visual proof | Execute the declared proof or wait for an operator | Use available computer-use capability for required visual proof; when no autonomous executor can perform the declared manual or visual criterion, stop at an explicit proof boundary and never mark it deferred-but-verified | `auto-resolve` / `boundary:product-judgment` | `implementation.md` proof result or boundary evidence |
227
- | DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
228
- | DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
229
- | DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
230
- | SUMMARY-01 | `oat-project-summary` | Missing active project | Ask for project name | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
231
- | PRFINAL-01 | `oat-project-pr-final` | Missing active project | Ask for project name | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
232
- | PRFINAL-02 | `oat-project-pr-final` | Missing title/base | Ask for title and resolve base | Use the documented ticket/conventional-title and base-branch resolution chains | `auto-resolve` | PR artifact frontmatter and command |
233
- | PRFINAL-03 | `oat-project-pr-final` | Final review not passed | Ask whether to proceed anyway | Never proceed in autonomy; stop and route to final review/re-review | `boundary:unresolved-critical-findings` | Final review row and blocker report |
234
- | PRFINAL-04 | `oat-project-pr-final` | Push/PR policy or credentials | Ask operator to authorize or authenticate | Stop when repository policy or missing credentials prevent push/PR creation | `boundary:repository-policy-approval` / `boundary:missing-credentials` | PR state and redacted command error |
235
- | PRFINAL-05 | `oat-project-pr-final` | Unresolved review-ledger artifact path | Report the offending row and stop | Stop before push and PR creation; a `## Reviews` artifact path that does not resolve to a regular file inside the project is never auto-resolved, and repairing the row is the only route forward | `boundary:unresolved-critical-findings` | Offending ledger row (scope, type, artifact) |
236
- | COMPLETE-01 | `oat-project-complete` | Batched completion/archive/summary/PR choices | Confirm completion and choose optional actions | Confirm only after gates pass; honor explicit config, refresh missing/stale summary, avoid duplicate PR, and archive only when configured | `auto-resolve` | Completion state and summary |
237
- | COMPLETE-02 | `oat-project-complete` | Required documentation missing | Run document or explicitly skip | Run autonomous documentation; do not silently skip a required gate | `auto-resolve` / `boundary:repository-policy-approval` | Documentation state |
238
- | COMPLETE-03 | `oat-project-complete` | Unsatisfied completion gates | Continue anyway | Never continue silently; unresolved final review is a review boundary and other hard policies remain boundaries | `boundary:unresolved-critical-findings` / `boundary:repository-policy-approval` | Combined gate report |
239
- | COMPLETE-04 | `oat-project-complete` | Archive/PR external access | Ask for access or manual action | Stop when required credentials or repository policy prevent the selected action | `boundary:missing-credentials` / `boundary:repository-policy-approval` | Completion blocker |
240
- | REVIEWPROVIDE-01 | `oat-project-review-provide` | Resolved target confirmation | Confirm project/review target | Autonomous callers pass an exact project, type, and scope; continue without prompting | `auto-resolve` | Review Scope metadata |
241
- | 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 |
242
- | 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 |
243
- | 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 |
244
- | 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 |
245
- | 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 |
246
- | 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 |
247
- | 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 |
248
- | REVIEWPROVIDE-09 | `oat-project-review-provide` | Defer review bookkeeping commit | Confirm proceeding uncommitted | Never defer; commit the bounded review files or stop on commit failure | `auto-resolve` / `boundary:repository-policy-approval` | Bookkeeping commit |
249
- | REVIEWRECEIVE-01 | `oat-project-review-receive` | Artifact edit approval | Confirm proposed artifact edits | Apply unambiguous in-scope edits and re-review; `needs_user_direction` stops | `auto-resolve` / `boundary:product-judgment` | Finding disposition map |
250
- | REVIEWRECEIVE-02 | `oat-project-review-receive` | Review-cycle limit | Choose manual review, proceed, or override | Stop at the configured cycle limit; never self-authorize an override or proceed to PR; at the cap, dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition, including `simplify` | `boundary:repository-policy-approval` | Cycle-count blocker plus complexity report path |
251
- | REVIEWRECEIVE-03 | `oat-project-review-receive` | Final deferred Medium findings | Convert or accept deferral | Convert valid findings to fix tasks; preserve only an already explicit, evidence-backed deferral; ambiguity stops | `auto-resolve` / `boundary:product-judgment` | Deferred Medium ledger |
252
- | REVIEWRECEIVE-04 | `oat-project-review-receive` | New Medium deferral request | Approve deferral per finding | Default to conversion; do not create a new autonomous deferral for material work | `auto-resolve` | Finding disposition map |
253
- | REVIEWRECEIVE-05 | `oat-project-review-receive` | Final Low disposition | Defer selected/all or convert all | Convert in-scope Lows by default; reject only with concrete evidence | `auto-resolve` | Finding disposition map |
254
- | REVIEWRECEIVE-06 | `oat-project-review-receive` | Code-review next action | Execute fixes, inspect plan, or exit | Execute added fix tasks through implement, then re-review | `auto-resolve` | State pointer and receive summary |
255
- | REVIEWRECEIVE-07 | `oat-project-review-receive` | Artifact-review next action | Resolve direction, re-review, or continue | Re-review applied edits; continue only after passing; user-direction findings stop | `auto-resolve` / `boundary:product-judgment` | Artifact disposition and review row |
256
- | REVIEWRECEIVE-08 | `oat-project-review-receive` | Defer receive bookkeeping commit | Confirm proceeding uncommitted | Never defer; commit bounded bookkeeping or stop on commit failure | `auto-resolve` / `boundary:repository-policy-approval` | Bookkeeping commit |
257
- | REVIEWRECEIVE-09 | `oat-project-review-receive` | Unresolved Critical finding | Fix, reject, or seek direction | Convert valid findings and re-review; never pass while a Critical remains unresolved | `boundary:unresolved-critical-findings` | Review row and finding disposition |
258
- | DISPATCH-01 | `oat-dispatch-subagents` | Launch-surface authorization | Ask once for a user approval or scope grant | Approve once for the current run's exact bounded request and authority; re-probe and record the scope | `auto-resolve` | Generic dispatch record |
259
- | DISPATCH-02 | `oat-dispatch-subagents` | Agent-improvised alternate route | Approve named target and scope | Do not convert autonomy into standing route policy; use a policy-resolved/native route or stop | `boundary:repository-policy-approval` | Blocking dispatch record |
260
- | PDISPATCH-01 | `oat-project-dispatch-subagents` | Per-task route reauthorization | Reauthorize a configured route | No prompt: configured project policy is already standing, scope-bound authorization | `auto-resolve` | `selection_source: policy-resolved` |
141
+ | ID | Skill | Gate | Interactive behavior | Autonomous resolution | Classification | Provenance |
142
+ | ---------------- | -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
143
+ | NEW-01 | `oat-project-new` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | New-project preflight note |
144
+ | NEW-02 | `oat-project-new` | Missing project name | Ask for a slug | Derive a valid slug from the explicit autonomous goal; stop if identity or collision handling is ambiguous | `auto-resolve` / `boundary:product-judgment` | Scaffold output and project path |
145
+ | QS-01 | `oat-project-quick-start` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Quick-start preflight note |
146
+ | QS-02 | `oat-project-quick-start` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Discovery initial request |
147
+ | QS-03 | `oat-project-quick-start` | Discovery questions and approach buy-in | Ask clarifying questions and confirm the chosen direction | Answer from repository evidence, select the supported recommendation, and record assumptions; material product ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` decisions and assumptions |
148
+ | QS-04 | `oat-project-quick-start` | Design-depth choice | Choose plan, lightweight design, or spec-driven promotion | Use agent judgment from the documented heuristic and record the rationale | `auto-resolve` | `discovery.md` mode-choice rationale |
149
+ | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
150
+ | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
151
+ | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
152
+ | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
153
+ | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
154
+ | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
155
+ | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
156
+ | QS-12 | `oat-project-quick-start` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary; an exhausted `block` at `maxAttempts` must dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition; persist the outcome as `oat_quick_start_gate` | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition, `oat_quick_start_gate`, and complexity report path |
157
+ | QS-13 | `oat-project-quick-start` | Lifecycle gate posture setup | Keep or disable each configured lifecycle gate | Use the shared non-interactive contract: preserve an explicit map; otherwise leave it absent and every configured gate enabled | `auto-resolve` | Gate posture setup status |
158
+ | LITE-01 | `oat-project-lite` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Lite preflight note |
159
+ | LITE-02 | `oat-project-lite` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Lite plan summary and project path |
160
+ | LITE-03 | `oat-project-lite` | Batched critical interview | Ask one batched round and a conditional clarification | Answer from repository evidence, record careful assumptions, and stop when material product ambiguity cannot be resolved | `auto-resolve` / `boundary:product-judgment` | `plan.md` decisions and assumptions |
161
+ | LITE-04 | `oat-project-lite` | Escalation to quick | Continue lite or promote the authored plan | Apply the documented single-sitting and unresolved-design heuristic; promote when triggered, otherwise record the supported lite rationale | `auto-resolve` / `boundary:product-judgment` | Authored plan and promotion result |
162
+ | LITE-05 | `oat-project-lite` | Plan approval gate | Approve, revise, or promote | Auto-confirm the recorded requirement set; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Approval record in `plan.md` |
163
+ | LITE-06 | `oat-project-lite` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
164
+ | LITE-07 | `oat-project-lite` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
165
+ | LITE-08 | `oat-project-lite` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and lite disposition |
166
+ | LITE-09 | `oat-project-lite` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
167
+ | LITE-10 | `oat-project-lite` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
168
+ | BRIEF-01 | `oat-project-brief` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Brief preflight note |
169
+ | BRIEF-02 | `oat-project-brief` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Brief Goal and project path |
170
+ | BRIEF-03 | `oat-project-brief` | Alignment interview | Ask readiness rounds until the user accepts the design | Settle facts from repository evidence, adopt the supported recommendation for each decision, and record it; material product or design ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `plan.md` Approach, Decisions, and Known Unknowns |
171
+ | BRIEF-04 | `oat-project-brief` | Workflow fit | Continue brief, promote to quick, or split the work | Apply the documented content heuristic; when an implementation-affecting design question cannot be settled from evidence, promote through `oat project promote --to quick` only after the Step 3 brief is validated and committed, and before that abandon the scaffold and start `oat-project-quick-start`; several independent deliveries stop; otherwise record why brief fits | `auto-resolve` / `boundary:product-judgment` | `plan.md` Decisions and promotion result |
172
+ | BRIEF-05 | `oat-project-brief` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
173
+ | BRIEF-06 | `oat-project-brief` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
174
+ | BRIEF-07 | `oat-project-brief` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
175
+ | BRIEF-08 | `oat-project-brief` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
176
+ | BRIEF-09 | `oat-project-brief` | Brief artifact-review findings | Fold minor fixes; take material findings to the user | Apply only unambiguous artifact-local fixes and re-review; never rewrite agreed intent; unresolved Critical findings or material ambiguity stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Brief review row and residual-finding disposition |
177
+ | BRIEF-10 | `oat-project-brief` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary; persist the outcome as `oat_brief_gate` | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition, and `oat_brief_gate` |
178
+ | BRIEF-11 | `oat-project-brief` | Brief approval | Approve, revise, or promote | Approve the reviewed brief and record the approval line; contradictory or materially incomplete outcomes stop | `auto-resolve` / `boundary:product-judgment` | Approval line in `plan.md` |
179
+ | GOAL-01 | `oat-project-goal` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Goal preflight note |
180
+ | GOAL-02 | `oat-project-goal` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Brief Goal and project path |
181
+ | GOAL-03 | `oat-project-goal` | Alignment interview and milestone split | Ask readiness rounds until the user accepts the design and the milestone split | Settle facts from repository evidence, adopt the supported recommendation for each decision and for the milestone split, and record it; material product or design ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `plan.md` Approach, Decisions, Known Unknowns, and Milestones |
182
+ | GOAL-04 | `oat-project-goal` | Workflow fit | Continue goal, use brief, promote to quick, or split the work | Apply the documented content heuristic; one delivery stops with a brief recommendation; quick is reached only by abandoning the scaffold before the brief is committed or by promotion at a settled delivery boundary; otherwise record why goal fits | `auto-resolve` / `boundary:product-judgment` | `plan.md` Decisions |
183
+ | GOAL-05 | `oat-project-goal` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Identical to QS-08: check existing user, local, then authorized shared config in that fixed order; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
184
+ | GOAL-06 | `oat-project-goal` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
185
+ | GOAL-07 | `oat-project-goal` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
186
+ | GOAL-08 | `oat-project-goal` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
187
+ | GOAL-09 | `oat-project-goal` | Brief or amendment artifact-review findings | Fold minor fixes; take material findings to the user | Apply only unambiguous artifact-local fixes and re-review; never rewrite agreed intent or milestone membership; unresolved Critical findings or material ambiguity stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Review row and residual-finding disposition |
188
+ | GOAL-10 | `oat-project-goal` | Configured milestone plan gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary; a blocked outcome is written as a `blocked` milestone `plan` carrier | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition, and `oat_milestone_gates[mNN].plan` |
189
+ | GOAL-11 | `oat-project-goal` | Brief or amendment approval | Approve, revise, or promote | Approve the reviewed brief or amendment, record the approval line, then write the milestone `plan` carrier `allowed`; contradictory or materially incomplete outcomes stop | `auto-resolve` / `boundary:product-judgment` | Approval line in `plan.md` and `oat_milestone_gates[mNN].plan` |
190
+ | GOAL-12 | `oat-project-goal` | Re-alignment delta interview | Ask what changed and agree the next milestone | Adopt the next milestone already sketched in the approved brief when the delivered milestone's evidence supports it, and record it; a material change to an Outcome, Constraint, Decision, endpoint, or authority stops | `auto-resolve` / `boundary:product-judgment` | `plan.md` amendment, Milestones row, and project log |
191
+ | GOAL-13 | `oat-project-goal` | Terminal declaration | Ask whether the user declares the goal met | Never declare autonomously: stop and report the delivered milestones, the coverage status, and the declaration command | `boundary:product-judgment` | Router recommendation and `implementation.md` boundary note |
192
+ | DISC-01 | `oat-project-discover` | Active-project confirmation or switch | Confirm the active project or choose another | Use only an explicitly supplied or valid active project; otherwise stop without guessing | `boundary:product-judgment` | Resolved project path |
193
+ | DISC-02 | `oat-project-discover` | Stale knowledge | Continue or refresh | Refresh through the canonical knowledge workflow when available; otherwise record staleness and continue only when it does not create material ambiguity | `auto-resolve` / `boundary:product-judgment` | Discovery evidence note |
194
+ | DISC-03 | `oat-project-discover` | Gray areas and clarifying questions | Select areas and answer questions | Select risk-relevant areas from evidence and record supported answers/assumptions; material ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` Q&A and assumptions |
195
+ | DISC-04 | `oat-project-discover` | Solution approach buy-in | Select or redirect the recommended approach | Select the evidence-backed recommendation and record tradeoffs; unsupported product choice stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` chosen direction |
196
+ | DISC-05 | `oat-project-discover` | Mid-stream split choice | Split, continue broad discovery, or keep one project | Use the existing non-interactive behavior: record a high/soft split recommendation and stop; below threshold continues | `auto-resolve` / `boundary:product-judgment` | Detected Split Recommendation |
197
+ | DISC-06 | `oat-project-discover` | Convergence split confirmation | Proceed as one project or split | Use the existing non-interactive behavior: below proceeds; high/soft records and stops | `auto-resolve` / `boundary:product-judgment` | Final split evaluation |
198
+ | DISC-07 | `oat-project-discover` | Discovery HiLL approval | Approve artifact or wait | Run autonomous review/receive; approve only after passing review and no unresolved Critical finding | `auto-resolve` / `boundary:unresolved-critical-findings` | Review artifact, dispatch record, HiLL bookkeeping |
199
+ | DISC-08 | `oat-project-discover` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
200
+ | DES-01 | `oat-project-design` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
201
+ | DES-02 | `oat-project-design` | Incomplete existing spec | Finish it or delete/regenerate | Never delete or overwrite it autonomously; stop for direction | `boundary:destructive-change-risk` | Incomplete-spec diagnostic |
202
+ | DES-03 | `oat-project-design` | Design interaction mode | Choose collaborative, selective, or draft | `OAT_NON_INTERACTIVE=1` forces the existing draft-and-review path | `auto-resolve` | Design mode banner |
203
+ | DES-04 | `oat-project-design` | Requirements completeness | Revise until the user confirms | Reconcile against discovery/evidence and self-confirm only when complete; material ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `spec.md` and review evidence |
204
+ | DES-05 | `oat-project-design` | Approach reaffirmation | Confirm or revisit the approach | Preserve a supported discovery choice; otherwise choose the evidence-backed recommendation and record rationale | `auto-resolve` / `boundary:product-judgment` | Design Overview and alternatives |
205
+ | DES-06 | `oat-project-design` | Selective plan and section approvals | Approve/revise review plan and sections | Unreachable in forced draft mode; do not simulate live approvals | `auto-resolve` | Design mode and review record |
206
+ | DES-07 | `oat-project-design` | Design/spec HiLL approval | Approve, revise, or wait | Run autonomous review/receive and approve only after passing; unresolved Critical findings stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Review artifact, dispatch record, HiLL bookkeeping |
207
+ | DES-08 | `oat-project-design` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; unresolved Critical findings are always a boundary and `prompt` cannot silently continue | `auto-resolve` / `boundary:unresolved-critical-findings` | Structured gate result and disposition |
208
+ | PLAN-01 | `oat-project-plan` | Missing design detail | Ask whether to update design | Stop and return to design; do not invent a design decision | `boundary:product-judgment` | Planning blocker |
209
+ | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
210
+ | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
211
+ | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
212
+ | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
213
+ | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
214
+ | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
215
+ | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
216
+ | PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
217
+ | PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
218
+ | PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
219
+ | PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
220
+ | PLAN-13 | `oat-project-plan` | Lifecycle gate posture setup | Keep or disable each configured lifecycle gate | Use the shared non-interactive contract: preserve an explicit map; otherwise leave it absent and every configured gate enabled | `auto-resolve` | Gate posture setup status |
221
+ | IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
222
+ | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
223
+ | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
224
+ | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
225
+ | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
226
+ | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
227
+ | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
228
+ | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Low fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
229
+ | IMPORT-09 | `oat-project-import-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
230
+ | IMPORT-10 | `oat-project-import-plan` | Lifecycle gate posture setup | Keep or disable each configured lifecycle gate | Preserve an explicit imported map; otherwise use the shared non-interactive behavior and leave every configured gate enabled | `auto-resolve` | Gate posture setup status |
231
+ | IMPLEMENT-01 | `oat-project-implement` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
232
+ | IMPLEMENT-02 | `oat-project-implement` | Prior-run worktrees | Resume or clean up | Resume and reconcile non-destructively; cleanup that could discard work stops | `auto-resolve` / `boundary:destructive-change-risk` | Orchestration run reconciliation |
233
+ | IMPLEMENT-03 | `oat-project-implement` | Unconfirmed HiLL phases | Choose every, selected, or final | When absent on an autonomous first run, take `hillCheckpointDefault: final`: write the explicit final phase array and enable auto-review; preserve valid `[]` and explicit arrays | `auto-resolve` | `plan.md` frontmatter and implementation log |
234
+ | IMPLEMENT-04 | `oat-project-implement` | Auto-review preference | Enable or disable checkpoint review | Set `oat_auto_review_at_hill_checkpoints: true` for the autonomous default path | `auto-resolve` | `plan.md` frontmatter |
235
+ | IMPLEMENT-05 | `oat-project-implement` | Malformed phase-review setting | Ask user to repair | Stop before task execution | `boundary:repository-policy-approval` | Validation diagnostic |
236
+ | IMPLEMENT-06 | `oat-project-implement` | Stale bookkeeping reconciliation | Approve generated repair | Repair only when plan, log, and git evidence agree; conflicting evidence stops | `auto-resolve` / `boundary:product-judgment` | Bookkeeping repair commit |
237
+ | IMPLEMENT-07 | `oat-project-implement` | Existing tracker overwrite | Require explicit confirmation | Never overwrite in autonomy; resume or stop on corruption | `boundary:destructive-change-risk` | Tracker diagnostic |
238
+ | IMPLEMENT-08 | `oat-project-implement` | Subagent delegation authorization | Authorize implementer and reviewer for this run | Approve once for the bounded run and both declared roles; do not widen file or command authority | `auto-resolve` | Dispatch authorization scope |
239
+ | IMPLEMENT-09 | `oat-project-implement` | Unresolved dispatch policy | Choose a runnable policy | Preserve configured/project policy; unresolved non-interactive preflight stops | `boundary:repository-policy-approval` | Resolver report |
240
+ | IMPLEMENT-10 | `oat-project-implement` | Non-final checkpoint pause | Wait after review | Run auto-review, auto-receive, record provenance, and continue after a passing disposition | `auto-resolve` / `boundary:unresolved-critical-findings` | Review artifact, receive commit, dispatch record |
241
+ | IMPLEMENT-11 | `oat-project-implement` | Final-review execution route | Choose subagent, fresh session, or guarded inline | Select the highest policy-compliant target-preserving route and launch without prompting | `auto-resolve` | Final-review dispatch record |
242
+ | IMPLEMENT-12 | `oat-project-implement` | Failed or unavailable final review | Retry/fix or wait for user | Apply bounded fix/re-review cycles; a failed blocking review or no adequate route stops; at the three-cycle final review cap, dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition | `boundary:unresolved-critical-findings` / `boundary:missing-credentials` | Review rows and blocker report plus complexity report path |
243
+ | IMPLEMENT-13 | `oat-project-implement` | Post-implement sequence unset | Choose summary/docs/PR or exit | Snapshot the autonomous default `{preApproval: [summary, document, pr], postApproval: []}`; do not prompt | `auto-resolve` | `oat_post_implement_sequence` with source `autonomous-default` |
244
+ | IMPLEMENT-14 | `oat-project-implement` | Legacy post-implement sequence | Execute `wait`, `summary`, `pr`, or `docs-pr` | Normalize through the documented legacy mapping and preserve the resulting arrays; do not reinterpret an explicit value | `auto-resolve` | Immutable sequence snapshot |
245
+ | IMPLEMENT-15 | `oat-project-implement` | Structured pre/post sequence | Execute ordered pre- and post-approval steps | Preserve exact array order and resume from the first incomplete step | `auto-resolve` | Immutable sequence snapshot and per-step commits |
246
+ | IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
247
+ | IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
248
+ | IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn`; an exhausted `block` at `maxAttempts` must dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition plus complexity report path |
249
+ | IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | Re-read persisted intent at the consumer boundary; a persisted skip suppresses discovery and generation, while generate reuses a fresh satisfied package or runs the agent-authored flow; in autonomy retry one unsatisfied run once, then persist `skip` / `failed_attempt` with a project-relative proof locator and consume it only after canonical project/run containment plus terminal validation; never block completion on `built-needs-review` or a validated persisted skip | `auto-resolve` | Recap manifest or failure, QA result, persisted intent, and outcome record |
250
+ | IMPLEMENT-20 | `oat-project-implement` | Required manual or visual proof | Execute the declared proof or wait for an operator | Use available computer-use capability for required visual proof; when no autonomous executor can perform the declared manual or visual criterion, stop at an explicit proof boundary and never mark it deferred-but-verified | `auto-resolve` / `boundary:product-judgment` | `implementation.md` proof result or boundary evidence |
251
+ | DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
252
+ | DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
253
+ | DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
254
+ | SUMMARY-01 | `oat-project-summary` | Missing active project | Ask for project name | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
255
+ | PRFINAL-01 | `oat-project-pr-final` | Missing active project | Ask for project name | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
256
+ | PRFINAL-02 | `oat-project-pr-final` | Missing title/base | Ask for title and resolve base | Use the documented ticket/conventional-title and base-branch resolution chains | `auto-resolve` | PR artifact frontmatter and command |
257
+ | PRFINAL-03 | `oat-project-pr-final` | Final review not passed | Ask whether to proceed anyway | Never proceed in autonomy; stop and route to final review/re-review | `boundary:unresolved-critical-findings` | Final review row and blocker report |
258
+ | PRFINAL-04 | `oat-project-pr-final` | Push/PR policy or credentials | Ask operator to authorize or authenticate | Stop when repository policy or missing credentials prevent push/PR creation | `boundary:repository-policy-approval` / `boundary:missing-credentials` | PR state and redacted command error |
259
+ | PRFINAL-05 | `oat-project-pr-final` | Unresolved review-ledger artifact path | Report the offending row and stop | Stop before push and PR creation; a `## Reviews` artifact path that does not resolve to a regular file inside the project is never auto-resolved, and repairing the row is the only route forward | `boundary:unresolved-critical-findings` | Offending ledger row (scope, type, artifact) |
260
+ | COMPLETE-01 | `oat-project-complete` | Batched completion/archive/summary/PR choices | Confirm completion and choose optional actions | Confirm only after gates pass; honor explicit config, refresh missing/stale summary, avoid duplicate PR, and archive only when configured | `auto-resolve` | Completion state and summary |
261
+ | COMPLETE-02 | `oat-project-complete` | Required documentation missing | Run document or explicitly skip | Run autonomous documentation; do not silently skip a required gate | `auto-resolve` / `boundary:repository-policy-approval` | Documentation state |
262
+ | COMPLETE-03 | `oat-project-complete` | Unsatisfied completion gates | Continue anyway | Never continue silently; unresolved final review is a review boundary and other hard policies remain boundaries | `boundary:unresolved-critical-findings` / `boundary:repository-policy-approval` | Combined gate report |
263
+ | COMPLETE-04 | `oat-project-complete` | Archive/PR external access | Ask for access or manual action | Stop when required credentials or repository policy prevent the selected action | `boundary:missing-credentials` / `boundary:repository-policy-approval` | Completion blocker |
264
+ | REVIEWPROVIDE-01 | `oat-project-review-provide` | Resolved target confirmation | Confirm project/review target | Autonomous callers pass an exact project, type, and scope; continue without prompting | `auto-resolve` | Review Scope metadata |
265
+ | 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 |
266
+ | 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 |
267
+ | 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 |
268
+ | 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 |
269
+ | 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 |
270
+ | 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 |
271
+ | 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 |
272
+ | REVIEWPROVIDE-09 | `oat-project-review-provide` | Defer review bookkeeping commit | Confirm proceeding uncommitted | Never defer; commit the bounded review files or stop on commit failure | `auto-resolve` / `boundary:repository-policy-approval` | Bookkeeping commit |
273
+ | REVIEWRECEIVE-01 | `oat-project-review-receive` | Artifact edit approval | Confirm proposed artifact edits | Apply unambiguous in-scope edits and re-review; `needs_user_direction` stops | `auto-resolve` / `boundary:product-judgment` | Finding disposition map |
274
+ | REVIEWRECEIVE-02 | `oat-project-review-receive` | Review-cycle limit | Choose manual review, proceed, or override | Stop at the configured cycle limit; never self-authorize an override or proceed to PR; at the cap, dispatch the complexity review from `complexity-review-fallback.md` and include its decision-message content in the boundary report; never self-select a disposition, including `simplify` | `boundary:repository-policy-approval` | Cycle-count blocker plus complexity report path |
275
+ | REVIEWRECEIVE-03 | `oat-project-review-receive` | Final deferred Medium findings | Convert or accept deferral | Convert valid findings to fix tasks; preserve only an already explicit, evidence-backed deferral; ambiguity stops | `auto-resolve` / `boundary:product-judgment` | Deferred Medium ledger |
276
+ | REVIEWRECEIVE-04 | `oat-project-review-receive` | New Medium deferral request | Approve deferral per finding | Default to conversion; do not create a new autonomous deferral for material work | `auto-resolve` | Finding disposition map |
277
+ | REVIEWRECEIVE-05 | `oat-project-review-receive` | Final Low disposition | Defer selected/all or convert all | Convert in-scope Lows by default; reject only with concrete evidence | `auto-resolve` | Finding disposition map |
278
+ | REVIEWRECEIVE-06 | `oat-project-review-receive` | Code-review next action | Execute fixes, inspect plan, or exit | Execute added fix tasks through implement, then re-review | `auto-resolve` | State pointer and receive summary |
279
+ | REVIEWRECEIVE-07 | `oat-project-review-receive` | Artifact-review next action | Resolve direction, re-review, or continue | Re-review applied edits; continue only after passing; user-direction findings stop | `auto-resolve` / `boundary:product-judgment` | Artifact disposition and review row |
280
+ | REVIEWRECEIVE-08 | `oat-project-review-receive` | Defer receive bookkeeping commit | Confirm proceeding uncommitted | Never defer; commit bounded bookkeeping or stop on commit failure | `auto-resolve` / `boundary:repository-policy-approval` | Bookkeeping commit |
281
+ | REVIEWRECEIVE-09 | `oat-project-review-receive` | Unresolved Critical finding | Fix, reject, or seek direction | Convert valid findings and re-review; never pass while a Critical remains unresolved | `boundary:unresolved-critical-findings` | Review row and finding disposition |
282
+ | DISPATCH-01 | `oat-dispatch-subagents` | Launch-surface authorization | Ask once for a user approval or scope grant | Approve once for the current run's exact bounded request and authority; re-probe and record the scope | `auto-resolve` | Generic dispatch record |
283
+ | DISPATCH-02 | `oat-dispatch-subagents` | Agent-improvised alternate route | Approve named target and scope | Do not convert autonomy into standing route policy; use a policy-resolved/native route or stop | `boundary:repository-policy-approval` | Blocking dispatch record |
284
+ | PDISPATCH-01 | `oat-project-dispatch-subagents` | Per-task route reauthorization | Reauthorize a configured route | No prompt: configured project policy is already standing, scope-bound authorization | `auto-resolve` | `selection_source: policy-resolved` |
261
285
 
262
286
  ## Gate-inventory maintenance
263
287
 
@@ -269,7 +293,7 @@ assertions, vendored copies, and other unreachable occurrences to `NG`. Add a
269
293
  new inventory row when no existing gate ID describes the behavior.
270
294
 
271
295
  `packages/cli/src/validation/autonomy-gate-inventory.test.ts` is the CI
272
- backstop. It derives the fifteen scan roots from the inventory, scans Markdown
296
+ backstop. It derives the eighteen scan roots from the inventory, scans Markdown
273
297
  recursively, and matches each site by file plus a stable semantic key derived
274
298
  from its normalized heading and text, never by line number. Its failure output
275
299
  provides the key to add or replace. The committed line-number comparison below
@@ -301,7 +325,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
301
325
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
302
326
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
303
327
  | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> NG` |
304
- | `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`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
328
+ | `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`; `e3c08ecdab17 -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
305
329
  | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `49ed2780983b -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `1d710fb4cc66 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `92578f7df686 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `e4c0625439f8 -> REVIEWRECEIVE-04`; `505ad8389c0a -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `e30e06f39281 -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
306
330
  | `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
307
331
  | `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
@@ -317,6 +341,10 @@ remains immutable baseline evidence for the original p01-t01 verification.
317
341
  | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
318
342
  | `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `1234c29d1999 -> NG`; `3c0b26f0ff1c -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
319
343
  | `oat-project-lite/references/docs/autonomy-contract.md` | `* -> NG` |
344
+ | `oat-project-brief/references/docs/autonomy-contract.md` | `* -> NG` |
345
+ | `oat-project-brief/references/docs/gate-approval-record.md` | `* -> NG` |
346
+ | `oat-project-brief/SKILL.md` | `3d101cb200b3 -> NG`; `494f08a25a22 -> NG`; `ae6d9bdd3cc0 -> NG`; `beeb946393dc -> NG`; `83b5e9396197 -> NG`; `709dd744d813 -> NG`; `4e1222d879f2 -> BRIEF-03`; `a9dd42731b88 -> BRIEF-04`; `7bff55da6726 -> NG`; `c5fb9ce4b27d -> NG`; `e2e809154403 -> BRIEF-10`; `93d6f62c5dac -> BRIEF-10`; `92da21e87ab4 -> NG`; `304c39a13de5 -> BRIEF-10`; `06490315c2f9 -> BRIEF-10`; `0b85a5738ca5 -> BRIEF-11`; `f34dfb297a83 -> NG`; `06179c668e16 -> BRIEF-11`; `5ef3a708eed9 -> BRIEF-11`; `1c798da87f49 -> BRIEF-11`; `f73421b4937f -> NG`; `6e3e97f9cbcf -> NG`; `9b3abe616c5d -> BRIEF-08` |
347
+ | `oat-project-brief/references/brief-contract.md` | `5359cae29ca8 -> NG`; `b417d06e35b4 -> BRIEF-03`; `964e9fc49596 -> NG`; `02270b5b835d -> BRIEF-11`; `e1cb9cbbd308 -> NG` |
320
348
  | `oat-project-implement/references/completion-and-closeout.md` | `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`; `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` |
321
349
  | `oat-project-quick-start/SKILL.md` | `aa560418765a -> QS-13`; `40ddcac880ef -> NG` |
322
350
  | `oat-project-plan/SKILL.md` | `2b32bc5e9fea -> NG`; `58cc6b0adf97 -> PLAN-13`; `9fba3b40b522 -> NG` |
@@ -329,6 +357,12 @@ remains immutable baseline evidence for the original p01-t01 verification.
329
357
  | `oat-project-quick-start/references/docs/gate-approval-record.md` | `* -> NG` |
330
358
  | `oat-project-implement/references/completion-and-closeout.md` | `1e2095aca31d -> NG` |
331
359
  | `oat-project-quick-start/SKILL.md` | `56927e828156 -> NG`; `304c39a13de5 -> QS-12`; `06490315c2f9 -> QS-12` |
360
+ | `oat-project-goal/references/docs/autonomy-contract.md` | `* -> NG` |
361
+ | `oat-project-goal/references/docs/gate-approval-record.md` | `* -> NG` |
362
+ | `oat-project-goal/SKILL.md` | `3d101cb200b3 -> NG`; `d63116d6df4d -> NG`; `2b710203c8bc -> NG`; `65fe043a0a47 -> NG`; `1f585f2818f5 -> NG`; `9c8e3183f257 -> NG`; `921168da6c04 -> NG`; `63cd2f028008 -> NG`; `ade79e63a2a1 -> NG`; `8ac09e2e574e -> GOAL-04`; `9b3abe616c5d -> GOAL-08`; `941d3c8fc860 -> GOAL-10`; `71d244eaecfa -> GOAL-10`; `e2e809154403 -> GOAL-10`; `81eecb147111 -> GOAL-10`; `4b4b44a38e28 -> NG`; `a00d2fb9f7d1 -> NG`; `31e17b91aea4 -> NG`; `2dd538e96fa7 -> GOAL-11`; `dc0e24d25145 -> GOAL-11`; `a2e3ff48a120 -> NG`; `537b01e89810 -> GOAL-11`; `1975d2cf6257 -> GOAL-11`; `b8ee628fe433 -> GOAL-11`; `766bf641c415 -> GOAL-11`; `b8abe2bb9ae9 -> GOAL-11`; `af3fb61d9cd2 -> GOAL-11`; `0cb460abe898 -> GOAL-11`; `7dbf9c8ff795 -> NG`; `2f6662634e74 -> NG`; `ff36b95ce438 -> NG`; `8b8696dd3db1 -> GOAL-13`; `f06a9cf1fc8f -> NG`; `230c24d9795b -> NG`; `2ff6788c8c7a -> NG`; `a5b10d3760f2 -> NG` |
363
+ | `oat-project-brief/references/brief-contract.md` | `c07582a6e038 -> NG`; `cce626689524 -> NG`; `03bbf9b9fbeb -> GOAL-11`; `ae832fb5f806 -> GOAL-11`; `d5f75fcf66a7 -> GOAL-11`; `f6421e1111d6 -> NG`; `ac60235d4dcb -> NG`; `392ad08dd645 -> NG`; `f30dca2cf92e -> NG`; `b1f30807dc5c -> NG` |
364
+ | `oat-project-implement/references/completion-and-closeout.md` | `f8eeadad37a1 -> NG` |
365
+ | `oat-project-review-receive/SKILL.md` | `9e1dad1e1e3a -> NG` |
332
366
 
333
367
  ## Prompt-scan comparison
334
368