Initial commit
This commit is contained in:
218
commands/speckit-implement.md
Normal file
218
commands/speckit-implement.md
Normal file
@@ -0,0 +1,218 @@
|
||||
---
|
||||
description: Implement feature from specification and plan
|
||||
---
|
||||
|
||||
# Spec Kit: Implement Feature
|
||||
|
||||
Systematically implement a feature from its specification and implementation plan.
|
||||
|
||||
## Inputs
|
||||
|
||||
**Feature name:** 008-user-profile/tasks.md
|
||||
|
||||
**Files to read:**
|
||||
- Specification: `specs/specs/008-user-profile/tasks.md`
|
||||
- Implementation Plan: `specs/specs/008-user-profile/tasks.md`
|
||||
## Implementation Process
|
||||
|
||||
### Step 1: Review Specification
|
||||
|
||||
Read `specs/specs/008-user-profile/tasks.md`:
|
||||
|
||||
- Understand the feature overview
|
||||
- Read all user stories
|
||||
- Review acceptance criteria (these are your tests!)
|
||||
- Note dependencies on other features
|
||||
- Check current status (COMPLETE/PARTIAL/MISSING)
|
||||
|
||||
### Step 2: Review Implementation Plan
|
||||
|
||||
Read `specs/specs/008-user-profile/tasks.md`:
|
||||
|
||||
- Understand current vs target state
|
||||
- Review technical approach
|
||||
- Read the task list
|
||||
- Note risks and mitigations
|
||||
- Review testing strategy
|
||||
|
||||
### Step 3: Execute Tasks Systematically
|
||||
|
||||
For each task in the implementation plan:
|
||||
|
||||
1. **Read the task description**
|
||||
2. **Implement the task:**
|
||||
- Create/modify files as needed
|
||||
- Follow existing code patterns
|
||||
- Use appropriate frameworks/libraries
|
||||
- Add proper error handling
|
||||
- Include logging where appropriate
|
||||
|
||||
3. **Test the task:**
|
||||
- Run relevant tests
|
||||
- Manual testing if needed
|
||||
- Verify acceptance criteria
|
||||
|
||||
4. **Mark task complete:**
|
||||
- Update task checklist
|
||||
- Note any issues or deviations
|
||||
|
||||
5. **Continue to next task**
|
||||
|
||||
### Step 4: Validate Against Acceptance Criteria
|
||||
|
||||
After all tasks complete, verify each acceptance criterion:
|
||||
|
||||
```markdown
|
||||
## Acceptance Criteria Validation
|
||||
|
||||
- [x] User can register with email/password
|
||||
✅ Tested: Registration form works, user created in DB
|
||||
|
||||
- [x] Passwords meet complexity requirements
|
||||
✅ Tested: Weak passwords rejected with proper error message
|
||||
|
||||
- [x] Verification email sent
|
||||
✅ Tested: Email sent via SendGrid, token valid for 24h
|
||||
|
||||
- [ ] User can reset password
|
||||
❌ NOT IMPLEMENTED: Deferred to future sprint
|
||||
```
|
||||
|
||||
### Step 5: Run Tests
|
||||
|
||||
Execute test suite:
|
||||
|
||||
```bash
|
||||
# Run unit tests
|
||||
npm test
|
||||
|
||||
# Run integration tests (if available)
|
||||
npm run test:integration
|
||||
|
||||
# Run E2E tests for this feature (if available)
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
Report test results:
|
||||
- Tests passing: X/Y
|
||||
- New tests added: Z
|
||||
- Coverage: X%
|
||||
|
||||
### Step 6: Update Specification Status
|
||||
|
||||
Update `specs/specs/008-user-profile/tasks.md`:
|
||||
|
||||
**If fully implemented:**
|
||||
```markdown
|
||||
## Status
|
||||
✅ **COMPLETE** - Fully implemented and tested
|
||||
|
||||
## Implementation Complete
|
||||
|
||||
- Date: [current date]
|
||||
- All acceptance criteria met
|
||||
- Tests passing: X/X
|
||||
- No known issues
|
||||
```
|
||||
|
||||
**If partially implemented:**
|
||||
```markdown
|
||||
## Status
|
||||
⚠️ **PARTIAL** - Core functionality complete, missing: [list]
|
||||
|
||||
## Implementation Status
|
||||
|
||||
**Completed:**
|
||||
- ✅ [What was implemented]
|
||||
|
||||
**Still Missing:**
|
||||
- ❌ [What's still needed]
|
||||
|
||||
**Reason:** [Why not fully complete]
|
||||
```
|
||||
|
||||
### Step 7: Commit Changes
|
||||
|
||||
Create commit with reference to specification:
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat: implement specs/008-user-profile/tasks.md (specs/008-user-profile/tasks.md)
|
||||
|
||||
Implemented from specification: specs/specs/008-user-profile/tasks.md
|
||||
|
||||
Completed:
|
||||
- [Task 1]
|
||||
- [Task 2]
|
||||
- [Task 3]
|
||||
|
||||
Tests: X passing
|
||||
Status: COMPLETE"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
Provide summary:
|
||||
|
||||
```markdown
|
||||
## Implementation Complete: specs/008-user-profile/tasks.md
|
||||
|
||||
### Tasks Completed
|
||||
- [x] Task 1: [description] (file.ts)
|
||||
- [x] Task 2: [description] (file2.ts)
|
||||
- [x] Task 3: [description]
|
||||
|
||||
### Files Created/Modified
|
||||
- src/feature/component.ts (142 lines)
|
||||
- src/api/endpoint.ts (78 lines)
|
||||
- tests/feature.test.ts (95 lines)
|
||||
|
||||
### Tests
|
||||
- Unit tests: 12/12 passing ✅
|
||||
- Integration tests: 3/3 passing ✅
|
||||
- Coverage: 87%
|
||||
|
||||
### Acceptance Criteria
|
||||
- [x] Criterion 1 ✅
|
||||
- [x] Criterion 2 ✅
|
||||
- [x] Criterion 3 ✅
|
||||
|
||||
### Status Update
|
||||
- Previous: ❌ MISSING
|
||||
- Now: ✅ COMPLETE
|
||||
|
||||
### Commit
|
||||
✅ Committed: feat: implement specs/008-user-profile/tasks.md
|
||||
|
||||
### Next Steps
|
||||
Ready to shift into next feature or run `/speckit.analyze` to validate.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
If implementation fails:
|
||||
- Save progress (mark completed tasks)
|
||||
- Update spec with partial status
|
||||
- Document blocker
|
||||
- Provide recommendations
|
||||
|
||||
If tests fail:
|
||||
- Fix issues before marking complete
|
||||
- Update spec if acceptance criteria need adjustment
|
||||
- Document test failures
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Work incrementally (one task at a time)
|
||||
- Test frequently (after each task if possible)
|
||||
- Commit early and often
|
||||
- Update spec status accurately
|
||||
- Cross-reference related specs
|
||||
- For greenfield: Use target_stack from state
|
||||
- For brownfield: Maintain existing patterns and stack
|
||||
Reference in New Issue
Block a user