skills/openspec-ext/openspec-ext-revise-by-decision/SKILL.md
Manual invocation only; use only when the user explicitly requests `openspec-ext-revise-by-decision` by exact name. Revise OpenSpec change artifacts from a review or decision document that contains questions plus `DECISION` blocks, applying chosen decisions from a review file such as `openspec/changes/<change>/review/review-*.md` back into proposal, design, specs, and tasks.
npx skillsauth add igamenovoer/magic-context openspec-ext-revise-by-decisionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Read a decision-bearing review document, determine which OpenSpec artifacts it affects, and update those artifacts so they reflect the final decisions.
Goal: turn chosen decisions from a review or decision document into coherent edits across the relevant OpenSpec artifacts.
Accept one of:
Revise the relevant OpenSpec artifacts in place and report which decisions were applied, which artifacts changed, and which questions remained unresolved.
Selection rules:
openspec/changes/<change>/review/ and choose the most recent review-*.md.Always: state which review file you are using.
Prefer: derive the change directly from the review path when it matches:
openspec/changes/<change-name>/review/<file>.md
Other valid signals:
If the target change is still unclear, do not guess.
Run:
openspec list --json
Then list the active OpenSpec changes as a numbered list and ask the user to choose by:
Only continue once the target change is unambiguous.
Then: gather the authoritative artifact context:
openspec status --change "<change-name>" --json
openspec instructions apply --change "<change-name>" --json
Use these outputs to determine:
changeDirschemacontextFilesTreat contextFiles as a map from artifact role to file path or glob.
Read: every existing file path referenced by the contextFiles values.
If a contextFiles value is a glob such as specs/**/*.md, expand it on disk and read the matching files.
Also read: any repository files that the decision document cites as concrete evidence when they materially affect the decision.
Treat the review document as the source of decision input.
Preferred mapping rule:
### Q1) ...> **DECISION:If that pattern is not present, fall back to document-specific pattern discovery before giving up.
Fallback procedure:
Question:, Open Question:, or interrogative lead-insDECISION, Decision:, Final decision, Resolution, Chosen option, Outcome, or other clearly authoritative resolution markersImportant:
DECISION block is authoritative, even if it disagrees with the earlier Proposal (Recommended) subsection.DECISION marker is absent, treat the document's discovered final-resolution marker as authoritative instead of forcing the example format.DECISION block, do not invent one.DECISION block is ambiguous, quote the exact ambiguity to the user instead of guessing.For each resolved question, capture:
Use both the review text and the current artifacts to decide where each decision belongs.
Source of truth: OpenSpec CLI output, especially openspec status --change "<change-name>" --json and openspec instructions apply --change "<change-name>" --json, determines the current artifact set, names, locations, and count.
Do not hardcode artifact names, paths, or expected artifact counts. OpenSpec schemas and tool versions may change these over time.
Use conceptual roles first, then map them to the artifacts that actually exist in the current change.
Common spec-driven examples only:
proposal.md: update only when the decision changes scope, capability boundaries, motivation, or user-facing change summarydesign.md: update chosen approach, constraints, invariants, lifecycle rules, data shape, or trade-offsspecs/**/*.md: update normative behavior, requirements, scenarios, command semantics, or validation rulestasks.md: update implementation order, add or remove tasks, or add test and verification work implied by the decisionPrefer: explicit file references from the review document first. If the review names a code path as evidence, use it to understand the decision, but revise OpenSpec artifacts unless the user asks for code changes too.
Apply the decisions directly to the relevant OpenSpec artifacts.
Editing rules:
SHALL or MUST language and at least one scenario per requirement when that artifact type uses requirement/scenario structureCoherence rules:
After editing:
Re-read the modified artifacts for consistency
Run:
openspec status --change "<change-name>" --json
Confirm that the edited artifacts still match the selected change and schema
If the project exposes an OpenSpec validation command and it is already part of the local workflow, run it. Otherwise do not invent one.
Summarize:
Use this shortcut when a decision clearly belongs to one layer, then map that layer to the current schema's actual artifacts from OpenSpec CLI output:
Most non-trivial decisions should update more than one artifact.
Proposal (Recommended) as final when a later DECISION block exists.data-ai
Create readable Mermaid diagrams inside Markdown files. Use for flowcharts and sequence diagrams that must render cleanly in common Markdown renderers (e.g., GitHub) without horizontal scrolling. Covers fenced mermaid blocks, init/theme styling, label wrapping with <br/>, and sequenceDiagram layout rules (short IDs, wrapped labels, don’t break identifiers).
development
Manual invocation only; use only when the user explicitly requests `make-program-tutorial` by exact name, OR when the user asks to use a skill to create an SDK/API/library tutorial. Create a clear, reproducible, step-by-step tutorial for a specific API/SDK/library (or a set of functions/classes), with runnable examples, expected outputs, and basic troubleshooting.
testing
Use when the user wants to create a self-hosted, offline-installable Conda channel (mirror) containing a specific subset of packages using Pixi.
tools
Guides the agent to setup a new or existing Pixi environment for compiling C++ and CUDA code. It ensures the correct compilers, toolkits, and CMake configurations are in place for a robust user-space build.