829 lines
20 KiB
Markdown
829 lines
20 KiB
Markdown
# PRISM Workflow Examples
|
|
|
|
This document provides real-world examples of PRISM workflows across different scenarios.
|
|
|
|
## Table of Contents
|
|
|
|
1. [Greenfield: New E-Commerce Platform](#greenfield-new-e-commerce-platform)
|
|
2. [Brownfield: Legacy System Modernization](#brownfield-legacy-system-modernization)
|
|
3. [API Integration](#api-integration)
|
|
4. [Bug Fix in Complex System](#bug-fix-in-complex-system)
|
|
5. [Performance Optimization](#performance-optimization)
|
|
6. [Security Enhancement](#security-enhancement)
|
|
|
|
---
|
|
|
|
## Greenfield: New E-Commerce Platform
|
|
|
|
### Scenario
|
|
Building a new e-commerce platform from scratch with modern technology stack.
|
|
|
|
### Workflow
|
|
|
|
#### Phase 1: Architecture Planning
|
|
|
|
**User Request:**
|
|
> "I need to design a full-stack e-commerce platform with product catalog, shopping cart, checkout, and payment processing."
|
|
|
|
**Step 1: Create Architecture**
|
|
```
|
|
@architect
|
|
*create-fullstack-architecture
|
|
```
|
|
|
|
**Architect Process:**
|
|
1. Gathers requirements (users, products, orders, payments)
|
|
2. Designs system components:
|
|
- Frontend: React + Redux
|
|
- Backend: Node.js + Express
|
|
- Database: PostgreSQL
|
|
- Cache: Redis
|
|
- Payments: Stripe integration
|
|
3. Creates architecture document with:
|
|
- System diagrams
|
|
- Data models
|
|
- API specifications
|
|
- Security architecture
|
|
- Deployment strategy
|
|
|
|
**Step 2: Validate Architecture**
|
|
```
|
|
@architect
|
|
*execute-checklist
|
|
```
|
|
|
|
**Output:** `docs/architecture/ecommerce-architecture.md`
|
|
|
|
#### Phase 2: Product Planning
|
|
|
|
**Step 3: Create PRD**
|
|
```
|
|
@pm
|
|
*create-prd
|
|
```
|
|
|
|
**PM Process:**
|
|
1. Defines product requirements
|
|
2. Creates epics:
|
|
- Epic 1: User Management
|
|
- Epic 2: Product Catalog
|
|
- Epic 3: Shopping Cart
|
|
- Epic 4: Checkout & Payments
|
|
- Epic 5: Admin Dashboard
|
|
3. Prioritizes features
|
|
4. Defines success metrics
|
|
|
|
**Output:** `docs/prd.md`
|
|
|
|
#### Phase 3: Shard into Stories
|
|
|
|
**Step 4: Break Architecture into Stories**
|
|
```
|
|
@po
|
|
*shard-doc docs/architecture/ecommerce-architecture.md docs/stories
|
|
```
|
|
|
|
**PO Process:**
|
|
1. Identifies components:
|
|
- User service
|
|
- Product service
|
|
- Cart service
|
|
- Order service
|
|
- Payment service
|
|
2. Creates story sequence:
|
|
- Story 1.1: User registration and authentication
|
|
- Story 1.2: User profile management
|
|
- Story 2.1: Product catalog API
|
|
- Story 2.2: Product search and filtering
|
|
- Story 2.3: Product detail pages
|
|
- Story 3.1: Shopping cart state management
|
|
- Story 3.2: Cart API endpoints
|
|
- Story 4.1: Checkout workflow
|
|
- Story 4.2: Payment integration
|
|
- Story 4.3: Order confirmation
|
|
3. Adds dependencies (e.g., Story 3.1 requires 1.1, 2.1)
|
|
|
|
**Output:** `docs/stories/1.1.user-registration.md`, etc.
|
|
|
|
#### Phase 4: Development
|
|
|
|
**Step 5: Implement First Story**
|
|
```
|
|
@dev
|
|
*develop-story docs/stories/1.1.user-registration.md
|
|
```
|
|
|
|
**Dev Process:**
|
|
1. Sets PSP tracking started timestamp
|
|
2. **Task 1: Create User model**
|
|
- Writes test: `test_user_creation()`
|
|
- Implements User model with email, password fields
|
|
- Runs test → PASSES
|
|
- Updates File List: `models/user.py`
|
|
- Marks task [x]
|
|
3. **Task 2: Implement registration endpoint**
|
|
- Writes test: `test_post_register_creates_user()`
|
|
- Implements `/api/auth/register` endpoint
|
|
- Runs test → PASSES
|
|
- Updates File List: `routes/auth.py`
|
|
- Marks task [x]
|
|
4. **Task 3: Add password hashing**
|
|
- Writes test: `test_password_is_hashed()`
|
|
- Implements bcrypt hashing
|
|
- Runs test → PASSES
|
|
- Updates File List: `utils/crypto.py`
|
|
- Marks task [x]
|
|
5. **Task 4: Write integration tests**
|
|
- Writes E2E test: `test_user_can_register_and_login()`
|
|
- Runs all tests → PASSES
|
|
- Marks task [x]
|
|
6. Runs full regression → PASSES
|
|
7. Updates PSP tracking completed
|
|
8. Sets status: "Ready for Review"
|
|
|
|
#### Phase 5: Quality Review
|
|
|
|
**Step 6: QA Review**
|
|
```
|
|
@qa
|
|
*review docs/stories/1.1.user-registration.md
|
|
```
|
|
|
|
**QA Process:**
|
|
1. Reviews code quality
|
|
2. Checks test coverage (>90% for auth)
|
|
3. Validates security (password hashing, input validation)
|
|
4. Tests edge cases
|
|
5. Updates QA Results section in story
|
|
6. Creates gate: `docs/qa/gates/1.1-user-registration.yml`
|
|
7. Gate decision: **PASS**
|
|
|
|
**Step 7: Commit and Continue**
|
|
```
|
|
git add .
|
|
git commit -m "feat: Add user registration with authentication"
|
|
git push
|
|
```
|
|
|
|
Move to next story (1.2, 2.1, etc.)
|
|
|
|
### Key Takeaways
|
|
|
|
- ✅ Architecture first, then implementation
|
|
- ✅ Break into small, focused stories
|
|
- ✅ TDD throughout development
|
|
- ✅ Quality gates before merging
|
|
- ✅ Systematic progression through workflow
|
|
|
|
---
|
|
|
|
## Brownfield: Legacy System Modernization
|
|
|
|
### Scenario
|
|
Modernizing a 10-year-old PHP monolith to microservices with modern tech stack.
|
|
|
|
### Workflow
|
|
|
|
#### Phase 1: Document Existing System
|
|
|
|
**Step 1: Document Legacy Project**
|
|
```
|
|
@architect
|
|
*document-project
|
|
```
|
|
|
|
**Architect Process:**
|
|
1. Analyzes existing codebase
|
|
2. Documents:
|
|
- Current architecture (monolithic PHP)
|
|
- Database schema
|
|
- API endpoints (if any)
|
|
- Business logic patterns
|
|
- Integration points
|
|
- Technical debt areas
|
|
3. Creates source tree
|
|
4. Identifies modernization candidates
|
|
|
|
**Output:** `docs/architecture/legacy-system-docs.md`
|
|
|
|
#### Phase 2: Plan Modernization
|
|
|
|
**Step 2: Create Brownfield Architecture**
|
|
```
|
|
@architect
|
|
*create-brownfield-architecture
|
|
```
|
|
|
|
**Architect Process:**
|
|
1. Reviews legacy documentation
|
|
2. Designs migration strategy:
|
|
- **Strangler Fig Pattern**: Gradually replace modules
|
|
- **Phase 1**: Extract user service
|
|
- **Phase 2**: Extract product service
|
|
- **Phase 3**: Extract order service
|
|
3. Plans parallel running (old + new)
|
|
4. Defines rollback procedures
|
|
5. Specifies feature flags
|
|
|
|
**Output:** `docs/architecture/modernization-architecture.md`
|
|
|
|
#### Phase 3: Create Modernization Story
|
|
|
|
**Step 3: Create Brownfield Story**
|
|
```
|
|
@po
|
|
*create-story
|
|
```
|
|
|
|
**Story:** Extract User Service from Monolith
|
|
|
|
**Acceptance Criteria:**
|
|
- New user service handles authentication
|
|
- Facade routes requests to new service
|
|
- Legacy code still accessible via facade
|
|
- All existing user tests pass
|
|
- Feature flag controls routing
|
|
- Performance unchanged or improved
|
|
|
|
#### Phase 4: Risk Assessment (CRITICAL for Brownfield)
|
|
|
|
**Step 4: Assess Integration Risks**
|
|
```
|
|
@qa
|
|
*risk docs/stories/1.1.extract-user-service.md
|
|
```
|
|
|
|
**QA Process:**
|
|
1. **Identifies Risks:**
|
|
- **High**: Breaking authentication for existing users (P=8, I=9, Score=72)
|
|
- **High**: Data migration failures (P=6, I=9, Score=54)
|
|
- **Medium**: Performance degradation (P=5, I=7, Score=35)
|
|
- **Medium**: Session handling mismatches (P=6, I=6, Score=36)
|
|
2. **Documents Mitigation:**
|
|
- Comprehensive integration tests
|
|
- Parallel running with feature flag
|
|
- Gradual rollout (5% → 25% → 50% → 100%)
|
|
- Rollback procedure documented
|
|
- Performance monitoring
|
|
3. **Risk Score:** 72 (High) - Requires enhanced testing
|
|
|
|
**Output:** `docs/qa/assessments/1.1-extract-user-service-risk-20251022.md`
|
|
|
|
**Step 5: Design Test Strategy**
|
|
```
|
|
@qa
|
|
*design docs/stories/1.1.extract-user-service.md
|
|
```
|
|
|
|
**QA Process:**
|
|
1. **Unit Tests** (15 scenarios):
|
|
- User service authentication logic
|
|
- Password validation
|
|
- Token generation
|
|
2. **Integration Tests** (12 scenarios):
|
|
- Facade routing logic
|
|
- New service endpoints
|
|
- Database operations
|
|
- Session management
|
|
3. **E2E Tests** (8 scenarios) - P0 Critical:
|
|
- Existing user can still login (legacy path)
|
|
- New user registers and logs in (new path)
|
|
- Feature flag switches between paths
|
|
- Session persists across services
|
|
4. **Regression Tests** (20 scenarios):
|
|
- All existing user functionality still works
|
|
- No performance degradation
|
|
- All legacy integrations intact
|
|
|
|
**Output:** `docs/qa/assessments/1.1-extract-user-service-test-design-20251022.md`
|
|
|
|
#### Phase 5: Strangler Pattern Implementation
|
|
|
|
**Step 6: Implement with Strangler Pattern**
|
|
```
|
|
@dev
|
|
*strangler docs/stories/1.1.extract-user-service.md
|
|
```
|
|
|
|
**Dev Process:**
|
|
1. **Task 1: Create new user service**
|
|
- Writes unit tests for new service
|
|
- Implements Node.js user service
|
|
- Tests pass
|
|
2. **Task 2: Create facade layer**
|
|
- Writes tests for routing logic
|
|
- Implements facade in legacy codebase
|
|
- Routes to legacy by default
|
|
- Tests pass
|
|
3. **Task 3: Add feature flag**
|
|
- Writes tests for flag logic
|
|
- Implements flag: `USE_NEW_USER_SERVICE`
|
|
- Tests both paths
|
|
4. **Task 4: Data migration script**
|
|
- Writes tests for migration
|
|
- Implements safe migration with rollback
|
|
- Tests on copy of production data
|
|
5. **Task 5: Integration tests**
|
|
- Writes tests for both old and new paths
|
|
- Validates facade routing
|
|
- Tests session management
|
|
6. **Task 6: Performance tests**
|
|
- Benchmarks legacy performance
|
|
- Tests new service performance
|
|
- Validates no degradation
|
|
|
|
#### Phase 6: Validation During Development
|
|
|
|
**Step 7: Trace Requirements Coverage**
|
|
```
|
|
@qa
|
|
*trace docs/stories/1.1.extract-user-service.md
|
|
```
|
|
|
|
**QA Process:**
|
|
1. Maps each AC to tests:
|
|
- AC1 (new service auth) → 8 unit, 4 integration, 2 E2E tests
|
|
- AC2 (facade routing) → 3 integration, 2 E2E tests
|
|
- AC3 (legacy still works) → 12 regression tests
|
|
- AC4 (tests pass) → All 20 legacy tests + 35 new tests
|
|
- AC5 (feature flag) → 4 integration, 3 E2E tests
|
|
- AC6 (performance) → 5 performance benchmark tests
|
|
2. **Coverage:** 100% of ACs covered
|
|
3. **Gaps:** None identified
|
|
|
|
**Output:** `docs/qa/assessments/1.1-extract-user-service-trace-20251022.md`
|
|
|
|
**Step 8: NFR Validation**
|
|
```
|
|
@qa
|
|
*nfr docs/stories/1.1.extract-user-service.md
|
|
```
|
|
|
|
**QA Process:**
|
|
1. **Performance:**
|
|
- Login latency: 120ms (legacy) → 95ms (new) ✅
|
|
- Throughput: 500 req/s (legacy) → 600 req/s (new) ✅
|
|
2. **Security:**
|
|
- Password hashing: bcrypt → argon2 (stronger) ✅
|
|
- Token expiry: 24h → 1h (more secure) ✅
|
|
- SQL injection tests: All pass ✅
|
|
3. **Reliability:**
|
|
- Error handling: Comprehensive ✅
|
|
- Retry logic: 3 retries with backoff ✅
|
|
- Circuit breaker: Implemented ✅
|
|
|
|
**Output:** `docs/qa/assessments/1.1-extract-user-service-nfr-20251022.md`
|
|
|
|
#### Phase 7: Comprehensive Review
|
|
|
|
**Step 9: Full QA Review**
|
|
```
|
|
@qa
|
|
*review docs/stories/1.1.extract-user-service.md
|
|
```
|
|
|
|
**QA Process:**
|
|
1. **Code Quality:** Excellent, follows Node.js best practices
|
|
2. **Test Coverage:** 95% unit, 88% integration, 100% critical E2E
|
|
3. **Security:** Enhanced security with argon2, proper token handling
|
|
4. **Performance:** 20% improvement over legacy
|
|
5. **Integration Safety:** Facade pattern ensures safe rollback
|
|
6. **Regression:** All 20 legacy tests pass
|
|
7. **Documentation:** Complete rollback procedure
|
|
|
|
**Gate Decision:** **PASS** ✅
|
|
|
|
**Output:**
|
|
- QA Results in story file
|
|
- `docs/qa/gates/1.1-extract-user-service.yml`
|
|
|
|
#### Phase 8: Gradual Rollout
|
|
|
|
**Step 10: Deploy with Feature Flag**
|
|
1. Deploy with flag OFF (0% new service)
|
|
2. Enable for 5% of users
|
|
3. Monitor for 24 hours
|
|
4. If stable, increase to 25%
|
|
5. Monitor for 48 hours
|
|
6. If stable, increase to 50%
|
|
7. Monitor for 1 week
|
|
8. If stable, increase to 100%
|
|
9. Monitor for 1 month
|
|
10. If stable, remove facade, deprecate legacy
|
|
|
|
### Key Takeaways
|
|
|
|
- ✅ **ALWAYS** run risk assessment before brownfield work
|
|
- ✅ Strangler fig pattern for safe migration
|
|
- ✅ Feature flags for gradual rollout
|
|
- ✅ Comprehensive regression testing
|
|
- ✅ Performance benchmarking
|
|
- ✅ Rollback procedures documented
|
|
- ✅ Enhanced QA validation throughout
|
|
|
|
---
|
|
|
|
## API Integration
|
|
|
|
### Scenario
|
|
Integrating Stripe payment processing into existing e-commerce platform.
|
|
|
|
### Workflow
|
|
|
|
**Step 1: Create Story**
|
|
```
|
|
@po
|
|
*create-story
|
|
```
|
|
|
|
**Story:** Integrate Stripe for Payment Processing
|
|
|
|
**Step 2: Risk Assessment**
|
|
```
|
|
@qa
|
|
*risk docs/stories/3.1.stripe-integration.md
|
|
```
|
|
|
|
**Risks Identified:**
|
|
- Payment failures (P=6, I=9, Score=54) - High
|
|
- Data security (P=4, I=9, Score=36) - Medium-High
|
|
- API rate limits (P=5, I=5, Score=25) - Medium
|
|
|
|
**Step 3: Test Design**
|
|
```
|
|
@qa
|
|
*design docs/stories/3.1.stripe-integration.md
|
|
```
|
|
|
|
**Test Strategy:**
|
|
- Unit: Payment amount calculation, currency conversion
|
|
- Integration: Stripe API calls, webhook handling
|
|
- E2E: Complete checkout with test cards (P0)
|
|
|
|
**Step 4: Implement**
|
|
```
|
|
@dev
|
|
*develop-story docs/stories/3.1.stripe-integration.md
|
|
```
|
|
|
|
**Implementation:**
|
|
1. Stripe SDK integration
|
|
2. Payment intent creation
|
|
3. Webhook handler for payment events
|
|
4. Error handling and retries
|
|
5. Idempotency keys for safety
|
|
6. Comprehensive logging
|
|
|
|
**Step 5: Review**
|
|
```
|
|
@qa
|
|
*review docs/stories/3.1.stripe-integration.md
|
|
```
|
|
|
|
**QA Checks:**
|
|
- PCI compliance validation
|
|
- Error handling for all Stripe exceptions
|
|
- Webhook signature verification
|
|
- Idempotency testing
|
|
- Test card scenarios
|
|
|
|
**Gate:** **PASS WITH CONCERNS**
|
|
- Concern: Need production monitoring alerts
|
|
- Action: Add CloudWatch alerts for payment failures
|
|
|
|
### Key Takeaways
|
|
|
|
- ✅ External integrations need comprehensive error handling
|
|
- ✅ Security is critical for payment processing
|
|
- ✅ Test with provider's test environment
|
|
- ✅ Idempotency prevents duplicate charges
|
|
- ✅ Monitoring and alerting essential
|
|
|
|
---
|
|
|
|
## Bug Fix in Complex System
|
|
|
|
### Scenario
|
|
Users report intermittent authentication failures in production.
|
|
|
|
### Workflow
|
|
|
|
**Step 1: Create Bug Story**
|
|
```
|
|
@po
|
|
*create-story
|
|
```
|
|
|
|
**Story:** Fix intermittent authentication failures
|
|
|
|
**AC:**
|
|
- Identify root cause of authentication failures
|
|
- Implement fix
|
|
- Add tests to prevent regression
|
|
- No new failures in production
|
|
|
|
**Step 2: Risk Profile**
|
|
```
|
|
@qa
|
|
*risk docs/stories/2.5.fix-auth-failures.md
|
|
```
|
|
|
|
**Risks:**
|
|
- Side effects in auth system (P=6, I=8, Score=48)
|
|
- Performance impact (P=4, I=6, Score=24)
|
|
|
|
**Mitigation:**
|
|
- Comprehensive regression tests
|
|
- Performance benchmarks
|
|
|
|
**Step 3: Investigate and Implement**
|
|
```
|
|
@dev
|
|
*develop-story docs/stories/2.5.fix-auth-failures.md
|
|
```
|
|
|
|
**Investigation:**
|
|
1. Reviews logs → Finds race condition in token validation
|
|
2. Writes failing test reproducing the race condition
|
|
3. Fixes: Adds proper locking around token validation
|
|
4. Test now passes
|
|
5. Adds performance test to ensure no degradation
|
|
|
|
**Step 4: Trace Coverage**
|
|
```
|
|
@qa
|
|
*trace docs/stories/2.5.fix-auth-failures.md
|
|
```
|
|
|
|
**Coverage:**
|
|
- AC1 (root cause identified): Covered by investigation notes
|
|
- AC2 (fix implemented): Covered by 3 unit tests, 2 integration tests
|
|
- AC3 (regression tests): 5 new tests added
|
|
- AC4 (no new failures): E2E smoke tests pass
|
|
|
|
**Step 5: Review**
|
|
```
|
|
@qa
|
|
*review docs/stories/2.5.fix-auth-failures.md
|
|
```
|
|
|
|
**QA Validates:**
|
|
- Root cause analysis documented
|
|
- Fix addresses core issue (race condition)
|
|
- Regression tests comprehensive
|
|
- No performance degradation
|
|
- Error handling improved
|
|
|
|
**Gate:** **PASS** ✅
|
|
|
|
### Key Takeaways
|
|
|
|
- ✅ TDD helps: Reproduce bug in test first
|
|
- ✅ Document root cause analysis
|
|
- ✅ Regression tests prevent recurrence
|
|
- ✅ Performance validation for production fixes
|
|
|
|
---
|
|
|
|
## Performance Optimization
|
|
|
|
### Scenario
|
|
Dashboard loading time is 8 seconds, needs to be under 2 seconds.
|
|
|
|
### Workflow
|
|
|
|
**Step 1: Create Performance Story**
|
|
```
|
|
@po
|
|
*create-story
|
|
```
|
|
|
|
**Story:** Optimize dashboard loading performance
|
|
|
|
**AC:**
|
|
- Dashboard loads in <2 seconds (P50)
|
|
- <3 seconds P95
|
|
- No functionality broken
|
|
- Maintain current data freshness
|
|
|
|
**Step 2: NFR Assessment Early**
|
|
```
|
|
@qa
|
|
*nfr docs/stories/4.2.optimize-dashboard.md
|
|
```
|
|
|
|
**QA Establishes Baselines:**
|
|
- Current P50: 8.2s
|
|
- Current P95: 12.5s
|
|
- Target P50: <2s
|
|
- Target P95: <3s
|
|
|
|
**Step 3: Implement Optimizations**
|
|
```
|
|
@dev
|
|
*develop-story docs/stories/4.2.optimize-dashboard.md
|
|
```
|
|
|
|
**Optimizations:**
|
|
1. **Database Query Optimization:**
|
|
- Added indexes on frequently queried columns
|
|
- Reduced N+1 queries with joins
|
|
- Result: Queries 85% faster
|
|
2. **Caching:**
|
|
- Added Redis cache for dashboard data
|
|
- 5-minute TTL
|
|
- Result: 70% of requests served from cache
|
|
3. **Frontend Optimization:**
|
|
- Lazy loading of charts
|
|
- Virtual scrolling for tables
|
|
- Result: Initial render 60% faster
|
|
4. **API Response Optimization:**
|
|
- Pagination for large datasets
|
|
- Compression enabled
|
|
- Result: Payload size reduced 75%
|
|
|
|
**Step 4: Validate NFRs**
|
|
```
|
|
@qa
|
|
*nfr docs/stories/4.2.optimize-dashboard.md
|
|
```
|
|
|
|
**QA Measures:**
|
|
- New P50: 1.7s ✅ (Target: <2s)
|
|
- New P95: 2.4s ✅ (Target: <3s)
|
|
- Functionality: All tests pass ✅
|
|
- Data freshness: 5-min delay acceptable ✅
|
|
|
|
**Step 5: Review**
|
|
```
|
|
@qa
|
|
*review docs/stories/4.2.optimize-dashboard.md
|
|
```
|
|
|
|
**Gate:** **PASS** ✅
|
|
|
|
**Improvements:**
|
|
- 79% reduction in load time
|
|
- 81% reduction in P95
|
|
- All functionality preserved
|
|
|
|
### Key Takeaways
|
|
|
|
- ✅ Establish baselines before optimization
|
|
- ✅ Measure after each change
|
|
- ✅ Multiple optimization techniques
|
|
- ✅ Validate functionality not broken
|
|
- ✅ Early NFR assessment guides work
|
|
|
|
---
|
|
|
|
## Security Enhancement
|
|
|
|
### Scenario
|
|
Adding two-factor authentication (2FA) to user accounts.
|
|
|
|
### Workflow
|
|
|
|
**Step 1: Create Security Story**
|
|
```
|
|
@po
|
|
*create-story
|
|
```
|
|
|
|
**Story:** Add Two-Factor Authentication
|
|
|
|
**AC:**
|
|
- Users can enable 2FA with authenticator apps
|
|
- 2FA required for sensitive operations
|
|
- Backup codes provided
|
|
- SMS fallback option
|
|
- Graceful degradation if service unavailable
|
|
|
|
**Step 2: Risk Assessment**
|
|
```
|
|
@qa
|
|
*risk docs/stories/1.5.add-2fa.md
|
|
```
|
|
|
|
**Risks:**
|
|
- Lockout scenarios (P=5, I=8, Score=40)
|
|
- SMS service failures (P=4, I=6, Score=24)
|
|
- Backup code mismanagement (P=3, I=7, Score=21)
|
|
|
|
**Mitigation:**
|
|
- Admin override for lockouts
|
|
- Fallback to email if SMS fails
|
|
- Secure backup code storage
|
|
|
|
**Step 3: Security-Focused Design**
|
|
```
|
|
@qa
|
|
*design docs/stories/1.5.add-2fa.md
|
|
```
|
|
|
|
**Test Strategy:**
|
|
- **Security Tests (P0):**
|
|
- Brute force protection on 2FA codes
|
|
- Backup code single-use validation
|
|
- Rate limiting on verification attempts
|
|
- Time-based code expiration
|
|
- **Unit Tests:**
|
|
- TOTP code generation and validation
|
|
- Backup code generation
|
|
- SMS formatting
|
|
- **Integration Tests:**
|
|
- 2FA enable/disable flow
|
|
- Verification with authenticator
|
|
- SMS delivery
|
|
- **E2E Tests:**
|
|
- Complete 2FA enrollment
|
|
- Login with 2FA enabled
|
|
- Backup code usage
|
|
- Account recovery
|
|
|
|
**Step 4: Implement**
|
|
```
|
|
@dev
|
|
*develop-story docs/stories/1.5.add-2fa.md
|
|
```
|
|
|
|
**Implementation:**
|
|
1. TOTP library integration
|
|
2. QR code generation for authenticator setup
|
|
3. Backup codes (cryptographically secure)
|
|
4. SMS integration with Twilio
|
|
5. Rate limiting (5 attempts per 15 minutes)
|
|
6. Admin override capability
|
|
7. Audit logging for all 2FA events
|
|
|
|
**Step 5: Security Review**
|
|
```
|
|
@qa
|
|
*review docs/stories/1.5.add-2fa.md
|
|
```
|
|
|
|
**QA Security Checks:**
|
|
- ✅ TOTP implementation follows RFC 6238
|
|
- ✅ Backup codes are cryptographically random
|
|
- ✅ Codes stored hashed, not plaintext
|
|
- ✅ Rate limiting prevents brute force
|
|
- ✅ Time window appropriate (30 seconds)
|
|
- ✅ SMS service failover implemented
|
|
- ✅ Audit trail complete
|
|
- ✅ Admin override requires MFA
|
|
|
|
**Gate:** **PASS** ✅
|
|
|
|
### Key Takeaways
|
|
|
|
- ✅ Security features need comprehensive threat modeling
|
|
- ✅ Multiple fallback mechanisms
|
|
- ✅ Audit logging essential
|
|
- ✅ Admin override with safeguards
|
|
- ✅ Follow established standards (RFC 6238)
|
|
|
|
---
|
|
|
|
## Summary: Pattern Recognition
|
|
|
|
### Greenfield Projects
|
|
- Start with architecture
|
|
- Break into small stories
|
|
- TDD throughout
|
|
- Standard QA flow
|
|
|
|
### Brownfield Projects
|
|
- **Always** risk assessment first
|
|
- Strangler fig pattern
|
|
- Feature flags
|
|
- Comprehensive regression testing
|
|
- Gradual rollout
|
|
|
|
### Integrations
|
|
- Error handling comprehensive
|
|
- Test with provider sandbox
|
|
- Idempotency critical
|
|
- Monitoring essential
|
|
|
|
### Bug Fixes
|
|
- Reproduce in test first
|
|
- Document root cause
|
|
- Regression tests
|
|
- Validate no side effects
|
|
|
|
### Performance Work
|
|
- Baseline first
|
|
- Measure continuously
|
|
- Multiple techniques
|
|
- Validate functionality preserved
|
|
|
|
### Security Features
|
|
- Threat modeling
|
|
- Follow standards
|
|
- Multiple fallbacks
|
|
- Comprehensive audit trails
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-10-22
|