openspec-ff-change
Original:🇺🇸 English
Translated
Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually.
17installs
Sourcepbh-btn/peerbanhelper
Added on
NPX Install
npx skill4agent add pbh-btn/peerbanhelper openspec-ff-changeTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Fast-forward through artifact creation - generate everything needed to start implementation in one go.
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 buildUse 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 directorybash
openspec new change "<name>"This creates a scaffolded change at.openspec/changes/<name>/ -
Get the artifact build orderbash
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 dependencies
artifacts
-
Create artifacts in sequence until apply-readyUse 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:
bash
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 file
template - : Schema-specific guidance for this artifact type
instruction - : Where to write the artifact
outputPath - : Completed artifacts to read for context
dependencies
- Read any completed dependency files for context
- Create the artifact file using as the structure
template - Apply and
contextas constraints - but do NOT copy them into the filerules - Show brief progress: "✓ Created <artifact-id>"
b. Continue until allartifacts are completeapplyRequires- After creating each artifact, re-run
openspec status --change "<name>" --json - Check if every artifact ID in has
applyRequiresin the artifacts arraystatus: "done" - Stop when all artifacts are done
applyRequires
c. If an artifact requires user input (unclear context):- Use AskUserQuestion tool to clarify
- Then continue with creation
- Get instructions:
-
Show final statusbash
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 from
instructionfor 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 sections
template - IMPORTANT: and
contextare 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, suggest continuing that change instead
- Verify each artifact file exists after writing before proceeding to next