ClaudeSkills Geek-skills-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.
git clone https://github.com/staruhub/ClaudeSkills
T=$(mktemp -d) && git clone --depth=1 https://github.com/staruhub/ClaudeSkills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/Geek-skills-openspec-propose" ~/.claude/skills/staruhub-claudeskills-geek-skills-openspec-propose && rm -rf "$T"
skills/Geek-skills-openspec-propose/SKILL.mdPropose 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-authIMPORTANT: 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
withopenspec/changes/<name>/
..openspec.yaml -
Get the artifact build order
openspec status --change "<name>" --jsonParse the JSON to get:
: array of artifact IDs needed before implementation (e.g.,applyRequires
)["tasks"]
: list of all artifacts with their status and dependenciesartifacts
-
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
(dependencies satisfied):ready- Get instructions:
openspec instructions <artifact-id> --change "<name>" --json - The instructions JSON includes:
: Project background (constraints for you - do NOT include in output)context
: Artifact-specific rules (constraints for you - do NOT include in output)rules
: The structure to use for your output filetemplate
: Schema-specific guidance for this artifact typeinstruction
: Where to write the artifactoutputPath
: Completed artifacts to read for contextdependencies
- Read any completed dependency files for context
- Create the artifact file using
as the structuretemplate - Apply
andcontext
as constraints - but do NOT copy them into the filerules - Show brief progress: "Created <artifact-id>"
b. Continue until all
artifacts are completeapplyRequires- After creating each artifact, re-run
openspec status --change "<name>" --json - Check if every artifact ID in
hasapplyRequires
in the artifacts arraystatus: "done" - Stop when all
artifacts are doneapplyRequires
c. If an artifact requires user input (unclear context):
- Use AskUserQuestion tool to clarify
- Then continue with creation
- Get instructions:
-
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
or ask me to implement to start working on the tasks."/opsx:apply
Artifact Creation Guidelines
- Follow the
field frominstruction
for each artifact typeopenspec instructions - The schema defines what each artifact should contain - follow it
- Read dependency artifacts for context before creating new ones
- Use
as the structure for your output file - fill in its sectionstemplate - IMPORTANT:
andcontext
are constraints for YOU, not content for the filerules- Do NOT copy
,<context>
,<rules>
blocks into the artifact<project_context> - These guide what you write, but should never appear in the output
- Do NOT copy
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