skills/openspec-ext/openspec-ext-explain/SKILL.md
Create or update OpenSpec change explanation docs that capture developer-facing questions and answers under `openspec/changes/.../explain/`. Use when the user explicitly mentions `openspec` or points to a path under `openspec/` while asking to create, update, document, or maintain a Q&A, FAQ, explain note, or question-and-answer doc for an OpenSpec change based on user questions, implementation notes, review questions, or current chat context.
npx skillsauth add igamenovoer/magic-context openspec-ext-explainInstall 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.
Create or update a concise Q&A markdown document for an OpenSpec change and keep it under that change's explain/ directory.
Goal: turn implementation questions into a durable, repo-grounded explain note for developers without relying on separate instruction files.
Accept any of:
openspec/changes/<change>/openspec/changes/<change>/explain/The user may provide:
Write or update one markdown file under the selected change's explain/ directory.
Default filename:
qa-<what>.mdFor an OpenSpec change, prefer:
qa-<change-name>.mdunless the user gives an explicit filename or there is already a more specific existing Q&A file that the request clearly targets.
Report:
Use this structure:
# Q&A: <what>
## Introduction
<1-2 sentences describing what the Q&A covers and who it is for>
**Related docs**
- `path/to/doc.md`
**Key entrypoints and modules**
- `path/to/code.py`
## <complete question sentence>
> Last revised at: `<UTC ISO-8601>` | Last revised base commit: `<git commit>`
- <concrete answer bullet>
Rules:
# Q&A: <what>.**Related docs** and **Key entrypoints and modules**.Prefer deriving the change from any explicit path under:
openspec/changes/<change>/...Other valid signals:
If the target change is still ambiguous, inspect active changes first:
openspec list --sort recent --json
If needed, ask the user to choose the intended change.
Once the change is known, always gather authoritative context first:
openspec status --change "<change-name>" --json
openspec instructions apply --change "<change-name>" --json
Use these outputs to determine:
changeDirschemacontextFilesTreat the CLI output as the source of truth for where the change lives and which artifacts define it.
explain/ directory, create or update qa-<change-name>.md there unless the user specifies another filename.changeDir/explain/qa-<change-name>.md.explain/ directory if it does not exist.Read every existing file referenced by contextFiles.
If a contextFiles value is a glob such as specs/**/*.md, expand it on disk and read the matching files.
Also read:
Also collect:
git rev-parse HEADdate -u +%Y-%m-%dT%H:%M:%SZOnly read additional repository files when they are needed to answer the requested questions accurately.
Question capture policy:
Placeholder format:
## [question title]- [answer/code]When updating an existing Q&A doc:
Each question must be:
Good examples:
How do I run the canonical persistence second step for this change?What data is persisted into canonical storage and what is skipped?How are demo-local ids translated into canonical identifiers?Answering rules:
scripts/.../persist_canonical.py.After writing:
create an explain Q&A doc for openspec/changes/<change> and document these two questionsunder openspec/changes/<change>/explain, add Q&A entries for the questions we just discussedcreate a placeholder Q&A doc for this OpenSpec changeextract the implementation questions from this review and turn them into an explain Q&A doc for the changeupdate the existing explain Q&A with an answer to why frame_uri reuses the tmp keyframe path in this demoPointing to a file or directory under openspec/ counts as the same trigger signal as explicitly saying openspec.
explain/ directory unless the user explicitly asks.openspec status and openspec instructions apply before deciding artifact context.SKILL.md and agents/openai.yaml.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.