superspec-research
Original:🇺🇸 English
Translated
Use when the user needs proposal/specs research artifacts produced for a Superspec (superspec-rpi) OpenSpec change.
5installs
Sourceneversight/skills_feed
Added on
NPX Install
npx skill4agent add neversight/skills_feed superspec-researchTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Superspec Research
Rules (non-negotiable)
- Drive OpenSpec via CLI only (NO OpenSpec slash commands; i.e., commands starting with or
/opsx)./openspec - Prefer JSON output for every OpenSpec call that supports it (use ).
--json- If a required command does not support (e.g.,
--json), run it withoutopenspec new changeand continue with the next JSON-capable command (typically--json).openspec status --change <change> --json
- If a required command does not support
- Keep changes scoped to and
proposalartifacts only.specs - If is not complete, run the brainstorming prelude before writing
proposal(seeproposal.md).skills/superspec-brainstorm/SKILL.md
Change Selection
- If the user provides a change name, use it as .
<change> - Else run:
- Ask the user to confirm/select a change name from the JSON output.
openspec list --json
- If there are no changes (or user wants a new one), ask for:
- change name (kebab-case)
- one-sentence description Then run:
openspec new change <change> --schema superspec-rpi --description "<description>"
Always print:
Selected change: <change>
Artifact Loop (proposal + specs)
Repeat until BOTH and are complete.
proposalspecs0. Inspect status
Run:
openspec status --change <change> --json
Parse the JSON to determine, for artifacts and :
proposalspecs- whether each is vs
readycomplete - whether is blocked by missing
specsproposal
If the JSON schema is unclear, show the JSON and ask the user what the status fields mean; do not guess.
1. Blocked behavior
If is blocked by missing , create first (even if looks ready).
specsproposalproposalspecs1.5 Brainstorming prelude (proposal inputs)
If is ready (and not complete), do a short clarification pass BEFORE writing files:
proposal- Follow as a subroutine.
skills/superspec-brainstorm/SKILL.md - Do NOT run during brainstorming.
openspec - Do NOT write or modify any files during brainstorming.
- Keep a "Brainstorming Notes" block as working notes.
Exit brainstorming when:
- You have concrete bullets for intent, background, in-scope, out-of-scope, constraints, affected specs, and success criteria.
- Affected Specs names are decided (kebab-case), because they drive .
specs/<kebab-name>/spec.md
Then proceed to create/update using OpenSpec instructions, using the notes to fill the template precisely.
proposal.mdIf you believe you already know all the answers, you still MUST produce the "Brainstorming Notes" block before writing .
proposal.md2. Create/Update proposal
If is ready (and not complete):
proposal- Run:
openspec instructions proposal --change <change> --json
- From the JSON, extract at minimum:
- (where to write)
outputPath - and/or
templatecontentinstruction
- Write the proposal content to the concrete (typically
outputPath).proposal.md
If is not a concrete file path (unexpected), STOP and show the full JSON.
outputPathProposal must be concise and must include a filled "Affected Specs" section (it drives specs file creation).
After writing, print:
Wrote proposal: <outputPath>
3. Create/Update specs
If is ready (and not complete):
specs- Run:
openspec instructions specs --change <change> --json
- Read dependencies from the JSON (e.g., ) and ensure proposal exists; if not, go create proposal.
requires - Treat patterns like
outputPathas a hint ONLY. Do not write wildcard paths.specs/**/spec.md - Determine concrete spec files from the proposal "Affected Specs".
Create one delta spec per affected capability (new/modified/removed), at:
specs/<kebab-name>/spec.md
Each delta spec MUST:
- Be a delta (changes only), structured into:
## ADDED Requirements## MODIFIED Requirements## REMOVED Requirements
- Use normative language per requirement (MUST/SHALL).
- For every ADDED/MODIFIED/REMOVED requirement, include Given/When/Then scenarios:
- at least one happy path (if applicable)
- at least one edge/failure case
- every MUST include a
#### Scenario:block with:##### Test Obligation(unit|integration|e2e),Type,Test File,Test Name,Verify Command, andExpected (RED). If any field is missing, ask the user; do not guess.Key Assertions
After writing, print:
Wrote specs: <path1>[, <path2> ...]
4. Re-check
After creating proposal or specs, re-run:
openspec status --change <change> --json
Stop the loop only when both artifacts show complete.
Minimal Output Contract
- Always show .
Selected change: <change> - For each artifact you write, show exactly which artifact and the concrete path(s).
- On any error, show the exact command that failed (including ).
--json
Common mistakes
- Using OpenSpec slash commands (anything starting with or
/opsx) instead of the/openspecCLI.openspec - Treating wildcard (e.g.,
outputPath) as a real file path; always write concrete files likespecs/**/spec.md.specs/<kebab-name>/spec.md - Guessing JSON fields instead of showing the JSON and asking the user.
openspec