UNPKG

prprompts-flutter-generator

Version:

AI-powered Flutter development with full automation + official extension support - Generate 32 security-audited guides & auto-implement in 2-3 hours. NEW v5.1: Official Claude Code plugin with hooks, Gemini TOML commands, Qwen MCP settings. Features: Comp

864 lines (665 loc) 27 kB
--- name: Generate Implementation Plan description: Create intelligent, dependency-aware implementation plan with sprint planning and team allocation author: Implementation Planning Engine version: 2.0.0 tags: [prd, planning, implementation, sprints, team, velocity] --- # Generate Implementation Plan ## Overview Create a comprehensive, intelligent implementation plan from PRD that includes: - **Dependency-aware task ordering** (uses critical path from FEATURE_DEPENDENCIES.md) - **Sprint planning** (2-week sprints, velocity-based allocation) - **Team allocation** (skill-based assignment from PRD team_composition) - **Risk assessment** (HIPAA/PCI-DSS/security tasks flagged) - **Maximum task detail** (subtasks, code snippets, test scenarios, acceptance criteria) - **Progress tracking** (TODO/IN_PROGRESS/BLOCKED/DONE states, velocity, burndown) Output: `docs/IMPLEMENTATION_PLAN.md` (~850+ lines) --- ## Step 1: Input Validation Check for required and optional files: ```bash # Required ls docs/PRD.md # Optional (enhances intelligence) ls docs/FEATURE_DEPENDENCIES.md ls docs/COST_ESTIMATE.md ``` **If PRD.md missing**: ``` Error: docs/PRD.md not found Please run: claude create-prd OR claude auto-gen-prd Then try again. ``` **If optional files missing**: ``` ⚠️ Warning: Enhanced planning files not found For smarter plans, run: claude analyze-dependencies # Creates FEATURE_DEPENDENCIES.md claude estimate-cost # Creates COST_ESTIMATE.md Proceeding with basic plan... ``` --- ## Step 2: Extract Data from PRD Read `docs/PRD.md` and extract: ### From YAML Frontmatter: ```yaml project_name: "HealthTracker Pro" project_type: "healthcare" platforms: ["ios", "android", "web"] compliance: ["hipaa", "gdpr"] sensitive_data: ["phi", "pii"] team_size: "5-10" team_composition: "balanced" # junior-heavy | balanced | senior-heavy timeline_months: 6 demo_frequency: "biweekly" state_management: "bloc" database: "firebase" auth_method: "jwt" ``` ### From Markdown Body: Extract **Features** section - look for: ```markdown ## Features & User Stories ### Epic 1: User Authentication Priority: P0 Complexity: Medium **User Stories:** - As a user, I want to log in securely - As a user, I want biometric authentication **Acceptance Criteria:** - JWT verification (RS256) - MFA support - Session timeout (15 min) ``` Parse each feature to get: - **Name**: "User Authentication" - **Priority**: P0 (critical) | P1 (high) | P2 (medium) | P3 (low) - **Complexity**: Low | Medium | High | Critical - **User stories count**: 2 - **Dependencies**: (inferred from description or explicit mentions) --- ## Step 3: Load Dependency Analysis (If Available) **If FEATURE_DEPENDENCIES.md exists**, read: 1. **Critical Path**: Longest sequence of dependent features ``` User Authentication (2 weeks) Database Schema (1 week) API Foundation (2 weeks) Payment Integration (2 weeks) Total: 7 weeks ``` 2. **Dependency Graph**: Adjacency list ``` User Authentication ├─ Depends on: [None] └─ Blocks: [Dashboard, Profile, Settings, ...] Dashboard ├─ Depends on: [User Authentication, Real-time Infrastructure] └─ Blocks: [Dashboard Widgets, Notifications] ``` 3. **Parallel Work Streams**: Features with no dependencies ``` Stream 1: User Auth Profile Settings Stream 2: Design System Component Library UI Polish Stream 3: Analytics Setup Error Tracking (no blockers) ``` 4. **Implementation Phases** (from FEATURE_DEPENDENCIES.md): - Phase 1: Foundation (Week 1-2) - Phase 2: Core Features (Week 3-6) - Phase 3: Advanced Features (Week 7-10) - Phase 4: Polish & Launch (Week 11-12) --- ## Step 4: Load Cost Estimates (If Available) **If COST_ESTIMATE.md exists**, read: 1. **Feature Time Estimates**: ``` User Authentication: 40 hours (±8 hours) Dashboard: 60 hours (±12 hours) Payment Integration: 80 hours (±16 hours) ``` 2. **Team Breakdown**: ``` Senior Dev: 120 hours @ $150/hr Mid Dev: 200 hours @ $100/hr Junior Dev: 100 hours @ $75/hr ``` 3. **Risk Buffers**: - HIPAA compliance tasks: +25% buffer - PCI-DSS tasks: +30% buffer - New technology: +20% buffer --- ## Step 5: Calculate Team Allocation Based on `team_size` and `team_composition`: ### Team Size Mapping: - `"1-5"` 3 developers (1 senior, 1 mid, 1 junior) - `"5-10"` 7 developers (2 senior, 4 mid, 1 junior) - `"11-25"` 15 developers (3 senior, 8 mid, 4 junior) - `"26-50"` 30 developers (5 senior, 15 mid, 10 junior) ### Team Composition Adjustment: - `"junior-heavy"`: -1 senior, +2 junior - `"balanced"`: No change - `"senior-heavy"`: +2 senior, -1 junior ### Create Team Roster: ```markdown ## Team Allocation ### Senior Developers (2) - **Alice**: Authentication, Security, Payment, Compliance - **Bob**: API Integration, Database, Architecture ### Mid-Level Developers (4) - **Carol**: Dashboard UI, Feature Scaffolding - **Dave**: BLoC Implementation, State Management - **Eve**: Design System, Component Library - **Frank**: Testing, QA Automation ### Junior Developers (1) - **Grace**: Documentation, Bug Fixes, Code Review Support ``` --- ## Step 6: Sprint Planning ### Calculate Sprint Capacity: **Velocity Formula**: - Senior: 8 story points/sprint (40 hours/sprint ÷ 5 hours/SP) - Mid: 6 story points/sprint (40 hours/sprint ÷ 6.7 hours/SP) - Junior: 4 story points/sprint (40 hours/sprint ÷ 10 hours/SP) **Team Velocity**: ``` 2 seniors × 8 SP = 16 SP 4 mids × 6 SP = 24 SP 1 junior × 4 SP = 4 SP Total: 44 SP/sprint ``` ### Map Complexity to Story Points: - **Low complexity**: 3 SP (2 hours senior, 4 hours mid, 6 hours junior) - **Medium complexity**: 8 SP (6 hours senior, 10 hours mid, 16 hours junior) - **High complexity**: 13 SP (2 days senior, 3 days mid, 4 days junior) - **Critical complexity**: 21 SP (3 days senior, 5 days mid, 7 days junior) ### Allocate Features to Sprints: **Algorithm**: 1. Start with **critical path features** (from FEATURE_DEPENDENCIES.md) 2. Allocate to earliest possible sprint (respecting dependencies) 3. Fill remaining capacity with **parallel features** 4. Balance workload across team members 5. Ensure each sprint has mix of P0/P1/P2 tasks 6. Add 20% buffer for unknowns **Example**: ``` Sprint 1 (44 SP capacity): - User Authentication (13 SP) - Alice - Design System Setup (8 SP) - Eve - Folder Structure (3 SP) - Bob - Test Infrastructure (5 SP) - Frank - Documentation Setup (3 SP) - Grace Total: 32 SP (73% capacity, 27% buffer) ``` --- ## Step 7: Risk Assessment ### Identify High-Risk Tasks: **Compliance Risks**: - **HIPAA** tasks: Any feature handling PHI (patient health information) - Risk Level: HIGH - Mitigation: Encryption, audit logs, security review - **PCI-DSS** tasks: Any payment/card handling - Risk Level: CRITICAL - Mitigation: Tokenization, NO card storage, PCI audit - **GDPR** tasks: EU user data, right to deletion - Risk Level: MEDIUM - Mitigation: Data export, deletion APIs **Technical Risks**: - **New Technology**: First time using Stripe, Firebase, etc. - Risk Level: MEDIUM - Mitigation: Spike, proof-of-concept, training - **Third-party Dependencies**: External API reliability - Risk Level: MEDIUM - Mitigation: Fallback, retry logic, monitoring - **Complex Algorithms**: Real-time sync, encryption - Risk Level: HIGH - Mitigation: Code review, testing, security audit ### Risk Register Format: ```markdown ## Risk Register | Task ID | Risk Level | Risk Description | Mitigation | Owner | |---------|------------|------------------|------------|-------| | 1.2 | HIGH | JWT misconfiguration (signing vs verifying) | Security review, PRPROMPTS/16 | Alice | | 2.4 | CRITICAL | PCI-DSS: Storing card numbers | Stripe tokenization only | Alice | | 3.1 | HIGH | PHI encryption weakness | AES-256-GCM, test vectors | Bob | ``` --- ## Step 8: Generate Detailed Tasks For each feature, create tasks with **maximum detail**: ### Task Template: ```markdown ### Task X.Y: [Feature Name] - [Layer] [STATUS] **Owner**: [Team Member] ([Level]) | **Story Points**: X | **Risk**: [LOW/MEDIUM/HIGH/CRITICAL] **Estimated**: X hours | **Actual**: X hours (X% complete) **PRPROMPTS**: @PRPROMPTS/XX-filename.md, @PRPROMPTS/YY-filename.md **Dependencies**: Task A.B (DONE), Task C.D (IN_PROGRESS) **Blocks**: Task E.F, Task G.H **Description**: [1-2 sentence description] **Subtasks**: - [ ] X.Y.1 [Subtask description] - [ ] X.Y.2 [Subtask description] - [x] X.Y.3 [Completed subtask] (if status = IN_PROGRESS) **Files to Create** (X files): 1. lib/path/to/file1.dart 2. lib/path/to/file2.dart 3. test/path/to/test1.dart ... **Code Snippet - file1.dart**: ```dart // Example implementation following PRPROMPTS patterns class Example { // SECURITY: Comment explaining security consideration // HIPAA: Comment explaining compliance requirement } ``` **Code Snippet - file2.dart**: ```dart // Additional code example ``` **Validation Checklist**: - [ ] Follows PRPROMPTS/XX patterns - [ ] No hardcoded values - [ ] Error handling complete - [ ] Unit tests written **Security Checklist** (if Risk = HIGH/CRITICAL): - [ ] No sensitive data logged - [ ] Encryption at rest (AES-256-GCM) - [ ] HTTPS only, no HTTP - [ ] Input validation complete - [ ] No SQL injection vulnerabilities - [ ] Session timeout configured **Test Scenarios**: 1. Happy path: [Description] Expected result 2. Edge case: [Description] Expected result 3. Error case: [Description] Expected result 4. Security test: [Description] Expected result **Acceptance Criteria**: - Criterion 1 (if DONE) - Criterion 2 (if IN_PROGRESS) - Criterion 3 (if TODO) **Blockers**: [Description of blocker if STATUS = BLOCKED] **Notes**: [Any additional context, decisions, discussions] ``` --- ## Step 9: Generate Progress Tracking Metadata ### Metadata Section: ```markdown ## Metadata - **Generated**: 2025-01-15 - **Last Updated**: 2025-01-22 (Sprint 1 complete) - **Team Size**: 7 developers (2 senior, 4 mid, 1 junior) - **Sprint Duration**: 2 weeks - **Velocity**: 44 story points/sprint (team capacity) - **Actual Velocity**: 32 SP/sprint (average last 2 sprints) - **Total Tasks**: 87 - **Total Story Points**: 320 - **Estimated Duration**: 8 sprints (16 weeks) - **Actual Progress**: 2 sprints (4 weeks), 40% complete ## Progress Dashboard Sprint 1: ██████████ 100% (32/32 SP) Sprint 2: ████████░░ 80% (26/32 SP) Sprint 3: ███░░░░░░░ 30% (10/32 SP) Sprint 4: ░░░░░░░░░░ 0% (0/32 SP) Sprint 5: ░░░░░░░░░░ 0% (0/32 SP) Overall: ████░░░░░░ 40% (128/320 SP completed) ## Burndown Chart Data | Sprint | Planned | Completed | Remaining | |--------|---------|-----------|-----------| | Sprint 1 | 32 | 32 | 288 | | Sprint 2 | 32 | 26 | 262 | | Sprint 3 | 32 | 10 | 252 (current) | | Sprint 4 | 32 | 0 | 252 | **Trend**: ⚠️ Behind schedule (6 SP behind, Sprint 3) **Forecast**: 9 sprints (18 weeks) at current velocity (32 SP/sprint) ``` ### Critical Path Section: ```markdown ## Critical Path (Longest sequence: 12 weeks) 1. User Authentication (Week 1-2) DONE (2 weeks) 2. Database Schema (Week 2-3) IN_PROGRESS (1 week, 80% complete) 3. ⏸️ API Foundation (Week 3-5) BLOCKED (2 weeks, waiting for backend) 4. 🔜 Payment Integration (Week 5-7) TODO (2 weeks) 5. 🔜 Checkout Flow (Week 7-9) TODO (2 weeks) 6. 🔜 Order Management (Week 9-11) TODO (2 weeks) 7. 🔜 Admin Dashboard (Week 11-12) TODO (1 week) **Total Critical Path**: 12 weeks **Actual Progress**: 2 weeks complete, 1 week in progress **Delays**: 0.4 weeks (API Foundation blocker) ``` --- ## Step 10: Output Generation Create `docs/IMPLEMENTATION_PLAN.md` with this structure: ```markdown # Implementation Plan [Generated timestamp, metadata] ## Metadata [Team size, velocity, totals, dates] ## Progress Dashboard [Sprint progress bars, overall percentage] ## Critical Path [Longest dependency chain, status] ## Team Allocation [Owner assignments by skill level] ## Risk Register [High-risk tasks, mitigations] --- ## Sprint 1: Foundation (Week 1-2) - 32 SP [COMPLETED] ### Task 1.1: Create Clean Architecture [DONE] [Full task detail with code snippets, tests, validation] ### Task 1.2: User Authentication - Domain Layer [DONE] [Full task detail] ... --- ## Sprint 2: Core Features (Week 3-4) - 32 SP [80% COMPLETE] ### Task 2.1: Dashboard - Domain Layer [DONE] [Full task detail] ### Task 2.2: Dashboard - Data Layer [IN_PROGRESS] [Full task detail with progress indicators] ### Task 2.3: API Foundation [BLOCKED] [Full task detail with blocker description] ... --- [Continue for all sprints...] --- ## Velocity Tracking | Sprint | Planned SP | Completed SP | Velocity | Trend | |--------|-----------|--------------|----------|-------| | Sprint 1 | 32 | 32 | 100% | On track | | Sprint 2 | 32 | 26 | 81% | ⚠️ Slight delay | | Sprint 3 | 32 | 10 | 31% | 🚨 Behind (Week 1 only) | **Velocity Insights**: - Team velocity: 44 SP/sprint (capacity), 32 SP/sprint (actual average) - Slowdown cause: Backend API delays blocking Tasks 2.3, 2.5, 3.1 - Recommendation: Add parallel UI-only tasks for Sprint 3, reduce dependency on backend --- ## Appendix A: Story Point Reference - **1 SP** = 1 hour (junior), 30 min (senior) - Trivial tasks (config changes) - **3 SP** = 6 hours (junior), 2 hours (senior) - Simple tasks (folder setup, basic model) - **5 SP** = 10 hours (junior), 4 hours (senior) - Standard tasks (usecase, repository) - **8 SP** = 16 hours (junior), 6 hours (senior) - Complex tasks (BLoC, API integration) - **13 SP** = 3 days (junior), 2 days (senior) - Full feature (domain + data + presentation) - **21 SP** = 5 days (junior), 3 days (senior) - Epic feature (multiple screens, complex logic) ## Appendix B: Task States - **TODO**: Not started, waiting for sprint or dependencies - **IN_PROGRESS**: Actively being worked on by assigned owner - **BLOCKED**: Waiting on external dependency (backend, design, decision) - **DONE**: Complete, validated, tested, committed to repo - **SKIPPED**: Removed from scope (documented in notes) ## Appendix C: Priority Definitions - **P0** (Critical): Must have for launch, blocks other features - **P1** (High): Important for launch, user-facing - **P2** (Medium): Nice to have, can ship without - **P3** (Low): Future enhancement, post-launch ## Appendix D: PRPROMPTS Reference All tasks reference PRPROMPTS files for implementation patterns: - **PRPROMPTS/01** - Feature Scaffold (Clean Architecture) - **PRPROMPTS/03** - BLoC Implementation (State Management) - **PRPROMPTS/04** - API Integration (HTTP, Error Handling) - **PRPROMPTS/05** - Testing Strategy (Unit, Widget, Integration) - **PRPROMPTS/06** - Design System (Theme, Colors, Typography) - **PRPROMPTS/16** - Security & Compliance (HIPAA, PCI-DSS, Encryption) - [See full PRPROMPTS/ directory for all 32 guides] ``` --- ## Step 11: Show Summary After creating `docs/IMPLEMENTATION_PLAN.md`, display: ``` Implementation Plan Generated 📄 File: docs/IMPLEMENTATION_PLAN.md 📊 Total Tasks: 87 🎯 Story Points: 320 SP ⏱️ Estimated Duration: 8 sprints (16 weeks) 👥 Team: 7 developers (2 senior, 4 mid, 1 junior) 📈 Velocity: 44 SP/sprint (capacity), 32 SP/sprint (recommended) 📋 Structure: ├── Metadata & Progress Dashboard ├── Critical Path Analysis ├── Team Allocation ├── Risk Register ├── Sprint 1: Foundation (32 SP) ├── Sprint 2: Core Features (32 SP) ├── Sprint 3: Advanced Features (40 SP) ├── Sprint 4-8: Feature Implementation └── Appendices (Reference docs) 🔗 Integration: Used FEATURE_DEPENDENCIES.md (critical path, dependency graph) Used COST_ESTIMATE.md (time estimates, team breakdown) Used PRD.md (features, compliance, team composition) 🚀 Next Steps: 1. Review plan with team 2. Run: claude bootstrap-from-prprompts (uses this plan) 3. Run: claude implement-next (implements Task 1.1) 4. Run: claude full-cycle 10 (implements 10 tasks automatically) 5. Run: claude update-plan (re-plan based on actual progress) 💡 Pro Tips: - Tasks have detailed code snippets and test scenarios - High-risk tasks flagged with security checklists - Critical path shows longest dependency chain - Use /update-plan after each sprint to replan ``` --- ## Example Task (Full Detail) Here's an example of the maximum detail level for one task: ### Task 1.2: User Authentication - Domain Layer [DONE] **Owner**: Alice (Senior) | **Story Points**: 13 | **Risk**: HIGH (HIPAA compliance) **Estimated**: 10 hours | **Actual**: 8.5 hours **PRPROMPTS**: @PRPROMPTS/01-feature_scaffold.md, @PRPROMPTS/16-security_and_compliance.md **Dependencies**: Task 1.1 (DONE - Clean Architecture) **Blocks**: Task 2.1 (Dashboard), Task 2.3 (Profile), Task 3.1 (Settings) **Description**: Implement authentication domain layer with JWT verification (RS256 only, no signing), user entity, and auth usecases following Clean Architecture. **Subtasks**: - [x] 1.2.1 Create User entity (lib/features/auth/domain/entities/user.dart) - [x] 1.2.2 Create AuthToken entity - [x] 1.2.3 Create AuthRepository interface - [x] 1.2.4 Create LoginUsecase - [x] 1.2.5 Create LogoutUsecase - [x] 1.2.6 Create RefreshTokenUsecase - [x] 1.2.7 Create VerifyTokenUsecase - [x] 1.2.8 Write unit tests (80%+ coverage) **Files Created** (14 files): 1. lib/features/auth/domain/entities/user.dart 2. lib/features/auth/domain/entities/auth_token.dart 3. lib/features/auth/domain/repositories/auth_repository.dart 4. lib/features/auth/domain/usecases/login_usecase.dart 5. lib/features/auth/domain/usecases/logout_usecase.dart 6. lib/features/auth/domain/usecases/refresh_token_usecase.dart 7. lib/features/auth/domain/usecases/verify_token_usecase.dart 8. test/features/auth/domain/entities/user_test.dart 9. test/features/auth/domain/entities/auth_token_test.dart 10. test/features/auth/domain/usecases/login_usecase_test.dart 11. test/features/auth/domain/usecases/logout_usecase_test.dart 12. test/features/auth/domain/usecases/refresh_token_usecase_test.dart 13. test/features/auth/domain/usecases/verify_token_usecase_test.dart 14. test/helpers/mock_auth_repository.dart **Code Snippet - entities/user.dart**: ```dart import 'package:equatable/equatable.dart'; /// User entity - Domain layer business object /// /// SECURITY NOTES: /// - No password stored in entity (backend only) /// - User ID is UUID, NOT PHI (patient health information) /// - Email stored encrypted at rest (see SecureStorageService) /// /// HIPAA COMPLIANCE: /// - User ID is non-PHI identifier /// - No medical data in this entity /// - Audit logs track all user access (see AuditService) class User extends Equatable { final String id; // UUID from backend final String email; // Encrypted at rest final String? name; // Optional display name final List<String> roles; // ["patient", "doctor", "admin"] const User({ required this.id, required this.email, this.name, this.roles = const [], }); bool get isPatient => roles.contains('patient'); bool get isDoctor => roles.contains('doctor'); bool get isAdmin => roles.contains('admin'); @override List<Object?> get props => [id, email, name, roles]; @override String toString() => 'User(id: $id, email: *****, roles: $roles)'; // Redacted email } ``` **Code Snippet - repositories/auth_repository.dart**: ```dart import 'package:dartz/dartz.dart'; import '../../../../core/errors/failures.dart'; import '../entities/user.dart'; import '../entities/auth_token.dart'; /// AuthRepository - Domain layer interface /// Implementation in data layer (auth_repository_impl.dart) /// /// SECURITY: JWT verification uses RS256 public key (NO signing in Flutter!) abstract class AuthRepository { /// Login with email/password /// Returns User or Failure (NetworkFailure, AuthFailure) Future<Either<Failure, User>> login({ required String email, required String password, }); /// Logout - clears secure storage Future<Either<Failure, void>> logout(); /// Refresh access token using refresh token /// Backend validates refresh token, issues new access token Future<Either<Failure, AuthToken>> refreshToken(String refreshToken); /// Verify JWT access token /// SECURITY: Uses RS256 public key from backend /// NEVER sign tokens in Flutter (no private key!) Future<Either<Failure, User>> verifyToken(String jwtToken); /// Get cached user from secure storage Future<Either<Failure, User>> getCachedUser(); } ``` **Code Snippet - usecases/login_usecase.dart**: ```dart import 'package:dartz/dartz.dart'; import '../../../../core/errors/failures.dart'; import '../../../../core/usecases/usecase.dart'; import '../entities/user.dart'; import '../repositories/auth_repository.dart'; /// LoginUsecase - Business logic for user login /// /// Flow: /// 1. Validate email/password (basic format check) /// 2. Call repository.login() HTTP POST /api/auth/login /// 3. Backend validates credentials, returns JWT + refresh token /// 4. Store tokens in SecureStorage (AES-256 encrypted) /// 5. Return User entity class LoginUsecase implements UseCase<User, LoginParams> { final AuthRepository repository; LoginUsecase(this.repository); @override Future<Either<Failure, User>> call(LoginParams params) async { // Validate input if (!_isValidEmail(params.email)) { return Left(ValidationFailure('Invalid email format')); } if (params.password.length < 8) { return Left(ValidationFailure('Password must be 8+ characters')); } // Call repository return await repository.login( email: params.email, password: params.password, ); } bool _isValidEmail(String email) { return RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$').hasMatch(email); } } class LoginParams { final String email; final String password; LoginParams({required this.email, required this.password}); } ``` **Validation Checklist**: - [x] Entities have no business logic (only data + equality) - [x] Repository is interface (no implementation in domain/) - [x] Usecases follow single responsibility principle - [x] Unit tests cover all edge cases (80%+ coverage) - [x] No passwords stored in Flutter code - [x] No business logic in entities **Security Checklist** (CRITICAL - HIPAA): - [x] JWT verification uses RS256 public key only - [x] No private keys in Flutter code (backend only!) - [x] User ID is non-PHI identifier (UUID) - [x] Email stored encrypted at rest (SecureStorageService) - [x] Session timeout configured (15 min, see main.dart) - [x] Passwords never logged or stored - [x] User.toString() redacts sensitive data **Test Scenarios**: 1. **Happy path**: Login with valid credentials User entity returned 2. **Invalid email**: Login with "notanemail" ValidationFailure 3. **Short password**: Login with "pass" ValidationFailure("8+ characters") 4. **Wrong password**: Backend returns 401 AuthFailure("Invalid credentials") 5. **Network error**: No internet connection NetworkFailure 6. **Server error**: Backend 500 error ServerFailure 7. **Token expiry**: Access token expired, refresh succeeds New token 8. **Refresh token expired**: Refresh fails Re-login required **Acceptance Criteria**: - All 7 domain layer files created - All 7 test files created with 80%+ coverage (actual: 87%) - Security audit passed (reviewed by Alice + Bob) - HIPAA compliance checklist complete - Code follows PRPROMPTS/01 Clean Architecture patterns - No analyzer warnings - Committed to repo with PR review **Blockers**: None (completed ahead of schedule) **Notes**: - Backend team confirmed RS256 public key available at /api/auth/public-key - Discussed session timeout with compliance officer: 15 min approved for HIPAA - Decided to use Equatable for entity equality (reduces boilerplate) - Alice pair-programmed with Bob on JWT verification logic --- ## Intelligence Features Summary This implementation plan includes: **Dependency Integration**: Uses FEATURE_DEPENDENCIES.md critical path **Cost Integration**: Uses COST_ESTIMATE.md time estimates **Sprint Planning**: 2-week sprints, velocity-based allocation **Team Allocation**: Skill-based assignment (senior/mid/junior) **Risk Assessment**: HIPAA/PCI-DSS/security tasks flagged **Maximum Detail**: Code snippets, test scenarios, acceptance criteria **Progress Tracking**: TODO/IN_PROGRESS/BLOCKED/DONE states **Velocity Tracking**: Burndown, trend analysis, forecasting **Critical Path**: Longest dependency chain visualized **Parallel Streams**: Identifies work that can run concurrently **Compliance Aware**: Security checklists for sensitive tasks **Adaptive**: Designed for use with /update-plan command --- ## Error Handling If any step fails, provide helpful error messages: **No features found in PRD**: ``` Error: No features found in docs/PRD.md PRD must have a "## Features & User Stories" section with at least one feature. Please add features to PRD or regenerate: claude refine-prd ``` **Team composition invalid**: ``` Error: Invalid team_composition in PRD: "unknown" Valid values: "junior-heavy" | "balanced" | "senior-heavy" Please fix PRD YAML frontmatter. ``` **Timeline unrealistic**: ``` ⚠️ Warning: Timeline unrealistic PRD timeline: 3 months Estimated duration: 8 sprints (16 weeks = 4 months) Recommend: 1. Reduce scope (remove P2/P3 features) 2. Increase team size 3. Extend timeline to 4 months Proceeding with 16-week plan... ``` --- Generate the implementation plan following all steps above.