@dccxx/auggiegw 1.0.28 → 1.0.29

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.
Files changed (47) hide show
  1. package/.claude/commands/{opsx/apply.md → spec-apply.md} +160 -149
  2. package/.claude/commands/spec-archive.md +88 -0
  3. package/.claude/commands/spec-ff.md +147 -0
  4. package/.claude/commands/spec-new.md +147 -0
  5. package/.claude/commands/spec-plan.md +298 -0
  6. package/.claude/commands/spec-uiux-design.md +620 -0
  7. package/.claude/commands/{opsx/verify.md → spec-verify.md} +159 -161
  8. package/.claude/skills/{openspec-apply-change → spec-apply}/SKILL.md +160 -153
  9. package/.claude/skills/spec-archive/SKILL.md +88 -0
  10. package/.claude/skills/spec-ff/SKILL.md +147 -0
  11. package/.claude/skills/spec-new/SKILL.md +147 -0
  12. package/.claude/skills/{openspec-explore → spec-plan}/SKILL.md +295 -287
  13. package/.claude/skills/spec-uiux-design/SKILL.md +620 -0
  14. package/.claude/skills/{openspec-verify-change → spec-verify}/SKILL.md +159 -165
  15. package/dist/cli.js +3 -3
  16. package/openspec/changes/archive/2026-02-07-fix-skill-yaml-frontmatter/.openspec.yaml +2 -0
  17. package/openspec/changes/archive/2026-02-07-fix-skill-yaml-frontmatter/design.md +69 -0
  18. package/openspec/changes/archive/2026-02-07-fix-skill-yaml-frontmatter/proposal.md +25 -0
  19. package/openspec/changes/archive/2026-02-07-fix-skill-yaml-frontmatter/specs/skill-directory-structure/spec.md +29 -0
  20. package/openspec/changes/archive/2026-02-07-fix-skill-yaml-frontmatter/specs/skill-yaml-frontmatter/spec.md +61 -0
  21. package/openspec/changes/archive/2026-02-07-fix-skill-yaml-frontmatter/tasks.md +14 -0
  22. package/openspec/specs/skill-directory-structure/spec.md +16 -4
  23. package/openspec/specs/skill-yaml-frontmatter/spec.md +61 -0
  24. package/package.json +2 -2
  25. package/.augment/commands/compact.md +0 -73
  26. package/.augment/skills/compact/SKILL.md +0 -73
  27. package/.claude/commands/opsx/archive.md +0 -157
  28. package/.claude/commands/opsx/bulk-archive.md +0 -242
  29. package/.claude/commands/opsx/continue.md +0 -114
  30. package/.claude/commands/opsx/explore.md +0 -174
  31. package/.claude/commands/opsx/ff.md +0 -94
  32. package/.claude/commands/opsx/new.md +0 -69
  33. package/.claude/commands/opsx/onboard.md +0 -525
  34. package/.claude/commands/opsx/sync.md +0 -134
  35. package/.claude/skills/openspec-archive-change/SKILL.md +0 -114
  36. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +0 -246
  37. package/.claude/skills/openspec-continue-change/SKILL.md +0 -118
  38. package/.claude/skills/openspec-ff-change/SKILL.md +0 -101
  39. package/.claude/skills/openspec-new-change/SKILL.md +0 -74
  40. package/.claude/skills/openspec-onboard/SKILL.md +0 -529
  41. package/.claude/skills/openspec-sync-specs/SKILL.md +0 -138
  42. /package/openspec/changes/{add-dual-prompt-save → archive/2026-02-05-add-dual-prompt-save}/.openspec.yaml +0 -0
  43. /package/openspec/changes/{add-dual-prompt-save → archive/2026-02-05-add-dual-prompt-save}/design.md +0 -0
  44. /package/openspec/changes/{add-dual-prompt-save → archive/2026-02-05-add-dual-prompt-save}/proposal.md +0 -0
  45. /package/openspec/changes/{add-dual-prompt-save → archive/2026-02-05-add-dual-prompt-save}/specs/dual-prompt-save/spec.md +0 -0
  46. /package/openspec/changes/{add-dual-prompt-save → archive/2026-02-05-add-dual-prompt-save}/specs/skill-directory-structure/spec.md +0 -0
  47. /package/openspec/changes/{add-dual-prompt-save → archive/2026-02-05-add-dual-prompt-save}/tasks.md +0 -0
@@ -1,152 +1,163 @@
1
1
  ---
