speccer
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 neworcargo initRails Ruby, bundler, rails gem rails new+ database choiceNode.js Node, npm/pnpm/yarn npm initor framework CLIPython Python, pip/uv, venv uv initor framework setupGo Go toolchain go mod initElixir Erlang, Elixir, mix mix newormix 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.mdwith 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.mdwith 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.mdwith 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.mdwith:- 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.mdfirst - 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