AgentSkillsCN

phase-generator

阶段生成器

SKILL.md

Phase Generator Skill - Execution Prompt

Context

You are executing the phase-generator skill. This skill generates a specific phase of PRPROMPTS files (Phase 1: Core, Phase 2: Quality, or Phase 3: Demo) instead of generating all 32 files at once.

Inputs

  • prd_path: {{inputs.prd_path || "docs/PRD.md"}}
  • phase: {{inputs.phase}} (1=Core, 2=Quality, 3=Demo)
  • output_dir: {{inputs.output_dir || "PRPROMPTS"}}
  • overwrite: {{inputs.overwrite || false}}

Phase Definitions

Phase 1: Core (Foundation) - 10 Files

Purpose: Essential architecture and feature guides

Files:

  1. 01-project_overview.md - Project summary and goals
  2. 02-architecture_overview.md - Clean Architecture structure
  3. 03-folder_structure.md - Project organization
  4. 04-state_management.md - BLoC pattern implementation
  5. 05-navigation_and_routing.md - Navigation setup
  6. 06-api_integration.md - REST API integration
  7. 07-data_models.md - Data classes and entities
  8. 08-dependency_injection.md - GetIt setup
  9. 09-error_handling.md - Error patterns
  10. 10-features_implementation.md - Feature development guide

Phase 2: Quality (Polish & Security) - 12 Files

Purpose: Testing, security, and quality assurance

Files: 11. 11-testing_strategy.md - Test architecture 12. 12-unit_testing.md - Unit test patterns 13. 13-widget_testing.md - Widget test guide 14. 14-integration_testing.md - E2E testing 15. 15-code_quality.md - Linting and analysis 16. 16-security_and_compliance.md - Security patterns 17. 17-performance_optimization.md - Performance guide 18. 18-accessibility.md - A11y implementation 19. 19-localization.md - i18n setup 20. 20-logging_and_monitoring.md - Observability 21. 21-offline_support.md - Offline-first patterns 22. 22-data_persistence.md - Local storage


Phase 3: Demo (Presentation & Deployment) - 10 Files

Purpose: Demo preparation and deployment

Files: 23. 23-demo_preparation.md - Demo setup 24. 24-user_flows.md - User journey demos 25. 25-presentation_mode.md - Presentation features 26. 26-build_configuration.md - Build variants 27. 27-deployment_pipeline.md - CI/CD setup 28. 28-app_store_preparation.md - Store listings 29. 29-beta_testing.md - TestFlight/Play Console 30. 30-analytics_and_tracking.md - Analytics setup 31. 31-documentation.md - User documentation 32. 32-maintenance_and_updates.md - Post-launch guide


Task: Generate Specified Phase

Step 1: Validate Phase Number

Check {{inputs.phase}}:

  • If phase == 1 → Generate Core files (01-10)
  • If phase == 2 → Generate Quality files (11-22)
  • If phase == 3 → Generate Demo files (23-32)
  • If phase not in [1, 2, 3] → Return error

Step 2: Load and Parse PRD

Actions:

  1. Read PRD from {{inputs.prd_path}}
  2. Parse YAML frontmatter
  3. Extract metadata:
    • project_name
    • project_type
    • platforms
    • compliance
    • auth_method
    • state_management
    • architecture

Error Handling:

  • If PRD not found → Return error: "PRD file not found at {{inputs.prd_path}}"
  • If YAML invalid → Return error: "Invalid YAML frontmatter in PRD"

Step 3: Prepare Phase-Specific Context

Based on {{inputs.phase}}, set up generation context:

If Phase 1 (Core):

json
{
  "phase_name": "Core",
  "phase_description": "Foundation - Essential architecture and features",
  "file_range": [1, 10],
  "focus_areas": [
    "Architecture patterns",
    "Project structure",
    "State management",
    "API integration",
    "Core features"
  ]
}

If Phase 2 (Quality):

json
{
  "phase_name": "Quality",
  "phase_description": "Polish & Security - Testing, security, accessibility",
  "file_range": [11, 22],
  "focus_areas": [
    "Testing strategies",
    "Security patterns",
    "Performance optimization",
    "Accessibility",
    "Quality assurance"
  ],
  "requires_compliance": true
}

