install
source · Clone the upstream repo
git clone https://github.com/Brownbull/taskflow
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Brownbull/taskflow "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/core/write-plan" ~/.claude/skills/brownbull-taskflow-write-plan && rm -rf "$T"
manifest:
.claude/skills/core/write-plan/skill.mdsource content
Write-Plan Skill V3 - Pragmatic Planning
Purpose
Creates adaptive implementation plans with phase-appropriate testing requirements. Plans scale with project maturity from prototype to enterprise.
Core Change from V2
Instead of 8 mandatory test types per task, we now use phase-appropriate testing:
- Prototype: 2 tests (smoke + happy path)
- MVP: 4 tests (+ critical errors + auth)
- Growth: 5 tests (+ edge cases + performance)
- Scale: 6-8 tests (as actually needed)
Phase Detection
phase_detection: prototype: "0-100 users, exploring" mvp: "100-1K users, launching" growth: "1K-10K users, scaling" scale: "10K+ users, enterprise"
Task Generation V3
Adaptive Task Structure
tasks: - id: "task-001" epic: "epic-001" sprint: "sprint-001" phase: "prototype" # NEW: Current project phase # Core task info what: "Implement login" who: "backend-orchestrator" where: "apps/auth/views.py" # Phase-appropriate testing check: required: # Based on phase smoke: "API responds" happy_path: "User can login" optional: # Can add if time permits error: "Handle wrong password" deferred: # Explicitly not doing yet edge_cases: "After MVP" performance: "When we have users" # Escape hatches overrides: skip_tests: false defer_quality: false prototype_mode: true # Minimal requirements
Sprint Planning V3
Phase-Aware Sprint Composition
prototype_sprint: features: 70% # Ship fast testing: 20% # Minimal docs: 5% # Basic buffer: 5% mvp_sprint: features: 60% testing: 25% # Core tests docs: 10% buffer: 5% growth_sprint: features: 50% testing: 30% # More comprehensive docs: 15% buffer: 5% scale_sprint: features: 40% testing: 35% # Full coverage docs: 20% buffer: 5%
Test Requirements by Phase
Prototype Tasks
check: smoke: "Does it run?" happy_path: "Basic flow works?" # That's it! Just 2 tests
MVP Tasks
check: smoke: "Health check" happy_path: "Main user flow" critical_errors: "Database down handled" auth: "Login required works" # Just 4 tests
Growth Tasks
check: happy_path: "All user flows" errors: "Graceful failures" edge_cases: "Boundary conditions" performance: "Fast enough" security: "No obvious vulnerabilities" # 5 tests typical
Scale Tasks
check: # Add only what's actually needed # Not all 8 automatically
Quality Standards V3
Adaptive Quality Gates
quality_gates: prototype: minimum_score: 6.0 coverage_target: 40% test_types_required: 2 mvp: minimum_score: 7.0 coverage_target: 60% test_types_required: 4 growth: minimum_score: 7.5 coverage_target: 70% test_types_required: 5 scale: minimum_score: 8.0 coverage_target: 80% test_types_required: "as_needed"
Escape Hatches in Planning
Quick Overrides
task_overrides: hotfix_mode: skip_all_tests: true skip_quality_gates: true reason: "Production emergency" prototype_mode: minimal_tests: true quality_gate: 5.0 reason: "Exploring idea" deadline_mode: defer_tests: true technical_debt_ticket: "TECH-123" reason: "Launch deadline"
ROI-Based Task Priority
Task Value Calculation
task_value: critical_path: 10 # Login, payment, data user_facing: 7 # Direct user impact technical_debt: 3 # Internal cleanup nice_to_have: 1 # Polish task_cost: complex_logic: 8 integration: 6 simple_crud: 2 ui_only: 1 priority: value / cost # Higher = do first
Example Output - Prototype Phase
project: name: "Payment System" phase: "prototype" # Key addition tasks: - id: "task-001" what: "Create payment endpoint" phase: "prototype" # Only 2 tests required! check: smoke: "Endpoint responds 200" happy_path: "Payment processes" # No other tests required quality_target: 6.0 # Lower bar time_estimate: 4 # Hours, not days
Migration Helper
Converting Old Tasks
def migrate_task_to_v3(old_task, current_phase): """Convert 8-test task to phase-appropriate""" new_task = old_task.copy() if current_phase == 'prototype': # Keep only critical tests new_task['check'] = { 'smoke': old_task['check'].get('valid'), 'happy_path': old_task['check'].get('functional') } elif current_phase == 'mvp': # Keep 4 most important new_task['check'] = { 'smoke': old_task['check'].get('valid'), 'happy_path': old_task['check'].get('functional'), 'critical_errors': old_task['check'].get('error'), 'auth': old_task['check'].get('security') } return new_task
Key Benefits
- Faster Planning: Less time defining 8 tests
- Realistic Goals: Phase-appropriate requirements
- Escape Hatches: Can override when needed
- ROI Focus: High-value tasks first
- Progressive Enhancement: Grow complexity gradually
Summary
Write-Plan V3 creates plans that:
- Match project maturity
- Require only necessary tests
- Include escape hatches
- Focus on shipping value
- Can be adjusted on the fly
Remember: A shipped feature with 2 tests beats a planned feature with 8 tests.