| 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.3.1"} |
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.
-
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):
- Use AskUserQuestion tool to clarify
- Then continue with creation
-
Show final status
openspec status --change "<name>"
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
架构图/图示输出规范
必须在创建 OpenSpec change 时同步生成架构图到 Obsidian。图示是计划的标准交付物,不是可选项。
存储位置
- 位置:
C:\Users\30262\Documents\my-llm-wiki\my-llm-wiki\Excalidraw\
- 格式:
.canvas (Obsidian JSON Canvas)
- 工具: 使用
diagram skill 生成
目录结构
Excalidraw/
└── {项目名}/ ← 大项目
├── 01-项目架构总览.canvas ← 整体架构
└── {change-name}/ ← 对应 openspec change
├── 01-核心循环.canvas
├── 02-模块依赖.canvas
└── 03-任务分解.canvas
关键规则
- 对应关系: 子目录名 = openspec change 名(如
MC-Bot/ 对应 change mc-bot)
- 分层: 项目总览放顶层,change 详情放子目录
- 间距: 节点之间至少 50px,避免太紧凑
- 分组: 用
group 节点组织相关内容,带颜色标签
- 颜色: 预设颜色含义一致 (1=红=必做, 3=黄=警告, 4=绿=完成, 5=青=标题, 6=紫=可选)
- 图和说明不分开: 图就是图,不要在图下面加说明段落。如果非要放文字说明,放在图的旁边(作为图的一部分),不要单独成段
详细规范见 AGENTS.md → "架构图/图示规范" 章节。