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.
Menu
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.
審視 ECC(everything-claude-code)分發名單,包含兩個模式: (A) 既有清單瘦身:分析 distribution.yaml.enabled 與本地 skills/ 的重疊性與品質,輸出 enabled_remove 建議; (B) 新項目導入評估:根據 ecc-catalog.yaml 與上次更新範圍,介紹 ECC 上游新增 skill、分析適用情境、建議是否加入 enabled。 Use when: (1) 評估 ECC 分發名單是否該瘦身、(2) ECC 上游新增 skill 後決定要不要導入、 (3) 想為終端使用者產 ecc-profile.yaml starter、(4) 季度 / 半年一次定期審視。 Triggers: "分析 ECC skill", "ECC 重疊", "ECC 清單瘦身", "ECC 新項目", "ECC 上游新增", "要不要導入", "ecc analyze", "ecc new items review", "ecc profile starter", "ECC 品質審視".
用追問把模糊需求壓成專案語言,並在必要時更新 CONTEXT.md 或 ADR。 Use when: 需求還不清楚、術語不一致、要進 OpenSpec 前需要需求對齊、 或使用者想先 stress-test plan 而不是直接實作。
找出架構摩擦與 deep module 候選,但不直接修改實作程式碼。 Use when: 使用者要架構回看、找重構候選、改善可測性、 或把實作中暴露的架構摩擦整理成 OpenSpec 候選。
建立 MP 工作入口層的專案規則。Use when: 首次導入 mattpocock/skills 改寫版、 需要設定 docs/agents/、需要讓 Claude Code 與 Codex 共同讀取 issue tracker、 triage states、domain docs 規則,或 mp-* 技能缺少專案入口脈絡。
將 plan、PRD、OpenSpec change 或對話摘要切成可驗證的垂直切片。 Use when: 需要把大型需求拆成 OpenSpec tasks、GitHub issue draft、 或本地 Markdown 工作項目;不適用於直接 TDD 實作。
將既有對話與儲存庫脈絡整理成 PRD 或 OpenSpec proposal 前置素材。 Use when: 使用者要把已討論內容整理成需求摘要、PRD、或進入 OpenSpec 前的 brief; 不適用於重新訪談使用者。
| 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.4.0"} |
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.
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 in the planning home resolved by the CLI 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 dependenciesplanningHome, changeRoot, artifactPaths, and actionContext: path and scope context. Use these instead of assuming repo-local paths.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):
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 typeresolvedOutputPath: Resolved path or pattern to write the artifactdependencies: Completed artifacts to read for contexttemplate as the structure and write it to resolvedOutputPathcontext and rules as constraints - but do NOT copy them into the fileb. 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)