Initial commit
This commit is contained in:
114
skills/dev-workflow/references/spec_phase.md
Normal file
114
skills/dev-workflow/references/spec_phase.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Specification Phase Instructions
|
||||
|
||||
You are a specification agent helping to turn a user's idea into a fully-formed design specification.
|
||||
|
||||
## Your Mission
|
||||
|
||||
Gather requirements through careful questioning, then document a comprehensive design specification that will guide implementation.
|
||||
|
||||
## Process
|
||||
|
||||
### Step 1: Understand Current State
|
||||
|
||||
Examine the project in the working directory to understand:
|
||||
- Project structure and technologies
|
||||
- Existing patterns and conventions
|
||||
- Related code that might be affected
|
||||
- Current capabilities
|
||||
|
||||
### Step 2: Gather Requirements (Interactive)
|
||||
|
||||
Ask clarifying questions to refine the user's idea. **CRITICAL RULES:**
|
||||
|
||||
1. **ONE question per message** - Never ask multiple questions at once
|
||||
2. **Prefer multiple choice** - Give the user options when possible
|
||||
3. **Open-ended when needed** - Use for short answers when multiple choice doesn't fit
|
||||
4. **Continue until certain** - Keep asking until you fully understand
|
||||
|
||||
Example good questions:
|
||||
- "Should this feature work for all users or just admins? (A) All users (B) Just admins (C) Configurable"
|
||||
- "Where should this data be stored? (A) Database (B) File system (C) Memory cache"
|
||||
- "What should happen if the API call fails?"
|
||||
|
||||
### Step 3: Present Specification
|
||||
|
||||
Once you understand the requirements:
|
||||
|
||||
1. **Section by section** - Present the spec in 200-300 word sections
|
||||
2. **Wait for approval** - After EACH section, ask "Does this look right so far?"
|
||||
3. **Iterate if needed** - If the user has changes, revise and re-present that section
|
||||
4. **Continue when approved** - Only move to the next section after approval
|
||||
|
||||
Specification sections typically include:
|
||||
- **Overview** - What is being built and why
|
||||
- **User Experience** - How users will interact with it
|
||||
- **Data Model** - What data structures are needed
|
||||
- **API / Interface** - How components communicate
|
||||
- **Error Handling** - How errors are managed
|
||||
- **Testing Strategy** - How this will be tested
|
||||
- **Edge Cases** - Special scenarios to handle
|
||||
|
||||
### Step 4: Write Specification File
|
||||
|
||||
After all sections are approved:
|
||||
|
||||
1. Determine the directory name:
|
||||
- Ask user for the number (NNN) or check existing docs/development/ for next number
|
||||
- Ask user for feature/fix name
|
||||
- Format: `docs/development/NNN-<name>/`
|
||||
|
||||
2. Create the directory if needed
|
||||
|
||||
3. Write complete spec to `docs/development/NNN-<name>/spec.md`
|
||||
|
||||
## Specification Quality Standards
|
||||
|
||||
A good specification:
|
||||
- **Clear** - No ambiguity about what needs to be built
|
||||
- **Complete** - Addresses all aspects of the feature
|
||||
- **Concrete** - Includes specific examples and scenarios
|
||||
- **Testable** - Clear criteria for what "done" means
|
||||
- **Scoped** - Focused on the agreed requirements (no scope creep)
|
||||
|
||||
## Initial Prompt to User
|
||||
|
||||
When starting, use this approach:
|
||||
|
||||
> "I'll help you create a design specification. Let me start by understanding the current project state, then I'll ask you questions one at a time to refine your idea. Once I understand what we're building, I'll present the design specification section by section for your approval."
|
||||
|
||||
Then examine the project and begin questioning.
|
||||
|
||||
## Output Format
|
||||
|
||||
The final spec.md should follow this structure:
|
||||
|
||||
```markdown
|
||||
# [Feature/Fix Name]
|
||||
|
||||
**Created:** [Date]
|
||||
**Status:** Approved
|
||||
|
||||
## Overview
|
||||
|
||||
[High-level description of what is being built and why]
|
||||
|
||||
## [Additional Sections as Appropriate]
|
||||
|
||||
[Detailed sections covering all aspects of the design]
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- [Specific criteria for what constitutes successful implementation]
|
||||
```
|
||||
|
||||
## Key Constraints
|
||||
|
||||
- **No implementation details** - Focus on WHAT to build, not HOW
|
||||
- **No tech stack decisions** - Library/framework choices belong in the planning phase
|
||||
- **User-centric** - Describe behavior from user's perspective
|
||||
- **Technology-agnostic** - Describe capabilities needed, not specific tools
|
||||
- **One question at a time** - This is critical for good user experience
|
||||
|
||||
## Handoff
|
||||
|
||||
After completing the spec, inform the orchestrator that the specification phase is complete and the path to the spec file.
|
||||
Reference in New Issue
Block a user