Continue working on a change by creating the next artifact.
Input: Optionally specify a change name. If omitted, MUST prompt for available changes.
Steps
- •
If no change name provided, prompt for selection
Run
openspec list --jsonto get available changes sorted by most recently modified. Then use the AskUserQuestion tool to let the user select which change to work on.Present the top 3-4 most recently modified changes as options, showing:
- •Change name
- •Schema (from
schemafield if present, otherwise "spec-driven") - •Status (e.g., "0/5 tasks", "complete", "no tasks")
- •How recently it was modified (from
lastModifiedfield)
Mark the most recently modified change as "(Recommended)" since it's likely what the user wants to continue.
IMPORTANT: Do NOT guess or auto-select a change. Always let the user choose.
- •
Check current status
bashopenspec status --change "<name>" --json
Parse the JSON to understand current state. The response includes:
- •
schemaName: The workflow schema being used (e.g., "spec-driven", "tdd") - •
artifacts: Array of artifacts with their status ("done", "ready", "blocked") - •
isComplete: Boolean indicating if all artifacts are complete
- •
- •
Act based on status:
If all artifacts are complete (
isComplete: true):- •Congratulate the user
- •Show final status including the schema used
- •Suggest: "All artifacts created! You can now implement this change or archive it."
- •STOP
If artifacts are ready to create (status shows artifacts with
status: "ready"):- •Pick the FIRST artifact with
status: "ready"from the status output - •Get its instructions:
bash
openspec instructions <artifact-id> --change "<name>" --json
- •Parse the JSON to get template, dependencies, and what it unlocks
- •Create the artifact file using the template as a starting point:
- •Read any completed dependency files for context
- •Fill in the template based on context and user's goals
- •Write to the output path specified in instructions
- •Show what was created and what's now unlocked
- •STOP after creating ONE artifact
If no artifacts are ready (all blocked):
- •This shouldn't happen with a valid schema
- •Show status and suggest checking for issues
- •
After creating an artifact, show progress
bashopenspec status --change "<name>"
Output
After each invocation, show:
- •Which artifact was created
- •Schema workflow being used
- •Current progress (N/M complete)
- •What artifacts are now unlocked
- •Prompt: "Want to continue? Just ask me to continue or tell me what to do next."
Artifact Creation Guidelines
The artifact types and their purpose depend on the schema. Use the instruction field from the instructions output to understand what to create.
Common artifact patterns:
spec-driven schema (proposal → specs → design → tasks):
- •proposal.md: Ask user about the change if not clear. Fill in Why, What Changes, Capabilities, Impact.
- •The Capabilities section is critical - each capability listed will need a spec file.
- •specs/*.md: Create one spec per capability listed in the proposal.
- •design.md: Document technical decisions, architecture, and implementation approach.
- •tasks.md: Break down implementation into checkboxed tasks.
tdd schema (spec → tests → implementation → docs):
- •spec.md: Feature specification defining what to build.
- •tests/*.test.ts: Write tests BEFORE implementation (TDD red phase).
- •src/*.ts: Implement to make tests pass (TDD green phase).
- •docs/*.md: Document the implemented feature.
For other schemas, follow the instruction field from the CLI output.
Guardrails
- •Create ONE artifact per invocation
- •Always read dependency artifacts before creating a new one
- •Never skip artifacts or create out of order
- •If context is unclear, ask the user before creating
- •Verify the artifact file exists after writing before marking progress
- •Use the schema's artifact sequence, don't assume specific artifact names