| 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.0","generatedBy":"1.2.0"} |
Propose a new change - create the change and generate all artifacts in one step.
I'll create a change with artifacts:
- proposal.md (what & why)
- design.md (how)
- tasks.md (implementation steps)
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.
2a. Create and checkout a branch
git checkout -b opsx/<name>
Guard: Before creating the branch, check the current branch:
- If already on
opsx/<name> (exact match): skip branch creation, proceed.
- If on a different
opsx/* branch: STOP with error: "Already on branch opsx/<other> -- finish or archive that change first."
- If on
main or any non-opsx branch: create and checkout opsx/<name>.
2b. Retrieve context from Dewey
Before drafting the proposal, query Dewey for relevant context:
dewey_semantic_search with the change description to find
related specs, past proposals, and similar changes
dewey_semantic_search_filtered with source_type: "github"
to find related issues across the organization
dewey_traverse on any discovered related specs to understand
dependencies
Use the retrieved context to inform the proposal's scope,
identify potential conflicts with existing work, and reference
relevant prior decisions.
If Dewey is unavailable, proceed without cross-repo context --
use direct file reads of local specs and backlog items instead.
Dewey Availability Tiers
Adjust context retrieval based on Dewey availability:
Tier 3 (Full Dewey): Use dewey_semantic_search,
dewey_search, dewey_traverse, and
dewey_semantic_search_filtered for comprehensive cross-repo
and toolstack context.
Tier 2 (Graph-only, no embedding model): Use
dewey_search and dewey_traverse for keyword-based and
structural queries. Semantic search is unavailable.
Tier 1 (No Dewey): Fall back to direct file operations:
- Use the Read tool to read local specs, backlog items, and
convention packs
- Use the Grep tool for keyword search across the codebase
- Reference
.opencode/uf/packs/ for coding standards
All tiers produce valid results. Higher tiers provide richer
cross-repo context but are never required.
-
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 dependencies
-
Create 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):
b. Continue until all applyRequires artifacts are complete
- After creating each artifact, re-run
openspec status --change "<name>" --json
- Check if every artifact ID in
applyRequires has status: "done" in the artifacts array
- Stop when all
applyRequires artifacts are done
c. If an artifact requires user input (unclear context):
Output
After completing all artifacts, summarize:
- Change name and location
- List of artifacts created with brief descriptions
- What's ready: "All artifacts created! Ready for implementation."
- Prompt: "Run
/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
- 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
- Do NOT copy
<context>, <rules>, <project_context> blocks into the artifact
- These guide what you write, but should never appear in the output
Guardrails
- Create ALL artifacts needed for implementation (as defined by schema's
apply.requires)
- Always read dependency artifacts before creating a new one
- If context is critically unclear, ask the user - but prefer making reasonable decisions to keep momentum
- If a change with that name already exists, ask if user wants to continue it or create a new one
- Verify each artifact file exists after writing before proceeding to next