with one click
openspec-propose
// Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
// Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
| name | openspec-propose |
| description | Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation. |
| license | MIT |
| compatibility | Requires openspec CLI. |
| metadata | {"author":"openspec","version":"1.2","generatedBy":"1.3.1"} |
Propose a new change - create the change and generate all artifacts in one step.
I'll create a change with artifacts:
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. It may also include one or more source files that the proposal must be decomposed from.
If the request explicitly says according to <file-path-list>, start task decomposition, then:
<file-path-list> means the source file or files that define the decomposition input for this changeSteps
Identify the change and the decomposition source files
Determine:
If the user provided source files for decomposition, read every listed file before creating or updating any artifact. Treat those files as the primary source for:
If no clear goal is provided, 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.
If source files are provided, perform decomposition before writing artifacts
Build a decomposition result from the supplied file(s):
This decomposition is part of the propose phase itself. Do not require the user to restate this workflow on every change.
Create the change directory
openspec new change "<name>"
This creates a scaffolded change at openspec/changes/<name>/ with .openspec.yaml.
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 task-planning tool available in the environment (for example update_plan; if a checklist tool exists, use it) to track progress through the artifacts.
The progress list MUST explicitly include these gate milestones in order:
proposal.md drafteddesign.md draftedspecs/* draftedtasks.md draftedIMPORTANT: gate checks are in-process blockers, not end-of-flow clean-up work. Do not postpone them until after all artifacts are written.
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 fileArtifact-specific workflow:
proposal.md: write the change intent, scope, capability slices, risks, and rationale from the decomposition resultproposal.md, run Proofability Check before writing design.mddesign.md: write the implementation structure, interfaces, sequencing, and validation strategy for every non-deferred proposal itemspecs/* and tasks.md: derive them only from the validated proposal/design pairtasks.md must follow the OpenSpec x spec-kit blended structure: Setup -> Blocking -> Slice 1..N -> Reconciliationtasks.md must include MVP scope, dependencies, parallel opportunities, slice goals, and independent acceptance criteria1.1 / 1.2 style and support [P] and [Slice-X] tagsinteractive, the first item in Blocking in tasks.md must be Proof Taskspecs/* + tasks.md, run Tasks Readiness Check using openspec/QUALITY-GATE.md before declaring the change readyRequired gate enforcement:
Proofability Check section in openspec/QUALITY-GATE.md as checklist reference onlyinteractive, verify the proposal states can start but cannot be interacted with = failureopenspec/QUALITY-GATE.mdverifier sub-agent to execute this checkverifier only the change path, artifact paths, openspec/QUALITY-GATE.md, and the exact gate to reviewverifier checks the whole change artifact set: proposal.md, design.md, specs/*, and tasks.mdverifier must report deficient artifacts and findings; it must not decide whether to create another change or rewrite the scope itselfverifier must review independently rather than inheriting the main agent's conclusionPASS or FAILfindings, ordered by severityPASS, still include residual risksverifier result in the conversationverifierverifier returns PASS may the main agent mark Tasks Readiness Check completeTask decomposition requirements:
Setup tasks first for context preparation and basic scaffoldingBlocking tasks for shared prerequisites that must be completed first; if the change is interactive, the first item must be Proof Taskslice goal and independent acceptance criteriaReconciliation tasks for wrap-up, documentation, compatibility, regression, and alignment work[P][Slice-1], [Slice-2], ... [Slice-N] or equivalent numbered tagsverifier task must explicitly include Inspection Scope, Inspection Content, and PASS/FAIL Gateb. 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 and finishing Tasks Readiness Check, summarize:
verifier/opsx:apply or ask me to implement to start working on the tasks."Artifact Creation Guidelines
Follow the instruction field from openspec instructions for each artifact type
The schema defines what each artifact should contain - follow it
Read dependency artifacts for context before creating new ones
If the user supplied one or more files for decomposition, use them as required source inputs rather than optional background
Use template as the structure for your output file - fill in its sections
IMPORTANT: context and rules are constraints for YOU, not content for the file
<context>, <rules>, <project_context> blocks into the artifactKeep the workflow fixed when decomposition files are provided:
proposal.md -> proofability checkdesign.mdspecs/* + tasks.mdopenspec/QUALITY-GATE.mdIf you produce any process task list / plan / checklist while executing this skill, you MUST include these gate tasks explicitly:
Guardrails
apply.requires)proofability check after proposal.mdtasks readiness check until after you have already declared the change readyTasks Readiness Check as passed before an independent verifier returns PASSopenspec/QUALITY-GATE.md has unresolved readiness failures[HINT] Download the complete skill directory including SKILL.md and all related files