@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,439 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oat-project-autonomous
|
|
3
|
+
version: 1.0.1
|
|
4
|
+
description: Use when a user explicitly asks to run an OAT project autonomously end-to-end. Activates session-only autonomy, resumes the correct lifecycle phase, and drives the existing OAT skills through final PR or a reported boundary.
|
|
5
|
+
argument-hint: '<goal | project-slug | ticket-ref>'
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Autonomous OAT Project
|
|
12
|
+
|
|
13
|
+
Run an OAT project from its persisted entry state to final PR by chaining the
|
|
14
|
+
existing lifecycle skills. This skill supplies policy and sequencing; each
|
|
15
|
+
lifecycle skill continues to own its artifacts, gates, reviews, and state.
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
Use this skill only when the user explicitly requests autonomous end-to-end OAT
|
|
20
|
+
execution, including:
|
|
21
|
+
|
|
22
|
+
- a bare goal that should become a complete OAT project;
|
|
23
|
+
- a project, ticket, or approved plan that should resume and run to final PR;
|
|
24
|
+
- a deliberate restart of an interrupted autonomous run.
|
|
25
|
+
|
|
26
|
+
Do not auto-invoke this skill merely because a project is ready for its next
|
|
27
|
+
phase. For one interactive lifecycle phase, invoke that phase's skill instead.
|
|
28
|
+
|
|
29
|
+
## Arguments
|
|
30
|
+
|
|
31
|
+
Parse `$ARGUMENTS` as one of:
|
|
32
|
+
|
|
33
|
+
- a substantive goal;
|
|
34
|
+
- an existing project slug or path;
|
|
35
|
+
- a ticket or external reference with enough context to resolve the goal;
|
|
36
|
+
- empty only when `.oat/config.local.json` points to a valid active project.
|
|
37
|
+
|
|
38
|
+
## Prerequisites
|
|
39
|
+
|
|
40
|
+
- `oat` is available on `PATH`. If it is missing, stop with the installation
|
|
41
|
+
action; never approximate OAT artifacts, state, or CLI transitions manually.
|
|
42
|
+
- The current repository permits the requested work on the current branch.
|
|
43
|
+
- Read `references/gate-inventory.md` before resolving any autonomous gate.
|
|
44
|
+
|
|
45
|
+
## Mode Assertion
|
|
46
|
+
|
|
47
|
+
**OAT MODE: Autonomous Project Orchestration**
|
|
48
|
+
|
|
49
|
+
**Purpose:** Activate the session policy, detect persisted project state, and
|
|
50
|
+
chain the canonical lifecycle skills to final PR without unattended input
|
|
51
|
+
waits.
|
|
52
|
+
|
|
53
|
+
**BLOCKED Activities:**
|
|
54
|
+
|
|
55
|
+
- Bypassing, reimplementing, weakening, or silently satisfying a gate owned by
|
|
56
|
+
another skill.
|
|
57
|
+
- Persisting `OAT_AUTONOMOUS`, `OAT_NON_INTERACTIVE`, or an active autonomy mode
|
|
58
|
+
in project artifacts, config, shell profiles, or environment files.
|
|
59
|
+
- Approximating artifacts or state transitions when the OAT CLI is missing or
|
|
60
|
+
fails.
|
|
61
|
+
- Continuing through destructive-change risk, unresolved Critical findings,
|
|
62
|
+
required repository-policy approval, or missing credentials without an
|
|
63
|
+
integrity-preserving route.
|
|
64
|
+
- Adding a coordinator or other orchestration layer over
|
|
65
|
+
`oat-project-implement`'s phase-agent topology. That topology is owned by
|
|
66
|
+
implement; an extra layer has a documented wall-clock regression.
|
|
67
|
+
|
|
68
|
+
**ALLOWED Activities:**
|
|
69
|
+
|
|
70
|
+
- Setting the two autonomy environment variables for the current process tree.
|
|
71
|
+
- Resolving project home and persisted entry state.
|
|
72
|
+
- Selecting quick or spec-driven mode from the review-density rule.
|
|
73
|
+
- Invoking existing OAT lifecycle and dispatch skills in their required order.
|
|
74
|
+
- Auto-resolving only the gates authorized by the autonomy contract.
|
|
75
|
+
- Committing and pushing completed phase boundaries, subject to repository
|
|
76
|
+
policy, and reporting explicit boundary stops.
|
|
77
|
+
|
|
78
|
+
**Self-Correction Protocol:**
|
|
79
|
+
|
|
80
|
+
If you catch yourself:
|
|
81
|
+
|
|
82
|
+
- Re-describing a lifecycle phase instead of invoking its skill → STOP and load
|
|
83
|
+
the owning skill.
|
|
84
|
+
- Inventing a target, artifact, state transition, or gate outcome → STOP and
|
|
85
|
+
use the owning OAT CLI or skill contract.
|
|
86
|
+
- Waiting for mid-run input → STOP, map the prompt to the gate inventory, then
|
|
87
|
+
auto-resolve it or emit a boundary blocker report.
|
|
88
|
+
- Launching a second review route after a launch was accepted → STOP and use
|
|
89
|
+
the accepted handle's bounded recovery path.
|
|
90
|
+
|
|
91
|
+
**Recovery:**
|
|
92
|
+
|
|
93
|
+
1. Persist only safe, owned bookkeeping.
|
|
94
|
+
2. Record the deviation or inventory gap in the learnings log.
|
|
95
|
+
3. Return to the earliest incomplete canonical lifecycle step, or stop with the
|
|
96
|
+
structured blocker report.
|
|
97
|
+
|
|
98
|
+
## Progress Indicators (User-Facing)
|
|
99
|
+
|
|
100
|
+
Print this banner once at invocation:
|
|
101
|
+
|
|
102
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
103
|
+
OAT ▸ AUTONOMOUS PROJECT
|
|
104
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
105
|
+
|
|
106
|
+
Print each indicator only when its step begins:
|
|
107
|
+
|
|
108
|
+
- `[1/9] Activating session autonomy and resolving the project…`
|
|
109
|
+
- `[2/9] Detecting persisted lifecycle state…`
|
|
110
|
+
- `[3/9] Selecting workflow review density…`
|
|
111
|
+
- `[4/9] Gathering external-integration evidence…`
|
|
112
|
+
- `[5/9] Initializing execution learnings…`
|
|
113
|
+
- `[6/9] Running lifecycle phases and independent reviews…`
|
|
114
|
+
- `[7/9] Completing implementation closeout…`
|
|
115
|
+
- `[8/9] Committing and pushing the phase boundary…`
|
|
116
|
+
- `[9/9] Producing the autonomous run report…`
|
|
117
|
+
|
|
118
|
+
For long reviews, verification, builds, and pushes, print one starting line and
|
|
119
|
+
one completion line. Never print all step indicators up front.
|
|
120
|
+
|
|
121
|
+
## Process
|
|
122
|
+
|
|
123
|
+
### Step 0: Activate Policy and Resolve Active Project
|
|
124
|
+
|
|
125
|
+
Set both signals for this process and every bounded child in this run:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
export OAT_AUTONOMOUS=1
|
|
129
|
+
export OAT_NON_INTERACTIVE=1
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Do not persist either value.
|
|
133
|
+
|
|
134
|
+
If the current host is a cloud environment and a harness orientation skill is
|
|
135
|
+
discoverable, load it now and delegate project-home resolution to it. Keep this
|
|
136
|
+
skill provider-agnostic. Otherwise resolve in the current target repository.
|
|
137
|
+
|
|
138
|
+
Resolve the configured pointer and projects root:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
PROJECT_PATH=$(oat config get activeProject 2>/dev/null || true)
|
|
142
|
+
PROJECTS_ROOT="${OAT_PROJECTS_ROOT:-$(oat config get projects.root 2>/dev/null || echo ".oat/projects/shared")}"
|
|
143
|
+
PROJECTS_ROOT="${PROJECTS_ROOT%/}"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Resolution order:
|
|
147
|
+
|
|
148
|
+
1. An explicit existing project path or slug in `$ARGUMENTS`.
|
|
149
|
+
2. A valid `activeProject` in `.oat/config.local.json`.
|
|
150
|
+
3. A new project derived from a substantive goal or ticket reference.
|
|
151
|
+
|
|
152
|
+
For a new goal, derive a safe project slug but do not hand-create the project.
|
|
153
|
+
Mode selection in Step 2 chooses `oat-project-new` or
|
|
154
|
+
`oat-project-quick-start`, which owns scaffolding and pointer persistence. If
|
|
155
|
+
the input is empty, ambiguous, collides with another project, or resolves
|
|
156
|
+
outside the target repository, stop at the applicable product-judgment or
|
|
157
|
+
repository-policy boundary.
|
|
158
|
+
|
|
159
|
+
### Step 0.5: Capability Detection and Tier Selection
|
|
160
|
+
|
|
161
|
+
Before artifact writes, external side effects, tests, or long-running work,
|
|
162
|
+
load `oat-project-dispatch-subagents`, which in turn requires
|
|
163
|
+
`oat-dispatch-subagents`. Probe the roles and dispatch surfaces needed for
|
|
164
|
+
lifecycle workers and independent reviewers.
|
|
165
|
+
|
|
166
|
+
Classify each required capability as:
|
|
167
|
+
|
|
168
|
+
- `available`: proceed with delegated execution;
|
|
169
|
+
- `authorization required`: the autonomy policy supplies one authorization for
|
|
170
|
+
this run's exact roles, scopes, and authority;
|
|
171
|
+
- `not resolved`: use a documented integrity-preserving fallback only when the
|
|
172
|
+
owning lifecycle contract allows it; otherwise stop before side effects.
|
|
173
|
+
|
|
174
|
+
The authorization covers only lifecycle workers and reviewers for this run.
|
|
175
|
+
It does not widen file, command, credential, branch, or merge authority.
|
|
176
|
+
|
|
177
|
+
Report and lock the selected tier:
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
[preflight] Checking autonomous lifecycle delegation…
|
|
181
|
+
→ workers: {available | authorization required | not resolved}
|
|
182
|
+
→ reviewers: {available | authorization required | not resolved}
|
|
183
|
+
→ Selected: Tier {1 | 2} — {Delegated | Contract-approved fallback}
|
|
184
|
+
→ Reason: {available | policy authorized once | dispatch unavailable}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Do not repeatedly request authorization. If review independence is required
|
|
188
|
+
and no compliant route resolves, fail closed.
|
|
189
|
+
|
|
190
|
+
### Step 1: Detect the Persisted Entry State
|
|
191
|
+
|
|
192
|
+
For an existing project, use the CLI rather than ad-hoc frontmatter parsing:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
oat project status --project-path "$PROJECT_PATH" --json
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Read `state.md`, the plan readiness/frontmatter, `implementation.md`, review
|
|
199
|
+
rows, and PR state as supporting artifacts. Reconcile only through the owning
|
|
200
|
+
skill's documented resume behavior.
|
|
201
|
+
|
|
202
|
+
Select the earliest incomplete lifecycle owner:
|
|
203
|
+
|
|
204
|
+
| Persisted state | Route |
|
|
205
|
+
| --------------------------------------------------------- | ----------------------------------------------------------- |
|
|
206
|
+
| No project yet | Continue to Step 2, then invoke the selected creation skill |
|
|
207
|
+
| Quick-mode discovery, optional design, or plan incomplete | `oat-project-quick-start` |
|
|
208
|
+
| Spec-driven discovery incomplete | `oat-project-discover` |
|
|
209
|
+
| Spec-driven design/spec incomplete | `oat-project-design` |
|
|
210
|
+
| Design complete, plan incomplete | `oat-project-plan` |
|
|
211
|
+
| Imported plan requested | `oat-project-import-plan` |
|
|
212
|
+
| Plan ready for implementation | `oat-project-implement` |
|
|
213
|
+
| Implementation closeout snapshot incomplete | `oat-project-implement` |
|
|
214
|
+
| PR already open | Report the tracked PR; do not create a duplicate |
|
|
215
|
+
|
|
216
|
+
An approved plan enters at implementation. Never replay completed phases solely
|
|
217
|
+
because this is a new session.
|
|
218
|
+
|
|
219
|
+
### Step 2: Select Workflow Mode by Review Density
|
|
220
|
+
|
|
221
|
+
For a new goal, choose mode as a rigor selector:
|
|
222
|
+
|
|
223
|
+
- **Spec-driven:** use when discovery, design/spec, and plan each need their own
|
|
224
|
+
independent review before implementation.
|
|
225
|
+
- **Quick:** use when one independent bundled pre-implementation review of
|
|
226
|
+
discovery, optional lightweight design, and plan provides sufficient rigor.
|
|
227
|
+
|
|
228
|
+
Base the choice on uncertainty, integration risk, architecture decisions,
|
|
229
|
+
reversibility, and review needs—not task count. Record the chosen mode and
|
|
230
|
+
evidence-based review-density rationale in the first owned project artifact.
|
|
231
|
+
If evidence cannot support the choice without changing product intent, stop at
|
|
232
|
+
a product-judgment boundary.
|
|
233
|
+
|
|
234
|
+
Invoke `oat-project-new` for spec-driven mode or `oat-project-quick-start` for
|
|
235
|
+
quick mode. Existing projects retain their persisted workflow mode.
|
|
236
|
+
|
|
237
|
+
### Step 3: Perform External-Integration Research
|
|
238
|
+
|
|
239
|
+
Before planning, extensively research every integrated system, service,
|
|
240
|
+
protocol, and adjacent repository implicated by the goal:
|
|
241
|
+
|
|
242
|
+
1. Enumerate external dependencies and evidence gaps.
|
|
243
|
+
2. Use the best discoverable internal documentation/search skill for each
|
|
244
|
+
dependency, without hard-coding an organization or mechanism here.
|
|
245
|
+
3. Cross-check indexed or remote evidence against local checked-out sources
|
|
246
|
+
when available.
|
|
247
|
+
4. Record sources, coverage limits, and contradictions in discovery/design.
|
|
248
|
+
|
|
249
|
+
If no suitable research skill or remote source is available, log the gap and
|
|
250
|
+
continue with checked-out sources when that preserves integrity. Missing
|
|
251
|
+
evidence that would force material product or safety assumptions is a boundary,
|
|
252
|
+
not permission to guess.
|
|
253
|
+
|
|
254
|
+
### Step 4: Create and Maintain the Learnings Log
|
|
255
|
+
|
|
256
|
+
At run start, create `"$PROJECT_PATH/oat-execution-learnings.md"` when absent
|
|
257
|
+
with `oat_generated: false` and append-only intent. Append UTC-dated entries:
|
|
258
|
+
|
|
259
|
+
```markdown
|
|
260
|
+
## {timestamp} - {category} - {title}
|
|
261
|
+
|
|
262
|
+
**Observation:** ...
|
|
263
|
+
**Impact:** ...
|
|
264
|
+
**Recommendation:** ...
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Use only these categories: `gotcha`, `efficiency`, `documentation-gap`,
|
|
268
|
+
`candidate-skill-content`, `decision`, and `environment-limited`. Record
|
|
269
|
+
degraded routes, inventory gaps, unavailable verification, and reusable
|
|
270
|
+
improvements. Never record secrets, token values, signed URLs, or active
|
|
271
|
+
autonomy signals.
|
|
272
|
+
|
|
273
|
+
### Step 5: Invoke Lifecycle Skills and Reviews
|
|
274
|
+
|
|
275
|
+
Invoke each lifecycle skill by name and let it own its complete workflow,
|
|
276
|
+
artifacts, gates, commits, and state transitions. Re-read project status after
|
|
277
|
+
each return and route to the next earliest incomplete owner.
|
|
278
|
+
|
|
279
|
+
At every required artifact or code review:
|
|
280
|
+
|
|
281
|
+
1. Resolve the route before launch through
|
|
282
|
+
`oat-project-dispatch-subagents` and its generic dispatch substrate.
|
|
283
|
+
2. Prefer a configured independent gate route when its exact target is
|
|
284
|
+
available; otherwise select a policy-compliant cross-family reviewer.
|
|
285
|
+
3. Select same-family/context-independent review only when no second family is
|
|
286
|
+
dispatchable and the owning contract permits degradation. Record the
|
|
287
|
+
selection reason and achieved independence.
|
|
288
|
+
4. Treat an accepted launch as terminal. On post-accept failure, use only the
|
|
289
|
+
dispatch engine's bounded identical-payload retry and continuation rules,
|
|
290
|
+
then block. Never fall through to another route or cheaper target.
|
|
291
|
+
5. Reference the canonical dispatch record from the project review artifact.
|
|
292
|
+
Configured invocation evidence is authoritative; runtime identity is
|
|
293
|
+
separate and non-authoritative.
|
|
294
|
+
6. Fail closed for blocking reviews. Unresolved Critical findings always stop;
|
|
295
|
+
Important findings follow the configured gate policy.
|
|
296
|
+
|
|
297
|
+
Do not reproduce provider-specific model, catalog, or launch mechanics here.
|
|
298
|
+
|
|
299
|
+
### Step 6: Apply PR Topology
|
|
300
|
+
|
|
301
|
+
Default to one working branch and one final PR for the project. Do not merge.
|
|
302
|
+
|
|
303
|
+
Use stacked PRs only when the user explicitly requested them before autonomous
|
|
304
|
+
work began. Require the plan's `Stacked PR Strategy` to name the stack, branch
|
|
305
|
+
and base for each layer, dependency order, and fan-in rule. A parallel group is
|
|
306
|
+
valid only when both write-set independence and base-branch readiness are
|
|
307
|
+
proved in the plan.
|
|
308
|
+
|
|
309
|
+
Repository policy, protected branches, required approvals, or missing push/PR
|
|
310
|
+
credentials are boundaries.
|
|
311
|
+
|
|
312
|
+
### Step 7: Complete Through Implement's Lifecycle Tail
|
|
313
|
+
|
|
314
|
+
Do not chain summary, documentation, or PR independently after implementation.
|
|
315
|
+
Ensure `oat-project-implement` resolves its immutable
|
|
316
|
+
`oat_post_implement_sequence` and remains the closeout owner:
|
|
317
|
+
|
|
318
|
+
- configured legacy or structured sequences remain authoritative;
|
|
319
|
+
- when unset under autonomy, implement uses its autonomous default;
|
|
320
|
+
- resume an incomplete snapshot from its first incomplete stored step;
|
|
321
|
+
- final review must pass before final HiLL approval;
|
|
322
|
+
- autonomy auto-approves the final HiLL between pre-approval and post-approval
|
|
323
|
+
steps, as defined by the gate inventory;
|
|
324
|
+
- failed review, child failure, policy approval, destructive action, or missing
|
|
325
|
+
credential stops at its boundary.
|
|
326
|
+
|
|
327
|
+
The orchestrator's responsibility is to keep invoking
|
|
328
|
+
`oat-project-implement` until that sequence reaches `complete` or reports a
|
|
329
|
+
boundary. Never wrap or replace implement's phase-agent topology.
|
|
330
|
+
|
|
331
|
+
### Step 8: Commit and Push Phase Boundaries
|
|
332
|
+
|
|
333
|
+
After each lifecycle phase and its review/receive bookkeeping are complete:
|
|
334
|
+
|
|
335
|
+
1. Verify the task and project artifacts are committed by their owning skill.
|
|
336
|
+
2. Commit any remaining bounded orchestrator bookkeeping separately.
|
|
337
|
+
3. Push the current working branch without force.
|
|
338
|
+
4. Record the commit, push result, review record, and next persisted state.
|
|
339
|
+
|
|
340
|
+
Retry transient push failures using repository conventions. Stop on protected
|
|
341
|
+
branch policy, authentication denial, or any required destructive history
|
|
342
|
+
operation. Never merge or force-push.
|
|
343
|
+
|
|
344
|
+
### Step 9: Report Completion or a Boundary
|
|
345
|
+
|
|
346
|
+
On success, report:
|
|
347
|
+
|
|
348
|
+
```text
|
|
349
|
+
Autonomous run: complete
|
|
350
|
+
Project: {path}
|
|
351
|
+
Workflow mode: {quick | spec-driven}
|
|
352
|
+
Entry state: {phase}
|
|
353
|
+
Phases executed: {list}
|
|
354
|
+
Reviews: {scope → route, target, independence, record}
|
|
355
|
+
Commits/pushes: {phase → commit → result}
|
|
356
|
+
PR topology: {single | stack}
|
|
357
|
+
PR: {URL or tracked reference}
|
|
358
|
+
Learnings: {entry count and path}
|
|
359
|
+
Boundaries: none
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
On a boundary, commit and push only safe resumable state, then report:
|
|
363
|
+
|
|
364
|
+
```text
|
|
365
|
+
Autonomous run: blocked
|
|
366
|
+
Project: {path}
|
|
367
|
+
Gate/boundary: {inventory ID and class}
|
|
368
|
+
Reason: {concise reason}
|
|
369
|
+
Evidence: {artifact, command, or dispatch record}
|
|
370
|
+
Completed durable work: {last phase/task/commit/push}
|
|
371
|
+
Operator action: {exact non-secret action}
|
|
372
|
+
Resume: deliberately invoke oat-project-autonomous {project-slug}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Never wait silently for input.
|
|
376
|
+
|
|
377
|
+
## Restart and Resume
|
|
378
|
+
|
|
379
|
+
Autonomy ends with the process. A restart must deliberately invoke this skill
|
|
380
|
+
again; never persist or infer an active autonomous mode from artifacts. On
|
|
381
|
+
re-invocation, set the signals anew, resolve the same project, inspect persisted
|
|
382
|
+
state, and resume at the earliest incomplete owner without duplicating
|
|
383
|
+
completed work or changing an immutable closeout snapshot.
|
|
384
|
+
|
|
385
|
+
## Examples
|
|
386
|
+
|
|
387
|
+
### Basic Usage
|
|
388
|
+
|
|
389
|
+
```text
|
|
390
|
+
/oat-project-autonomous "Add signed webhook verification and open the final PR"
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
```text
|
|
394
|
+
/oat-project-autonomous cursor-cloud-autonomous-projects
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### Conversational
|
|
398
|
+
|
|
399
|
+
```text
|
|
400
|
+
Run the approved OAT project cursor-cloud-autonomous-projects autonomously
|
|
401
|
+
through its final PR.
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
```text
|
|
405
|
+
Take this goal from discovery to PR with OAT autonomy: add resumable exports.
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
## Troubleshooting
|
|
409
|
+
|
|
410
|
+
**`oat` is unavailable:** Stop and provide the supported installation action.
|
|
411
|
+
Do not create or normalize project artifacts by hand.
|
|
412
|
+
|
|
413
|
+
**A lifecycle skill asks an unmapped question:** Treat it as an
|
|
414
|
+
`inventory-gap` boundary, record the exact site in the learnings log, and stop
|
|
415
|
+
resumably.
|
|
416
|
+
|
|
417
|
+
**A review launch fails after acceptance:** Continue or retry only through the
|
|
418
|
+
accepted handle with the identical payload. Block when bounded recovery is
|
|
419
|
+
exhausted.
|
|
420
|
+
|
|
421
|
+
**Project state and git history disagree:** Invoke the owning skill's
|
|
422
|
+
reconciliation path. Do not guess or overwrite the tracker.
|
|
423
|
+
|
|
424
|
+
## Success Criteria
|
|
425
|
+
|
|
426
|
+
- ✅ Both autonomy signals were active only for the current process tree.
|
|
427
|
+
- ✅ The entry phase came from persisted OAT state and completed work was not
|
|
428
|
+
replayed.
|
|
429
|
+
- ✅ Quick/spec-driven selection, when needed, recorded a review-density
|
|
430
|
+
rationale.
|
|
431
|
+
- ✅ External-integration research and evidence gaps were recorded.
|
|
432
|
+
- ✅ Every required review has dispatch provenance and no accepted launch fell
|
|
433
|
+
through to another route.
|
|
434
|
+
- ✅ Existing lifecycle skills owned every artifact, gate, and transition.
|
|
435
|
+
- ✅ Implement completed `oat_post_implement_sequence` or reported an explicit
|
|
436
|
+
resumable boundary.
|
|
437
|
+
- ✅ Phase-boundary commits and non-force pushes are recorded.
|
|
438
|
+
- ✅ The run ended with a final PR report or a structured blocker report.
|
|
439
|
+
- ✅ The learnings log contains reusable, secret-free entries.
|