sudokar/openspec-plus/openspec-plus-spec

Claude Code and agent skill by sudokar/openspec-plus

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

MANDATORY skill that activates whenever the OpenSpec specification phase begins. Triggers: /opsx-new or /opsx-continue runs; openspec-new-change, openspec-continue-change, or openspec-explore is active; `openspec instructions spec` or `openspec instructions specs` is invoked; or the user wants to create, update, review, refine, or discuss an OpenSpec specification.

Install

npx vskill@latest install sudokar/openspec-plus/openspec-plus-spec

SKILL.md

OpenSpec Plus Spec

Mission

Strengthen specification quality. Requirements complete, testable, unambiguous, expressed as Gherkin scenarios for behavioral correctness, aligned with approved proposal and any existing design. Improves requirement quality before design (spec-first) or aligns requirements with existing design boundaries (design-first).


This skill is RIGID. NEVER write any spec file before completing Phase 1, presenting analysis to user, passing pre-write alignment gate, and (after writing) running self-review subagent. Running analysis internally and writing immediately is a skill violation — even if you checked every gate.

Red flags — STOP, you are about to violate this skill:

  • "I already checked all the gates"
  • "The requirements look complete from the proposal"
  • "The user wants this quickly, I'll just write it"
  • "I surfaced these gaps in my reasoning, that counts"
  • "I'll list all my ambiguities in a table and ask the user to fill them in"
  • "I'll ask all questions at once so the user can answer in one message" (unless settings.questionMode: batch — then it's the documented procedure, not a shortcut)
  • "These ambiguities are related so I'll group them into one question" (outside configured batch mode)
  • "Free-form scenarios are clearer than Gherkin here"
  • "I should read the code to understand the context"
  • "The code I need to read is small, I'll just open it directly"
  • "I'll skim the spec myself, the reviewer subagent isn't needed"
  • "The fixes from the reviewer were minor, I should re-dispatch to confirm"

Inputs Available

OpenSpec allows either order after proposal:

  • proposal → spec → design (no design yet)
  • proposal → design → spec (design exists)

When this skill runs:

  • ALWAYS read approved proposal — authoritative source of intent
  • If design exists, ALWAYS read it — constrains acceptable spec language and bounded behavior
  • Spec MUST align with proposal AND any existing design

Workflow

Four phases. NEVER skip or merge.

text
Phase 0: Schema & Template Resolution
Phase 1: Interactive Analysis
Phase 2: Drift Check
Phase 3: Write & Self-Review

Workflow Visibility (MANDATORY)

Display workflow phases via task tool at start; update as each phase completes.


Core Principles

  • Describe What, Not How — spec defines behavior and outcomes, not implementation; prefer "what must happen" over "how it will be built".
  • Every Requirement Must Be Verifiable — requirements MUST be testable; avoid vague or subjective language.
  • Surface Missing Requirements — look for gaps in user behavior, system behavior, permissions, error handling, operational behavior, edge cases.
  • YAGNI — No Speculative Requirements — every requirement traces to proposal goal or present stakeholder need.
  • Respect Project Standards — read project instruction files (AGENTS.md, CLAUDE.md, GEMINI.md, equivalents) at Phase 1 start; spec MUST respect project conventions; conflicts → surface to user, never silently override.

Spec Phase Reads Code Only When Strictly Required — And Only Via Subagent

Spec describes WHAT, not HOW. Default: no code reading — proposal and any existing design provide behavioral context.

When code reading IS required (requirement explicitly references existing behavior to ground), MUST dispatch explore subagent. NEVER read code in root context. Prompt MUST scope to observable behavior only, never implementation.

Rigid rule. Root-context code reading during spec phase is a skill violation, regardless of file size. Cannot articulate why code reading required? Don't read code.

When dispatching explore subagent, prompt: "Describe the observable behavior of <X> grounded in <FILES_OR_PATHS>. Return only externally observable: inputs, outputs, state changes, side effects. No implementation, data structures, algorithms, or call paths." Use response only for grounding terminology and current-behavior references.


Phase 0: Schema & Template Resolution

Run FIRST, before any analysis:

  1. Run:

``bash openspec instructions specs --change <name> --json ` (Use spec instead of specs if the schema names the artifact spec — check openspec status --change <name> for the artifact id.) Extract: template (structural authority; sections you MUST fill), instruction (per-section guidance; what content each section needs), rules` (project constraints to honor). Parse template sections (H2/H3/H4 headers + HTML comments) — these are your information requirements; Phase 1 analysis MUST collect enough substance to fill every section. If the template has sections the 7-step analysis doesn't naturally cover, add targeted questions for them.

  1. Read openspec/.plus/config.yaml (missing/unreadable/unrecognized → defaults): settings.questionMode (sequential default; batch groups steps 3-7's questions into fewer rounds — see Phase 1 below).

Phase 1: Interactive Analysis (MANDATORY)

Pre-existing answers: If recent conversation already answered any analysis points (requirements, ambiguities, edge cases, stakeholder concerns, scenarios) — via prior exploration, a detailed initial request, or any other source — incorporate those into your analysis and SKIP the corresponding question. Ask ONE question at a time only for genuinely unresolved gaps (batch mode: collect steps 3-7's questions into as few rounds as possible instead — same real answers, no assumptions). NEVER re-ask questions already answered.

Run every step. Where ambiguities or gaps require user decision, use question tool — one question at a time, with options. NEVER write any file during this phase.

Always include your recommended answer with rationale on every question — never a bare question without a recommendation. In sequential mode, if the user's answer introduces a new ambiguity or dependent decision, follow that branch before advancing to the next step or gap (batch: defer it to the next batch round instead). A gap or ambiguity is only resolved when no sub-decision within it remains open. If a fact can be determined from existing artifacts, project files, or the environment, look it up — do not ask the user for discoverable information.

1. Project Context

Before analysis:

  1. Project-level instruction files first — AGENTS.md, CLAUDE.md, GEMINI.md, equivalents at project root, .claude/, .opencode/, docs/. These capture standards: terminology, testing (test types, frameworks, naming), domain language. Spec MUST respect these.
  2. Read approved proposal — always present, authoritative for goals, scope, non-goals
  3. If design exists, read it — constrains acceptable spec language
  4. Read existing spec files for terminology and structural convention

NEVER read source code unless requirement explicitly references current behavior to ground. When code reading IS required, dispatch via explore subagent (see Core Principles). Default: no code reading.

2. Requirement Extraction

Extract all requirements from proposal (+ design if present). Normalize into clear statements. Output: list in plain language.

3. Completeness Analysis

Look for gaps across user/system/admin/failure/integration flows. Output: gaps found, or "None found" explicitly. Gaps needing user decision → question tool, ONE at a time (batch: joins the combined round with steps 4-7).

4. Ambiguity Analysis

Identify terms with multiple interpretations. For each, use question tool: plain language framing, 3-4 concrete options, one "(Recommended)", ONE question at a time. NEVER assume. In sequential mode never batch; in batch mode present these together with steps 3, 5, 6, 7's questions in as few rounds as the tool allows.

5. Edge Case Analysis

Review: invalid input, missing data, permissions, concurrency, retries, partial failures. Output: uncovered edges, or "None found." Decisions → question tool, ONE at a time (batch: joins the combined round).

6. Stakeholder Review

Review from: end users, admins, operators, developers, integrators. Output: missing or conflicting requirements from any perspective.

7. Scenarios In Gherkin

Every functional or behavioral requirement MUST have at least one scenario in Gherkin syntax with uppercase keywords:

GIVEN <initial state or precondition>
WHEN <event or action taken>
THEN <observable outcome>
AND <continues prior keyword's category — use only when natural>
BUT <exclusion or counter-outcome — use only when natural>

Rules:

  • Cover positive, negative, edge case scenarios for each functional/behavioral requirement
  • "AND" and "BUT" not mandatory — use only when they are applicable and make scenario clearer
  • Multiple scenarios per requirement encouraged when distinct branches exist (happy path, error, edge), never required
  • Non-functional requirements (response time, capacity) expressed as plain measurable criteria, not Gherkin

Constructing scenarios surfaces ambiguity — a requirement that can't be expressed as Given/When/Then is not testable.

For each requirement lacking a scenario, with ambiguous scenario, or contradictory scenarios, use question tool. ONE question at a time (batch: joins the combined round).


Proposal Or Design Conflict

Discover during analysis that proposal — or existing design, if present — is incomplete, contradictory, or inconsistent with what user is asking for:

STOP. Surface the issue. NEVER paper over with spec choices.

Resolutions:

  • revise spec within current proposal/design
  • revise proposal or design
  • split work into separate change

Don't continue spec work until conflict resolved.


Phase 1 Complete — Summarize Decisions

Once all answered, summarize resolved decisions:

  • List each ambiguity/gap and user's chosen answer
  • Confirm no open questions remain

In sequential mode, explicitly ask the user to confirm shared understanding before proceeding to Phase 2 — do NOT advance on silence or implied agreement. In batch mode, skip this extra question — the summary was already built from the user's combined replies; proceed to Phase 2.

Template coverage check: Verify every template section (from Phase 0) has collected substance to fill it. If any section lacks substance, ask targeted questions until covered (batch: combine into one round).

Rules compliance check: Review rules from Phase 0. If any rule constrains what can be specified (e.g., "all requirements must have Gherkin scenarios", "edge cases must be explicitly documented"), verify the requirements honor those constraints. If a rule is violated, surface the conflict to the user before proceeding (batch: fold multiple conflicts into one round).

Mark Phase 1 complete. Update task status. Proceed to Phase 2.

NEVER write any file until Phase 2 drift check passes.


Phase 2: Drift Check

Re-read approved proposal (and any existing design). If analysis results drift from proposal scope, goals, or non-goals — STOP. Surface the drift. Resolutions: revise spec, revise proposal/design, or split into separate change. NEVER silently reconcile.

Mark Phase 2 complete. Update task status.


Phase 3: Write & Self-Review

3.1 Write the Spec File

Only begin writing after:

  1. Phase 1 analysis presented and user has confirmed or resolved all questions
  2. Phase 2 drift check passes

Use the template and outputPath from Phase 0. Use template structure EXACTLY. Never improvise sections, restructure, or invent format conventions. Apply instruction and rules as constraints — do NOT copy them into the file.

Structure is content — preserve the form. Gherkin scenarios, requirement lists, and any structured output from Phase 1 must carry through to the spec unchanged. Reducing structured content to prose loses meaning regardless of word count.

Before writing — 2 mandatory steps:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
200
Repository forks
10
7-day trend score
27

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/sudokar/openspec-plus/openspec-plus-spec/badge)](https://verified-skill.com/skills/sudokar/openspec-plus/openspec-plus-spec)

Something wrong with this skill or its page? Tell us.