with one click
openspec-propose
// Propose a new change with schema-driven artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get implementation-ready artifacts.
// Propose a new change with schema-driven artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get implementation-ready artifacts.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | openspec-propose |
| description | Propose a new change with schema-driven artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get implementation-ready artifacts. |
| license | MIT |
| compatibility | Requires openspec CLI. |
| metadata | {"author":"openspec","version":"1.0","generatedBy":"1.2.0"} |
Propose a new change - create the change and generate the artifacts required by the selected schema.
I'll create artifacts required by the selected schema:
When ready to implement, run /opsx:apply
Input: The user's request should include a change name (kebab-case) OR a description of what they want to build.
Steps
If no clear input provided, ask what they want to build
Use the AskUserQuestion tool (open-ended, no preset options) to ask:
"What change do you want to work on? Describe what you want to build or fix."
From their description, derive a kebab-case name (e.g., "add user authentication" → add-user-auth).
IMPORTANT: Do NOT proceed without understanding what the user wants to build.
Create the change directory
openspec new change "<name>"
This creates a scaffolded change at openspec/changes/<name>/ with .openspec.yaml.
Default schema is rapid (proposal → status → tasks). For complex changes that need
specs and technical design, use --schema spec-driven explicitly:
openspec new change --schema spec-driven "<name>"
Get the artifact build order
openspec status --change "<name>" --json
Parse the JSON to get:
applyRequires: array of artifact IDs needed before implementation (e.g., ["tasks"])artifacts: list of all artifacts with their status and dependenciesCreate artifacts in sequence until apply-ready
Use the TodoWrite tool to track progress through the artifacts.
Loop through artifacts in dependency order (artifacts with no pending dependencies first):
a. For each artifact that is ready (dependencies satisfied):
openspec instructions <artifact-id> --change "<name>" --json
context: Project background (constraints for you - do NOT include in output)rules: Artifact-specific rules (constraints for you - do NOT include in output)template: The structure to use for your output fileinstruction: Schema-specific guidance for this artifact typeoutputPath: Where to write the artifactdependencies: Completed artifacts to read for contexttemplate as the structurecontext and rules as constraints - but do NOT copy them into the filestatus.yaml, initialize implementation.status as proposed,
implementation.prs as [], implementation.evidence as [], and
implementation.updated with today's YYYY-MM-DD date. Replace the
template placeholder; never leave the literal <YYYY-MM-DD> value.b. Continue until all applyRequires artifacts are complete
openspec status --change "<name>" --jsonapplyRequires has status: "done" in the artifacts arrayapplyRequires artifacts are donec. If an artifact requires user input (unclear context):
Show final status
openspec status --change "<name>"
Output
After completing all artifacts, summarize:
/opsx:apply or ask me to implement to start working on the tasks."Artifact Creation Guidelines
instruction field from openspec instructions for each artifact typetemplate as the structure for your output file - fill in its sectionscontext and rules are constraints for YOU, not content for the file
<context>, <rules>, <project_context> blocks into the artifactGuardrails
apply.requires)