You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* opsx: infer change for apply
* opsx: prompt when apply ambiguous
* opsx: use AskUserQuestion when ambiguous
* Simplify opsx:apply change selection instructions
Update all change selection instructions across all opsx commands
(apply, continue, sync, archive, verify, ff) to use consistent wording:
"If omitted, check if it can be inferred from conversation context.
If vague or ambiguous you MUST prompt for available changes."
For apply specifically, also simplifies Step 1 from ~180 to ~60 words
while preserving the same behavior: infer from conversation, auto-select
if single change, prompt via AskUserQuestion if ambiguous, always announce.
Removes micromanagement details (validation commands, recommendation
markers, presentation specifics) and trusts the LLM to figure out
reasonable defaults.
Copy file name to clipboardExpand all lines: docs/experimental-workflow.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ Creates all planning artifacts at once. Use when you have a clear picture of wha
119
119
```
120
120
/opsx:apply
121
121
```
122
-
Works through tasks, checking them off as you go. **Key difference:** if you discover issues during implementation, you can update your specs, design, or tasks — then continue. No phase gates.
122
+
Works through tasks, checking them off as you go. **Key difference:** if you discover issues during implementation, you can update your specs, design, or tasks — then continue. No phase gates. If you're juggling multiple changes, you can run `/opsx:apply <name>`; otherwise it should infer from the conversation and prompt you to choose if it can’t tell.
Copy file name to clipboardExpand all lines: src/core/templates/skill-templates.ts
+22-24Lines changed: 22 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -385,7 +385,7 @@ export function getContinueChangeSkillTemplate(): SkillTemplate {
385
385
description: 'Continue working on an OpenSpec change by creating the next artifact. Use when the user wants to progress their change, create the next artifact, or continue their workflow.',
386
386
instructions: `Continue working on a change by creating the next artifact.
387
387
388
-
**Input**: Optionally specify a change name. If omitted, MUST prompt for available changes.
388
+
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
389
389
390
390
**Steps**
391
391
@@ -499,19 +499,18 @@ export function getApplyChangeSkillTemplate(): SkillTemplate {
499
499
description: 'Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.',
500
500
instructions: `Implement tasks from an OpenSpec change.
501
501
502
-
**Input**: Optionally specify a change name. If omitted, MUST prompt for available changes.
502
+
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
503
503
504
504
**Steps**
505
505
506
-
1. **If no change name provided, prompt for selection**
507
-
508
-
Run \`openspec list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
506
+
1. **Select the change**
509
507
510
-
Show changes that are implementation-ready (have tasks artifact).
511
-
Include the schema used for each change if available.
512
-
Mark changes with incomplete tasks as "(In Progress)".
508
+
If a name is provided, use it. Otherwise:
509
+
- Infer from conversation context if the user mentioned a change
510
+
- Auto-select if only one active change exists
511
+
- If ambiguous, run \`openspec list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
513
512
514
-
**IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
513
+
Always announce: "Using change: <name>" and how to override (e.g., \`/opsx:apply <other>\`).
515
514
516
515
2. **Check status to understand the schema**
517
516
\`\`\`bash
@@ -754,7 +753,7 @@ export function getSyncSpecsSkillTemplate(): SkillTemplate {
754
753
755
754
This is an **agent-driven** operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
756
755
757
-
**Input**: Optionally specify a change name. If omitted, MUST prompt for available changes.
756
+
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
758
757
759
758
**Steps**
760
759
@@ -1154,7 +1153,7 @@ export function getOpsxContinueCommandTemplate(): CommandTemplate {
1154
1153
tags: ['workflow','artifacts','experimental'],
1155
1154
content: `Continue working on a change by creating the next artifact.
1156
1155
1157
-
**Input**: Optionally specify \`--change <name>\` after \`/opsx:continue\`. If omitted, MUST prompt for available changes.
1156
+
**Input**: Optionally specify a change name after \`/opsx:continue\` (e.g., \`/opsx:continue add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
1158
1157
1159
1158
**Steps**
1160
1159
@@ -1269,19 +1268,18 @@ export function getOpsxApplyCommandTemplate(): CommandTemplate {
1269
1268
tags: ['workflow','artifacts','experimental'],
1270
1269
content: `Implement tasks from an OpenSpec change.
1271
1270
1272
-
**Input**: Optionally specify \`--change <name>\` after \`/opsx:apply\`. If omitted, MUST prompt for available changes.
1271
+
**Input**: Optionally specify a change name (e.g., \`/opsx:apply add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
1273
1272
1274
1273
**Steps**
1275
1274
1276
-
1. **If no change name provided, prompt for selection**
1277
-
1278
-
Run \`openspec list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
1275
+
1. **Select the change**
1279
1276
1280
-
Show changes that are implementation-ready (have tasks artifact).
1281
-
Include the schema used for each change if available.
1282
-
Mark changes with incomplete tasks as "(In Progress)".
1277
+
If a name is provided, use it. Otherwise:
1278
+
- Infer from conversation context if the user mentioned a change
1279
+
- Auto-select if only one active change exists
1280
+
- If ambiguous, run \`openspec list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
1283
1281
1284
-
**IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
1282
+
Always announce: "Using change: <name>" and how to override (e.g., \`/opsx:apply <other>\`).
1285
1283
1286
1284
2. **Check status to understand the schema**
1287
1285
\`\`\`bash
@@ -1524,7 +1522,7 @@ export function getArchiveChangeSkillTemplate(): SkillTemplate {
1524
1522
description: 'Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.',
1525
1523
instructions: `Archive a completed change in the experimental workflow.
1526
1524
1527
-
**Input**: Optionally specify a change name. If omitted, MUST prompt for available changes.
1525
+
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
1528
1526
1529
1527
**Steps**
1530
1528
@@ -1641,7 +1639,7 @@ export function getOpsxSyncCommandTemplate(): CommandTemplate {
1641
1639
1642
1640
This is an **agent-driven** operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
1643
1641
1644
-
**Input**: Optionally specify \`--change <name>\` after \`/opsx:sync\`. If omitted, MUST prompt for available changes.
1642
+
**Input**: Optionally specify a change name after \`/opsx:sync\` (e.g., \`/opsx:sync add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
1645
1643
1646
1644
**Steps**
1647
1645
@@ -1777,7 +1775,7 @@ export function getVerifyChangeSkillTemplate(): SkillTemplate {
1777
1775
description: 'Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.',
1778
1776
instructions: `Verify that an implementation matches the change artifacts (specs, tasks, design).
1779
1777
1780
-
**Input**: Optionally specify a change name. If omitted, MUST prompt for available changes.
1778
+
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
1781
1779
1782
1780
**Steps**
1783
1781
@@ -1946,7 +1944,7 @@ export function getOpsxArchiveCommandTemplate(): CommandTemplate {
1946
1944
tags: ['workflow','archive','experimental'],
1947
1945
content: `Archive a completed change in the experimental workflow.
1948
1946
1949
-
**Input**: Optionally specify \`--change <name>\` after \`/opsx:archive\`. If omitted, MUST prompt for available changes.
1947
+
**Input**: Optionally specify a change name after \`/opsx:archive\` (e.g., \`/opsx:archive add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
1950
1948
1951
1949
**Steps**
1952
1950
@@ -2108,7 +2106,7 @@ export function getOpsxVerifyCommandTemplate(): CommandTemplate {
2108
2106
tags: ['workflow','verify','experimental'],
2109
2107
content: `Verify that an implementation matches the change artifacts (specs, tasks, design).
2110
2108
2111
-
**Input**: Optionally specify \`--change <name>\` after \`/opsx:verify\`. If omitted, MUST prompt for available changes.
2109
+
**Input**: Optionally specify a change name after \`/opsx:verify\` (e.g., \`/opsx:verify add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
0 commit comments