myoung34/dotfiles/to-spec
- community
Checking that the SKILL.md file is still in the repository.
Produce a specification document at docs/specifications/ — problem, solution, user stories, acceptance criteria, testing seams, and scope for a feature. The engineering source-of-truth a plan later implements. Use when the user wants a spec or says /to-spec, or when another skill needs the spec phase before planning.
Install
npx vskill@latest install myoung34/dotfiles/to-specSKILL.md
To Spec
A spec is the engineering source-of-truth: what to build and the definition of done. It is stable — it outlives plan revisions — because it carries no file paths and no code snippets. Those go stale, so they belong to the `plan`, where they can be kept current. Spec is the stable what; the plan is the volatile how.
Normally invoked by `architect` after research; also runs standalone.
Input
Determine what to specify, in priority order:
- Invoked from
architectwith a build goal and research context → use those. - A spec worked out in the current conversation → capture that; do not start
over.
- Otherwise → ask the user what to build; if the request is vague, elicit
intent first via `clarify`.
Detect the primary language from the repo so acceptance criteria target the right test runner; fold the detection into whatever you ask next rather than blocking on it. Non-code work → language is N/A.
Gather context
Read all docs/research/*.md. Explore the codebase to understand current state, using the project's domain vocabulary, and read docs/adr/ so the spec does not contradict a decision already made.
Identify testing seams
Map where the feature's behaviour will be exercised by tests. A seam is a point where a test observes behaviour:
- Prefer existing seams over new ones.
- Position each seam as high in the architecture as it goes — a boundary (API,
CLI, HTTP handler) over an internal call.
- The fewer seams, the better; the ideal is one.
Confirm the seams with the user before writing them into the spec.
Write the acceptance criteria
Feature/boundary behaviour → delegate to `behaviour-spec`, passing the feature description and language. Take its acceptance-criteria block (Gherkin) for the spec's ## Acceptance Criteria section. Leave its scaffold tasks for the plan — they are implementation, not spec.
Non-code work (docs, config, operational) → author Given/When/Then prose directly, verified by checkable assertions (grep, command output, file state); skip behaviour-spec.
Write the spec
Write to docs/specifications/<yyyy-mm-dd>-<slug>.md. Date from date +%F, author from git config user.name. A new spec's Status is Draft.
Feature: {capability}
Scenario: {one concrete behaviour} Given {a starting state} When {an action occurs} Then {an observable outcome holds}
Guidelines
- The spec stays stable: name interfaces, contracts, schema, and API shape —
never their file location or an implementation snippet.
- Extract from research and code; do not invent. Cite claims —
path:linefor
code, URL for docs — and label anything you cannot cite an unverified assumption.
- Follow `conventions-markdown` and omit
needless words — see `../shared/CONCISE-PROSE.md`.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinghome/dot_agents/skills/to-spec/SKILL.md
Popularity
- 7-day trend score
- 0
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
[](https://verified-skill.com/skills/myoung34/dotfiles/to-spec)