Create or update project specifications interactively through an interview process. Use when starting a new project, adding major features, or when the user asks to create a spec, plan a project, or define requirements. Guides through requirements gathering, architecture decisions, and task breakdown.
Interactive workflow that creates comprehensive project specifications through structured interviews. Use when user says "create a spec," "plan a project," or starts a new project with major features. Guides through requirements gathering, architecture decisions, and task breakdown.
/plugin marketplace add Someblueman/spec-flow/plugin install someblueman-spec-flow@Someblueman/spec-flowThis skill is limited to using the following tools:
examples.mdquestions.mdInteractive workflow for creating comprehensive project specifications through structured interviews.
/spec-flow:init without --skip-interviewParse from conversation context:
--from-readme - Seed from existing README.md--from-existing - Update existing specCheck for existing context:
- .claude/spec/SPEC.md (existing spec)
- README.md (project description)
- CLAUDE.md (project instructions)
- package.json / go.mod / pyproject.toml (project type hints)
If existing spec found:
If README found:
Ask these questions one at a time, building on answers:
Q1: Problem Statement
"What problem does this project solve? Who has this problem?"
Listen for: user types, pain points, current alternatives
Q2: Core Value
"If this project does ONE thing really well, what is it?"
Listen for: primary feature, key differentiator
Q3: Success Criteria
"How will you know when this is 'done enough' to use?"
Listen for: MVP scope, must-have vs nice-to-have
Q4: Scope Boundaries
"What is explicitly OUT of scope for this project?"
Listen for: features to avoid, complexity limits
Q5: Technology Stack
"What language/framework are you using, or do you have preferences?"
If unsure, suggest based on project type:
Q6: Constraints
"Any technical constraints I should know about? (Performance requirements, integrations, compatibility, etc.)"
Listen for: existing systems, performance needs, deployment targets
Q7: Patterns
"Are there code patterns or architectural styles you prefer?"
Listen for: testing preferences, error handling, modularity
Based on interview answers:
Generate functional requirements (REQ-xxx):
Generate non-functional requirements (NFR-xxx):
Present for review:
"Based on our conversation, here are the requirements I captured. Please review and let me know if anything is missing or incorrect."
Propose component structure:
Define milestones:
Generate initial task breakdown:
Write .claude/spec/SPEC.md:
Write .claude/steering/:
product.md with vision and userstech.md with stack and patternsdecisions.md with initial "chose X over Y" entriesWrite .claude/spec/tasks/:
Present summary:
"I've created the spec structure. Here's what was generated:
- SPEC.md with N requirements
- M milestone task files
- Steering docs for ongoing context
Run
/spec-flow:statusto see your project overview."
Claude: "What problem does this project solve? Who has this problem?"
User: "I want to build a CLI tool that helps me track time spent on projects"
Claude: "Got it - a time tracking CLI for personal productivity. If this tool
does ONE thing really well, what would that be?"
User: "Quick time entry - I want to log time without opening an app"
Claude: "Speed of entry is key. So something like `tt start project-name` to
begin tracking. How will you know when it's 'done enough' to use daily?"
User: "When I can start/stop timers and see a daily summary"
Claude: "So MVP is: start/stop timers + daily summary view. What's explicitly
OUT of scope? What should this NOT try to do?"
User: "No syncing to cloud services, no team features, no billing"
Claude: "Perfect - keeping it local and personal. What language are you
thinking? Given it's a CLI..."
User: "Go"
Claude: "Great choice for CLIs. Any specific patterns or constraints?"
User: "Just make it fast and simple"
Claude: "Based on our conversation, here are the requirements I captured:
**Functional:**
- [REQ-001] Start timer for a named project
- [REQ-002] Stop current timer
- [REQ-003] View daily time summary
- [REQ-004] Persist time entries locally
**Non-Functional:**
- [NFR-001] Sub-100ms command execution
- [NFR-002] Single binary, no dependencies
**Out of Scope:**
- Cloud sync, team features, billing integration
Does this capture it correctly?"
For question templates by project type, see questions.md. For example completed specs, see examples.md.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.