@open-agent-toolkit/cli 0.3.13 → 0.3.14
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/README.md +1 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/index.md +14 -1
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +3 -3
- package/assets/docs/contributing/updating-model-guidance.md +2 -2
- package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +331 -2
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/{guide → getting-started}/concepts.md +28 -10
- package/assets/docs/getting-started/index.md +68 -0
- package/assets/docs/getting-started/meta.json +4 -0
- package/assets/docs/getting-started/quickstart.md +174 -0
- package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +25 -2
- package/assets/docs/provider-sync/config.md +60 -1
- package/assets/docs/provider-sync/index.md +31 -15
- package/assets/docs/provider-sync/instruction-sync.md +32 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +85 -0
- package/assets/docs/provider-sync/meta.json +1 -0
- package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
- package/assets/docs/provider-sync/scope-and-surface.md +37 -3
- package/assets/docs/reference/cli-reference.md +33 -33
- package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
- package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
- package/assets/docs/reference/file-locations.md +4 -1
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -1
- package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
- package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
- package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
- package/assets/docs/reference/troubleshooting.md +125 -10
- package/assets/docs/reference/what-oat-writes.md +410 -0
- package/assets/docs/skills/brainstorm.md +77 -0
- package/assets/docs/skills/diagnostics.md +56 -0
- package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
- package/assets/docs/skills/index.md +416 -0
- package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
- package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
- package/assets/docs/skills/repo-improve.md +254 -0
- package/assets/docs/skills/research.md +237 -0
- package/assets/docs/skills/session-closeout.md +61 -0
- package/assets/docs/workflows/advanced/autonomy.md +344 -0
- package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
- package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
- package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
- package/assets/docs/workflows/advanced/index.md +19 -0
- package/assets/docs/workflows/advanced/meta.json +13 -0
- package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
- package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
- package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
- package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
- package/assets/docs/workflows/approvals-and-automation.md +261 -0
- package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
- package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
- package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
- package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
- package/assets/docs/workflows/choose-workflow.md +114 -0
- package/assets/docs/workflows/ideas/index.md +3 -3
- package/assets/docs/workflows/ideas/lifecycle.md +218 -1
- package/assets/docs/workflows/index.md +11 -62
- package/assets/docs/workflows/meta.json +10 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
- package/assets/docs/workflows/projects/closeout/index.md +14 -0
- package/assets/docs/workflows/projects/closeout/meta.json +4 -0
- package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
- package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
- package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
- package/assets/docs/workflows/projects/execution/index.md +15 -0
- package/assets/docs/workflows/projects/execution/meta.json +9 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
- package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
- package/assets/docs/workflows/projects/index.md +38 -49
- package/assets/docs/workflows/projects/lifecycle.md +47 -11
- package/assets/docs/workflows/projects/meta.json +2 -23
- package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
- package/assets/docs/workflows/projects/planning/index.md +16 -0
- package/assets/docs/workflows/projects/planning/meta.json +10 -0
- package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
- package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
- package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
- package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
- package/assets/docs/workflows/projects/reviews/meta.json +4 -0
- package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
- package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
- package/assets/docs/workflows/waves/index.md +12 -0
- package/assets/docs/workflows/waves/meta.json +4 -0
- package/assets/docs/workflows/waves/wave-workflows.md +206 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs/SKILL.md +19 -19
- package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
- package/assets/skills/oat-docs-apply/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/package.json +2 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
- package/assets/docs/cli-utilities/index.md +0 -74
- package/assets/docs/cli-utilities/meta.json +0 -13
- package/assets/docs/cli-utilities/remote-project-management.md +0 -191
- package/assets/docs/guide/index.md +0 -31
- package/assets/docs/guide/meta.json +0 -4
- package/assets/docs/quickstart.md +0 -88
- package/assets/docs/workflows/projects/autonomy.md +0 -196
- package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
- package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
- package/assets/docs/workflows/projects/review-flavors.md +0 -138
- package/assets/docs/workflows/skills/index.md +0 -184
- package/assets/docs/workflows/skills/repo-improve.md +0 -89
- package/assets/docs/workflows/wave-workflows.md +0 -77
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Autonomous Project Execution
|
|
3
|
+
description: 'Session-scoped autonomy signals, gate boundaries, review requirements, and execution-learnings behavior for OAT projects.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Autonomous Project Execution
|
|
7
|
+
|
|
8
|
+
OAT autonomy is an explicit session policy for driving a project through its
|
|
9
|
+
lifecycle without waiting at ordinary interactive gates. It does not bypass the
|
|
10
|
+
gate-owning skills: each skill still applies its own checks, records provenance,
|
|
11
|
+
and either resolves the gate or reports a boundary.
|
|
12
|
+
|
|
13
|
+
The provider-agnostic entry point is `oat-project-autonomous`. Invoke it
|
|
14
|
+
deliberately with a goal, project slug, ticket reference, or active project. A
|
|
15
|
+
restart does not silently resume autonomy; invoke the skill again and it resumes
|
|
16
|
+
from the persisted project state.
|
|
17
|
+
|
|
18
|
+
Terms used on this page:
|
|
19
|
+
|
|
20
|
+
- **Active project:** the project your checkout currently points to. The
|
|
21
|
+
pointer is the `activeProject` value in `.oat/config.local.json`.
|
|
22
|
+
- **Synced project:** a project whose artifacts live on a separate Git ref
|
|
23
|
+
(`refs/oat/projects/<project>`) instead of on your feature branch. Skills
|
|
24
|
+
publish its artifact changes with `oat project push`.
|
|
25
|
+
- **HiLL checkpoint:** a human-in-the-loop stop after a plan phase. In an
|
|
26
|
+
interactive run, the agent waits there for your approval.
|
|
27
|
+
- **Dispatch policy:** the project's rule for which models its worker and
|
|
28
|
+
reviewer subagents may use. See [Dispatch Policy](dispatch-ceiling.md).
|
|
29
|
+
- **Boundary:** a point where an autonomous run stops on purpose and reports
|
|
30
|
+
what a person must decide or provide before it can continue.
|
|
31
|
+
|
|
32
|
+
## Activation contract
|
|
33
|
+
|
|
34
|
+
An autonomous session uses both signals:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
export OAT_AUTONOMOUS=1
|
|
38
|
+
export OAT_NON_INTERACTIVE=1
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`OAT_AUTONOMOUS=1` implies and sets `OAT_NON_INTERACTIVE=1` for the current
|
|
42
|
+
run. The distinction is intentional:
|
|
43
|
+
|
|
44
|
+
- `OAT_NON_INTERACTIVE=1` selects existing safe no-prompt paths for one
|
|
45
|
+
workflow.
|
|
46
|
+
- `OAT_AUTONOMOUS=1` additionally enables lifecycle chaining, defined gate
|
|
47
|
+
resolutions, boundary stops, and provenance requirements.
|
|
48
|
+
|
|
49
|
+
Both signals are session-scoped. Never write them to `state.md`, `plan.md`,
|
|
50
|
+
repository config, user config, or any other durable artifact. A later
|
|
51
|
+
interactive session therefore needs no autonomy cleanup and behaves
|
|
52
|
+
interactively around the state the autonomous run left behind.
|
|
53
|
+
|
|
54
|
+
## Gate outcomes
|
|
55
|
+
|
|
56
|
+
Every interactive lifecycle gate has one of two autonomous outcomes:
|
|
57
|
+
|
|
58
|
+
1. **Auto-resolve** using an existing safe path, then record the decision and
|
|
59
|
+
evidence.
|
|
60
|
+
2. **Boundary stop** with a structured blocker and a resumable next step.
|
|
61
|
+
|
|
62
|
+
The main boundary classes are:
|
|
63
|
+
|
|
64
|
+
- **Product judgment** — repository evidence cannot resolve material scope or
|
|
65
|
+
requirements ambiguity.
|
|
66
|
+
- **Destructive-change risk** — an action could discard work, delete data,
|
|
67
|
+
rewrite history, or broadly restructure an unapproved surface.
|
|
68
|
+
- **Unresolved Critical findings** — a blocking review has not passed.
|
|
69
|
+
- **Repository-policy approval** — protected operations require authority the
|
|
70
|
+
session does not have.
|
|
71
|
+
- **Missing credentials** — a required external action has no authenticated
|
|
72
|
+
route or offline equivalent.
|
|
73
|
+
|
|
74
|
+
A boundary is a successful fail-closed outcome, not permission to continue with
|
|
75
|
+
a guessed answer. The run reports what stopped, the evidence, and the operator
|
|
76
|
+
action needed to resume.
|
|
77
|
+
|
|
78
|
+
The canonical autonomy contract and exhaustive gate inventory
|
|
79
|
+
(`.agents/docs/autonomy-contract.md`, vendored into each consuming skill at
|
|
80
|
+
`references/docs/autonomy-contract.md`) map each prompt to its autonomous
|
|
81
|
+
resolution and provenance.
|
|
82
|
+
|
|
83
|
+
### Dispatch-ladder scope selection
|
|
84
|
+
|
|
85
|
+
An incomplete reusable dispatch ladder is auto-resolvable when an authorized
|
|
86
|
+
adoption-compatible config scope is available. Autonomous planning checks
|
|
87
|
+
config-file existence in this fixed order without prompting or reordering from
|
|
88
|
+
effective value or matrix-cell provenance:
|
|
89
|
+
|
|
90
|
+
1. user config (`~/.oat/config.json`);
|
|
91
|
+
2. repo-local config (`.oat/config.local.json`);
|
|
92
|
+
3. shared config (`.oat/config.json`), only when repository policy already
|
|
93
|
+
authorizes that write.
|
|
94
|
+
|
|
95
|
+
Before writing, planning rejects a candidate that would preserve a
|
|
96
|
+
provider-level scalar in that scope or remain shadowed by one at higher
|
|
97
|
+
precedence. It always tries the next authorized compatible candidate and stops
|
|
98
|
+
without mutation only when none remains.
|
|
99
|
+
|
|
100
|
+
The planner runs exactly one matching `oat config adopt dispatch-matrix --keep-existing`
|
|
101
|
+
command, records file-existence and compatibility evidence plus the selected
|
|
102
|
+
scope, and re-runs dispatch preflight. Existing explicit cells remain unchanged;
|
|
103
|
+
their provenance does not select the persistence scope. No authorized
|
|
104
|
+
compatible scope, or a ladder that remains incomplete after adoption, is still
|
|
105
|
+
a repository-policy boundary. `OAT_NON_INTERACTIVE=1` without
|
|
106
|
+
`OAT_AUTONOMOUS=1` does not select a scope and continues to fail closed.
|
|
107
|
+
|
|
108
|
+
## Review contract
|
|
109
|
+
|
|
110
|
+
Autonomous execution preserves independent review:
|
|
111
|
+
|
|
112
|
+
- Discovery, design, and plan artifacts run their configured exit gates.
|
|
113
|
+
Quick-start reviews the discovery, optional lightweight design, and plan as
|
|
114
|
+
one bundle when those artifacts exist.
|
|
115
|
+
- Review routing is selected before launch through the dispatch substrate.
|
|
116
|
+
A configured gate target is preferred when available; otherwise policy may
|
|
117
|
+
choose a target-preserving subagent route. Any reduced independence is
|
|
118
|
+
explicit in the dispatch record.
|
|
119
|
+
- Once a launch is accepted, it is terminal for route selection. Failures use
|
|
120
|
+
bounded recovery with the same payload; they do not silently fall through to
|
|
121
|
+
a cheaper or less independent reviewer.
|
|
122
|
+
- Eligible review artifacts are received immediately. Fix tasks use the normal
|
|
123
|
+
bounded implement-and-re-review loop.
|
|
124
|
+
- Critical findings and failed blocking reviews stop progression. High
|
|
125
|
+
findings follow the configured gate policy.
|
|
126
|
+
- A normal phase or final lifecycle review cannot satisfy a configured
|
|
127
|
+
implementation exit gate. Only gate invocation provenance with the matching
|
|
128
|
+
run ID can authorize that boundary.
|
|
129
|
+
|
|
130
|
+
Project review artifacts and review rows reference launcher-owned dispatch
|
|
131
|
+
records. The configured invocation is authoritative evidence; child
|
|
132
|
+
self-reporting is optional corroboration. See [Evidence
|
|
133
|
+
Layers](evidence-layers.md) and [Reviews](../projects/reviews/index.md).
|
|
134
|
+
|
|
135
|
+
## HiLL and lifecycle closeout
|
|
136
|
+
|
|
137
|
+
Autonomous runs ignore the configured `workflow.hillCheckpointDefault` and
|
|
138
|
+
`workflow.autoReviewAtHillCheckpoints` settings. When an autonomous run starts
|
|
139
|
+
implementation, it chooses checkpoints this way:
|
|
140
|
+
|
|
141
|
+
- If the plan already stores a valid checkpoint list in
|
|
142
|
+
`oat_plan_hill_phases`, the run keeps it unchanged. A stored `[]` means every
|
|
143
|
+
phase, never no phases.
|
|
144
|
+
- If the plan stores no list yet on the first implementation run, the run sets
|
|
145
|
+
a checkpoint at the final phase only.
|
|
146
|
+
- In both cases, the run turns on review at checkpoints, even if an earlier
|
|
147
|
+
interactive setup turned it off.
|
|
148
|
+
|
|
149
|
+
For a plan with no stored list, the run writes:
|
|
150
|
+
|
|
151
|
+
```yaml
|
|
152
|
+
oat_plan_hill_phases: ['<final-phase-id>']
|
|
153
|
+
oat_auto_review_at_hill_checkpoints: true
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
At each checkpoint, the run reviews the phase and processes that review
|
|
157
|
+
instead of waiting for you. An invalid stored value is not replaced; the run
|
|
158
|
+
stops at a boundary instead.
|
|
159
|
+
|
|
160
|
+
At final closeout, autonomy follows the same authoritative order as an
|
|
161
|
+
interactive run: final verification, mandatory final lifecycle review,
|
|
162
|
+
configured implementation exit gate, pre-approval sequence, final HiLL
|
|
163
|
+
approval, post-approval sequence, then implementation completion and success
|
|
164
|
+
output. A `not_configured` resolution persists an explicit no-gate allowance
|
|
165
|
+
before the sequence starts; a null, missing, or unrecognized resolver result
|
|
166
|
+
fails closed as unresolved. A gate this project disabled persists an
|
|
167
|
+
`allowed/configured` result with `disposition: project_disabled` and never
|
|
168
|
+
launches the configured command.
|
|
169
|
+
|
|
170
|
+
Autonomy does not turn an ordinary independent review into configured-gate
|
|
171
|
+
provenance. A configured review must produce a gate-originated artifact with
|
|
172
|
+
the matching run ID, and eligible receive must be durably reconciled. Blocked,
|
|
173
|
+
ambiguous, malformed, or stale gate state is a boundary stop: the run remains
|
|
174
|
+
resumable through `oat-project-implement` and cannot continue to approval,
|
|
175
|
+
completion, or output.
|
|
176
|
+
|
|
177
|
+
The default autonomous tail is summary, documentation, and final PR when no
|
|
178
|
+
post-implementation sequence is configured; stored legacy or structured
|
|
179
|
+
sequences retain their documented meaning.
|
|
180
|
+
|
|
181
|
+
## Execution-learnings loop
|
|
182
|
+
|
|
183
|
+
Autonomous runs keep an append-only project-local
|
|
184
|
+
`oat-execution-learnings.md`. Dated entries record an observation, impact, and
|
|
185
|
+
recommendation under the source taxonomy: `gotcha`, `efficiency`,
|
|
186
|
+
`documentation-gap`, `candidate-skill-content`, `decision`, or
|
|
187
|
+
`environment-limited`.
|
|
188
|
+
|
|
189
|
+
When the file exists, `oat-project-summary` synthesizes actionable
|
|
190
|
+
recommendations into `## Autonomous Execution Learnings`, grouped as:
|
|
191
|
+
|
|
192
|
+
- agent-instruction updates;
|
|
193
|
+
- cloud-environment improvements;
|
|
194
|
+
- code follow-ups;
|
|
195
|
+
- workflow issues.
|
|
196
|
+
|
|
197
|
+
Each recommendation links back to its source entry. Projects without the
|
|
198
|
+
learnings file render normal summaries with no autonomous-learnings section.
|
|
199
|
+
The summary export keeps the synthesized recommendations after project
|
|
200
|
+
archival.
|
|
201
|
+
|
|
202
|
+
## Taking over interactively
|
|
203
|
+
|
|
204
|
+
After an autonomous session ends:
|
|
205
|
+
|
|
206
|
+
1. Start a normal session without the autonomy environment signals.
|
|
207
|
+
2. Open the same project from its repository-local `.oat` directory.
|
|
208
|
+
3. Resume the owning lifecycle skill.
|
|
209
|
+
|
|
210
|
+
Persisted review rows, task state, explicit HiLL checkpoints, and dispatch
|
|
211
|
+
provenance remain valid. Interactive prompts and checkpoint pauses return
|
|
212
|
+
normally because autonomy itself was never persisted.
|
|
213
|
+
|
|
214
|
+
## Related
|
|
215
|
+
|
|
216
|
+
- [HiLL Checkpoints](../projects/planning/hill-checkpoints.md) — checkpoint field semantics and
|
|
217
|
+
interactive behavior.
|
|
218
|
+
- [Implementation Execution](../projects/execution/implementation-execution.md) — phase execution,
|
|
219
|
+
review, fixes, and closeout.
|
|
220
|
+
- [Cursor Cloud](cursor-cloud.md) — project-home and environment-readiness
|
|
221
|
+
guidance for cloud runs.
|
|
222
|
+
|
|
223
|
+
## oat-project-autonomous
|
|
224
|
+
|
|
225
|
+
Use this entry only after an explicit request for end-to-end autonomous project
|
|
226
|
+
execution. It chains the existing lifecycle owners rather than replacing their
|
|
227
|
+
gates or creating another implementation coordinator.
|
|
228
|
+
|
|
229
|
+
> [!WARNING]
|
|
230
|
+
> **What it does without asking:** after every lifecycle phase, an autonomous
|
|
231
|
+
> run commits its work and pushes the current branch to its remote (never with
|
|
232
|
+
> force). It also commits its own state and learnings-log updates, dispatches
|
|
233
|
+
> worker and reviewer subagents under one authorization for the whole run,
|
|
234
|
+
> generates a project recap, and opens the final pull request. None of these
|
|
235
|
+
> steps asks for confirmation. It never merges the pull request.
|
|
236
|
+
>
|
|
237
|
+
> - **Start it on a feature branch, never on `main`.** It pushes whichever
|
|
238
|
+
> branch you are on.
|
|
239
|
+
> - **Set a dispatch policy first.** The run never chooses a dispatch policy
|
|
240
|
+
> for you. If the project has none, the run stops at a repository-policy
|
|
241
|
+
> boundary.
|
|
242
|
+
> - **Clear the active project if you want a new one.** If a valid active
|
|
243
|
+
> project is set, the run resumes that project even when you pass a new goal.
|
|
244
|
+
> Run `oat-project-clear-active` before you pass a new goal.
|
|
245
|
+
>
|
|
246
|
+
> The run stops and reports instead of guessing when it reaches any of these
|
|
247
|
+
> boundaries: a product decision the repository evidence cannot settle
|
|
248
|
+
> (`product-judgment`); an action that could delete data, overwrite work, or
|
|
249
|
+
> rewrite history (`destructive-change-risk`); an unresolved Critical review
|
|
250
|
+
> finding or a blocking review that cannot pass
|
|
251
|
+
> (`unresolved-critical-findings`); a protected branch, required approval, or
|
|
252
|
+
> unresolved dispatch policy (`repository-policy-approval`); a missing
|
|
253
|
+
> credential (`missing-credentials`); or a prompt that has no autonomous rule
|
|
254
|
+
> in the gate inventory (`inventory-gap`). A configured gate that fails with
|
|
255
|
+
> `onFailure: prompt`, or that cannot run or return a valid result, also stops
|
|
256
|
+
> the run.
|
|
257
|
+
|
|
258
|
+
**Invocation:** Provide a substantive goal for new work, or an existing project
|
|
259
|
+
slug or path to resume. These are agent requests, not terminal commands.
|
|
260
|
+
Providers with `$` syntax use `$oat-project-autonomous`.
|
|
261
|
+
|
|
262
|
+
```text
|
|
263
|
+
/oat-project-autonomous "Add resumable exports and open the final PR."
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
/oat-project-autonomous export-filter
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Prerequisites:** Needs an active OAT project: no. A new goal can create a
|
|
271
|
+
project through the entry skill the run selects. An explicit existing project
|
|
272
|
+
or a valid active project supports resume, and empty input requires a valid
|
|
273
|
+
active project. The skill resolves an explicit project first, then a valid
|
|
274
|
+
active project, then a new goal. Because of that order, a goal you pass while
|
|
275
|
+
a valid active project is set resumes the active project instead of creating a
|
|
276
|
+
new one. Use the first example only when no project is active, or clear the
|
|
277
|
+
active project with `oat-project-clear-active` first.
|
|
278
|
+
|
|
279
|
+
`oat` must be on `PATH`, and repository policy must permit the work on the
|
|
280
|
+
current branch. A dispatch policy must already be configured or recorded in
|
|
281
|
+
the project: autonomy never picks one, and an unresolved policy stops the run
|
|
282
|
+
at a repository-policy boundary. Required worker and reviewer capabilities
|
|
283
|
+
must resolve before the run makes any change.
|
|
284
|
+
|
|
285
|
+
**Example scenario:** You are on a new feature branch, no project is active,
|
|
286
|
+
and a dispatch policy is already configured. You authorize the bounded
|
|
287
|
+
resumable-export goal through a final PR without ordinary mid-run approval
|
|
288
|
+
pauses. Autonomous entry chooses
|
|
289
|
+
lite, quick, or spec-driven review density from the actual uncertainty and
|
|
290
|
+
invokes its owning creation skill. If an export-filter project is already
|
|
291
|
+
active, the second example explicitly resumes its earliest incomplete step
|
|
292
|
+
instead of replaying finished phases.
|
|
293
|
+
|
|
294
|
+
**Expected output:** Session-only autonomy signals, persisted lifecycle
|
|
295
|
+
progress, reviewed task commits, and project-local execution learnings. Existing
|
|
296
|
+
projects retain their mode. A successful run reports the actual final PR and
|
|
297
|
+
review evidence. A blocked run names the boundary, durable completed work,
|
|
298
|
+
operator action, and resumable project.
|
|
299
|
+
|
|
300
|
+
The default topology is one working branch and one final PR. The skill pushes
|
|
301
|
+
that branch after every phase, but it does not merge or force-push. Missing
|
|
302
|
+
credentials, protected operations, destructive work, unresolved blocking
|
|
303
|
+
review, and material product ambiguity are boundaries, as are an unresolved
|
|
304
|
+
dispatch policy and any prompt the gate inventory does not cover
|
|
305
|
+
(`inventory-gap`). Autonomy does not let an ordinary review impersonate a
|
|
306
|
+
configured exit gate.
|
|
307
|
+
|
|
308
|
+
**Next step:** Inspect the final report and PR, or resolve the named boundary.
|
|
309
|
+
After a restart, deliberately invoke the skill again. Persisted project state
|
|
310
|
+
supports resume, but does not silently reactivate autonomy.
|
|
311
|
+
|
|
312
|
+
## Choosing how unattended to run
|
|
313
|
+
|
|
314
|
+
| Mode | Choose when | Tradeoff |
|
|
315
|
+
| --------------------- | ----------------------------------------------- | --------------------------------------------------------------- |
|
|
316
|
+
| Interactive (default) | You want to steer approvals | Requires a person at prompts |
|
|
317
|
+
| Non-interactive | A scripted step needs documented defaults | Unresolved choices stop; no continuous autonomous consent |
|
|
318
|
+
| Explicit autonomous | A clear goal can run within declared boundaries | Less live steering; review outputs and publication consequences |
|
|
319
|
+
|
|
320
|
+
A restarted session is interactive. If you want autonomy to continue after a
|
|
321
|
+
restart, invoke `oat-project-autonomous` again. Autonomy never chooses a
|
|
322
|
+
dispatch policy for you, and it never merges a pull request. An autonomous run
|
|
323
|
+
stops when it reaches a product decision, a destructive or protected action, a
|
|
324
|
+
missing credential, an unresolved blocking review, or a required check it
|
|
325
|
+
cannot perform.
|
|
326
|
+
|
|
327
|
+
- If this is your first trial of OAT, choose interactive, because you see
|
|
328
|
+
every approval and can steer the work as you learn the lifecycle.
|
|
329
|
+
- If you need one scripted or CI step, choose non-interactive
|
|
330
|
+
(`OAT_NON_INTERACTIVE=1`), because each skill takes its documented default
|
|
331
|
+
and stops on any choice without one. It does not chain skills or approve
|
|
332
|
+
anything on your behalf.
|
|
333
|
+
- If you have a well-specified change you trust to run unattended, choose
|
|
334
|
+
autonomous, because it carries the work through to a final pull request. Set
|
|
335
|
+
the dispatch policy, the candidate-ladder config, and each gate's
|
|
336
|
+
`onFailure` behavior first, start on a feature branch, and review the pull
|
|
337
|
+
request yourself.
|
|
338
|
+
- If the change is high-risk, choose interactive, because a person then
|
|
339
|
+
approves each checkpoint. If you still run it autonomously, set
|
|
340
|
+
`oat_plan_hill_phases: []` in the plan first, because that adds a checkpoint
|
|
341
|
+
review after every phase.
|
|
342
|
+
|
|
343
|
+
Running without prompts does not authorize any action outside these
|
|
344
|
+
boundaries.
|
|
@@ -16,6 +16,19 @@ environment, and it can also be invoked explicitly. Use
|
|
|
16
16
|
end-to-end autonomous run; being in Cursor Cloud does not activate autonomy by
|
|
17
17
|
itself.
|
|
18
18
|
|
|
19
|
+
Terms used on this page:
|
|
20
|
+
|
|
21
|
+
- **Active project:** the OAT project a checkout currently points to, stored
|
|
22
|
+
as `activeProject` in that repository's `.oat/config.local.json`.
|
|
23
|
+
- **Synced project:** a project whose artifacts live on a separate Git ref
|
|
24
|
+
instead of on the feature branch. `oat project pull` brings them into a
|
|
25
|
+
checkout, and `oat project push` publishes changes.
|
|
26
|
+
- **Dispatch:** launching a worker or reviewer subagent on a chosen model and
|
|
27
|
+
route. The **dispatch policy** is the project's rule for which models those
|
|
28
|
+
subagents may use; see [Dispatch Policy](dispatch-ceiling.md).
|
|
29
|
+
- **User scope:** OAT skills, scripts, and config installed in your home
|
|
30
|
+
directory (for example `~/.oat/config.json`) rather than in the repository.
|
|
31
|
+
|
|
19
32
|
## Resolve the project home first
|
|
20
33
|
|
|
21
34
|
All tracked project artifacts belong to a repository, not to the workspace
|
|
@@ -152,5 +165,60 @@ See [Autonomous Project Execution](autonomy.md).
|
|
|
152
165
|
execution surfaces.
|
|
153
166
|
- [Dispatch Policy](dispatch-ceiling.md) — candidate ladders and exact route
|
|
154
167
|
selection.
|
|
155
|
-
- [Configuration](../../
|
|
168
|
+
- [Configuration](../../reference/configuration.md) — user, shared, and
|
|
156
169
|
repository-local config ownership.
|
|
170
|
+
|
|
171
|
+
## oat-cursor-cloud-projects
|
|
172
|
+
|
|
173
|
+
Use this skill for cloud orientation before choosing a lifecycle action. It
|
|
174
|
+
checks the environment, repository ownership, CLI, and assets. It does not run
|
|
175
|
+
the project or activate autonomy on its own.
|
|
176
|
+
|
|
177
|
+
**Invocation:** In Cursor Cloud, the agent loads this skill on its own when a
|
|
178
|
+
request involves OAT. You can also request orientation explicitly, or ask the
|
|
179
|
+
agent how this cloud workspace should resolve OAT context. The slash form is an agent request, not a
|
|
180
|
+
terminal command. Providers with `$` syntax use `$oat-cursor-cloud-projects`.
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
/oat-cursor-cloud-projects
|
|
184
|
+
Identify the repository that owns this change and verify the OAT assets before continuing.
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Prerequisites:** Needs an active OAT project: no, but the skill uses one if
|
|
188
|
+
it is set. A shell and Node/npm must be available. No active project is needed
|
|
189
|
+
to detect cloud context or choose the target repository. When an active
|
|
190
|
+
project exists, orientation resolves its scope and pulls synced context before
|
|
191
|
+
reading artifacts. If the `oat` CLI cannot be installed, project artifact work
|
|
192
|
+
stops.
|
|
193
|
+
|
|
194
|
+
**What it does without asking:** if `oat` is not on `PATH`, the skill runs
|
|
195
|
+
`npm install -g @open-agent-toolkit/cli@latest` to install the latest CLI
|
|
196
|
+
globally, and stops only if that install fails. If the active project is a
|
|
197
|
+
synced project, it runs `oat project pull` to bring its artifacts into the
|
|
198
|
+
checkout. When a repository skill is newer than the user-scope copy, or an
|
|
199
|
+
expected skill, MCP server, CLI, or credential is missing, it appends an entry
|
|
200
|
+
to the active project's `oat-execution-learnings.md`. It activates autonomy
|
|
201
|
+
only by loading `oat-project-autonomous` when you explicitly asked for an
|
|
202
|
+
autonomous end-to-end run.
|
|
203
|
+
|
|
204
|
+
**Example scenario:** A cloud workspace contains both an application and a
|
|
205
|
+
shared-library checkout. You want to resume application work without putting
|
|
206
|
+
its project under the workspace parent. Orientation verifies cloud signals,
|
|
207
|
+
selects the repository that owns the branch and eventual PR, resolves user-first
|
|
208
|
+
skill assets, and then returns control to the correct lifecycle skill.
|
|
209
|
+
|
|
210
|
+
**Expected output:** An orientation summary reports detected context and its
|
|
211
|
+
signal, target repository, projects root, active project or none, CLI readiness,
|
|
212
|
+
asset tier, freshness, and any required dispatch context. Each skill and script
|
|
213
|
+
resolves user, repository, then bundled scope. Templates use their separate
|
|
214
|
+
repository-first CLI resolution. A higher repository skill version signals a
|
|
215
|
+
stale user tier, not permission to switch sources silently.
|
|
216
|
+
|
|
217
|
+
Missing run metadata is disclosed. It does not justify inventing model identity.
|
|
218
|
+
Without a cloud signal, the skill returns control without imposing cloud rules.
|
|
219
|
+
Unavailable required capabilities and ambiguous repository ownership remain
|
|
220
|
+
explicit boundaries.
|
|
221
|
+
|
|
222
|
+
**Next step:** Continue the owning project skill from the verified repository.
|
|
223
|
+
For deliberately autonomous execution, invoke `oat-project-autonomous`
|
|
224
|
+
separately. Orientation alone is not that authorization.
|