@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
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oat-cursor-cloud-projects
|
|
3
|
+
version: 1.0.1
|
|
4
|
+
description: Use when OAT work is mentioned in a Cursor Cloud environment. Orients agents to cloud detection, repo-rooted project homes, user-first assets, CLI availability, and Cursor dispatch context without owning lifecycle execution.
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# OAT in Cursor Cloud
|
|
11
|
+
|
|
12
|
+
Orient OAT work in Cursor Cloud before any project lifecycle skill runs. This
|
|
13
|
+
skill is a harness-layer adapter: it resolves environment and asset context,
|
|
14
|
+
then returns control to the provider-agnostic OAT lifecycle.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
Use automatically when both are true:
|
|
19
|
+
|
|
20
|
+
- the request involves OAT projects, skills, tools, config, gates, or project
|
|
21
|
+
artifacts; and
|
|
22
|
+
- the current host may be a Cursor Cloud agent.
|
|
23
|
+
|
|
24
|
+
Also use when the user asks how OAT is configured in Cursor Cloud, when multiple
|
|
25
|
+
repositories make project location ambiguous, or before Cursor-specific review
|
|
26
|
+
dispatch.
|
|
27
|
+
|
|
28
|
+
Do not use this skill as the project orchestrator. Explicit autonomous
|
|
29
|
+
end-to-end requests route to `oat-project-autonomous` after orientation.
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- A shell and Node/npm are available.
|
|
34
|
+
- Read `references/cursor-cloud-mechanics.md` only when model-family identity,
|
|
35
|
+
dispatch-surface catalogs, or degraded review evidence is needed.
|
|
36
|
+
|
|
37
|
+
## Mode Assertion
|
|
38
|
+
|
|
39
|
+
**OAT MODE: Cursor Cloud Orientation**
|
|
40
|
+
|
|
41
|
+
**Purpose:** Establish trusted cloud, repository, asset, CLI, and dispatch
|
|
42
|
+
context without taking ownership of a lifecycle phase.
|
|
43
|
+
|
|
44
|
+
**BLOCKED Activities:**
|
|
45
|
+
|
|
46
|
+
- Creating, approximating, or mutating project artifacts when `oat` is missing.
|
|
47
|
+
- Selecting a repo asset over an existing user-scope asset because its version
|
|
48
|
+
is higher.
|
|
49
|
+
- Treating semver comparison as source arbitration.
|
|
50
|
+
- Placing projects in the workspace root, user home, or a cross-repo shared
|
|
51
|
+
directory outside the target repository.
|
|
52
|
+
- Reimplementing provider dispatch mechanics from
|
|
53
|
+
`oat-dispatch-subagents/references/provider-cursor.md`.
|
|
54
|
+
- Assuming one Cursor model catalog is a superset of another.
|
|
55
|
+
|
|
56
|
+
**ALLOWED Activities:**
|
|
57
|
+
|
|
58
|
+
- Detecting Cursor Cloud from environment and run metadata.
|
|
59
|
+
- Resolving the target repository and repo-rooted project home.
|
|
60
|
+
- Resolving user, repo, and bundled asset paths.
|
|
61
|
+
- Verifying or installing the supported OAT CLI.
|
|
62
|
+
- Comparing skill versions as a freshness check.
|
|
63
|
+
- Loading Cursor mechanics and org-layer context skills when relevant.
|
|
64
|
+
- Recording environment anomalies and degraded routes in project learnings.
|
|
65
|
+
|
|
66
|
+
**Self-Correction Protocol:**
|
|
67
|
+
|
|
68
|
+
If you catch yourself:
|
|
69
|
+
|
|
70
|
+
- Reading a repo copy while a user copy exists → STOP and re-read the user copy
|
|
71
|
+
by absolute path.
|
|
72
|
+
- Switching source because the repo semver is higher → STOP, retain the user
|
|
73
|
+
source, log the anomaly, and refresh the user tier.
|
|
74
|
+
- Hand-authoring an OAT artifact because the CLI is unavailable → STOP and
|
|
75
|
+
restore the CLI first.
|
|
76
|
+
- Copying model launch instructions into this skill → STOP and defer to the
|
|
77
|
+
dispatch provider reference.
|
|
78
|
+
|
|
79
|
+
**Recovery:**
|
|
80
|
+
|
|
81
|
+
1. Re-resolve the target repository and absolute user paths.
|
|
82
|
+
2. Record any stale-tier or unavailable-surface anomaly.
|
|
83
|
+
3. Return to the lifecycle skill with the corrected context, or stop when
|
|
84
|
+
freshness/CLI integrity cannot be restored.
|
|
85
|
+
|
|
86
|
+
## Progress Indicators (User-Facing)
|
|
87
|
+
|
|
88
|
+
Print this banner once when orientation performs work:
|
|
89
|
+
|
|
90
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
91
|
+
OAT ▸ CURSOR CLOUD ORIENTATION
|
|
92
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
+
|
|
94
|
+
Print each indicator only when that step starts:
|
|
95
|
+
|
|
96
|
+
- `[1/5] Detecting Cursor Cloud context…`
|
|
97
|
+
- `[2/5] Verifying the OAT CLI…`
|
|
98
|
+
- `[3/5] Resolving the target repository and project home…`
|
|
99
|
+
- `[4/5] Selecting user-first OAT assets…`
|
|
100
|
+
- `[5/5] Loading required harness and context guidance…`
|
|
101
|
+
|
|
102
|
+
## Process
|
|
103
|
+
|
|
104
|
+
### Step 0: Detect Cursor Cloud
|
|
105
|
+
|
|
106
|
+
Treat positive run metadata as authoritative. When the `cursor-cloud` MCP is
|
|
107
|
+
available, call `run-info`; use `environment-info` when repository layout,
|
|
108
|
+
environment provenance, or setup status matters.
|
|
109
|
+
|
|
110
|
+
Environment markers are deterministic supporting evidence:
|
|
111
|
+
|
|
112
|
+
- `CURSOR_AGENT=1`;
|
|
113
|
+
- `CURSOR_CONVERSATION_ID` beginning with `bc-`;
|
|
114
|
+
- `AWS_PROFILE=cursor-cloud-agent`;
|
|
115
|
+
- `HOSTNAME=cursor`.
|
|
116
|
+
|
|
117
|
+
One strong marker or positive MCP metadata is sufficient to apply this
|
|
118
|
+
orientation. Record which signal resolved the context. If no signal is present,
|
|
119
|
+
return control without imposing Cursor-specific guidance.
|
|
120
|
+
|
|
121
|
+
Do not infer model family from self-report. When dispatch identity is needed,
|
|
122
|
+
follow `references/cursor-cloud-mechanics.md`.
|
|
123
|
+
|
|
124
|
+
### Step 1: Verify the OAT CLI
|
|
125
|
+
|
|
126
|
+
Before reading or changing OAT project state:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
if command -v oat >/dev/null 2>&1; then
|
|
130
|
+
oat --version
|
|
131
|
+
else
|
|
132
|
+
npm install -g @open-agent-toolkit/cli@latest
|
|
133
|
+
oat --version
|
|
134
|
+
fi
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
If installation fails, report the exact non-secret error and stop OAT artifact
|
|
138
|
+
work. Never approximate `oat project new`, state transitions, templates,
|
|
139
|
+
manifest behavior, or configured gates manually.
|
|
140
|
+
|
|
141
|
+
An OAT source checkout may use its repository-supported source CLI command for
|
|
142
|
+
development verification, but that does not prove the globally installed CLI
|
|
143
|
+
is ready for unrelated repositories.
|
|
144
|
+
|
|
145
|
+
### Step 2: Resolve Repository and Project Home
|
|
146
|
+
|
|
147
|
+
First identify the repository that owns the requested product/code change.
|
|
148
|
+
Projects always live under that repository's configured OAT projects root.
|
|
149
|
+
|
|
150
|
+
Resolve from the target repository:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
PROJECTS_ROOT="${OAT_PROJECTS_ROOT:-$(oat config get projects.root 2>/dev/null || echo ".oat/projects/shared")}"
|
|
154
|
+
PROJECTS_ROOT="${PROJECTS_ROOT%/}"
|
|
155
|
+
PROJECT_PATH=$(oat config get activeProject 2>/dev/null || true)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Rules:
|
|
159
|
+
|
|
160
|
+
- **Single-repo workspace:** the sole target repository owns `.oat/`, local
|
|
161
|
+
config, project artifacts, commits, and PRs.
|
|
162
|
+
- **Multi-repo workspace:** choose the repository whose code and branch own the
|
|
163
|
+
primary objective. Resolve its local config from that repo, not from the
|
|
164
|
+
workspace parent or whichever repo happened to be the shell's first cwd.
|
|
165
|
+
- **Cross-repo objective:** anchor the OAT project in one explicitly selected
|
|
166
|
+
primary repository. Record secondary repositories and their write/commit
|
|
167
|
+
boundaries in the project plan; never create a workspace-level project home.
|
|
168
|
+
|
|
169
|
+
If repository ownership is ambiguous and choosing would alter branch, PR, or
|
|
170
|
+
artifact ownership, stop for explicit direction. Once resolved, run lifecycle
|
|
171
|
+
commands from the target repository or pass their supported project path.
|
|
172
|
+
|
|
173
|
+
### Step 3: Resolve Assets with User Scope First
|
|
174
|
+
|
|
175
|
+
Apply one source order independently to every asset file:
|
|
176
|
+
|
|
177
|
+
1. user scope;
|
|
178
|
+
2. target-repository scope when the user asset is absent;
|
|
179
|
+
3. bundled CLI asset when both installed tiers are absent.
|
|
180
|
+
|
|
181
|
+
User locations:
|
|
182
|
+
|
|
183
|
+
| Asset | User source |
|
|
184
|
+
| -------- | --------------------------- |
|
|
185
|
+
| Skill | `~/.agents/skills/<skill>/` |
|
|
186
|
+
| Template | `~/.oat/templates/<file>` |
|
|
187
|
+
| Script | `~/.oat/scripts/<file>` |
|
|
188
|
+
|
|
189
|
+
Repository locations are `.agents/skills/`, `.oat/templates/`, and
|
|
190
|
+
`.oat/scripts/` within the target repository.
|
|
191
|
+
|
|
192
|
+
The user tier is provisioned from `@latest` at environment boot and is the
|
|
193
|
+
canonical execution tier. Repository copies in this fleet are not customized;
|
|
194
|
+
a difference indicates staleness, not a local override.
|
|
195
|
+
|
|
196
|
+
#### Absolute-path loading contract
|
|
197
|
+
|
|
198
|
+
The p02-t01 environment probe proved OAT-level discovery of
|
|
199
|
+
`~/.agents/skills/` but could not verify fresh Cursor model auto-surfacing.
|
|
200
|
+
Therefore, resolve and read the selected user asset by absolute path as the
|
|
201
|
+
**primary mechanism**:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
USER_SKILLS_ROOT="${HOME}/.agents/skills"
|
|
205
|
+
USER_TEMPLATES_ROOT="${HOME}/.oat/templates"
|
|
206
|
+
USER_SCRIPTS_ROOT="${HOME}/.oat/scripts"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Do not rely on ambient skill discovery or a provider hot reload for
|
|
210
|
+
correctness. Auto-surfacing is a convenience only.
|
|
211
|
+
|
|
212
|
+
#### Skill version verification
|
|
213
|
+
|
|
214
|
+
When both user and repo copies of a skill exist, compare their frontmatter
|
|
215
|
+
`version:` values. This check verifies the expected invariant:
|
|
216
|
+
|
|
217
|
+
```text
|
|
218
|
+
user version >= repo version
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
It never chooses the source:
|
|
222
|
+
|
|
223
|
+
- user version equal to or higher than repo → read the user copy;
|
|
224
|
+
- repo version higher than user → still read the user copy, append an anomaly
|
|
225
|
+
to `oat-execution-learnings.md`, and flag the user tier for refresh with
|
|
226
|
+
`oat tools update` or an environment rebuild;
|
|
227
|
+
- if freshness is safety-critical, refresh and re-verify before continuing;
|
|
228
|
+
stop if the user tier cannot be refreshed safely.
|
|
229
|
+
|
|
230
|
+
Never silently switch to the repo copy. Apply per-file precedence to templates
|
|
231
|
+
and scripts without using skill semver as their arbitration mechanism.
|
|
232
|
+
|
|
233
|
+
### Step 4: Load Cursor Dispatch Context When Needed
|
|
234
|
+
|
|
235
|
+
For Cursor review/worker dispatch:
|
|
236
|
+
|
|
237
|
+
1. Read `references/cursor-cloud-mechanics.md`.
|
|
238
|
+
2. Resolve and read the selected user-scope
|
|
239
|
+
`oat-dispatch-subagents/references/provider-cursor.md` by absolute path,
|
|
240
|
+
falling back to repo/bundled tiers only when the user skill is absent.
|
|
241
|
+
3. Let `oat-project-dispatch-subagents` adapt lifecycle scope and policy.
|
|
242
|
+
4. Let `oat-dispatch-subagents` own capability, catalog, route, launch,
|
|
243
|
+
recovery, and generic evidence.
|
|
244
|
+
|
|
245
|
+
This skill supplies identity and catalog context only. Do not restate or alter
|
|
246
|
+
the provider dispatch algorithm.
|
|
247
|
+
|
|
248
|
+
### Step 5: Surface Adjacent Skills and Record Degradation
|
|
249
|
+
|
|
250
|
+
- If the user explicitly requested goal-to-PR or resume-to-PR autonomy, load
|
|
251
|
+
`oat-project-autonomous` from the selected user-first source.
|
|
252
|
+
- Discover context/research skills supplied by the active organization or
|
|
253
|
+
environment when integrated systems require them. Do not hard-depend on,
|
|
254
|
+
name, or emulate an absent org layer.
|
|
255
|
+
- When an expected skill, MCP server, CLI surface, or credential is absent,
|
|
256
|
+
record the gap in the active project's `oat-execution-learnings.md`. Continue
|
|
257
|
+
only through a documented integrity-preserving route.
|
|
258
|
+
|
|
259
|
+
Return an orientation summary:
|
|
260
|
+
|
|
261
|
+
```text
|
|
262
|
+
Cursor Cloud: {detected | not detected} via {signal}
|
|
263
|
+
Target repository: {absolute path}
|
|
264
|
+
Projects root: {repo-relative or absolute configured path}
|
|
265
|
+
Active project: {path | none}
|
|
266
|
+
OAT CLI: {version | blocked}
|
|
267
|
+
Asset tier: user-first; absolute-path loading primary
|
|
268
|
+
Freshness: {verified | anomaly logged | refresh required}
|
|
269
|
+
Dispatch context: {not needed | mechanics loaded}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Examples
|
|
273
|
+
|
|
274
|
+
### Basic Usage
|
|
275
|
+
|
|
276
|
+
```text
|
|
277
|
+
/oat-cursor-cloud-projects
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Conversational
|
|
281
|
+
|
|
282
|
+
```text
|
|
283
|
+
I need to continue an OAT project in this Cursor Cloud workspace.
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
```text
|
|
287
|
+
Which OAT skill and template copies should this cloud agent use?
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Troubleshooting
|
|
291
|
+
|
|
292
|
+
**Multiple repositories contain `.oat/`:** Resolve the repository that owns the
|
|
293
|
+
change and branch. Do not select by lexical order or create a workspace-level
|
|
294
|
+
project.
|
|
295
|
+
|
|
296
|
+
**User skill is older than repo skill:** Keep the user skill as source, log the
|
|
297
|
+
anomaly, run `oat tools update` or rebuild the environment, and block
|
|
298
|
+
safety-critical work until freshness is restored.
|
|
299
|
+
|
|
300
|
+
**Skill does not auto-surface:** Read its user-scope `SKILL.md` by absolute path.
|
|
301
|
+
Do not require an agent restart for correctness.
|
|
302
|
+
|
|
303
|
+
**Cursor model names disagree across commands:** Treat each command/tool as a
|
|
304
|
+
separate dispatch surface and snapshot its current catalog. See
|
|
305
|
+
`references/cursor-cloud-mechanics.md`.
|
|
306
|
+
|
|
307
|
+
## Success Criteria
|
|
308
|
+
|
|
309
|
+
- ✅ Cursor Cloud context was resolved from metadata or deterministic markers.
|
|
310
|
+
- ✅ `oat` was verified before project artifact work.
|
|
311
|
+
- ✅ The project home is anchored inside the target repository in both single-
|
|
312
|
+
and multi-repo environments.
|
|
313
|
+
- ✅ Existing user assets won independently for skills, templates, and scripts.
|
|
314
|
+
- ✅ Skill version comparison verified freshness without changing source.
|
|
315
|
+
- ✅ User assets were read by absolute path as the primary mechanism.
|
|
316
|
+
- ✅ Cursor dispatch mechanics remained delegated to the canonical provider
|
|
317
|
+
reference.
|
|
318
|
+
- ✅ Missing surfaces and freshness anomalies were recorded rather than hidden.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Cursor Cloud Mechanics
|
|
2
|
+
|
|
3
|
+
Load this reference only when Cursor-specific model-family identity, dispatch
|
|
4
|
+
catalog evidence, or degraded review provenance is needed. It supplies context
|
|
5
|
+
to the dispatch substrate; it does not define launch or recovery mechanics.
|
|
6
|
+
|
|
7
|
+
## Deterministic Producer Family
|
|
8
|
+
|
|
9
|
+
Never ask a model to identify its own family. Self-report is not dispatch
|
|
10
|
+
evidence.
|
|
11
|
+
|
|
12
|
+
Resolve identity in this order:
|
|
13
|
+
|
|
14
|
+
1. Call the `cursor-cloud` MCP `run-info` tool for the current run.
|
|
15
|
+
2. Read `originalModelName` from the returned run metadata.
|
|
16
|
+
3. Preserve the exact slug as producer identity evidence.
|
|
17
|
+
4. Normalize a lowercase copy only for family classification.
|
|
18
|
+
5. Map the normalized value with the ordered rules below.
|
|
19
|
+
|
|
20
|
+
| Match, in order | Family |
|
|
21
|
+
| --------------------------------------------------------------------- | ---------- |
|
|
22
|
+
| contains `claude` or `anthropic` | `claude` |
|
|
23
|
+
| contains `gpt`, `openai`, `codex`, or an OpenAI reasoning-series slug | `openai` |
|
|
24
|
+
| contains `grok` or `xai` | `xai` |
|
|
25
|
+
| contains `composer` | `composer` |
|
|
26
|
+
| contains `glm` | `glm` |
|
|
27
|
+
| no rule matches | `unknown` |
|
|
28
|
+
|
|
29
|
+
Match Grok/xAI before interpreting any generic `cursor-` prefix. For example,
|
|
30
|
+
`cursor-grok-4.5-high` is family `xai`, not family `cursor` or `unknown`.
|
|
31
|
+
|
|
32
|
+
If `run-info` is unavailable or omits `originalModelName`, record producer
|
|
33
|
+
family as `unknown` with the missing evidence. Do not substitute conversational
|
|
34
|
+
self-report, a guessed family, or a model name observed in a different run.
|
|
35
|
+
Blocking cross-family review must fail closed when the owning review contract
|
|
36
|
+
cannot preserve its independence requirement.
|
|
37
|
+
|
|
38
|
+
Use `environment-info` for environment/version provenance and repository setup,
|
|
39
|
+
not as a replacement for current-run model identity unless it explicitly
|
|
40
|
+
contains the same authoritative run field.
|
|
41
|
+
|
|
42
|
+
## Per-Surface Catalog Rule
|
|
43
|
+
|
|
44
|
+
Treat every Cursor dispatch surface as a distinct curated catalog with its own
|
|
45
|
+
names and availability:
|
|
46
|
+
|
|
47
|
+
1. Cursor Cloud native Task/subagent surface.
|
|
48
|
+
2. Cursor IDE native agent surface.
|
|
49
|
+
3. Cursor CLI subagent model enum.
|
|
50
|
+
4. Cursor CLI full model list.
|
|
51
|
+
|
|
52
|
+
These catalogs cross-cut; they do not form nested supersets. A model available
|
|
53
|
+
on one surface is not evidence that another surface accepts the same slug.
|
|
54
|
+
Aliases and effort suffixes are opaque per surface.
|
|
55
|
+
|
|
56
|
+
Verified snapshot on 2026-07-13:
|
|
57
|
+
|
|
58
|
+
- the Cursor Cloud native surface included a Sol `xhigh` selector and did not
|
|
59
|
+
expose the corresponding Sol `max` selector;
|
|
60
|
+
- the Cursor CLI subagent enum exposed the Sol `max` selector and not that
|
|
61
|
+
native `xhigh` selector.
|
|
62
|
+
|
|
63
|
+
This snapshot documents the divergence; it is not a permanent allowlist.
|
|
64
|
+
Provisioning the CLI adds a differently shaped surface so cloud-native and CLI
|
|
65
|
+
routes together can reach their union. It does not make either individual
|
|
66
|
+
catalog authoritative for the other.
|
|
67
|
+
|
|
68
|
+
Before every dispatch:
|
|
69
|
+
|
|
70
|
+
1. Identify the exact surface that will accept the launch.
|
|
71
|
+
2. Snapshot that surface's current catalog from its own tool schema, enum, or
|
|
72
|
+
list command.
|
|
73
|
+
3. Record source, observation time, and exact candidate strings.
|
|
74
|
+
4. Intersect only that snapshot with the already-resolved policy candidates.
|
|
75
|
+
5. Pass the resulting context to `oat-dispatch-subagents`.
|
|
76
|
+
|
|
77
|
+
Do not:
|
|
78
|
+
|
|
79
|
+
- reuse a catalog snapshot from another surface;
|
|
80
|
+
- assume a successful main-agent selector is accepted by a subagent enum;
|
|
81
|
+
- rewrite, trim, or translate an opaque model slug;
|
|
82
|
+
- select from a stale design-time list when current catalog evidence exists;
|
|
83
|
+
- fall through to another surface after a launch has been accepted.
|
|
84
|
+
|
|
85
|
+
## Dispatch Ownership
|
|
86
|
+
|
|
87
|
+
After identity and catalog context are captured, read and follow
|
|
88
|
+
`oat-dispatch-subagents/references/provider-cursor.md` from the user-first asset
|
|
89
|
+
source selected by the orientation skill.
|
|
90
|
+
|
|
91
|
+
That provider reference owns Cursor launch, acceptance, continuation, retry,
|
|
92
|
+
and recovery mechanics. `oat-project-dispatch-subagents` owns lifecycle scope
|
|
93
|
+
and policy adaptation. Do not duplicate those contracts here.
|
|
94
|
+
|
|
95
|
+
## Degraded Route Evidence
|
|
96
|
+
|
|
97
|
+
Degradation is a pre-launch selection outcome, not a post-accept fallback.
|
|
98
|
+
Record it in the canonical dispatch record plus project learnings.
|
|
99
|
+
|
|
100
|
+
Use this shape for the Cursor-specific evidence supplied to the generic record:
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
producer_identity:
|
|
104
|
+
source: cursor-cloud.run-info.originalModelName
|
|
105
|
+
exact_model: gpt-5.6-sol-xhigh
|
|
106
|
+
family: openai
|
|
107
|
+
dispatch_surface:
|
|
108
|
+
name: cursor-cloud-native
|
|
109
|
+
catalog_snapshot:
|
|
110
|
+
source: tool-schema
|
|
111
|
+
observed_at: 2026-07-13T21:00:00Z
|
|
112
|
+
candidates:
|
|
113
|
+
- exact-opaque-selector
|
|
114
|
+
selection:
|
|
115
|
+
selection_source: policy-resolved
|
|
116
|
+
selection_reason: cross-family-candidate-available
|
|
117
|
+
selected_target: exact-opaque-selector
|
|
118
|
+
independence:
|
|
119
|
+
achieved: cross-family-and-context
|
|
120
|
+
producer_family: openai
|
|
121
|
+
reviewer_family: claude
|
|
122
|
+
family_independent: true
|
|
123
|
+
context_independent: true
|
|
124
|
+
degradation:
|
|
125
|
+
present: false
|
|
126
|
+
reason: null
|
|
127
|
+
dispatch_record: dispatch-unique-id
|
|
128
|
+
learnings_entry: null
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Allowed `independence.achieved` values:
|
|
132
|
+
|
|
133
|
+
- `cross-family-and-context`;
|
|
134
|
+
- `same-family-context-independent`;
|
|
135
|
+
- `context-only`;
|
|
136
|
+
- `none`.
|
|
137
|
+
|
|
138
|
+
When no second family is dispatchable but the owning non-blocking review
|
|
139
|
+
contract allows same-family review:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
selection:
|
|
143
|
+
selection_source: policy-resolved
|
|
144
|
+
selection_reason: no-cross-family-candidate-on-selected-surface
|
|
145
|
+
independence:
|
|
146
|
+
achieved: same-family-context-independent
|
|
147
|
+
family_independent: false
|
|
148
|
+
context_independent: true
|
|
149
|
+
degradation:
|
|
150
|
+
present: true
|
|
151
|
+
reason: catalog-contained-one-dispatchable-family
|
|
152
|
+
learnings_entry: oat-execution-learnings.md#<entry>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Include the exact configured invocation evidence required by the generic record
|
|
156
|
+
schema. Keep runtime confirmation separate and non-authoritative. Never record
|
|
157
|
+
credentials or secret values.
|
|
158
|
+
|
|
159
|
+
For a blocking review, `none` is not an acceptable achieved independence level.
|
|
160
|
+
If no route meets the owning contract, emit a boundary record rather than
|
|
161
|
+
claiming degraded success.
|
|
162
|
+
|
|
163
|
+
## Accepted-Launch Terminality
|
|
164
|
+
|
|
165
|
+
Catalog divergence is resolved before launch. Once a launch is accepted, that
|
|
166
|
+
route is terminal:
|
|
167
|
+
|
|
168
|
+
- continue or retry only through the accepted handle and identical payload as
|
|
169
|
+
permitted by the dispatch engine;
|
|
170
|
+
- after bounded recovery, record the terminal blocker;
|
|
171
|
+
- never reinterpret another catalog as a runtime fallback;
|
|
172
|
+
- never launch a cheaper or differently shaped target to replace an accepted
|
|
173
|
+
route.
|