If Phase 3 (Demo):

json
{
  "phase_name": "Demo",
  "phase_description": "Presentation & Deployment - Demo setup and launch",
  "file_range": [23, 32],
  "focus_areas": [
    "Demo preparation",
    "User flows",
    "Deployment pipeline",
    "App store setup",
    "Post-launch maintenance"
  ]
}

Step 4: Generate Files for Selected Phase

For each file number in phase's file_range:

A. Determine File Template

Each file follows the PRP Pattern (6 sections):

  1. FEATURE - What this guide accomplishes (150-200 words)
  2. EXAMPLES - Real code with Flutter file paths (100-150 words + code)
  3. CONSTRAINTS - ✅ DO / ❌ DON'T rules (100-150 words)
  4. VALIDATION GATES - Pre-commit checklist + CI/CD (50-100 words)
  5. BEST PRACTICES - "Why?" explanations for juniors (100-150 words)
  6. REFERENCES - Official docs, compliance guides, ADRs (50 words)

B. Apply PRD Customizations

From PRD Metadata:

project_type:

  • healthcare → Add HIPAA patterns
  • fintech → Add PCI-DSS patterns
  • ecommerce → Add payment integration examples
  • productivity → Add offline-first patterns

compliance:

  • ["hipaa"] → Customize file 16 (security) with PHI encryption, audit logging
  • ["pci-dss"] → Add payment tokenization, never store cards
  • ["gdpr"] → Add data export, deletion, consent management

platforms:

  • ["ios", "android"] → Mobile-specific examples
  • ["web"] → Add web-specific considerations
  • ["ios", "android", "web"] → Cross-platform patterns

state_management:

  • bloc → Use BLoC examples
  • riverpod → Use Riverpod examples
  • provider → Use Provider examples

auth_method:

  • jwt → JWT verification patterns (NEVER signing in Flutter!)
  • oauth2 → OAuth2 flows
  • firebase → Firebase Auth examples

C. Generate File Content

For file number N in range:

markdown
# {File N Title}

> **Phase {{inputs.phase}}**: {phase_name}
> **Category**: {category}
> **Prerequisites**: {prerequisites}

---

## FEATURE

{What this guide accomplishes - customized to PRD project_type}

### Key Objectives
- Objective 1 (specific to PRD)
- Objective 2
- Objective 3

### Integration Points
- Integrates with: {other files}
- Dependencies: {required setup}

---

## EXAMPLES

### Example 1: {Feature Name} - {Project Type} Context

**File: `lib/features/{feature}/presentation/bloc/{feature}_bloc.dart`**

```dart
// Code example customized to PRD metadata
// Uses state_management from PRD
// Includes compliance patterns if needed

File: lib/features/{feature}/data/repositories/{feature}_repository.dart

dart
// Repository implementation
// Includes auth_method patterns from PRD

CONSTRAINTS

✅ DO

  • Follow Clean Architecture layers
  • Use {state_management} from PRD for state
  • Apply {compliance} security patterns
  • Test with 70%+ coverage

❌ DON'T

  • Mix presentation and business logic
  • Store sensitive data without encryption
  • Skip error handling
  • {compliance-specific DON'Ts}

VALIDATION GATES

Pre-Commit Checklist

  • All tests passing (flutter test)
  • No linting errors (flutter analyze)
  • Code coverage > 70%
  • {compliance}-specific checks

CI/CD Automation

yaml
# GitHub Actions check
- name: Validate {feature}
  run: flutter test test/{feature}_test.dart

BEST PRACTICES

For Junior Developers

Why use Clean Architecture? It separates concerns so changes to UI don't break business logic, making code easier to maintain.

Why {state_management}? {Explanation specific to chosen state management}

Why {compliance} patterns? {Healthcare: Protects patient privacy and ensures HIPAA compliance} {Fintech: Protects payment data and ensures PCI-DSS compliance}


REFERENCES

code

#### D. Write to File

Output path: {{inputs.output_dir}}/{file_number}-{file_name}.md

code

**Check overwrite flag:**
- If file exists and overwrite == false → Skip, add to warnings
- If file exists and overwrite == true → Overwrite
- If file doesn't exist → Write

---

### Step 5: Compliance-Specific Customizations

If Phase 2 (Quality) and file 16 (security_and_compliance.md):

**Apply compliance patterns from PRD:**

#### HIPAA Compliance
```markdown
## HIPAA Requirements

