skills/spec/SKILL.md
Interviews the user about a product idea or feature using structured questions, then generates a detailed spec document (SPEC.md). Use when the user wants to flesh out an idea, plan a feature, or create a buildable specification.
npx skillsauth add jwa91/agentskills specInstall 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.
Turn a vague idea into a buildable specification through a short, structured interview.
Announce at start: "I'm using the spec skill to help you define this."
Interview → Synthesize → Draft → Review → Save
Ask questions one at a time. Prefer multiple-choice when possible. Keep it to 5-8 questions total — infer the rest from context.
Question sequence (adapt to context):
Rules:
Before drafting, summarize what you've learned in 3-5 bullets and ask: "Does this capture it? Anything I'm missing or got wrong?"
Only proceed to drafting after the user confirms.
Write the spec as a markdown document with these sections. Scale each section to the complexity of the idea — a simple feature gets a few sentences per section, not paragraphs.
# [Feature/Product Name]
## Problem
What problem does this solve? Why does it matter?
## Solution
What are we building? One-paragraph description.
## Users
Who uses this and what's their context?
## Requirements
### Must have
- [ ] ...
### Should have
- [ ] ...
### Won't have (this version)
- [ ] ...
## Design
How it works at a high level. Architecture, key flows, data model —
whatever is relevant. Use diagrams if they clarify.
## Open questions
Unresolved decisions that need input before or during implementation.
## Out of scope
Explicitly excluded to prevent scope creep.
Principles:
Save to: SPEC.md in the project root, unless the user specifies a different location.
If a SPEC.md already exists, ask whether to replace or save alongside it (e.g., SPEC-<feature-name>.md).
Present the saved file path and ask what the user wants to do next. Do NOT automatically invoke implementation skills — the user decides the next step.
data-ai
Release the current project to the personal Homebrew tap from repo-local release config. Use when the user says "release", "ship", "cut a version", "publish", "make a new tag", or asks how to make a new version available via jwa91/tap.
tools
Use the `jwa-harden` CLI for secret-safe command execution, env-template discovery, and signing/notarization preflight checks. Trigger when a command needs secrets, when `.env.template` or 1Password references are involved, or before signed release flows.
documentation
Modify or extend the `jwa-tobrew` scaffolding system — the templates that `init` writes into target projects. Trigger when the user says "add a new scaffold kind", "change what init writes", "update the templates", or asks how the embedded templates are wired.
development
Detect and fix drift between a project and the conventions encoded in `jwa-tobrew`, prek, and the tap ADRs. Trigger when the user says "align", "any drift", "verify conventions", or asks why a particular file/symlink/script is required.