@open-agent-toolkit/cli 0.1.62 → 0.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/docs/cli-utilities/configuration.md +29 -0
- package/assets/docs/cli-utilities/tool-packs.md +29 -1
- package/assets/docs/workflows/projects/autonomy.md +154 -0
- package/assets/docs/workflows/projects/cursor-cloud.md +151 -0
- package/assets/docs/workflows/projects/index.md +6 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-cursor-cloud-projects/SKILL.md +318 -0
- package/assets/skills/oat-cursor-cloud-projects/references/cursor-cloud-mechanics.md +173 -0
- package/assets/skills/oat-project-autonomous/SKILL.md +439 -0
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +294 -0
- package/assets/skills/oat-project-design/SKILL.md +79 -1
- package/assets/skills/oat-project-discover/SKILL.md +76 -1
- package/assets/skills/oat-project-document/SKILL.md +17 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +294 -0
- package/assets/skills/oat-project-implement/SKILL.md +18 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +72 -7
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +17 -9
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +294 -0
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +56 -0
- package/assets/skills/oat-project-pr-final/SKILL.md +23 -4
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +294 -0
- package/assets/skills/oat-project-quick-start/SKILL.md +43 -2
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +294 -0
- package/assets/skills/oat-project-summary/SKILL.md +69 -14
- package/assets/templates/summary.md +24 -0
- package/dist/commands/init/tools/index.d.ts.map +1 -1
- package/dist/commands/init/tools/index.js +67 -45
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
- package/dist/commands/init/tools/workflows/index.d.ts +2 -1
- package/dist/commands/init/tools/workflows/index.d.ts.map +1 -1
- package/dist/commands/init/tools/workflows/index.js +13 -11
- package/dist/commands/init/tools/workflows/install-workflows.d.ts +2 -0
- package/dist/commands/init/tools/workflows/install-workflows.d.ts.map +1 -1
- package/dist/commands/init/tools/workflows/install-workflows.js +4 -0
- package/dist/commands/project/new/scaffold.d.ts +1 -0
- package/dist/commands/project/new/scaffold.d.ts.map +1 -1
- package/dist/commands/project/new/scaffold.js +23 -4
- package/dist/commands/tools/remove/index.js +2 -2
- package/dist/commands/tools/remove/remove-tools.d.ts.map +1 -1
- package/dist/commands/tools/remove/remove-tools.js +23 -0
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +7 -1
- package/dist/commands/tools/update/update-tools.d.ts +9 -0
- package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
- package/dist/commands/tools/update/update-tools.js +25 -5
- package/dist/providers/identity/family.d.ts +1 -1
- package/dist/providers/identity/family.d.ts.map +1 -1
- package/dist/providers/identity/family.js +2 -0
- package/package.json +2 -2
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: OAT Autonomy Contract
|
|
3
|
+
status: canonical
|
|
4
|
+
last_updated: 2026-07-14
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# OAT Autonomy Contract
|
|
8
|
+
|
|
9
|
+
This document is the canonical policy for running OAT project workflows without
|
|
10
|
+
mid-run user input. It defines the activation signal, boundary behavior,
|
|
11
|
+
provenance requirements, and the inventory of interactive gates that an
|
|
12
|
+
autonomous caller must resolve.
|
|
13
|
+
|
|
14
|
+
## Activation and lifetime
|
|
15
|
+
|
|
16
|
+
Autonomy is active only when the current process environment contains the exact
|
|
17
|
+
signal:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
export OAT_AUTONOMOUS=1
|
|
21
|
+
export OAT_NON_INTERACTIVE=1
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`OAT_AUTONOMOUS=1` implies `OAT_NON_INTERACTIVE=1`. The activating orchestrator
|
|
25
|
+
must set both variables before invoking a lifecycle skill and must pass them to
|
|
26
|
+
child processes and bounded subagents that participate in the same run.
|
|
27
|
+
`OAT_NON_INTERACTIVE=1` by itself keeps its existing, narrower meaning: use a
|
|
28
|
+
documented non-interactive default for the current skill. It does not authorize
|
|
29
|
+
lifecycle chaining or autonomy-specific approvals.
|
|
30
|
+
|
|
31
|
+
Both signals are session-scoped. They may be inherited by processes in the
|
|
32
|
+
current run, but must never be written to `state.md`, `plan.md`,
|
|
33
|
+
`implementation.md`, repository or user config, shell profiles, environment
|
|
34
|
+
files, or any other persisted project artifact. A restarted session is
|
|
35
|
+
interactive unless autonomy is deliberately activated again. Durable artifacts
|
|
36
|
+
may record what decision was made and why, but not an active autonomy mode.
|
|
37
|
+
|
|
38
|
+
## Resolution rules
|
|
39
|
+
|
|
40
|
+
1. Preserve explicit project and configuration choices unless they are invalid.
|
|
41
|
+
2. Apply an existing `OAT_NON_INTERACTIVE` branch before adding an
|
|
42
|
+
autonomy-specific resolution.
|
|
43
|
+
3. Auto-resolve only decisions bounded by the user's original goal, the plan,
|
|
44
|
+
repository instructions, and the current run's declared write authority.
|
|
45
|
+
4. Do not treat autonomy as authority to delete data, rewrite history, widen
|
|
46
|
+
scope, bypass protected-branch policy, disclose credentials, or accept an
|
|
47
|
+
unresolved Critical review finding.
|
|
48
|
+
5. When the inventory says `boundary`, stop without waiting for input. Persist
|
|
49
|
+
safe bookkeeping, then report: the gate, why it cannot be auto-resolved, the
|
|
50
|
+
evidence, the exact operator action, and the resume command.
|
|
51
|
+
6. A prompt reached without an inventory entry is a defect. Stop as an
|
|
52
|
+
`inventory-gap` boundary and record enough context to add the missing row.
|
|
53
|
+
|
|
54
|
+
Configured lifecycle gates keep their declared `onFailure` behavior:
|
|
55
|
+
|
|
56
|
+
- `warn`: record the failure and continue.
|
|
57
|
+
- `block`: perform only the configured bounded remediation attempts, then stop
|
|
58
|
+
at a boundary if the gate still fails.
|
|
59
|
+
- `prompt`: stop at a boundary after surfacing the failure; autonomy must not
|
|
60
|
+
reinterpret `prompt` as permission to continue.
|
|
61
|
+
|
|
62
|
+
## Boundary classes
|
|
63
|
+
|
|
64
|
+
| Class | Required behavior |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `destructive-change-risk` | Stop before deletion, overwrite of irreplaceable state, force-push/history rewrite, or another destructive action not explicitly authorized by the project contract. |
|
|
67
|
+
| `unresolved-critical-findings` | Stop while any Critical finding is unresolved or a blocking review cannot produce a passing result. Important findings follow the configured gate policy; they never silently disappear. |
|
|
68
|
+
| `repository-policy-approval` | Stop when a protected branch, required reviewer, merge policy, ownership boundary, or equivalent repository rule requires a human or external approval. |
|
|
69
|
+
| `missing-credentials` | Stop when a required credential is absent and no integrity-preserving offline or lower-tier route exists. Name the variable or credential class, never its value. |
|
|
70
|
+
| `product-judgment` | Stop when available evidence does not support a choice within the approved goal and choosing would materially change product scope or behavior. |
|
|
71
|
+
|
|
72
|
+
## Provenance
|
|
73
|
+
|
|
74
|
+
Every autonomous resolution must leave durable, secret-free evidence in the
|
|
75
|
+
artifact already owned by the calling workflow:
|
|
76
|
+
|
|
77
|
+
- planning and artifact decisions: the relevant artifact plus its review row;
|
|
78
|
+
- implementation and boundary decisions: `implementation.md`;
|
|
79
|
+
- review and dispatch decisions: the dispatch record schema and the referenced
|
|
80
|
+
review artifact;
|
|
81
|
+
- gate execution: structured gate result, attempt count, and disposition;
|
|
82
|
+
- documentation and completion decisions: `state.md` and the normal summary or
|
|
83
|
+
PR artifact.
|
|
84
|
+
|
|
85
|
+
Record the gate ID from this inventory, the selected outcome, the evidence or
|
|
86
|
+
configuration source, and whether the result was auto-resolved or stopped at a
|
|
87
|
+
boundary. Do not record tokens, secret values, signed URLs, or an active
|
|
88
|
+
autonomy flag.
|
|
89
|
+
|
|
90
|
+
## Gate inventory
|
|
91
|
+
|
|
92
|
+
`classification` is either `auto-resolve` or `boundary:<class>`. A boundary row
|
|
93
|
+
may first perform safe, bounded work and stop only if the stated condition
|
|
94
|
+
remains.
|
|
95
|
+
|
|
96
|
+
| ID | Skill | Gate | Interactive behavior | Autonomous resolution | Classification | Provenance |
|
|
97
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
98
|
+
| 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 |
|
|
99
|
+
| 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 |
|
|
100
|
+
| 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 |
|
|
101
|
+
| 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 |
|
|
102
|
+
| 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 |
|
|
103
|
+
| 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 |
|
|
104
|
+
| 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 |
|
|
105
|
+
| 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 |
|
|
106
|
+
| 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 |
|
|
107
|
+
| QS-08 | `oat-project-quick-start` | Dispatch-ladder ownership | Choose shared, local, user, or no adoption | Do not choose a persistence scope; an incomplete ladder remains a readiness boundary | `boundary:repository-policy-approval` | Resolver diagnostic |
|
|
108
|
+
| 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 |
|
|
109
|
+
| 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 |
|
|
110
|
+
| QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Minor 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 |
|
|
111
|
+
| 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 | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
|
|
112
|
+
| 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 |
|
|
113
|
+
| 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 |
|
|
114
|
+
| 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 |
|
|
115
|
+
| 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 |
|
|
116
|
+
| 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 |
|
|
117
|
+
| 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 |
|
|
118
|
+
| 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 |
|
|
119
|
+
| 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 |
|
|
120
|
+
| 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 |
|
|
121
|
+
| 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 |
|
|
122
|
+
| 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 |
|
|
123
|
+
| 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 |
|
|
124
|
+
| 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 |
|
|
125
|
+
| 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 |
|
|
126
|
+
| 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 |
|
|
127
|
+
| 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 |
|
|
128
|
+
| 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 |
|
|
129
|
+
| 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 |
|
|
130
|
+
| PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
|
|
131
|
+
| PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
|
|
132
|
+
| PLAN-05 | `oat-project-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
|
|
133
|
+
| 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 |
|
|
134
|
+
| 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 |
|
|
135
|
+
| 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 |
|
|
136
|
+
| PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Minor 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 |
|
|
137
|
+
| 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 |
|
|
138
|
+
| 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 |
|
|
139
|
+
| 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 |
|
|
140
|
+
| 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 |
|
|
141
|
+
| 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 |
|
|
142
|
+
| IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
|
|
143
|
+
| IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
|
|
144
|
+
| 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 |
|
|
145
|
+
| 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 |
|
|
146
|
+
| IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Minor 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 |
|
|
147
|
+
| 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 |
|
|
148
|
+
| 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 |
|
|
149
|
+
| 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 |
|
|
150
|
+
| 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 |
|
|
151
|
+
| 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 |
|
|
152
|
+
| IMPLEMENT-05 | `oat-project-implement` | Malformed phase-review setting | Ask user to repair | Stop before task execution | `boundary:repository-policy-approval` | Validation diagnostic |
|
|
153
|
+
| 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 |
|
|
154
|
+
| 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 |
|
|
155
|
+
| 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 |
|
|
156
|
+
| 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 |
|
|
157
|
+
| 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 |
|
|
158
|
+
| 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 |
|
|
159
|
+
| 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 | `boundary:unresolved-critical-findings` / `boundary:missing-credentials` | Review rows and blocker report |
|
|
160
|
+
| 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` |
|
|
161
|
+
| 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 |
|
|
162
|
+
| 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 |
|
|
163
|
+
| 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 |
|
|
164
|
+
| 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 |
|
|
165
|
+
| IMPLEMENT-18 | `oat-project-implement` | 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 |
|
|
166
|
+
| 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 |
|
|
167
|
+
| 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 |
|
|
168
|
+
| 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 |
|
|
169
|
+
| 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 |
|
|
170
|
+
| 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 |
|
|
171
|
+
| 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 |
|
|
172
|
+
| 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 |
|
|
173
|
+
| 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 |
|
|
174
|
+
| 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 |
|
|
175
|
+
| 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 |
|
|
176
|
+
| 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 |
|
|
177
|
+
| 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 |
|
|
178
|
+
| 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 |
|
|
179
|
+
| 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 |
|
|
180
|
+
| 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 |
|
|
181
|
+
| 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 |
|
|
182
|
+
| REVIEWPROVIDE-05 | `oat-project-review-provide` | Re-review narrowing | Narrow to fixes or review full scope | Use configured preference; when unset, narrow to completed fix commits | `auto-resolve` | Review Scope metadata |
|
|
183
|
+
| 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 |
|
|
184
|
+
| 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 |
|
|
185
|
+
| 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 |
|
|
186
|
+
| 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 |
|
|
187
|
+
| 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 |
|
|
188
|
+
| 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 | `boundary:repository-policy-approval` | Cycle-count blocker |
|
|
189
|
+
| 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 |
|
|
190
|
+
| 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 |
|
|
191
|
+
| REVIEWRECEIVE-05 | `oat-project-review-receive` | Final Minor disposition | Defer selected/all or convert all | Convert in-scope Minors by default; reject only with concrete evidence | `auto-resolve` | Finding disposition map |
|
|
192
|
+
| 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 |
|
|
193
|
+
| 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 |
|
|
194
|
+
| 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 |
|
|
195
|
+
| 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 |
|
|
196
|
+
| 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 |
|
|
197
|
+
| 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 |
|
|
198
|
+
| 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` |
|
|
199
|
+
|
|
200
|
+
## Gate-inventory maintenance
|
|
201
|
+
|
|
202
|
+
Any change under one of the inventory's skill roots that adds, removes, or
|
|
203
|
+
rewrites a line matched by the broadened prompt scan must update the HEAD
|
|
204
|
+
prompt-site coverage table in the same commit. Map each reachable gate to its
|
|
205
|
+
inventory ID; map only metadata, output text, prompt payloads, no-prompt
|
|
206
|
+
assertions, vendored copies, and other unreachable occurrences to `NG`. Add a
|
|
207
|
+
new inventory row when no existing gate ID describes the behavior.
|
|
208
|
+
|
|
209
|
+
`packages/cli/src/validation/autonomy-gate-inventory.test.ts` is the CI
|
|
210
|
+
backstop. It derives the fifteen scan roots from the inventory, scans Markdown
|
|
211
|
+
recursively, and matches each site by file plus a stable semantic key derived
|
|
212
|
+
from its normalized heading and text, never by line number. Its failure output
|
|
213
|
+
provides the key to add or replace. The committed line-number comparison below
|
|
214
|
+
remains immutable baseline evidence for the original p01-t01 verification.
|
|
215
|
+
|
|
216
|
+
## HEAD prompt-site coverage
|
|
217
|
+
|
|
218
|
+
| Skill root / file | Stable prompt-site mappings |
|
|
219
|
+
| --- | --- |
|
|
220
|
+
| `oat-project-new/SKILL.md` | `f7ca8635452f -> NG`; `b137f73db20c -> NEW-01`; `45b699c1c0b5 -> NEW-01`; `ba6d120791c1 -> NEW-01`; `33ce6a6c30aa -> NEW-02`; `0f5a90f34f63 -> NG`; `d0ea3a91261d -> NG` |
|
|
221
|
+
| `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `b137f73db20c -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `0960c3eb1564 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `39e3fe23dd85 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG` |
|
|
222
|
+
| `oat-project-quick-start/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
223
|
+
| `oat-project-discover/SKILL.md` | `8fe35bbfbcd6 -> NG`; `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `5c8d5f04f6e2 -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `523764981692 -> DISC-06`; `7eaa40e078b9 -> DISC-07`; `b57408be1e7b -> DISC-07`; `4683ea4a7d2f -> DISC-07`; `1195a16a0bc5 -> NG`; `d20eb00f1887 -> DISC-08`; `3f0b53056edd -> DISC-08`; `b92484ef7ca4 -> DISC-08`; `3cf10a406501 -> DISC-08` |
|
|
224
|
+
| `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `5eb3949f32e1 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `8678cdb975d0 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `38a0adf2dcd6 -> DES-07`; `16c2036990df -> DES-07`; `b23bbe0c4282 -> DES-07`; `71972778f6b8 -> DES-07`; `7f88caab1f38 -> DES-07`; `7eb6f3a2d666 -> DES-07`; `e7a364820674 -> DES-07`; `241de26a0b0b -> DES-07`; `9d7a898331a3 -> DES-07`; `686152516d78 -> DES-07`; `8ca3cff907f3 -> DES-07`; `13e6349960fb -> DES-07`; `fd3d71fade25 -> DES-07`; `8daa828dfad0 -> NG`; `d20eb00f1887 -> DES-08`; `3f0b53056edd -> DES-08`; `b92484ef7ca4 -> DES-08`; `3cf10a406501 -> DES-08`; `033fb711de49 -> NG` |
|
|
225
|
+
| `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
|
|
226
|
+
| `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `71d18f57db67 -> PLAN-10`; `9b6ef603b0b9 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG` |
|
|
227
|
+
| `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `b137f73db20c -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09` |
|
|
228
|
+
| `oat-project-implement/SKILL.md` | `c6732295bc8c -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
|
|
229
|
+
| `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `14d89fe39c8c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
|
|
230
|
+
| `oat-project-implement/references/dispatch-and-dry-run.md` | `21b85f5e4daa -> IMPLEMENT-08`; `74c92b32bb2a -> IMPLEMENT-08`; `8efd2d0517ab -> IMPLEMENT-09`; `461ed9b3e495 -> IMPLEMENT-09`; `b5ad64fd744d -> NG`; `14ce436cfffa -> NG`; `043ca36da3e2 -> NG`; `a23e45c1dc8d -> NG`; `498143bb41a7 -> NG`; `4fe3eb179023 -> NG`; `7f75485e5a33 -> NG`; `8ec3a96df029 -> NG`; `16c3f96e758d -> NG`; `5915c41fe058 -> NG`; `f51e43eeac56 -> NG`; `fd41c25623cb -> NG`; `58a932ed6453 -> NG`; `4718bd3ce12d -> NG`; `58c444a2126b -> NG` |
|
|
231
|
+
| `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
232
|
+
| `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10` |
|
|
233
|
+
| `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07` |
|
|
234
|
+
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `173a1c48e53c -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
|
|
235
|
+
| `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
236
|
+
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `c9b36a381b8e -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `24f1f127f580 -> NG`; `626e6d6f4455 -> NG`; `f58150418ef5 -> NG`; `349f0a976a3a -> NG`; `c26231b8bb48 -> NG`; `ab1d4a57bebb -> NG`; `696bb6045b6a -> NG` |
|
|
237
|
+
| `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
|
|
238
|
+
| `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
239
|
+
| `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `ffcdc9d576c0 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `9497d9f94eed -> COMPLETE-01`; `7b59c728d3fb -> COMPLETE-01`; `48e10a9636fe -> COMPLETE-01`; `c0dad37fc166 -> COMPLETE-01`; `aa9a36243ec1 -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG` |
|
|
240
|
+
| `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `fab62c510bd0 -> REVIEWPROVIDE-05`; `a9f30853c867 -> REVIEWPROVIDE-05`; `0929c916fc20 -> REVIEWPROVIDE-05`; `f9a37c63afab -> REVIEWPROVIDE-05`; `687bb9368f92 -> REVIEWPROVIDE-05`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `fcb9de611ff3 -> NG`; `d2a838dfb18d -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
|
|
241
|
+
| `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `df49c8c6f192 -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `c8ab5dd90075 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `3ad3aadb8c60 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `3f758313fedb -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `aba178a21441 -> REVIEWRECEIVE-04`; `a37e601cd731 -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `90001dadf75f -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG` |
|
|
242
|
+
| `oat-dispatch-subagents/SKILL.md` | `cb4f86157fd6 -> DISPATCH-01`; `f165b1626192 -> DISPATCH-01`; `7ed5e2b1eb71 -> PDISPATCH-01`; `11c72bcdebad -> DISPATCH-02`; `0834ee701e12 -> DISPATCH-02`; `7fda54e1d519 -> PDISPATCH-01` |
|
|
243
|
+
| `oat-dispatch-subagents/references/provider-claude.md` | `fbe3a21e9533 -> NG` |
|
|
244
|
+
| `oat-dispatch-subagents/references/provider-codex.md` | `95b0f82018c7 -> NG` |
|
|
245
|
+
| `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
|
|
246
|
+
| `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
|
|
247
|
+
| `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
|
|
248
|
+
|
|
249
|
+
## Prompt-scan comparison
|
|
250
|
+
|
|
251
|
+
The verification scan is:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
rg -n -i "AskUserQuestion|ask (the user|once)|approval|confirm|prompt|choose|wait for" \
|
|
255
|
+
.agents/skills/<root>/ --glob '*.md'
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
It was run recursively for each of the fifteen roots below. Every discovered
|
|
259
|
+
site is listed. `NG` means the phrase is metadata, output text, a no-prompt
|
|
260
|
+
assertion, a prompt payload, or another non-interactive occurrence rather than
|
|
261
|
+
a reachable gate. A range such as `38-39` accounts for both matching lines.
|
|
262
|
+
|
|
263
|
+
**Scan baseline:** `113c8f6f` (`feat(p01-t01): add autonomy contract and gate
|
|
264
|
+
inventory`). The file-and-line mappings below were captured against that commit.
|
|
265
|
+
|
|
266
|
+
| Skill root / file | `file:line -> inventory row` comparison |
|
|
267
|
+
| --- | --- |
|
|
268
|
+
| `oat-project-new/SKILL.md` | `8 -> NG`; `38-39,43 -> NEW-01`; `58 -> NEW-02`; `74,76 -> NG` |
|
|
269
|
+
| `oat-project-quick-start/SKILL.md` | `9,52 -> NG`; `36,203,211,213,215 -> QS-04`; `88-89,93 -> QS-01`; `109 -> QS-02`; `236 -> NG`; `241,245,249,251,253,282,288 -> QS-05`; `306,315,326-328,331,333 -> QS-06`; `384 -> QS-07`; `393,452,464 -> NG`; `511 -> QS-08`; `532,535,543 -> QS-09`; `573 -> QS-10`; `728 -> NG`; `735 -> QS-12`; `750 -> NG` |
|
|
270
|
+
| `oat-project-discover/SKILL.md` | `4,7,27-28,40 -> NG`; `246,277 -> DISC-03`; `318,320,329 -> DISC-05`; `389,392,394,398 -> DISC-06`; `405,407,423 -> DISC-07`; `476 -> NG` |
|
|
271
|
+
| `oat-project-design/SKILL.md` | `4,7,16,26 -> NG`; `55 -> DES-01`; `67,84 -> NG`; `88,90,97,105,111,118,120-121,125,154,156,160 -> DES-03`; `162,165,248,250 -> DES-04`; `325 -> NG`; `330,339-340,352,355,361 -> DES-05`; `446-447,449,451,488,502 -> DES-06`; `534,547 -> NG`; `560-561,564,587,589,591,596,599,606,608,610,615,619,622,624,652 -> DES-07`; `671,700 -> NG` |
|
|
272
|
+
| `oat-project-design/references/selective-review-pass.md` | `55,111 -> DES-06`; `112 -> DES-07` |
|
|
273
|
+
| `oat-project-plan/SKILL.md` | `8,27,37 -> NG`; `74 -> PLAN-01`; `97 -> PLAN-02`; `170 -> NG`; `179 -> PLAN-04`; `207,326,328,332-334 -> NG`; `348 -> PLAN-05`; `374,403 -> PLAN-06`; `414 -> NG`; `418 -> PLAN-07`; `422,427 -> PLAN-08`; `488 -> NG`; `516,519 -> PLAN-10`; `606 -> NG`; `613 -> PLAN-11`; `625 -> NG` |
|
|
274
|
+
| `oat-project-import-plan/SKILL.md` | `9,21,58 -> NG`; `86-87,91 -> IMPORT-01`; `141,147 -> IMPORT-03`; `159 -> IMPORT-04`; `183,196 -> NG`; `276 -> IMPORT-06`; `288-289 -> IMPORT-07`; `453 -> NG`; `460 -> IMPORT-09` |
|
|
275
|
+
| `oat-project-implement/SKILL.md` | `9,29,55 -> NG`; `113 -> IMPLEMENT-01`; `158 -> NG` |
|
|
276
|
+
| `oat-project-implement/references/plan-and-resume.md` | `47 -> IMPLEMENT-02`; `108,113,121,123,129-131,135,137,139,141,159,161,163 -> IMPLEMENT-03`; `168,171-172 -> IMPLEMENT-04`; `211 -> IMPLEMENT-05`; `235 -> NG`; `238 -> IMPLEMENT-06`; `255 -> IMPLEMENT-07` |
|
|
277
|
+
| `oat-project-implement/references/dispatch-and-dry-run.md` | `52,69 -> IMPLEMENT-08`; `154,179 -> IMPLEMENT-09`; `198,225,244,332 -> NG`; `414,418,420-422,435,440,453,477-478,514 -> NG` |
|
|
278
|
+
| `oat-project-implement/references/completion-and-closeout.md` | `165,184,194,197,219,221,236 -> IMPLEMENT-11`; `249 -> NG`; `265 -> IMPLEMENT-12`; `271-274 -> IMPLEMENT-14`; `280,282-286,292,307-308,311,313-316,318-319,321-322,329-330 -> IMPLEMENT-13, IMPLEMENT-14, IMPLEMENT-15, IMPLEMENT-16`; `332,334,336,343,359,362,370 -> IMPLEMENT-17`; `421 -> NG`; `428 -> IMPLEMENT-18` |
|
|
279
|
+
| `oat-project-implement/references/phase-execution.md` | `199 -> NG`; `260-261 -> IMPLEMENT-10` |
|
|
280
|
+
| `oat-project-document/SKILL.md` | `4,8,13 -> NG`; `46 -> DOCUMENT-03`; `54,76 -> DOCUMENT-02`; `106 -> DOCUMENT-01`; `200,238 -> NG`; `384,416 -> DOCUMENT-02`; `546 -> NG` |
|
|
281
|
+
| `oat-project-summary/SKILL.md` | `4,7,30 -> NG`; `86 -> SUMMARY-01`; `201,203,209-210,249,257,297 -> NG` |
|
|
282
|
+
| `oat-project-pr-final/SKILL.md` | `4,7,26,43 -> NG`; `104 -> PRFINAL-01` |
|
|
283
|
+
| `oat-project-complete/SKILL.md` | `7,16 -> NG`; `57,61,63,80,89,92,95,103,105,114,124 -> COMPLETE-01`; `140 -> NG`; `205,214 -> COMPLETE-02`; `219,223 -> COMPLETE-03`; `283,468 -> NG` |
|
|
284
|
+
| `oat-project-review-provide/SKILL.md` | `4,7,28,34,44,93 -> NG`; `166 -> REVIEWPROVIDE-02`; `236,239-240,261 -> REVIEWPROVIDE-04`; `308,314-316,318 -> REVIEWPROVIDE-05`; `370,373 -> REVIEWPROVIDE-06`; `621 -> REVIEWPROVIDE-07`; `632,664 -> REVIEWPROVIDE-08`; `645,647,751,770-772,778 -> NG`; `869 -> REVIEWPROVIDE-09`; `911,927 -> NG` |
|
|
285
|
+
| `oat-project-review-receive/SKILL.md` | `4,7,26,40,71,128,178,211,215,252,259 -> NG`; `267 -> REVIEWRECEIVE-01`; `273-274,278 -> NG`; `482 -> REVIEWRECEIVE-08`; `517 -> REVIEWRECEIVE-02`; `548 -> REVIEWRECEIVE-04`; `590 -> REVIEWRECEIVE-05`; `614 -> REVIEWRECEIVE-06`; `647 -> REVIEWRECEIVE-07`; `721,724 -> NG` |
|
|
286
|
+
| `oat-dispatch-subagents/SKILL.md` | `94,98 -> DISPATCH-01`; `110 -> PDISPATCH-01`; `117,123 -> DISPATCH-02`; `126 -> PDISPATCH-01` |
|
|
287
|
+
| `oat-dispatch-subagents/references/provider-cursor.md` | `40,49 -> NG` |
|
|
288
|
+
| `oat-dispatch-subagents/references/record-schema.md` | `74 -> NG` |
|
|
289
|
+
| `oat-dispatch-subagents/references/provider-claude.md` | `44 -> NG` |
|
|
290
|
+
| `oat-dispatch-subagents/references/provider-codex.md` | `64 -> NG` |
|
|
291
|
+
| `oat-project-dispatch-subagents/SKILL.md` | `97,105 -> PDISPATCH-01` |
|
|
292
|
+
|
|
293
|
+
Zero discovered prompt sites are unmapped. The broad scan's `NG` sites are
|
|
294
|
+
accounted for explicitly and do not represent user-input waits.
|
|
@@ -118,6 +118,35 @@ Determine whether this is a first implementation run:
|
|
|
118
118
|
- If `"$PROJECT_PATH/implementation.md"` does not exist, treat as first run.
|
|
119
119
|
- If it exists but still has template placeholders and no completed task evidence, treat as first run.
|
|
120
120
|
|
|
121
|
+
#### Autonomous checkpoint resolution
|
|
122
|
+
|
|
123
|
+
If `OAT_AUTONOMOUS=1`, resolve checkpoint state before the workflow preference
|
|
124
|
+
or standard prompt paths below:
|
|
125
|
+
|
|
126
|
+
1. Validate any existing `oat_plan_hill_phases` value using the normal rules.
|
|
127
|
+
A valid `[]` still means every phase; a valid explicit phase array still
|
|
128
|
+
means exactly those phases. Preserve either value unchanged and treat it as
|
|
129
|
+
confirmed for this run.
|
|
130
|
+
2. On a first implementation run where the field is absent, determine the
|
|
131
|
+
final phase ID and write
|
|
132
|
+
`oat_plan_hill_phases: ["<final_phase_id>"]`. This is the existing
|
|
133
|
+
`hillCheckpointDefault: final` resolution, made explicit without prompting.
|
|
134
|
+
3. Write `oat_auto_review_at_hill_checkpoints: true`. Autonomous checkpoints
|
|
135
|
+
always review and receive before continuing, even if an earlier interactive
|
|
136
|
+
setup had disabled automatic checkpoint review.
|
|
137
|
+
4. Record gate `IMPLEMENT-03` and the selected final phase (or preserved
|
|
138
|
+
explicit value) in `implementation.md`. Do not persist either autonomy
|
|
139
|
+
environment signal.
|
|
140
|
+
|
|
141
|
+
An invalid value remains a validation boundary; do not replace it
|
|
142
|
+
autonomously. A missing value on a resumed implementation is bookkeeping drift,
|
|
143
|
+
not a first-run default, and is also a boundary until the durable artifacts can
|
|
144
|
+
be reconciled from authoritative evidence.
|
|
145
|
+
|
|
146
|
+
After this branch succeeds, skip the workflow preference, standard checkpoint
|
|
147
|
+
prompt, and auto-review preference prompt below and continue to Step 2.6.
|
|
148
|
+
When `OAT_AUTONOMOUS` is not exactly `1`, this branch is inert.
|
|
149
|
+
|
|
121
150
|
#### Workflow preference check (before prompting)
|
|
122
151
|
|
|
123
152
|
Before presenting the checkpoint prompt to the user, check if a workflow preference has been configured:
|
|
@@ -184,6 +213,33 @@ review; Tier 1 always runs `oat-reviewer` after each phase.
|
|
|
184
213
|
|
|
185
214
|
**On resume:** If `oat_auto_review_at_hill_checkpoints` is already present in plan.md frontmatter, skip Touchpoint A entirely — do not re-ask, do not re-read config, do not print the auto-review note. The stored value is authoritative. If only legacy `oat_auto_review_at_checkpoints` is present, treat it as authoritative for this run and write the new `oat_auto_review_at_hill_checkpoints` key on the next plan frontmatter update.
|
|
186
215
|
|
|
216
|
+
#### Autonomous checkpoint review and receive
|
|
217
|
+
|
|
218
|
+
When `OAT_AUTONOMOUS=1`, a configured checkpoint never waits for a user:
|
|
219
|
+
|
|
220
|
+
1. Use the scope calculation in `phase-execution.md` and dispatch
|
|
221
|
+
`oat-project-review-provide` with `oat_review_invocation: auto` through the
|
|
222
|
+
project dispatch substrate.
|
|
223
|
+
2. Validate the returned artifact and invoke `oat-project-review-receive`
|
|
224
|
+
immediately. Its auto-review disposition path must run without user
|
|
225
|
+
prompts.
|
|
226
|
+
3. If receive creates fix tasks, execute them through the normal implement
|
|
227
|
+
route and repeat the same bounded review/receive cycle. Do not mark the
|
|
228
|
+
checkpoint complete while blocking findings remain.
|
|
229
|
+
4. After a passing disposition, commit the review and HiLL bookkeeping. For a
|
|
230
|
+
non-final checkpoint, continue directly to the next schedule entry. The
|
|
231
|
+
final checkpoint routes to the Final HiLL Closeout Sequence instead of
|
|
232
|
+
waiting here.
|
|
233
|
+
|
|
234
|
+
An unresolved Critical finding, failed blocking review, invalid receive
|
|
235
|
+
artifact, or exhausted review route is a reported autonomy boundary. Every
|
|
236
|
+
launch and receive must reference its structured dispatch record; record gate
|
|
237
|
+
`IMPLEMENT-10`, the review scope, selected route, and achieved independence in
|
|
238
|
+
`implementation.md`.
|
|
239
|
+
|
|
240
|
+
This block replaces only the checkpoint wait while autonomy is active. The
|
|
241
|
+
interactive pause and manual receive paths remain unchanged otherwise.
|
|
242
|
+
|
|
187
243
|
### Step 2.6: Validate Optional Phase Review Gate
|
|
188
244
|
|
|
189
245
|
Read `oat_phase_review_gate` from `"$PROJECT_PATH/plan.md"` frontmatter when present.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-pr-final
|
|
3
|
-
version: 1.
|
|
3
|
+
version: 1.5.0
|
|
4
4
|
description: Use when the user requests or confirms opening the final PR for an active OAT project — e.g. "open the final PR", "ship it", "run oat-project-pr-final", or confirms a previously offered final-PR step. Do NOT auto-invoke when phases are marked complete. Generates the final lifecycle PR description from artifacts and creates the PR.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
@@ -38,6 +38,11 @@ Generate a PR-ready summary grounded in canonical OAT artifacts, including:
|
|
|
38
38
|
|
|
39
39
|
**Purpose:** Create final PR description and open the PR.
|
|
40
40
|
|
|
41
|
+
When `OAT_AUTONOMOUS=1`, read `references/docs/autonomy-contract.md` and keep
|
|
42
|
+
`OAT_NON_INTERACTIVE=1` set for this run. Autonomous resolution is limited to
|
|
43
|
+
the explicit branches below; never persist either environment signal. When
|
|
44
|
+
autonomy is inactive, preserve the existing interactive path unchanged.
|
|
45
|
+
|
|
41
46
|
## Progress Indicators (User-Facing)
|
|
42
47
|
|
|
43
48
|
When executing this skill, provide lightweight progress feedback so the user can tell what’s happening after they confirm.
|
|
@@ -162,9 +167,23 @@ echo "$FINAL_ROW"
|
|
|
162
167
|
|
|
163
168
|
If `FINAL_ROW` is missing or does not contain `passed`:
|
|
164
169
|
|
|
165
|
-
-
|
|
166
|
-
|
|
167
|
-
|
|
170
|
+
- If `OAT_AUTONOMOUS=1`, gate `PRFINAL-03` is a boundary stop. Never select
|
|
171
|
+
"proceed anyway." Report the current or missing final-review row, record the
|
|
172
|
+
blocker in project provenance, and stop before writing the PR artifact,
|
|
173
|
+
pushing, or creating the PR. Route the resumable next step to
|
|
174
|
+
`oat-project-review-provide code final` followed by
|
|
175
|
+
`oat-project-review-receive`.
|
|
176
|
+
- If the status is `fixes_completed`, require that same re-review/receive
|
|
177
|
+
sequence to reach `passed`; completed fixes alone are not approval.
|
|
178
|
+
- Otherwise:
|
|
179
|
+
- Tell user: "Final review is not marked passed. Run the
|
|
180
|
+
`oat-project-review-provide` skill with `code final` then the
|
|
181
|
+
`oat-project-review-receive` skill."
|
|
182
|
+
- Ask whether to proceed anyway (allowed, but discouraged).
|
|
183
|
+
- If the status is `fixes_completed`: fixes were implemented but the
|
|
184
|
+
re-review hasn't been run/recorded yet; re-run the
|
|
185
|
+
`oat-project-review-provide` skill with `code final` then the
|
|
186
|
+
`oat-project-review-receive` skill to reach `passed`.
|
|
168
187
|
|
|
169
188
|
### Step 3: Collect Project Summary
|
|
170
189
|
|