### PHI Encryption
All patient health information MUST be encrypted at rest:

```dart
import 'package:encrypt/encrypt.dart';

class PHIEncryption {
  static final _key = Key.fromSecureRandom(32);
  static final _iv = IV.fromLength(16);
  static final _encrypter = Encrypter(AES(_key, mode: AESMode.gcm));

  static String encryptPHI(String phi) {
    return _encrypter.encrypt(phi, iv: _iv).base64;
  }
}

Audit Logging

Log all PHI access:

dart
auditLog.record(
  userId: currentUser.id,
  action: 'VIEW_MEDICAL_RECORD',
  patientId: record.patientId,
  timestamp: DateTime.now()
);
code

#### PCI-DSS Compliance
```markdown
## PCI-DSS Requirements

### ❌ NEVER Store Payment Cards
```dart
// ❌ WRONG - Never do this!
class Payment {
  final String cardNumber;  // NO!
  final String cvv;          // NO!
}

// ✅ CORRECT - Use tokenization
class Payment {
  final String paymentToken;  // From Stripe/PayPal
  final String last4;         // Only last 4 digits
}

Use Payment Providers

dart
// Stripe integration (tokenization)
final paymentMethod = await Stripe.instance.createPaymentMethod(
  params: PaymentMethodParams.card(
    paymentMethodData: PaymentMethodData(
      billingDetails: billingDetails,
    ),
  ),
);

// Store only the token
final token = paymentMethod.id;
code

---

### Step 6: Return Results

**Output Format:**

```json
{
  "phase_name": "Core" | "Quality" | "Demo",
  "phase": 1 | 2 | 3,
  "files_generated": [
    "01-project_overview.md",
    "02-architecture_overview.md",
    ...
  ],
  "file_count": 10 | 12 | 10,
  "warnings": [
    "File 05-navigation_and_routing.md already exists (skipped, use --overwrite)"
  ],
  "customizations_applied": {
    "project_type": "healthcare",
    "compliance": ["hipaa", "gdpr"],
    "state_management": "bloc",
    "auth_method": "jwt"
  },
  "next_phase": 2 | 3 | null
}

Error Handling

Error: PRD Not Found

json
{
  "error": "PRD file not found",
  "path": "{{inputs.prd_path}}",
  "suggestion": "Run `prd-creator` skill first to create PRD"
}

Error: Invalid Phase

json
{
  "error": "Invalid phase number",
  "received": 4,
  "valid_values": [1, 2, 3],
  "suggestion": "Use phase 1 (Core), 2 (Quality), or 3 (Demo)"
}

Error: Output Directory Not Writable

json
{
  "error": "Cannot write to output directory",
  "directory": "{{inputs.output_dir}}",
  "suggestion": "Check directory permissions or create directory first"
}

Performance Targets

PhaseFile CountTarget TimeMax Time
Phase 1 (Core)10 files30s60s
Phase 2 (Quality)12 files40s60s
Phase 3 (Demo)10 files30s60s

Next Steps Recommendation

After generating each phase:

After Phase 1:

code
✅ Phase 1 (Core) complete!

Next steps:
1. Review generated files in PRPROMPTS/
2. Run: @claude use skill automation/flutter-bootstrapper
3. Then generate Phase 2: @claude use skill phase-generator --phase 2

After Phase 2:

code
✅ Phase 2 (Quality) complete!

Next steps:
1. Implement testing from files 11-14
2. Apply security patterns from file 16
3. Then generate Phase 3: @claude use skill phase-generator --phase 3

After Phase 3:

code
✅ Phase 3 (Demo) complete!

All 32 PRPROMPTS files generated! 🎉

Next steps:
1. Follow deployment guide (file 27)
2. Prepare app store listings (file 28)
3. Run: @claude use skill automation/qa-auditor