Speccer
Transform rough ideas into a structured project specification with actionable issues.
Overview
This skill orchestrates a multi-phase process to distill unstructured input into a single spec document (docs/spec.md) containing:
- Project overview and tech stack
- Feature/domain analysis sections
- Open questions for the user
- Actionable issues with acceptance criteria
Everything goes in one file. Do not create multiple files or a directory of spec documents.
Output
The entire spec is written to docs/spec.md. This is the only file speccer creates or modifies.
Workflow
Phase 0: Project Foundation
Before analyzing features, establish the project's technical foundation.
Identify the tech stack by asking the user:
- What language/framework will this project use? (e.g., Rust, Rails, Node.js, Python)
- Is this a new project or adding to an existing codebase?
For new projects, determine prerequisites and scaffolding:
| Stack |
Prerequisites |
Scaffolding Command |
| Rust |
rustup, cargo |
cargo new or cargo init |
| Rails |
Ruby, bundler, rails gem |
rails new + database choice |
| Node.js |
Node, npm/pnpm/yarn |
npm init or framework CLI |
| Python |
Python, pip/uv, venv |
uv init or framework setup |
| Go |
Go toolchain |
go mod init |
| Elixir |
Erlang, Elixir, mix |
mix new or mix phx.new |
Ask clarifying questions about project setup:
- Database requirements? (PostgreSQL, SQLite, MySQL, none)
- Package manager preferences? (npm vs pnpm, pip vs uv)
- Any specific framework version requirements?
- CI/CD requirements? (GitHub Actions, etc.)
- Deployment target? (affects scaffolding choices)
Phase 1: Decomposition
When invoked with rough input:
- Read the input and identify distinct feature/domain areas
- Create the initial
docs/spec.md with the project overview, tech stack, and list of identified feature areas
- Output a brief summary of identified features before proceeding
Phase 2: Deep Analysis
For each identified feature/domain area, analyze:
- What's well-defined vs ambiguous
- Implementation concerns (without designing solutions)
- Questions that need user clarification
- Draft acceptance criteria for potential issues
Write each feature's analysis as a section within docs/spec.md. Use sub-agents (Task tool with subagent_type="general-purpose") to analyze features in parallel if needed, but have them return their analysis as text — do not have sub-agents write separate files. Incorporate their output into the single spec document yourself.
Phase 3: User Clarification
Present questions to the user using AskUserQuestion tool:
- Group related questions where possible
- Provide context for each question
- Offer reasonable default options when applicable
- Update
docs/spec.md with answers as they come in
For complex clarifications, ask in batches of 3-4 questions max per interaction.
Phase 4: Refinement
After receiving user answers:
- Update relevant sections of
docs/spec.md with clarifications
- Mark answered questions as resolved
- If new questions arise from answers, repeat Phase 3
Phase 5: Issue Generation
When all clarifications are complete:
Compile issues starting with setup, then feature issues
Add an Issues section to docs/spec.md with:
- Setup issues first: toolchain installation, project scaffolding, initial configuration
- Feature issues grouped by area
- Each issue has: title, description, acceptance criteria
- Issues are ordered by dependency (setup → foundation → features)
If user wants beads integration, for each issue:
Use beads:create skill to create the issue with:
- Title from spec
- Description including acceptance criteria
- Labels for feature area
Update the Status section: "Specification complete"
Invocation
The skill can be invoked:
/speccer - Start fresh with new input
/speccer refine - Continue refining existing spec (re-run Phase 3-5)
/speccer issues - Skip to issue generation from existing spec
/speccer issues --beads - Generate issues and create beads
Maintaining Context
When resuming work:
- Always read
docs/spec.md first
- Check the Status section to determine which phase to continue
- Look for the Open Questions section to see pending clarifications
Tips
- Prefer more granular features over fewer large ones
- Questions should be concrete and actionable, not abstract
- Acceptance criteria should be testable/verifiable
- When uncertain about scope, err toward asking the user
1---2name: speccer3description: Distill rough ideas into structured project specs with issues. This skill takes unstructured input (bullet points, rough notes, transcribed ideas) and systematically breaks it down into feature domains, identifies ambiguities requiring user clarification, and produces a single structured spec document with actionable issues. Use this skill when the user wants to transform rough project ideas into well-defined specifications and issues, or when they invoke /speccer.4---56# Speccer78Transform rough ideas into a structured project specification with actionable issues.910## Overview1112This skill orchestrates a multi-phase process to distill unstructured input into a **single spec document** (`docs/spec.md`) containing:131. Project overview and tech stack142. Feature/domain analysis sections153. Open questions for the user164. Actionable issues with acceptance criteria1718Everything goes in one file. Do not create multiple files or a directory of spec documents.1920## Output2122The entire spec is written to `docs/spec.md`. This is the only file speccer creates or modifies.2324## Workflow2526### Phase 0: Project Foundation2728Before analyzing features, establish the project's technical foundation.29301. **Identify the tech stack** by asking the user:31 - What language/framework will this project use? (e.g., Rust, Rails, Node.js, Python)32 - Is this a new project or adding to an existing codebase?33342. **For new projects**, determine prerequisites and scaffolding:3536 | Stack | Prerequisites | Scaffolding Command |37 |-------|---------------|---------------------|38 | Rust | rustup, cargo | `cargo new` or `cargo init` |39 | Rails | Ruby, bundler, rails gem | `rails new` + database choice |40 | Node.js | Node, npm/pnpm/yarn | `npm init` or framework CLI |41 | Python | Python, pip/uv, venv | `uv init` or framework setup |42 | Go | Go toolchain | `go mod init` |43 | Elixir | Erlang, Elixir, mix | `mix new` or `mix phx.new` |44453. **Ask clarifying questions** about project setup:46 - Database requirements? (PostgreSQL, SQLite, MySQL, none)47 - Package manager preferences? (npm vs pnpm, pip vs uv)48 - Any specific framework version requirements?49 - CI/CD requirements? (GitHub Actions, etc.)50 - Deployment target? (affects scaffolding choices)5152### Phase 1: Decomposition5354When invoked with rough input:55561. Read the input and identify distinct feature/domain areas572. Create the initial `docs/spec.md` with the project overview, tech stack, and list of identified feature areas583. Output a brief summary of identified features before proceeding5960### Phase 2: Deep Analysis6162For each identified feature/domain area, analyze:63641. What's well-defined vs ambiguous652. Implementation concerns (without designing solutions)663. Questions that need user clarification674. Draft acceptance criteria for potential issues6869Write each feature's analysis as a section within `docs/spec.md`. Use sub-agents (Task tool with subagent_type="general-purpose") to analyze features in parallel if needed, but have them return their analysis as text — do not have sub-agents write separate files. Incorporate their output into the single spec document yourself.7071### Phase 3: User Clarification7273Present questions to the user using AskUserQuestion tool:7475- Group related questions where possible76- Provide context for each question77- Offer reasonable default options when applicable78- Update `docs/spec.md` with answers as they come in7980For complex clarifications, ask in batches of 3-4 questions max per interaction.8182### Phase 4: Refinement8384After receiving user answers:85861. Update relevant sections of `docs/spec.md` with clarifications872. Mark answered questions as resolved883. If new questions arise from answers, repeat Phase 38990### Phase 5: Issue Generation9192When all clarifications are complete:93941. Compile issues starting with setup, then feature issues952. Add an Issues section to `docs/spec.md` with:96 - **Setup issues first**: toolchain installation, project scaffolding, initial configuration97 - Feature issues grouped by area98 - Each issue has: title, description, acceptance criteria99 - Issues are ordered by dependency (setup → foundation → features)1001013. **If user wants beads integration**, for each issue:102 ```103 Use beads:create skill to create the issue with:104 - Title from spec105 - Description including acceptance criteria106 - Labels for feature area107 ```1081094. Update the Status section: "Specification complete"110111## Invocation112113The skill can be invoked:114115- `/speccer` - Start fresh with new input116- `/speccer refine` - Continue refining existing spec (re-run Phase 3-5)117- `/speccer issues` - Skip to issue generation from existing spec118- `/speccer issues --beads` - Generate issues and create beads119120## Maintaining Context121122When resuming work:1231241. Always read `docs/spec.md` first1252. Check the Status section to determine which phase to continue1263. Look for the Open Questions section to see pending clarifications127128## Tips129130- Prefer more granular features over fewer large ones131- Questions should be concrete and actionable, not abstract132- Acceptance criteria should be testable/verifiable133- When uncertain about scope, err toward asking the user