@open-agent-toolkit/cli 0.1.60 → 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/README.md +14 -0
- package/assets/docs/cli-utilities/config-and-local-state.md +20 -0
- package/assets/docs/cli-utilities/configuration.md +29 -0
- package/assets/docs/cli-utilities/tool-packs.md +48 -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/app/tool-bundle-update-guard.d.ts +31 -0
- package/dist/app/tool-bundle-update-guard.d.ts.map +1 -0
- package/dist/app/tool-bundle-update-guard.js +134 -0
- package/dist/app/update-notifier.d.ts +28 -0
- package/dist/app/update-notifier.d.ts.map +1 -0
- package/dist/app/update-notifier.js +250 -0
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +42 -5
- 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/config/oat-config.d.ts +1 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +3 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -2
- package/dist/providers/codex/codec/shared.d.ts +2 -2
- 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
package/README.md
CHANGED
|
@@ -40,6 +40,20 @@ Additional useful entry points:
|
|
|
40
40
|
- `oat repo archive sync`
|
|
41
41
|
- `oat doctor`
|
|
42
42
|
|
|
43
|
+
## Update Notifications
|
|
44
|
+
|
|
45
|
+
On ordinary interactive command runs, OAT may print a passive notice when npm's stable `latest` CLI version is newer than the installed version. The cache normally limits checks to once every 24 hours and same-version notices to once every 72 hours; overlapping CLI processes can each perform a check or print a notice.
|
|
46
|
+
|
|
47
|
+
`oat init`, `oat tools install`, and `oat tools update` are different because they copy tools bundled with the running CLI. Before an eligible interactive mutation, a known newer CLI triggers a warning that the current CLI can only install its own bundled tool versions and that the available CLI may bundle newer versions. OAT then offers, defaulting to no, to run `npm install --global @open-agent-toolkit/cli@<validated-version>` for the exact validated stable version. Acceptance updates the CLI package, stops before changing tools, and asks you to rerun the original command. Declining or aborting continues with the current bundle after a warning. An installer failure stops the tool mutation and reports the command you can retry.
|
|
48
|
+
|
|
49
|
+
This warning does not mean tools installed from the current bundle are incompatible with the current CLI; it only identifies that a newer CLI release may include newer bundled tool versions. Dry-run, JSON, non-interactive, CI, test, source-development, and ephemeral package-runner invocations do not prompt or install. Ordinary eligible commands remain passive.
|
|
50
|
+
|
|
51
|
+
Set `NO_UPDATE_NOTIFIER` to a truthy value (for example, `1`, `true`, `yes`, or `on`) to suppress checks for one process; empty, `0`, and `false` do not suppress them. Or persist the user-level preference:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
oat config set updateNotifications false --user
|
|
55
|
+
```
|
|
56
|
+
|
|
43
57
|
## Inspection Commands
|
|
44
58
|
|
|
45
59
|
Use these commands when you want structured runtime/project state out of the CLI:
|
|
@@ -113,6 +113,26 @@ Use `oat config` for repo runtime config inspection and supported key mutation.
|
|
|
113
113
|
|
|
114
114
|
Use `oat config dump --json` when you need the whole resolved config in one machine-readable response rather than a single key or a human-oriented list view.
|
|
115
115
|
|
|
116
|
+
### Update notifications
|
|
117
|
+
|
|
118
|
+
OAT can passively report when npm's stable `latest` CLI version is newer during an ordinary interactive command run. The cache normally limits checks to once every 24 hours and same-version notices to once every 72 hours; overlapping CLI processes can each perform a check or print a notice. Ordinary eligible commands only show update guidance and do not prompt.
|
|
119
|
+
|
|
120
|
+
Before eligible interactive `oat init`, `oat tools install`, or `oat tools update` mutations, a known newer stable CLI receives special handling. These commands copy tool versions bundled with the running CLI, so OAT warns that the older CLI can only install its own bundle and that the available CLI may contain newer bundled tools. The default-no prompt offers to install the exact validated version with:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm install --global @open-agent-toolkit/cli@<validated-version>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
If accepted, OAT updates the CLI package, stops before changing tools, and asks you to rerun the original command under the new CLI. If declined or the prompt is aborted, OAT warns and continues with the current bundle. If npm fails, the requested tool mutation does not run and the error includes a command to retry. The warning describes possible bundle freshness; it does not claim that tools installed by the current CLI are incompatible with that CLI.
|
|
127
|
+
|
|
128
|
+
Checks, notices, and the update offer are skipped for JSON, non-interactive, CI, test, source-development, and ephemeral package-runner invocations. Guarded dry-run commands also skip the prompt and installer. Set `NO_UPDATE_NOTIFIER` to a truthy value (for example, `1`, `true`, `yes`, or `on`) to suppress checks for one process; empty, `0`, and `false` do not suppress them. Or disable checks persistently in user config:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
oat config set updateNotifications false --user
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
The preference defaults to `true`; run the same command with `true` to re-enable it. Cached check and notice timestamps live in `~/.oat/update-check.json`, separate from the user-authored preference in `~/.oat/config.json`.
|
|
135
|
+
|
|
116
136
|
Dispatch policy keys are part of this surface, but provider-specific generation
|
|
117
137
|
still belongs to provider commands. Use `oat config describe
|
|
118
138
|
workflow.dispatchPolicy.policy` to inspect capped managed, managed uncapped,
|
|
@@ -468,6 +468,35 @@ Workflow preference keys live under the `workflow.*` namespace:
|
|
|
468
468
|
- `workflow.dispatchCeiling.recommendationVersion` — version of the adopted recommended matrix.
|
|
469
469
|
- `workflow.gates.skills` / `workflow.gates.execTargets` — structured per-skill final gate commands and exec-target registry. Use `oat gate set`, `oat gate target set`, `oat gate review`, and `oat gate cross-provider-exec`; do not use `oat config set` for these objects.
|
|
470
470
|
|
|
471
|
+
### HiLL plan-field semantics
|
|
472
|
+
|
|
473
|
+
`workflow.hillCheckpointDefault` controls the first implementation run's
|
|
474
|
+
checkpoint choice, but the confirmed selection is stored in `plan.md` as
|
|
475
|
+
`oat_plan_hill_phases`. The plan field has three distinct states:
|
|
476
|
+
|
|
477
|
+
| `oat_plan_hill_phases` state | Meaning |
|
|
478
|
+
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
479
|
+
| Field absent | Checkpoint selection is unconfirmed. This is valid before the first implementation run; a resumed run treats it as bookkeeping drift that must be resolved. |
|
|
480
|
+
| `[]` | Checkpoint after every phase boundary. |
|
|
481
|
+
| `["p02", "p04"]` | Checkpoint only after the listed phases complete. |
|
|
482
|
+
|
|
483
|
+
**Never write `[]` to mean no checkpoints.** It means every phase. To select
|
|
484
|
+
only the final checkpoint, store the final phase ID explicitly:
|
|
485
|
+
|
|
486
|
+
```yaml
|
|
487
|
+
oat_plan_hill_phases: ['p04']
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
With `workflow.hillCheckpointDefault: every`, the first implementation run
|
|
491
|
+
writes `[]`. With `workflow.hillCheckpointDefault: final`, it writes
|
|
492
|
+
`["<final-phase-id>"]`. An autonomous run with an absent field takes that same
|
|
493
|
+
explicit final-default path and enables checkpoint auto-review; it preserves an
|
|
494
|
+
existing valid empty or explicit list. Because autonomy itself is never
|
|
495
|
+
persisted, a later interactive run pauses at the stored checkpoints normally.
|
|
496
|
+
|
|
497
|
+
See [HiLL Checkpoints](../workflows/projects/hill-checkpoints.md) for timing and
|
|
498
|
+
approval behavior.
|
|
499
|
+
|
|
471
500
|
### Auto artifact-review preferences
|
|
472
501
|
|
|
473
502
|
`workflow.autoArtifactReview.*` controls the artifact-quality loops that run before downstream workflow steps consume generated artifacts. Both keys are default-on. Only an explicit `false` disables the matching loop:
|
|
@@ -49,6 +49,25 @@ skills can use the utility engine directly.
|
|
|
49
49
|
|
|
50
50
|
The `oat tools` command group provides a unified interface for managing installed tools (skills and agents) across scopes.
|
|
51
51
|
|
|
52
|
+
### CLI updates before bundled-tool mutations
|
|
53
|
+
|
|
54
|
+
Tool packs ship inside the OAT CLI package. An older CLI can therefore install or update only the tool versions in its own bundle, while a newer stable CLI release may contain newer bundled versions. This is a bundle-freshness warning, not a claim that tools installed by the current CLI are immediately incompatible with it.
|
|
55
|
+
|
|
56
|
+
Before an eligible interactive `oat init`, `oat tools install` (including pack subcommands), or `oat tools update` mutation, OAT checks the cached stable CLI availability. If a newer version is known, it explains the bundle difference and offers, with a default answer of no, to install that exact validated version:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install --global @open-agent-toolkit/cli@<validated-version>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- Accepting updates the CLI package only, stops before changing bundled tools, and asks you to rerun the original command under the new CLI.
|
|
63
|
+
- Declining or aborting warns that the current bundle may be older, then continues the requested command.
|
|
64
|
+
- If npm fails, OAT does not run the tool mutation and reports how to retry the CLI installation.
|
|
65
|
+
- Dry-run, JSON, non-interactive, opted-out, CI, test, source-development, and ephemeral package-runner invocations do not prompt or install.
|
|
66
|
+
|
|
67
|
+
Set `NO_UPDATE_NOTIFIER` to a truthy value (for example, `1`, `true`, `yes`, or `on`) to suppress checks for one process; empty, `0`, and `false` do not suppress them.
|
|
68
|
+
|
|
69
|
+
Other eligible commands keep the passive update notice and never launch the installer.
|
|
70
|
+
|
|
52
71
|
## Install vs. initialize
|
|
53
72
|
|
|
54
73
|
The `project-management` pack has two lifecycle steps:
|
|
@@ -131,7 +150,7 @@ Key behavior:
|
|
|
131
150
|
- Pack-oriented install subcommands: `core`, `docs`, `ideas`, `workflows`, `utility`, `project-management`, `research`, `brainstorm`
|
|
132
151
|
- Interactive installs show each pack's current install location in the picker so already-installed packs are visible before you submit
|
|
133
152
|
- Installing is **additive**: choosing a scope for a pack never removes it from another scope. A user-eligible pack installed at user scope plus a project install ends up at `project + user`, not moved
|
|
134
|
-
- For each user-eligible pack (`ideas`, `docs`, `utility`, `research`, `brainstorm`), the interactive flow offers a per-pack end-state selector (`project`, `user`, or `both`) defaulting to the pack's current placement; leaving the default makes no changes for that pack
|
|
153
|
+
- For each user-eligible pack (`ideas`, `docs`, `workflows`, `utility`, `research`, `brainstorm`), the interactive flow offers a per-pack end-state selector (`project`, `user`, or `both`) defaulting to the pack's current placement; leaving the default makes no changes for that pack
|
|
135
154
|
- `oat init --setup` uses this same additive scope resolver. In guided setup, choosing to customize scope reaches the per-pack selector; choosing the recommended defaults, or running non-interactively, applies additive per-pack defaults without removals
|
|
136
155
|
- The `brainstorm` pack defaults to user scope on fresh installs (driven by `PACK_METADATA[brainstorm].defaultScope = 'user'`); existing installs keep their current placement on re-install, so a re-install never moves a pack between scopes
|
|
137
156
|
- Removing a pack from a scope happens only when you explicitly choose a narrower end-state in the interactive flow (e.g. a pack at `both` set to `project` only). All staged removals are shown in a single change summary and applied only after one batch confirmation — declining makes no changes
|
|
@@ -154,6 +173,7 @@ Key behavior:
|
|
|
154
173
|
- Accepts a tool name, `--pack <pack>`, or `--all` (mutually exclusive)
|
|
155
174
|
- Compares installed versions against bundled versions and copies updated assets
|
|
156
175
|
- For `--pack <pack>` and `--all`, an already-installed pack is reconciled to include newly added bundled skills or agents in that same scope
|
|
176
|
+
- Pack-targeted updates intentionally rewrite bundled template and script companions in place, even when the pack's installed skills are already current
|
|
157
177
|
- For `--pack <pack>` and `--all`, shared repo config is also reconciled from an installed-pack scan so `tools.*` reflects what is actually available and stale `true` flags are cleared
|
|
158
178
|
- Dry-run mode with `--dry-run`; auto-sync after mutations by default
|
|
159
179
|
- Use `--no-sync` to skip auto-sync
|
|
@@ -183,6 +203,33 @@ Tool-pack lifecycle commands now persist pack availability in shared repo config
|
|
|
183
203
|
|
|
184
204
|
This matters because other workflows can now check `oat config get tools.<pack>` instead of inferring capabilities from directory existence alone. For example, `oat-project-document` checks `tools.project-management` before auto-running repo-reference refresh work.
|
|
185
205
|
|
|
206
|
+
## Workflows pack
|
|
207
|
+
|
|
208
|
+
The workflows pack is installable at project scope, user scope, or both. A
|
|
209
|
+
user-scope install carries the complete versioned asset set:
|
|
210
|
+
|
|
211
|
+
- skills and agents → `~/.agents/skills/` and `~/.agents/agents/`;
|
|
212
|
+
- templates → `~/.oat/templates/`;
|
|
213
|
+
- executable helper scripts → `~/.oat/scripts/`.
|
|
214
|
+
|
|
215
|
+
Use either the direct or aggregate form:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
oat tools install workflows --scope user
|
|
219
|
+
oat init tools workflows --scope user
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
User scope intentionally skips project-root scaffolding: it does not create a
|
|
223
|
+
home-level `.oat/projects-root`, `.oat/projects/` tree, or projects-root config.
|
|
224
|
+
Projects remain anchored in the target repository. Project-scope installation
|
|
225
|
+
retains its existing scaffolding and local-path setup.
|
|
226
|
+
|
|
227
|
+
`oat tools update --pack workflows --scope user` refreshes all four asset
|
|
228
|
+
classes in place, including newly bundled skills and agents. Pack removal and a
|
|
229
|
+
confirmed aggregate scope reduction remove those same user-level assets.
|
|
230
|
+
Companion template and script removal is user-scope-only; project-scope removal
|
|
231
|
+
leaves repo-local `.oat/templates/` and `.oat/scripts/` assets intact.
|
|
232
|
+
|
|
186
233
|
## Core pack
|
|
187
234
|
|
|
188
235
|
The `core` pack contains foundational diagnostic and documentation skills:
|
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
## Activation contract
|
|
19
|
+
|
|
20
|
+
An autonomous session uses both signals:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
export OAT_AUTONOMOUS=1
|
|
24
|
+
export OAT_NON_INTERACTIVE=1
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
`OAT_AUTONOMOUS=1` implies and sets `OAT_NON_INTERACTIVE=1` for the current
|
|
28
|
+
run. The distinction is intentional:
|
|
29
|
+
|
|
30
|
+
- `OAT_NON_INTERACTIVE=1` selects existing safe no-prompt paths for one
|
|
31
|
+
workflow.
|
|
32
|
+
- `OAT_AUTONOMOUS=1` additionally enables lifecycle chaining, defined gate
|
|
33
|
+
resolutions, boundary stops, and provenance requirements.
|
|
34
|
+
|
|
35
|
+
Both signals are session-scoped. Never write them to `state.md`, `plan.md`,
|
|
36
|
+
repository config, user config, or any other durable artifact. A later
|
|
37
|
+
interactive session therefore needs no autonomy cleanup and behaves
|
|
38
|
+
interactively around the state the autonomous run left behind.
|
|
39
|
+
|
|
40
|
+
## Gate outcomes
|
|
41
|
+
|
|
42
|
+
Every interactive lifecycle gate has one of two autonomous outcomes:
|
|
43
|
+
|
|
44
|
+
1. **Auto-resolve** using an existing safe path, then record the decision and
|
|
45
|
+
evidence.
|
|
46
|
+
2. **Boundary stop** with a structured blocker and a resumable next step.
|
|
47
|
+
|
|
48
|
+
The main boundary classes are:
|
|
49
|
+
|
|
50
|
+
- **Product judgment** — repository evidence cannot resolve material scope or
|
|
51
|
+
requirements ambiguity.
|
|
52
|
+
- **Destructive-change risk** — an action could discard work, delete data,
|
|
53
|
+
rewrite history, or broadly restructure an unapproved surface.
|
|
54
|
+
- **Unresolved Critical findings** — a blocking review has not passed.
|
|
55
|
+
- **Repository-policy approval** — protected operations require authority the
|
|
56
|
+
session does not have.
|
|
57
|
+
- **Missing credentials** — a required external action has no authenticated
|
|
58
|
+
route or offline equivalent.
|
|
59
|
+
|
|
60
|
+
A boundary is a successful fail-closed outcome, not permission to continue with
|
|
61
|
+
a guessed answer. The run reports what stopped, the evidence, and the operator
|
|
62
|
+
action needed to resume.
|
|
63
|
+
|
|
64
|
+
The canonical autonomy contract and exhaustive gate inventory
|
|
65
|
+
(`.agents/docs/autonomy-contract.md`, vendored into each consuming skill at
|
|
66
|
+
`references/docs/autonomy-contract.md`) map each prompt to its autonomous
|
|
67
|
+
resolution and provenance.
|
|
68
|
+
|
|
69
|
+
## Review contract
|
|
70
|
+
|
|
71
|
+
Autonomous execution preserves independent review:
|
|
72
|
+
|
|
73
|
+
- Discovery, design, and plan artifacts run their configured exit gates.
|
|
74
|
+
Quick-start reviews the discovery, optional lightweight design, and plan as
|
|
75
|
+
one bundle when those artifacts exist.
|
|
76
|
+
- Review routing is selected before launch through the dispatch substrate.
|
|
77
|
+
A configured gate target is preferred when available; otherwise policy may
|
|
78
|
+
choose a target-preserving subagent route. Any reduced independence is
|
|
79
|
+
explicit in the dispatch record.
|
|
80
|
+
- Once a launch is accepted, it is terminal for route selection. Failures use
|
|
81
|
+
bounded recovery with the same payload; they do not silently fall through to
|
|
82
|
+
a cheaper or less independent reviewer.
|
|
83
|
+
- Eligible review artifacts are received immediately. Fix tasks use the normal
|
|
84
|
+
bounded implement-and-re-review loop.
|
|
85
|
+
- Critical findings and failed blocking reviews stop progression. Important
|
|
86
|
+
findings follow the configured gate policy.
|
|
87
|
+
|
|
88
|
+
Project review artifacts and review rows reference launcher-owned dispatch
|
|
89
|
+
records. The configured invocation is authoritative evidence; child
|
|
90
|
+
self-reporting is optional corroboration. See [Evidence
|
|
91
|
+
Layers](evidence-layers.md) and [Reviews](reviews.md).
|
|
92
|
+
|
|
93
|
+
## HiLL and lifecycle closeout
|
|
94
|
+
|
|
95
|
+
If checkpoint selection is unconfirmed when autonomy starts implementation,
|
|
96
|
+
OAT takes the existing `workflow.hillCheckpointDefault: final` path explicitly:
|
|
97
|
+
|
|
98
|
+
```yaml
|
|
99
|
+
oat_plan_hill_phases: ['<final-phase-id>']
|
|
100
|
+
oat_auto_review_at_hill_checkpoints: true
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
An existing valid explicit list is preserved. An existing `[]` is also
|
|
104
|
+
preserved and means every phase, never no phases. At each configured checkpoint,
|
|
105
|
+
autonomy runs and receives the review without waiting.
|
|
106
|
+
|
|
107
|
+
At final closeout, pre-approval lifecycle steps run first. After a passing final
|
|
108
|
+
review, autonomy records final HiLL approval and then runs post-approval steps.
|
|
109
|
+
A failed blocking review stops before approval. The default autonomous tail is
|
|
110
|
+
summary, documentation, and final PR when no post-implementation sequence is
|
|
111
|
+
configured; stored legacy or structured sequences retain their documented
|
|
112
|
+
meaning.
|
|
113
|
+
|
|
114
|
+
## Execution-learnings loop
|
|
115
|
+
|
|
116
|
+
Autonomous runs keep an append-only project-local
|
|
117
|
+
`oat-execution-learnings.md`. Dated entries record an observation, impact, and
|
|
118
|
+
recommendation under the source taxonomy: `gotcha`, `efficiency`,
|
|
119
|
+
`documentation-gap`, `candidate-skill-content`, `decision`, or
|
|
120
|
+
`environment-limited`.
|
|
121
|
+
|
|
122
|
+
When the file exists, `oat-project-summary` synthesizes actionable
|
|
123
|
+
recommendations into `## Autonomous Execution Learnings`, grouped as:
|
|
124
|
+
|
|
125
|
+
- agent-instruction updates;
|
|
126
|
+
- cloud-environment improvements;
|
|
127
|
+
- code follow-ups;
|
|
128
|
+
- workflow issues.
|
|
129
|
+
|
|
130
|
+
Each recommendation links back to its source entry. Projects without the
|
|
131
|
+
learnings file render normal summaries with no autonomous-learnings section.
|
|
132
|
+
The summary export keeps the synthesized recommendations after project
|
|
133
|
+
archival.
|
|
134
|
+
|
|
135
|
+
## Taking over interactively
|
|
136
|
+
|
|
137
|
+
After an autonomous session ends:
|
|
138
|
+
|
|
139
|
+
1. Start a normal session without the autonomy environment signals.
|
|
140
|
+
2. Open the same project from its repository-local `.oat` directory.
|
|
141
|
+
3. Resume the owning lifecycle skill.
|
|
142
|
+
|
|
143
|
+
Persisted review rows, task state, explicit HiLL checkpoints, and dispatch
|
|
144
|
+
provenance remain valid. Interactive prompts and checkpoint pauses return
|
|
145
|
+
normally because autonomy itself was never persisted.
|
|
146
|
+
|
|
147
|
+
## Related
|
|
148
|
+
|
|
149
|
+
- [HiLL Checkpoints](hill-checkpoints.md) — checkpoint field semantics and
|
|
150
|
+
interactive behavior.
|
|
151
|
+
- [Implementation Execution](implementation-execution.md) — phase execution,
|
|
152
|
+
review, fixes, and closeout.
|
|
153
|
+
- [Cursor Cloud](cursor-cloud.md) — project-home and environment-readiness
|
|
154
|
+
guidance for cloud runs.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: OAT in Cursor Cloud
|
|
3
|
+
description: 'How Cursor Cloud agents resolve the OAT project home, verify provisioned tooling, and use cloud-specific execution surfaces safely.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OAT in Cursor Cloud
|
|
7
|
+
|
|
8
|
+
Cursor Cloud is a harness environment for the same repository-rooted OAT
|
|
9
|
+
workflow used locally. Cloud context does not change project artifact formats,
|
|
10
|
+
gate ownership, or autonomy boundaries.
|
|
11
|
+
|
|
12
|
+
The `oat-cursor-cloud-projects` orientation skill owns cloud-specific setup and
|
|
13
|
+
routing guidance. It should surface when OAT is used in a Cursor Cloud
|
|
14
|
+
environment, and it can also be invoked explicitly. Use
|
|
15
|
+
`oat-project-autonomous` separately when the user explicitly requests an
|
|
16
|
+
end-to-end autonomous run; being in Cursor Cloud does not activate autonomy by
|
|
17
|
+
itself.
|
|
18
|
+
|
|
19
|
+
## Resolve the project home first
|
|
20
|
+
|
|
21
|
+
All tracked project artifacts belong to a repository, not to the workspace
|
|
22
|
+
container or user home.
|
|
23
|
+
|
|
24
|
+
### Multi-repository workspace
|
|
25
|
+
|
|
26
|
+
1. Identify the **primary repository** whose branch, commits, and final PR own
|
|
27
|
+
the requested work.
|
|
28
|
+
2. Run OAT from that repository root.
|
|
29
|
+
3. Keep the project under that repository's configured projects root, normally
|
|
30
|
+
`<primary-repo>/.oat/projects/shared/<project>/`.
|
|
31
|
+
4. Keep checkout-specific state such as `activeProject` in the primary
|
|
32
|
+
repository's `.oat/config.local.json`.
|
|
33
|
+
5. Treat sibling repositories as research or integration context unless the
|
|
34
|
+
approved plan explicitly assigns them work. Do not create a workspace-level
|
|
35
|
+
`.oat` directory to coordinate multiple repositories.
|
|
36
|
+
|
|
37
|
+
For cross-repository work, choose one primary repository as the artifact and
|
|
38
|
+
provenance anchor. Record external repository assumptions and evidence in its
|
|
39
|
+
project artifacts rather than splitting one OAT project across unrelated
|
|
40
|
+
workspace roots.
|
|
41
|
+
|
|
42
|
+
### Single-repository workspace
|
|
43
|
+
|
|
44
|
+
The checked-out repository is the project home. Run OAT at its root and use its
|
|
45
|
+
`.oat/` tree exactly as in a local checkout. Do not introduce multi-repository
|
|
46
|
+
path assumptions.
|
|
47
|
+
|
|
48
|
+
In both layouts, never store tracked projects under `~/.oat/projects`, a
|
|
49
|
+
workspace aggregator such as `/workspace/.oat`, or another repository merely
|
|
50
|
+
because it also contains OAT assets.
|
|
51
|
+
|
|
52
|
+
## Orientation and cloud detection
|
|
53
|
+
|
|
54
|
+
The orientation skill confirms cloud context from environment markers and,
|
|
55
|
+
when available, Cursor Cloud run metadata. Run metadata is also the preferred
|
|
56
|
+
source for the current model family; model self-report is not dispatch
|
|
57
|
+
evidence.
|
|
58
|
+
|
|
59
|
+
If cloud metadata is unavailable, the skill degrades to verified environment
|
|
60
|
+
signals and reports the missing evidence. It does not invent run identity or
|
|
61
|
+
block repository-local OAT work that otherwise has the required tooling.
|
|
62
|
+
|
|
63
|
+
## Provisioning expectations
|
|
64
|
+
|
|
65
|
+
A ready cloud environment provides:
|
|
66
|
+
|
|
67
|
+
- the latest published OAT CLI on `PATH`;
|
|
68
|
+
- OAT packs and skills installed at user scope;
|
|
69
|
+
- user-level `~/.oat/config.json` defaults for the dispatch candidate ladder
|
|
70
|
+
and gate execution targets, with availability probes;
|
|
71
|
+
- `cursor-agent` installed for configured headless routes;
|
|
72
|
+
- headless authentication supplied from a Cloud Agents secret;
|
|
73
|
+
- repository-local config overrides only where a specific repository needs
|
|
74
|
+
cloud behavior that differs from its shared config.
|
|
75
|
+
|
|
76
|
+
Provisioning must be idempotent and must not require an
|
|
77
|
+
`open-agent-toolkit` source checkout. A practical readiness pass verifies at
|
|
78
|
+
least:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
oat --version
|
|
82
|
+
oat config dump
|
|
83
|
+
cursor-agent --version
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
It also verifies that required user-scope packs are present, configured gate
|
|
87
|
+
targets resolve or degrade through their availability probes, and the harness
|
|
88
|
+
auth probe succeeds. A missing optional gate CLI may permit a documented
|
|
89
|
+
degraded route. A required route with no adequate fallback is a boundary.
|
|
90
|
+
|
|
91
|
+
Secrets stay in the environment or the platform's secret broker. Never write
|
|
92
|
+
`CURSOR_API_KEY` or another credential into OAT config, project artifacts,
|
|
93
|
+
dispatch records, prompts, logs, or the VM image.
|
|
94
|
+
|
|
95
|
+
## User-scope asset precedence
|
|
96
|
+
|
|
97
|
+
In provisioned cloud environments, the user-scope installation is the execution
|
|
98
|
+
source for every OAT asset class: skills, templates, and scripts. The user tier
|
|
99
|
+
is refreshed from the published package during environment setup; repository
|
|
100
|
+
copies are compatibility context, not an override.
|
|
101
|
+
|
|
102
|
+
For skills, compare frontmatter versions as a freshness check:
|
|
103
|
+
|
|
104
|
+
- user version at or above the repository version is the expected state;
|
|
105
|
+
- a higher repository version is an environment anomaly;
|
|
106
|
+
- even in that anomaly, keep the user copy as the execution source, log the
|
|
107
|
+
mismatch in `oat-execution-learnings.md`, and refresh the user tier before
|
|
108
|
+
safety-critical work.
|
|
109
|
+
|
|
110
|
+
Version comparison verifies provisioning. It never switches execution to the
|
|
111
|
+
repository copy.
|
|
112
|
+
|
|
113
|
+
## Cursor execution surfaces
|
|
114
|
+
|
|
115
|
+
Cursor Cloud native subagents, Cursor IDE subagents, the Cursor CLI subagent
|
|
116
|
+
enum, and the Cursor CLI full model catalog are separate dispatch surfaces.
|
|
117
|
+
Each can expose a differently named subset.
|
|
118
|
+
|
|
119
|
+
Snapshot the catalog for the surface being used before dispatch. Do not infer
|
|
120
|
+
that a model available to a native cloud task is available to `cursor-agent`,
|
|
121
|
+
or the reverse. The dispatch substrate owns route mechanics and records the
|
|
122
|
+
selected surface, exact configured model string, selection reason, and accepted
|
|
123
|
+
launch. See [Programmatic Execution](programmatic-execution.md) and
|
|
124
|
+
[Orchestration Model](orchestration-model.md).
|
|
125
|
+
|
|
126
|
+
## Autonomous runs
|
|
127
|
+
|
|
128
|
+
For an explicitly autonomous cloud run:
|
|
129
|
+
|
|
130
|
+
1. Resolve the primary repository and project home.
|
|
131
|
+
2. Verify the provisioned OAT and Cursor surfaces.
|
|
132
|
+
3. Invoke `oat-project-autonomous`; it activates the session-scoped autonomy
|
|
133
|
+
signals.
|
|
134
|
+
4. Use the same policy boundaries and review contract as local autonomy.
|
|
135
|
+
5. Append cloud setup gaps, degraded checks, and freshness anomalies to the
|
|
136
|
+
project-local execution-learnings log.
|
|
137
|
+
|
|
138
|
+
Missing credentials, repository-policy approval, destructive changes,
|
|
139
|
+
unresolved blocking reviews, and material product ambiguity remain boundaries.
|
|
140
|
+
See [Autonomous Project Execution](autonomy.md).
|
|
141
|
+
|
|
142
|
+
## Related
|
|
143
|
+
|
|
144
|
+
- [Autonomous Project Execution](autonomy.md) — activation, boundaries, review,
|
|
145
|
+
and learnings.
|
|
146
|
+
- [Programmatic Execution](programmatic-execution.md) — Cursor CLI and native
|
|
147
|
+
execution surfaces.
|
|
148
|
+
- [Dispatch Policy](dispatch-ceiling.md) — candidate ladders and exact route
|
|
149
|
+
selection.
|
|
150
|
+
- [Configuration](../../cli-utilities/configuration.md) — user, shared, and
|
|
151
|
+
repository-local config ownership.
|
|
@@ -12,6 +12,8 @@ Projects are where the workflow layer becomes concrete: lifecycle phases, `state
|
|
|
12
12
|
## Contents
|
|
13
13
|
|
|
14
14
|
- [Lifecycle](lifecycle.md) - End-to-end flow from discovery through completion.
|
|
15
|
+
- [Autonomous Project Execution](autonomy.md) - Session-scoped autonomy signals, gate boundaries, review requirements, and execution learnings.
|
|
16
|
+
- [OAT in Cursor Cloud](cursor-cloud.md) - Project-home, provisioning, asset-precedence, and execution-surface guidance for cloud agents.
|
|
15
17
|
- [Design Modes](design-modes.md) - How full design balances collaborative, selective collaborative, and draft-and-review interaction.
|
|
16
18
|
- [HiLL Checkpoints](hill-checkpoints.md) - Human-in-the-Loop Lifecycle configuration and approval behavior.
|
|
17
19
|
- [Dispatch Policy](dispatch-ceiling.md) - Managed capped tiers, managed Uncapped, Inherit Host Defaults, and provider-specific enforcement.
|
|
@@ -34,6 +36,8 @@ This sub-section is the deep technical surface for how tracked OAT projects exec
|
|
|
34
36
|
## Start Here
|
|
35
37
|
|
|
36
38
|
- Start with [Lifecycle](lifecycle.md) for the end-to-end flow.
|
|
39
|
+
- Use [Autonomous Project Execution](autonomy.md) for unattended lifecycle runs and defined boundary behavior.
|
|
40
|
+
- Read [OAT in Cursor Cloud](cursor-cloud.md) before running OAT in a cloud workspace.
|
|
37
41
|
- Read [Artifacts](artifacts.md) once you need the file contract behind project execution.
|
|
38
42
|
- Use [Project Splitting](splitting.md) when one discovery or brainstorm should become coordinated child projects.
|
|
39
43
|
- Use [HiLL Checkpoints](hill-checkpoints.md) when you want to understand pause/approval behavior.
|
|
@@ -49,6 +53,8 @@ This sub-section is the deep technical surface for how tracked OAT projects exec
|
|
|
49
53
|
## Go Deeper
|
|
50
54
|
|
|
51
55
|
- [Lifecycle](lifecycle.md) - End-to-end flow from discovery through completion.
|
|
56
|
+
- [Autonomous Project Execution](autonomy.md) - Session activation, gate outcomes, independent review, HiLL closeout, and learnings synthesis.
|
|
57
|
+
- [OAT in Cursor Cloud](cursor-cloud.md) - Repository anchoring, environment readiness, user-scope assets, and Cursor execution surfaces.
|
|
52
58
|
- [Design Modes](design-modes.md) - How full design balances collaborative, selective collaborative, and draft-and-review interaction.
|
|
53
59
|
- [HiLL Checkpoints](hill-checkpoints.md) - Human-in-the-Loop Lifecycle configuration and approval behavior.
|
|
54
60
|
- [Dispatch Policy](dispatch-ceiling.md) - Managed capped tiers, managed Uncapped, Inherit Host Defaults, legacy dispatch-ceiling compatibility, and provider-specific enforcement.
|