626 lines
17 KiB
Markdown
626 lines
17 KiB
Markdown
---
|
|
name: implement
|
|
description: Use GitHub Spec Kit's /speckit.implement and /speckit.tasks to systematically build missing features from specifications. Leverages implementation plans in specs/, validates against acceptance criteria, and achieves 100% spec completion. This is Step 6 of 6 in the reverse engineering process.
|
|
---
|
|
|
|
# Implement from Spec (with GitHub Spec Kit)
|
|
|
|
**Step 6 of 6** in the Reverse Engineering to Spec-Driven Development process.
|
|
|
|
**Estimated Time:** Hours to days (depends on gaps)
|
|
**Prerequisites:** Step 5 completed (all specs finalized, no `[NEEDS CLARIFICATION]` markers)
|
|
**Output:** Fully implemented application with all specs marked ✅ COMPLETE
|
|
|
|
---
|
|
|
|
## When to Use This Skill
|
|
|
|
Use this skill when:
|
|
- You've completed Step 5 (Complete Specification)
|
|
- All specifications in `specs/` are finalized
|
|
- Implementation plans exist in `specs/`
|
|
- Ready to use `/speckit.implement` to build features
|
|
|
|
**Trigger Phrases:**
|
|
- "Implement missing features"
|
|
- "Use speckit to implement"
|
|
- "Build from specifications"
|
|
- "Run speckit implement"
|
|
|
|
---
|
|
|
|
## What This Skill Does
|
|
|
|
Uses **GitHub Spec Kit's implementation workflow** to systematically build features:
|
|
|
|
1. **Use /speckit.tasks** - Generate actionable task lists from implementation plans
|
|
2. **Use /speckit.implement** - Execute tasks step-by-step for each feature
|
|
3. **Validate with /speckit.analyze** - Verify implementation matches specs
|
|
4. **Update Specs Automatically** - Spec Kit marks features ✅ COMPLETE as you implement
|
|
5. **Track Progress** - Monitor completion via `.specify/memory/` status markers
|
|
6. **Achieve 100% Completion** - All specs implemented and validated
|
|
|
|
**Key Benefit:** Spec Kit's `/speckit.implement` command guides you through implementation plans, updates specs automatically, and validates work against acceptance criteria.
|
|
|
|
---
|
|
|
|
## ⚠️ Two Contexts: Handoff vs Standard Implementation
|
|
|
|
**This skill works differently based on context:**
|
|
|
|
### Context A: Handoff (After Reverse Engineering)
|
|
**When:** Just completed Gears 1-5, on main branch, gaps identified
|
|
**What happens:** Handoff procedure (celebrate, explain transition, offer feature branch setup)
|
|
**See:** [operations/handoff.md](operations/handoff.md)
|
|
|
|
### Context B: Standard Implementation (Ongoing)
|
|
**When:** On feature branch (002-*, 003-*), working on specific feature
|
|
**What happens:** Standard GitHub Spec Kit implementation workflow
|
|
**See:** Process Overview below
|
|
|
|
**The handoff only happens ONCE** (after initial reverse engineering). After that, you always use standard /speckit.* workflow on feature branches.
|
|
|
|
---
|
|
|
|
## GitHub Spec Kit Implementation Workflow
|
|
|
|
The standard Spec Kit workflow is:
|
|
|
|
```
|
|
/speckit.specify → /speckit.plan → /speckit.tasks → /speckit.implement → /speckit.analyze
|
|
```
|
|
|
|
**For reverse engineering, we've already done the first two steps:**
|
|
- ✅ `/speckit.specify` - Done in Step 3 (created specifications)
|
|
- ✅ `/speckit.plan` - Done in Step 3 (created implementation plans)
|
|
|
|
**Now we use the remaining commands:**
|
|
- `/speckit.tasks` - Generate task lists
|
|
- `/speckit.implement` - Build features
|
|
- `/speckit.analyze` - Validate
|
|
|
|
---
|
|
|
|
## Process Overview
|
|
|
|
### Step 1: Review Implementation Roadmap
|
|
|
|
From `docs/gap-analysis-report.md`, review the phased plan:
|
|
|
|
**Phase 1: P0 Critical** (~12 hours)
|
|
- Essential features
|
|
- Security fixes
|
|
- Blocking issues
|
|
|
|
**Phase 2: P1 High Value** (~20 hours)
|
|
- Important features
|
|
- High user impact
|
|
- Key improvements
|
|
|
|
**Phase 3: P2/P3** (~TBD)
|
|
- Nice-to-have
|
|
- Future enhancements
|
|
|
|
**Confirm with user:**
|
|
- Start with Phase 1 (P0 items)?
|
|
- Any blockers to address first?
|
|
- Time constraints?
|
|
|
|
### Step 2: For Each Feature - Generate Tasks
|
|
|
|
Use `/speckit.tasks` to generate actionable tasks from implementation plan:
|
|
|
|
```bash
|
|
# Example: Implement user authentication frontend
|
|
> /speckit.tasks user-authentication-frontend
|
|
```
|
|
|
|
**What this does:**
|
|
- Reads `specs/user-authentication-frontend.md`
|
|
- Breaks down plan into specific, actionable tasks
|
|
- Creates task checklist
|
|
|
|
**Output example:**
|
|
```markdown
|
|
# Tasks: User Authentication Frontend
|
|
|
|
Based on implementation plan in `specs/user-authentication-frontend.md`
|
|
|
|
## Tasks
|
|
- [ ] Create LoginPage component (app/login/page.tsx)
|
|
- [ ] Create RegistrationPage component (app/register/page.tsx)
|
|
- [ ] Create PasswordResetPage component (app/reset-password/page.tsx)
|
|
- [ ] Add Zod validation schemas (lib/validation/auth.ts)
|
|
- [ ] Create useAuth hook (hooks/useAuth.ts)
|
|
- [ ] Implement API integration (lib/api/auth.ts)
|
|
- [ ] Add loading states to all forms
|
|
- [ ] Add error handling and display
|
|
- [ ] Write component tests (LoginPage.test.tsx, etc.)
|
|
- [ ] Update routing configuration (app/layout.tsx)
|
|
|
|
## Dependencies
|
|
- Backend API endpoints must be functional
|
|
- UI component library installed
|
|
|
|
## Acceptance Criteria (from specification)
|
|
- [ ] User can register with email and password
|
|
- [ ] User can log in with credentials
|
|
- [ ] User can reset forgotten password
|
|
- [ ] JWT tokens stored securely
|
|
- [ ] Forms validate input before submission
|
|
- [ ] Loading states shown during API calls
|
|
- [ ] Error messages displayed clearly
|
|
```
|
|
|
|
See [operations/generate-tasks.md](operations/generate-tasks.md)
|
|
|
|
### Step 3: Implement Feature with /speckit.implement
|
|
|
|
Use `/speckit.implement` to execute the implementation plan:
|
|
|
|
```bash
|
|
# Implement the feature step-by-step
|
|
> /speckit.implement user-authentication-frontend
|
|
```
|
|
|
|
**What this does:**
|
|
1. Loads tasks from `/speckit.tasks` output
|
|
2. Walks through each task systematically
|
|
3. Generates code for each task
|
|
4. Tests implementation against acceptance criteria
|
|
5. Updates specification status markers
|
|
6. Commits changes with descriptive messages
|
|
|
|
**Interactive flow:**
|
|
```
|
|
> /speckit.implement user-authentication-frontend
|
|
|
|
Starting implementation of: User Authentication Frontend
|
|
Plan: specs/user-authentication-frontend.md
|
|
|
|
Task 1/10: Create LoginPage component
|
|
|
|
I'll create app/login/page.tsx with:
|
|
- Email/password form
|
|
- Form validation
|
|
- Submit handler
|
|
- Link to registration and password reset
|
|
|
|
[Code generated]
|
|
|
|
✅ Task 1 complete
|
|
|
|
Task 2/10: Create RegistrationPage component
|
|
[...]
|
|
|
|
All tasks complete! Running validation...
|
|
|
|
✅ All acceptance criteria met
|
|
✅ Tests passing (8/8)
|
|
✅ No TypeScript errors
|
|
|
|
Updating specification status...
|
|
user-authentication.md: ⚠️ PARTIAL → ✅ COMPLETE
|
|
|
|
Implementation complete!
|
|
```
|
|
|
|
See [operations/use-speckit-implement.md](operations/use-speckit-implement.md)
|
|
|
|
### Step 4: Validate Implementation
|
|
|
|
After implementing, use `/speckit.analyze` to verify:
|
|
|
|
```bash
|
|
> /speckit.analyze
|
|
```
|
|
|
|
**What it checks:**
|
|
- Implementation matches specification
|
|
- All acceptance criteria met
|
|
- No inconsistencies with related specs
|
|
- Status markers accurate
|
|
|
|
**If issues found:**
|
|
```
|
|
⚠️ Issues detected:
|
|
|
|
1. user-authentication.md marked COMPLETE
|
|
- Missing: Token refresh mechanism
|
|
- Action: Add token refresh or update spec
|
|
|
|
2. Inconsistency with user-profile.md
|
|
- user-profile depends on authentication
|
|
- user-profile marked PARTIAL
|
|
- Recommendation: Complete user-profile next
|
|
```
|
|
|
|
Fix any issues and re-run `/speckit.analyze` until clean.
|
|
|
|
### Step 5: Update Progress and Continue
|
|
|
|
After each feature:
|
|
|
|
1. **Check progress:**
|
|
```bash
|
|
> /speckit.analyze
|
|
# Shows: X/Y features complete
|
|
```
|
|
|
|
2. **Update gap report:**
|
|
- Mark feature as ✅ COMPLETE
|
|
- Update overall completion percentage
|
|
- Move to next priority feature
|
|
|
|
3. **Commit changes:**
|
|
```bash
|
|
git commit -m "feat: implement user authentication frontend (user-authentication.md)"
|
|
```
|
|
|
|
4. **Select next feature:**
|
|
- Follow prioritized roadmap
|
|
- Choose next P0 item, or move to P1 if P0 complete
|
|
|
|
### Step 6: Iterate Until 100% Complete
|
|
|
|
Repeat Steps 2-5 for each feature in the roadmap:
|
|
|
|
```bash
|
|
# Phase 1: P0 Critical
|
|
> /speckit.tasks fish-management-ui
|
|
> /speckit.implement fish-management-ui
|
|
> /speckit.analyze
|
|
|
|
> /speckit.tasks photo-upload-api
|
|
> /speckit.implement photo-upload-api
|
|
> /speckit.analyze
|
|
|
|
# Phase 2: P1 High Value
|
|
> /speckit.tasks analytics-dashboard
|
|
> /speckit.implement analytics-dashboard
|
|
> /speckit.analyze
|
|
|
|
# Continue until all features complete...
|
|
```
|
|
|
|
**Track progress:**
|
|
- Phase 1: 3/3 complete (100%) ✅
|
|
- Phase 2: 2/4 complete (50%) 🔄
|
|
- Phase 3: 0/5 complete (0%) ⏳
|
|
|
|
---
|
|
|
|
## Example: Complete Implementation Flow
|
|
|
|
```bash
|
|
# 1. Review roadmap
|
|
User: "Let's implement the missing features"
|
|
Claude: Reviews docs/gap-analysis-report.md
|
|
Claude: "I see 3 P0 items. Let's start with fish-management-ui?"
|
|
User: "Yes, let's do it"
|
|
|
|
# 2. Generate tasks
|
|
> /speckit.tasks fish-management-ui
|
|
Output: 12 tasks identified
|
|
|
|
# 3. Implement
|
|
> /speckit.implement fish-management-ui
|
|
|
|
Starting implementation...
|
|
|
|
Task 1/12: Create FishEditPage component
|
|
[Code generated for app/fish/[id]/edit/page.tsx]
|
|
✅ Task 1 complete
|
|
|
|
Task 2/12: Add photo upload UI
|
|
[Code generated for components/PhotoUpload.tsx]
|
|
✅ Task 2 complete
|
|
|
|
[... continues through all 12 tasks ...]
|
|
|
|
Implementation complete!
|
|
✅ All acceptance criteria met
|
|
✅ Tests passing (15/15)
|
|
|
|
# 4. Validate
|
|
> /speckit.analyze
|
|
✅ No issues found
|
|
fish-management.md: ⚠️ PARTIAL → ✅ COMPLETE
|
|
|
|
# 5. Commit
|
|
git commit -m "feat: complete fish management UI (fish-management.md)"
|
|
|
|
# 6. Next feature
|
|
Claude: "Phase 1 progress: 1/3 complete. Next: photo-upload-api?"
|
|
User: "Yes"
|
|
|
|
# Repeat...
|
|
```
|
|
|
|
---
|
|
|
|
## Integration with Reverse Engineering Process
|
|
|
|
**Your reverse-engineered codebase is now:**
|
|
1. ✅ Fully documented (Step 2)
|
|
2. ✅ Formal specs created (Step 3)
|
|
3. ✅ Gaps identified (Step 4)
|
|
4. ✅ Clarifications resolved (Step 5)
|
|
5. 🔄 **Being implemented systematically (Step 6)**
|
|
|
|
**Spec Kit ensures:**
|
|
- Implementation matches specs exactly
|
|
- Specs stay up-to-date with code
|
|
- No drift between docs and reality
|
|
- Continuous validation
|
|
|
|
**After completion:**
|
|
- Use `/speckit.specify` for new features
|
|
- Use `/speckit.plan` → `/speckit.tasks` → `/speckit.implement` for development
|
|
- Use `/speckit.analyze` to maintain consistency
|
|
- Your codebase is now fully spec-driven!
|
|
|
|
---
|
|
|
|
## Success Criteria
|
|
|
|
After running this skill (implementing all features), you should have:
|
|
|
|
- ✅ All P0 features implemented (Phase 1 complete)
|
|
- ✅ All P1 features implemented (Phase 2 complete)
|
|
- ✅ P2/P3 features implemented or intentionally deferred
|
|
- ✅ All specifications marked ✅ COMPLETE
|
|
- ✅ `/speckit.analyze` shows no issues
|
|
- ✅ All tests passing
|
|
- ✅ Application at 100% completion
|
|
- ✅ Ready for production deployment
|
|
|
|
**Ongoing spec-driven development established:**
|
|
- New features start with `/speckit.specify`
|
|
- Implementation uses `/speckit.plan` → `/speckit.tasks` → `/speckit.implement`
|
|
- Continuous validation with `/speckit.analyze`
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
### During Implementation
|
|
|
|
1. **One feature at a time** - Don't start multiple features in parallel
|
|
2. **Follow the roadmap** - Respect P0 → P1 → P2 priority order
|
|
3. **Use `/speckit.implement`** - Don't implement manually, let Spec Kit guide you
|
|
4. **Validate frequently** - Run `/speckit.analyze` after each feature
|
|
5. **Commit often** - Commit after each feature completion
|
|
6. **Update specs** - If you discover new requirements, update specs first
|
|
|
|
### Quality Standards
|
|
|
|
For each implementation:
|
|
- ✅ Meets all acceptance criteria
|
|
- ✅ Tests added and passing
|
|
- ✅ TypeScript types correct (if applicable)
|
|
- ✅ Error handling implemented
|
|
- ✅ Loading states for async operations
|
|
- ✅ Responsive design (if UI)
|
|
- ✅ Accessibility standards met
|
|
|
|
### When Issues Arise
|
|
|
|
If `/speckit.analyze` finds problems:
|
|
1. Fix the implementation to match spec, OR
|
|
2. Update the spec if requirements changed
|
|
3. Never leave specs and code out of sync
|
|
|
|
---
|
|
|
|
## Continuous Spec-Driven Development
|
|
|
|
After completing the reverse engineering process:
|
|
|
|
### For New Features
|
|
```bash
|
|
# 1. Create specification
|
|
> /speckit.specify
|
|
|
|
# 2. Create implementation plan
|
|
> /speckit.plan
|
|
|
|
# 3. Generate tasks
|
|
> /speckit.tasks
|
|
|
|
# 4. Implement
|
|
> /speckit.implement
|
|
|
|
# 5. Validate
|
|
> /speckit.analyze
|
|
```
|
|
|
|
### For Refactoring
|
|
```bash
|
|
# 1. Update affected specifications
|
|
> /speckit.specify
|
|
|
|
# 2. Update implementation plan
|
|
> /speckit.plan
|
|
|
|
# 3. Implement changes
|
|
> /speckit.implement
|
|
|
|
# 4. Validate no regression
|
|
> /speckit.analyze
|
|
```
|
|
|
|
### For Bug Fixes
|
|
```bash
|
|
# 1. Update spec if bug reveals requirement gap
|
|
> /speckit.specify
|
|
|
|
# 2. Fix implementation
|
|
[manual fix or /speckit.implement]
|
|
|
|
# 3. Validate
|
|
> /speckit.analyze
|
|
```
|
|
|
|
---
|
|
|
|
## Technical Notes
|
|
|
|
- Spec Kit's `/speckit.implement` generates code - review before committing
|
|
- Implementation plans should be detailed for best results
|
|
- `/speckit.tasks` output can be refined if tasks are too broad
|
|
- Use `/speckit.clarify` if you discover ambiguities during implementation
|
|
- Keep `.specify/memory/` in version control
|
|
- `specs/` is the source of truth
|
|
|
|
---
|
|
|
|
## Final Outcome
|
|
|
|
**You've transformed:**
|
|
- Partially-complete codebase with no specs
|
|
- → Fully spec-driven development workflow
|
|
- → 100% implementation aligned with specifications
|
|
- → Continuous validation with `/speckit.analyze`
|
|
- → Sustainable spec-first development process
|
|
|
|
**Your application is now:**
|
|
- ✅ Fully documented
|
|
- ✅ Completely specified
|
|
- ✅ 100% implemented
|
|
- ✅ Continuously validated
|
|
- ✅ Ready for ongoing spec-driven development
|
|
|
|
---
|
|
|
|
## Gear 6.5: Validate & Review
|
|
|
|
Before finalizing, let's ensure everything meets quality standards through systematic validation.
|
|
|
|
### Step 1: Run Validation
|
|
|
|
```bash
|
|
# Validate implementation against specs
|
|
/stackshift.validate --fix
|
|
```
|
|
|
|
This will:
|
|
1. ✅ Run full test suite
|
|
2. ✅ Validate TypeScript compilation
|
|
3. ✅ Check spec compliance
|
|
4. ✅ Categorize any issues
|
|
5. ✅ Auto-fix issues (with --fix flag)
|
|
6. ✅ Rollback if fixes fail
|
|
|
|
**Expected result:**
|
|
```
|
|
✅ VALIDATION PASSED
|
|
|
|
All tests passing: ✅
|
|
TypeScript compiling: ✅
|
|
Spec compliance: ✅
|
|
Code quality: ✅
|
|
|
|
🚀 Implementation is production-ready!
|
|
```
|
|
|
|
If validation finds issues, they'll be fixed automatically. If critical issues are found that can't be auto-fixed, I'll report them for manual resolution.
|
|
|
|
### Step 2: Code Review
|
|
|
|
```bash
|
|
# Perform comprehensive code review
|
|
/stackshift.review
|
|
```
|
|
|
|
This reviews across 5 dimensions:
|
|
1. 🔍 **Correctness** - Works as intended, meets requirements
|
|
2. 📏 **Standards** - Follows conventions, well documented
|
|
3. 🔒 **Security** - No vulnerabilities, proper validation
|
|
4. ⚡ **Performance** - Efficient, scalable implementation
|
|
5. 🧪 **Testing** - Adequate coverage, edge cases handled
|
|
|
|
**Expected result:**
|
|
```
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
📋 Review Report
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
### ✅ APPROVED
|
|
|
|
All quality checks passed
|
|
Ready for deployment
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
```
|
|
|
|
If issues are found, I'll provide specific feedback with line numbers and recommendations.
|
|
|
|
### Step 3: Generate Spec Coverage Map
|
|
|
|
After validation passes, let's create the coverage map...
|
|
|
|
---
|
|
|
|
## Final Step: Generate Spec Coverage Map
|
|
|
|
Now let's create a visual coverage map showing the relationship between your specifications and code:
|
|
|
|
```bash
|
|
# Generate coverage map
|
|
```
|
|
|
|
I'll analyze all specs in `.specify/memory/specifications/` or `specs/` and create:
|
|
|
|
1. **ASCII box diagrams** - Visual map of each spec's files
|
|
2. **Reverse index** - Which spec(s) cover each file
|
|
3. **Coverage statistics** - Percentages by category
|
|
4. **Heat map** - Visual coverage representation
|
|
5. **Gap analysis** - Files not covered by specs
|
|
6. **Shared files** - High-risk files used by multiple specs
|
|
|
|
**Output:** `docs/spec-coverage-map.md`
|
|
|
|
This provides crucial visibility into spec-code alignment and helps identify any gaps!
|
|
|
|
---
|
|
|
|
## Spec Coverage Health Report
|
|
|
|
After generating the coverage map, I'll show you a summary:
|
|
|
|
```
|
|
📊 Spec Coverage Health Report
|
|
|
|
Overall Coverage: 91% (99/109 files)
|
|
|
|
By Category:
|
|
Backend: 93% [████████████████░░]
|
|
Frontend: 92% [████████████████░░]
|
|
Infrastructure: 83% [███████████████░░░]
|
|
Database: 100% [████████████████████]
|
|
Scripts: 67% [█████████░░░░░░░░░]
|
|
|
|
Status:
|
|
✅ 12 specs covering 99 files
|
|
⚠️ 10 gap files identified (need review)
|
|
🔴 2 high-risk shared files (used by 4+ specs)
|
|
|
|
Full report: docs/spec-coverage-map.md
|
|
```
|
|
|
|
---
|
|
|
|
**Congratulations!** You've completed the 6-step Reverse Engineering to Spec-Driven Development process. Your codebase is now enterprise-grade, fully specified, and ready for sustainable development using GitHub Spec Kit or continue using StackShift to help develop new functionality. 🎉
|
|
|
|
---
|
|
|
|
**Remember:** Maintain the spec-driven workflow going forward:
|
|
1. Requirements change → Update specs first (`/speckit.specify`)
|
|
2. Plan implementation (`/speckit.plan`)
|
|
3. Generate tasks (`/speckit.tasks`)
|
|
4. Implement (`/speckit.implement`)
|
|
5. Validate (`/speckit.analyze`)
|
|
|
|
This ensures specs and code never drift apart.
|