Awesome-omni-skill spec-builder
Transform vague product or feature ideas into concrete, detailed specification documents through an interactive interview process. Use when the user wants to flesh out an idea, create a spec, write requirements, plan a product/feature/prototype, or go from "I have this idea..." to a concrete document. Works for software products, physical products, services, or any concept that needs specification.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/spec-builder" ~/.claude/skills/diegosouzapw-awesome-omni-skill-spec-builder && rm -rf "$T"
skills/development/spec-builder/SKILL.mdSpec Builder
Transform vague ideas into concrete, actionable spec documents through structured interviews.
Workflow
Phase 1: Gather Initial Context
First, prompt for the idea:
What's the idea you'd like to turn into a spec? Describe it however it exists in your head right now - it can be vague.
Then ask background questions to calibrate the interview depth:
AskUserQuestion: 1. "What's your background?" - Technical (developer/engineer) - Semi-technical (PM, designer, technical founder) - Non-technical (business, creative, general user) 2. "What's the goal for this spec?" - MVP/prototype to test the idea - Full product spec for development - Pitch document for stakeholders - Personal reference to clarify my thinking
Phase 2: Deep Interview
Conduct the interview using AskUserQuestion with batched questions (2-4 related questions per batch).
Rules:
- Never assume - if something is ambiguous, ask
- Provide sensible default options for every question
- Add "(Recommended)" to the best default option
- Anticipate needs the user hasn't considered
- Adapt question depth based on user's technical level
Question calibration by user background:
| Topic | Technical User | Non-Technical User |
|---|---|---|
| Architecture | "REST vs GraphQL vs tRPC?" | Skip - decide yourself |
| Data storage | "SQL vs NoSQL? Which DB?" | "Does it need to remember data between sessions?" |
| UI framework | "React, Vue, or Svelte?" | Skip - decide yourself |
| Hosting | "Serverless, containers, or VMs?" | Skip - decide yourself |
| Auth | "OAuth, magic links, or password?" | "How should users log in?" (plain language options) |
| Scale | "Expected concurrent users?" | "How many people might use this at once?" |
Interview domains to cover (adapt based on product type):
For software products:
- Core functionality (what does it do?)
- User types and permissions
- Key user flows (step by step)
- Data model (what entities exist?)
- UI/UX preferences (style, layout, interactions)
- Integrations (external services, APIs)
- Edge cases and error handling
- Security and privacy requirements
- Platform (web, mobile, desktop, CLI)
For physical products:
- Core functionality
- Materials and form factor
- User interaction (how do you use it?)
- Manufacturing considerations
- Safety requirements
- Packaging and delivery
For all products:
- Success criteria (how do we know it works?)
- Constraints (budget, timeline, must-haves)
- Anti-goals (what it explicitly should NOT do)
Example batched question:
AskUserQuestion (batch): 1. "Who are the main users of this product?" - Single user type (just me / general public) - Two distinct roles (e.g., admin + regular user) - Multiple user types (need to define each) 2. "Do users need accounts?" - No accounts needed (Recommended for MVP) - Simple accounts (email/password) - Social login (Google, GitHub, etc.) - Enterprise SSO
Phase 3: Draft Review
After covering core questions (~10-15 batches), present a draft outline:
Here's the spec outline based on our conversation so far: ## [Product Name] - Spec Outline **Overview:** [1-2 sentences] **Core Features:** 1. [Feature A] 2. [Feature B] ... **User Types:** [list] **Key Flows:** [list main workflows] **Technical Approach:** [high-level decisions] **Open Questions:** [things still unclear] --- Does this capture your vision? What's missing or wrong?
Then use AskUserQuestion to get feedback:
1. "How does this outline look?" - Looks good, continue with details - Missing something important (I'll explain) - Some parts are wrong (I'll clarify) - Let's pivot direction
Phase 4: Deep Dive
Based on feedback, ask detailed follow-up questions on:
- Unclear areas from the outline
- Edge cases and error states
- Specific UI/UX details
- Technical constraints
- Anything marked as "Open Questions"
Continue until confident all ambiguity is resolved.
Phase 5: Write Spec
Write the final spec to
spec-<product-name>.md in the current directory.
Spec format principles:
- Detailed enough for an AI coding agent to implement
- Skimmable for human review (use headers, bullets, tables)
- No vague language - every requirement must be concrete
- Include explicit anti-goals and out-of-scope items
- Write as a standalone document - never mention the interview process or reference "our conversation"
Spec structure (adapt sections based on product type):
# [Product Name] Spec ## Overview [2-3 sentences: what it is, who it's for, core value prop] ## Goals & Non-Goals ### Goals - [Concrete goal 1] - [Concrete goal 2] ### Non-Goals (explicitly out of scope) - [What this product will NOT do] ## User Types [Table or list of user types and their permissions/capabilities] ## Core Features ### Feature 1: [Name] **Purpose:** [Why this feature exists] **Behavior:** - [Specific behavior 1] - [Specific behavior 2] **UI:** [Description or wireframe reference] [Repeat for each feature] ## User Flows ### Flow 1: [Name] 1. User does X 2. System responds with Y 3. User sees Z ... [Repeat for key flows] ## Data Model [Tables, entities, relationships - for software] [Components, materials - for physical products] ## Technical Decisions [Architecture choices, technologies, integrations] [Skip for non-technical users or physical products] ## Edge Cases & Error Handling - When X happens, the system should Y - If Z fails, show error message: "..." ## Open Questions [Anything that still needs resolution before building] ## Future Considerations [Ideas mentioned but explicitly deferred]
Key Principles
- Be thorough - Ask many questions. 10-20 batches is normal for a complex product.
- Never assume - If two interpretations are possible, ask which one.
- Provide defaults - Every question should have reasonable options with a recommended choice.
- Adapt depth - Technical users get technical questions; non-technical users get plain language.
- Surface unknowns - Ask about things the user probably hasn't considered yet.
- Stay concrete - The final spec should have zero vague requirements.