2
- name: "OPSX: Apply"
3
- description: Implement tasks from an OpenSpec change (Experimental)
4
- category: Workflow
5
- tags: [workflow, artifacts, experimental]
2
+ name: spec-apply
3
+ description: spec-apply
6
4
  ---
7
5
 
8
- Implement tasks from an OpenSpec change.
9
-
10
- **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.
11
-
12
- **Steps**
13
-
14
- 1. **Select the change**
15
-
16
- If a name is provided, use it. Otherwise:
17
- - Infer from conversation context if the user mentioned a change
18
- - Auto-select if only one active change exists
19
- - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select
20
-
21
- Always announce: "Using change: <name>" and how to override (e.g., `/opsx:apply <other>`).
22
-
23
- 2. **Check status to understand the schema**
24
- ```bash
25
- openspec status --change "<name>" --json
26
- ```
27
- Parse the JSON to understand:
28
- - `schemaName`: The workflow being used (e.g., "spec-driven")
29
- - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)
30
-
31
- 3. **Get apply instructions**
32
-
33
- ```bash
34
- openspec instructions apply --change "<name>" --json
35
- ```
36
-
37
- This returns:
38
- - Context file paths (varies by schema)
39
- - Progress (total, complete, remaining)
40
- - Task list with status
41
- - Dynamic instruction based on current state
42
-
43
- **Handle states:**
44
- - If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
45
- - If `state: "all_done"`: congratulate, suggest archive
46
- - Otherwise: proceed to implementation
47
-
48
- 4. **Read context files**
49
-
50
- Read the files listed in `contextFiles` from the apply instructions output.
51
- The files depend on the schema being used:
52
- - **spec-driven**: proposal, specs, design, tasks
53
- - Other schemas: follow the contextFiles from CLI output
54
-
55
- 5. **Show current progress**
56
-
57
- Display:
58
- - Schema being used
59
- - Progress: "N/M tasks complete"
60
- - Remaining tasks overview
61
- - Dynamic instruction from CLI
62
-
63
- 6. **Implement tasks (loop until done or blocked)**
64
-
65
- For each pending task:
66
- - Show which task is being worked on
67
- - Make the code changes required
68
- - Keep changes minimal and focused
69
- - Mark task complete in the tasks file: `- [ ]` → `- [x]`
70
- - Continue to next task
71
-
72
- **Pause if:**
73
- - Task is unclear → ask for clarification
74
- - Implementation reveals a design issue → suggest updating artifacts
75
- - Error or blocker encountered report and wait for guidance
76
- - User interrupts
77
-
78
- 7. **On completion or pause, show status**
79
-
80
- Display:
81
- - Tasks completed this session
82
- - Overall progress: "N/M tasks complete"
83
- - If all done: suggest archive
84
- - If paused: explain why and wait for guidance
85
-
86
- **Output During Implementation**
87
-
88
- ```
89
- ## Implementing: <change-name> (schema: <schema-name>)
90
-
91
- Working on task 3/7: <task description>
92
- [...implementation happening...]
93
- Task complete
94
-
95
- Working on task 4/7: <task description>
96
- [...implementation happening...]
97
- Task complete
98
- ```
99
-
100
- **Output On Completion**
101
-
102
- ```
103
- ## Implementation Complete
104
-
105
- **Change:** <change-name>
106
- **Schema:** <schema-name>
107
- **Progress:** 7/7 tasks complete ✓
108
-
109
- ### Completed This Session
110
- - [x] Task 1
111
- - [x] Task 2
112
- ...
113
-
114
- All tasks complete! You can archive this change with `/opsx:archive`.
115
- ```
116
-
117
- **Output On Pause (Issue Encountered)**
118
-
119
- ```
120
- ## Implementation Paused
121
-
122
- **Change:** <change-name>
123
- **Schema:** <schema-name>
124
- **Progress:** 4/7 tasks complete
125
-
126
- ### Issue Encountered
127
- <description of the issue>
128
-
129
- **Options:**
130
- 1. <option 1>
131
- 2. <option 2>
132
- 3. Other approach
133
-
134
- What would you like to do?
135
- ```
136
-
137
- **Guardrails**
138
- - Keep going through tasks until done or blocked
139
- - Always read context files before starting (from the apply instructions output)
140
- - If task is ambiguous, pause and ask before implementing
141
- - If implementation reveals issues, pause and suggest artifact updates
142
- - Keep code changes minimal and scoped to each task
143
- - Update task checkbox immediately after completing each task
144
- - Pause on errors, blockers, or unclear requirements - don't guess
145
- - Use contextFiles from CLI output, don't assume specific file names
146
-
147
- **Fluid Workflow Integration**
148
-
149
- This skill supports the "actions on a change" model:
150
-
151
- - **Can be invoked anytime**: Before all artifacts are done (if tasks exist), after partial implementation, interleaved with other actions
152
- - **Allows artifact updates**: If implementation reveals design issues, suggest updating artifacts - not phase-locked, work fluidly
6
+ Implement tasks from an OpenSpec change.
7
+
8
+ **⚠️ MODE: IMPLEMENTATION** This command puts you in implementation mode. You write code, complete tasks, and modify files. This is the OPPOSITE of explore mode (`/spec-plan`). When this command ends (completion or pause), you remain in implementation context until the user explicitly switches mode.
9
+
10
+ **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.
11
+
12
+ **Steps**
13
+
14
+ 1. **Select the change**
15
+
16
+ If a name is provided, use it. Otherwise:
17
+ - Infer from conversation context if the user mentioned a change
18
+ - Auto-select if only one active change exists
19
+ - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select
20
+
21
+ Always announce: "Using change: <name>" and how to override (e.g., `/spec-apply <other>`).
22
+
23
+ 2. **Check status to understand the schema**
24
+ ```bash
25
+ openspec status --change "<name>" --json
26
+ ```
27
+ Parse the JSON to understand:
28
+ - `schemaName`: The workflow being used (e.g., "spec-driven")
29
+ - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)
30
+
31
+ 3. **Get apply instructions**
32
+
33
+ ```bash
34
+ openspec instructions apply --change "<name>" --json
35
+ ```
36
+
37
+ This returns:
38
+ - Context file paths (varies by schema - could be proposal/specs/design/tasks or spec/tests/implementation/docs)
39
+ - Progress (total, complete, remaining)
40
+ - Task list with status
41
+ - Dynamic instruction based on current state
42
+
43
+ **Handle states:**
44
+ - If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
45
+ - If `state: "all_done"`: congratulate, suggest archive
46
+ - Otherwise: proceed to implementation
47
+
48
+ 4. **Read context files**
49
+
50
+ Read the files listed in `contextFiles` from the apply instructions output.
51
+ The files depend on the schema being used:
52
+ - **spec-driven**: proposal, specs, design, tasks
53
+ - Other schemas: follow the contextFiles from CLI output
54
+
55
+ 5. **Show current progress**
56
+
57
+ Display:
58
+ - Schema being used
59
+ - Progress: "N/M tasks complete"
60
+ - Remaining tasks overview
61
+ - Dynamic instruction from CLI
62
+
63
+ 6. **Implement tasks (loop until done or blocked)**
64
+
65
+ For each pending task:
66
+ - Show which task is being worked on
67
+ - Make the code changes required
68
+ - Keep changes minimal and focused
69
+ - Mark task complete in the tasks file: `- [ ]` → `- [x]`
70
+ - Continue to next task
71
+
72
+ **Pause if:**
73
+ - Task is unclearask for clarification
74
+ - Implementation reveals a design issue → suggest updating artifacts
75
+ - Error or blocker encountered → report and wait for guidance
76
+ - User interrupts
77
+
78
+ 7. **On completion or pause, show status**
79
+
80
+ Display:
81
+ - Tasks completed this session
82
+ - Overall progress: "N/M tasks complete"
83
+ - If all done: suggest archive
84
+ - If paused: explain why and wait for guidance
85
+
86
+ **Output During Implementation**
87
+
88
+ ```
89
+ ## Implementing: <change-name> (schema: <schema-name>)
90
+
91
+ Working on task 3/7: <task description>
92
+ [...implementation happening...]
93
+ Task complete
94
+
95
+ Working on task 4/7: <task description>
96
+ [...implementation happening...]
97
+ ✓ Task complete
98
+ ```
99
+
100
+ **Output On Completion**
101
+
102
+ ```
103
+ ## Implementation Complete
104
+
105
+ **Change:** <change-name>
106
+ **Schema:** <schema-name>
107
+ **Progress:** 7/7 tasks complete ✓
108
+
109
+ ### Completed This Session
110
+ - [x] Task 1
111
+ - [x] Task 2
112
+ ...
113
+
114
+ All tasks complete! Ready to archive this change.
115
+ ```
116
+
117
+ **Output On Pause (Issue Encountered)**
118
+
119
+ ```
120
+ ## Implementation Paused
121
+
122
+ **Change:** <change-name>
123
+ **Schema:** <schema-name>
124
+ **Progress:** 4/7 tasks complete
125
+
126
+ ### Issue Encountered
127
+ <description of the issue>
128
+
129
+ **Options:**
130
+ 1. <option 1>
131
+ 2. <option 2>
132
+ 3. Other approach
133
+
134
+ What would you like to do?
135
+ ```
136
+
137
+ **Guardrails**
138
+ - Keep going through tasks until done or blocked
139
+ - Always read context files before starting (from the apply instructions output)
140
+ - If task is ambiguous, pause and ask before implementing
141
+ - If implementation reveals issues, pause and suggest artifact updates
142
+ - Keep code changes minimal and scoped to each task
143
+ - Update task checkbox immediately after completing each task
144
+ - Pause on errors, blockers, or unclear requirements - don't guess
145
+ - Use contextFiles from CLI output, don't assume specific file names
146
+
147
+ **Fluid Workflow Integration**
148
+
149
+ This skill supports the "actions on a change" model:
150
+
151
+ - **Can be invoked anytime**: Before all artifacts are done (if tasks exist), after partial implementation, interleaved with other actions
152
+ - **Allows artifact updates**: If implementation reveals design issues, suggest updating artifacts - not phase-locked, work fluidly
153
+
154
+ **Mode Transition Hints**
155
+
156
+ After implementation completes or pauses, suggest next actions that respect mode boundaries:
157
+
158
+ - To think/explore/brainstorm → `/spec-plan`
159
+ - To create a new change → `/spec-ff`
160
+ - To verify implementation → `/spec-verify`
161
+ - To archive completed work → `/spec-archive`
162
+
163
+ **IMPORTANT**: After this command ends, do NOT automatically continue writing code on subsequent user messages unless the user explicitly asks to continue implementation or invokes `/spec-apply` again. If the user invokes `/spec-plan`, you MUST fully switch to explore mode — no code writing. If the user invokes `/spec-ff`, you MUST fully switch to change creation mode — no code writing, no continuing tasks.
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: spec-archive
3
+ description: spec-archive
4
+ ---
5
+
6
+ ---
7
+ model: claude-sonnet-4-5
8
+ ---
9
+
10
+ Archive a completed change in the experimental workflow.
11
+
12
+ **Input**: Optionally specify a change name. If omitted, infer from conversation context or auto-select.
13
+
14
+ **Steps**
15
+
16
+ 1. **Resolve the target change (smart detection)**
17
+
18
+ Resolve which change to archive using this priority order — do NOT prompt unless truly ambiguous:
19
+
20
+ 1. **Explicit name provided** → use it directly
21
+ 2. **Conversation context** → if the user recently ran `/spec-apply <name>` or `/spec-verify <name>` or otherwise worked on a specific change in this conversation, auto-select it and display: `Auto-selected "<name>" (from conversation context)`
22
+ 3. **Single active change** → run `openspec list --json`, if only 1 active (non-archived) change exists, auto-select it and display: `Auto-selected "<name>" (only active change)`
23
+ 4. **Ambiguous** → multiple active changes and no clear context. Only then use **AskUserQuestion tool** to let the user select. Show only active changes with their schema.
24
+
25
+ 2. **Check artifact and task completion status (non-blocking)**
26
+
27
+ Run `openspec status --change "<name>" --json` to check artifact completion.
28
+ Read the tasks file (typically `tasks.md`) to check for incomplete tasks.
29
+
30
+ Collect warnings but **do NOT prompt for confirmation** — proceed automatically:
31
+
32
+ - **Incomplete artifacts**: Note which artifacts are not `done` → include in final summary as warning
33
+ - **Incomplete tasks**: Count `- [ ]` vs `- [x]` → include in final summary as warning
34
+ - **No tasks file**: Proceed without task-related warning
35
+
36
+ 3. **Auto-sync delta specs**
37
+
38
+ Check for delta specs at `openspec/changes/<name>/specs/`.
39
+
40
+ - **No delta specs exist** → skip sync, proceed to archive
41
+ - **Delta specs exist but already synced** (main specs already reflect all changes) → skip sync, proceed to archive
42
+ - **Delta specs exist and need syncing** → display a brief summary of what will be synced, then **automatically sync** using the openspec-sync-specs skill (agent-driven). Do NOT prompt for sync/skip choice.
43
+
44
+ 4. **Perform the archive**
45
+
46
+ Create the archive directory if it doesn't exist:
47
+ ```bash
48
+ mkdir -p openspec/changes/archive
49
+ ```
50
+
51
+ Generate target name using current date: `YYYY-MM-DD-<change-name>`
52
+
53
+ **Check if target already exists:**
54
+ - If yes: Fail with error, suggest renaming existing archive or using different date
55
+ - If no: Move the change directory to archive
56
+
57
+ ```bash
58
+ mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>
59
+ ```
60
+
61
+ 5. **Display consolidated summary**
62
+
63
+ Show a single summary that includes everything — results and any warnings collected during the process:
64
+
65
+ **Output On Success**
66
+
67
+ ```
68
+ ## Archive Complete
69
+
70
+ **Change:** <change-name>
71
+ **Schema:** <schema-name>
72
+ **Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
73
+ **Specs:** ✓ Synced to main specs (or "No delta specs" or "Already synced")
74
+
75
+ ⚠️ 2 artifacts were incomplete: design, tasks
76
+ ⚠️ 3/7 tasks were incomplete
77
+ (or "All artifacts complete. All tasks complete." if no warnings)
78
+ ```
79
+
80
+ **Guardrails**
81
+ - Auto-select change when inferable from conversation context or when only one active change exists
82
+ - Only prompt for change selection when truly ambiguous (multiple active changes, no context)
83
+ - Never prompt for confirmation on incomplete artifacts or tasks — show warnings in summary
84
+ - Never prompt for sync decision — always auto-sync when delta specs need syncing
85
+ - Use artifact graph (openspec status --json) for completion checking
86
+ - Preserve .openspec.yaml when moving to archive (it moves with the directory)
87
+ - Show clear consolidated summary with all warnings at the end
88
+ - Use openspec-sync-specs approach (agent-driven) for syncing
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: spec-ff
3
+ description: spec-ff
4
+ ---
5
+
6
+ Create a new change — explore if needed, then generate all artifacts for implementation.
7
+
8
+ **⚠️ MODE BOUNDARY RESET:** When this command is invoked, **stop any prior activity** — whether you were implementing code (`/spec-apply`), exploring (`/spec-plan`), or anything else. You are now in **change creation mode**. No code writing. No continuing prior tasks. Fresh start.
9
+
10
+ **Input**: A description of what to build, optionally with a kebab-case name. Can range from vague ("login page") to specific ("add JWT auth with refresh tokens using Redis session store").
11
+
12
+ ---
13
+
14
+ ## Phase 0: Context Check
15
+
16
+ Before evaluating the user's request, check what already exists:
17
+
18
+ ```bash
19
+ openspec list --json
20
+ ```
21
+
22
+ **If active changes exist**, the user might want to:
23
+ - **Create a brand new change** — proceed normally to Phase 1
24
+ - **Update an existing change's artifacts** — e.g., "I forgot to add email validation to the auth change"
25
+
26
+ **How to tell the difference:**
27
+ - User's input clearly relates to an active change → ask: "You have an active change `<name>`. Want to update its artifacts, or create a separate change?"
28
+ - User's input is unrelated to any active change → proceed to Phase 1 (new change)
29
+ - User explicitly says "new" or provides a new name → proceed to Phase 1
30
+
31
+ **If updating an existing change**: Skip `openspec new change`, go directly to Phase 2 step 3 (get status) using the existing change name. Update only the artifacts that need changes.
32
+
33
+ ---
34
+
35
+ ## Phase 1: Understand
36
+
37
+ Evaluate the user's input to decide the next phase.
38
+
39
+ **If no input provided**, ask what they want to build (open-ended, no preset options). Do NOT proceed without a request.
40
+
41
+ **If input provided**, assess clarity:
42
+
43
+ | Signal | Means | Next Phase |
44
+ |--------|-------|------------|
45
+ | Clear scope, known tech, specific enough to write a proposal | **Ready** | → Phase 2 (Create) |
46
+ | Vague idea, missing key decisions, multiple possible approaches, unknown constraints | **Needs exploration** | → Explore (below) |
47
+
48
+ **Bias toward action.** If you can make reasonable assumptions, go to Phase 2. Only explore when the ambiguity would lead to fundamentally wrong artifacts.
49
+
50
+ ---
51
+
52
+ ## Explore (when needed)
53
+
54
+ **Goal**: Get enough clarity to create good artifacts. This is NOT open-ended brainstorming — it's focused exploration with a destination.
55
+
56
+ **Subagent rule**: If you use subagents during exploration (e.g., for codebase analysis, planning), instruct them to **report findings only — no file creation**.
57
+
58
+ **Stance**: Curious, visual, grounded. Ask questions that emerge naturally. Use ASCII diagrams when they help. Investigate the codebase for context.
59
+
60
+ **What you might do:**
61
+ - Ask 2-3 clarifying questions (not an interrogation)
62
+ - Sketch the problem space with ASCII diagrams
63
+ - Investigate the codebase to surface relevant patterns, integration points, or constraints
64
+ - Compare approaches briefly if there's a real fork in the road
65
+
66
+ **Keep it focused.** You're exploring to CREATE, not exploring to explore. When you have enough to write a solid proposal, move on.
67
+
68
+ **When sufficient clarity emerges**, present a brief summary and ask for confirmation:
69
+
70
+ ```
71
+ ## Ready to create
72
+
73
+ **What**: [1-2 sentence summary of the change]
74
+ **Approach**: [key technical decisions]
75
+ **Scope**: [what's in, what's out]
76
+
77
+ Create this change? (yes / discuss more)
78
+ ```
79
+
80
+ - User confirms → Phase 2
81
+ - User wants to discuss more → continue exploring
82
+ - If exploration reveals this is too vague or the user just wants to think → suggest `/spec-plan` for open-ended exploration
83
+
84
+ ---
85
+
86
+ ## Phase 2: Create
87
+
88
+ Once the request is clear (either from input or after exploration):
89
+
90
+ 1. **Derive a kebab-case name** from the description (e.g., "add user authentication" → `add-user-auth`).
91
+
92
+ 2. **Create the change directory**
93
+ ```bash
94
+ openspec new change "<name>"
95
+ ```
96
+
97
+ 3. **Get the artifact build order**
98
+ ```bash
99
+ openspec status --change "<name>" --json
100
+ ```
101
+ Parse: `applyRequires` (artifact IDs needed before implementation) and `artifacts` (list with status and dependencies).
102
+
103
+ 4. **Create artifacts in dependency order**
104
+
105
+ Use the **TodoWrite tool** to track progress.
106
+
107
+ For each artifact that is `ready` (dependencies satisfied):
108
+ - Get instructions: `openspec instructions <artifact-id> --change "<name>" --json`
109
+ - The instructions JSON includes:
110
+ - `context`: Project background (constraints for you — do NOT include in output)
111
+ - `rules`: Artifact-specific rules (constraints for you — do NOT include in output)
112
+ - `template`: The structure to use for your output file
113
+ - `instruction`: Schema-specific guidance for this artifact type
114
+ - `outputPath`: Where to write the artifact
115
+ - `dependencies`: Completed artifacts to read for context
116
+ - Read any completed dependency files for context
117
+ - Create the artifact file using `template` as structure
118
+ - Apply `context` and `rules` as constraints — do NOT copy them into the file
119
+ - Show brief progress: "✓ Created <artifact-id>"
120
+
121
+ Continue until all `applyRequires` artifacts have `status: "done"`. Re-check with `openspec status` after each artifact.
122
+
123
+ If an artifact requires user input (unclear context), ask and continue.
124
+
125
+ 5. **Show final status**
126
+ ```bash
127
+ openspec status --change "<name>"
128
+ ```
129
+
130
+ **Output**: Change name/location, artifacts created, and: "Run `/spec-apply` to start implementation."
131
+
132
+ ---
133
+
134
+ **Artifact Creation Guidelines**
135
+
136
+ - Follow the `instruction` field from `openspec instructions` for each artifact type
137
+ - Read dependency artifacts for context before creating new ones
138
+ - Use `template` as structure — fill in its sections
139
+ - **`context` and `rules` are constraints for YOU, not content for the file** — never copy them into output
140
+
141
+ **Guardrails**
142
+ - Create ALL artifacts needed for implementation (as defined by schema's `apply.requires`)
143
+ - Always read dependency artifacts before creating a new one
144
+ - Prefer making reasonable decisions to keep momentum — only ask when critically unclear
145
+ - If a change with that name already exists, suggest continuing that change instead
146
+ - Verify each artifact file exists after writing before proceeding to next
147
+ - **Don't over-explore** — 2-3 rounds of questions max before creating. If still unclear, create with best understanding and note assumptions in the proposal