BMAD-METHOD/bmad-system/intelligence/pattern-intelligence.md

11 KiB

Pattern Intelligence

Advanced Pattern Recognition and Application System

Pattern Intelligence enables Claude Code to recognize, learn from, and apply successful development patterns while avoiding known anti-patterns and failure modes.

Pattern Recognition Framework

Pattern Types and Detection

pattern_categories:
  architectural_patterns:
    microservices_adoption:
      - service_decomposition_strategies
      - inter_service_communication
      - data_consistency_patterns
      - deployment_orchestration
      
    monolith_to_services:
      - strangler_fig_pattern
      - database_decomposition
      - gradual_migration_strategies
      - rollback_safety_nets
      
    event_driven_architecture:
      - event_sourcing_patterns
      - saga_patterns
      - event_store_design
      - eventual_consistency_handling
      
  code_patterns:
    design_pattern_usage:
      - factory_patterns: "Object creation strategies"
      - observer_patterns: "Event notification systems"
      - strategy_patterns: "Algorithm selection"
      - decorator_patterns: "Behavior extension"
      
    anti_pattern_detection:
      - god_objects: "Classes with too many responsibilities"
      - spaghetti_code: "Unstructured control flow"
      - copy_paste_programming: "Code duplication"
      - magic_numbers: "Unexplained constants"
      
  workflow_patterns:
    development_workflows:
      - feature_branch_strategies
      - code_review_patterns
      - testing_workflows
      - deployment_patterns
      
    collaboration_patterns:
      - pair_programming_effectiveness
      - mob_programming_scenarios
      - async_collaboration_tools
      - knowledge_sharing_methods
      
  performance_patterns:
    optimization_strategies:
      - caching_layer_patterns
      - database_optimization
      - api_efficiency_patterns
      - frontend_performance
      
    scaling_patterns:
      - horizontal_scaling_strategies
      - load_balancing_patterns
      - database_sharding
      - cdn_utilization

Pattern Recognition Engine

Feature Extraction and Analysis

async def extract_code_patterns(project_path):
    """
    Extract patterns from codebase using Claude Code tools
    """
    # Use Glob to discover all code files
    code_files = await discover_codebase(project_path, "**/*.{ts,js,py,java}")
    
    # Use Read to analyze file contents
    file_analyses = await asyncio.gather(*[
        analyze_file_patterns(file_path) for file_path in code_files
    ])
    
    # Use Grep to find specific pattern indicators
    pattern_indicators = await search_pattern_indicators(project_path)
    
    # Extract structural patterns
    structural_patterns = extract_structural_patterns(file_analyses)
    
    # Identify behavioral patterns
    behavioral_patterns = extract_behavioral_patterns(pattern_indicators)
    
    return {
        'structural': structural_patterns,
        'behavioral': behavioral_patterns,
        'quality_metrics': calculate_quality_metrics(file_analyses)
    }

async def detect_anti_patterns(codebase_analysis):
    """
    Identify problematic patterns that should be avoided
    """
    anti_patterns = {
        'god_objects': detect_god_objects(codebase_analysis),
        'circular_dependencies': detect_circular_deps(codebase_analysis),
        'code_duplication': detect_duplication(codebase_analysis),
        'performance_issues': detect_performance_anti_patterns(codebase_analysis)
    }
    
    # Generate recommendations for each anti-pattern
    recommendations = {}
    for pattern_type, instances in anti_patterns.items():
        if instances:
            recommendations[pattern_type] = generate_refactoring_recommendations(
                pattern_type, instances
            )
    
    return {
        'detected_anti_patterns': anti_patterns,
        'refactoring_recommendations': recommendations
    }

Pattern Similarity and Matching

pattern_matching:
  similarity_detection:
    1_extract_features:
      - normalize_metrics: "Standardize measurements"
      - weight_importance: "Prioritize key characteristics"
      - create_signature: "Unique pattern identifier"
      
    2_compare_patterns:
      - calculate_distance: "Similarity scoring algorithm"
      - apply_thresholds: "Minimum similarity requirements"
      - rank_matches: "Order by relevance and confidence"
      
    3_validate_match:
      - context_compatibility: "Does pattern fit current context?"
      - constraint_satisfaction: "Can constraints be met?"
      - outcome_prediction: "Likely success probability"
      
  pattern_evolution:
    - track_variations: "How patterns adapt over time"
    - identify_mutations: "Natural evolution of patterns"
    - merge_similar_patterns: "Consolidate redundant patterns"
    - deprecate_obsolete: "Remove outdated patterns"

Pattern Application Engine

Intelligent Pattern Recommendation

async def recommend_patterns(current_context, problem_description):
    """
    Recommend optimal patterns based on current development context
    """
    # Analyze current project state using multiple tools
    project_state = await analyze_project_state(current_context)
    
    # Search pattern repository for relevant patterns
    candidate_patterns = search_pattern_repository(
        problem_description, 
        project_state.technology_stack,
        project_state.constraints
    )
    
    # Rank patterns by fit and success probability
    ranked_patterns = rank_patterns_by_fit(
        candidate_patterns,
        project_state,
        historical_success_data()
    )
    
    # Generate implementation guidance
    implementation_guides = []
    for pattern in ranked_patterns[:3]:  # Top 3 recommendations
        guide = await generate_implementation_guide(
            pattern, 
            project_state,
            current_context
        )
        implementation_guides.append(guide)
    
    return {
        'recommended_patterns': ranked_patterns,
        'implementation_guides': implementation_guides,
        'risk_assessments': assess_implementation_risks(ranked_patterns)
    }

async def apply_pattern_with_validation(pattern, target_location):
    """
    Apply a pattern with built-in validation and rollback capability
    """
    # Create backup using git
    backup_created = await create_pattern_backup(target_location)
    
    try:
        # Apply pattern using appropriate Claude Code tools
        if pattern.type == 'code_pattern':
            await apply_code_pattern(pattern, target_location)
        elif pattern.type == 'architecture_pattern':
            await apply_architecture_pattern(pattern, target_location)
        elif pattern.type == 'workflow_pattern':
            await apply_workflow_pattern(pattern, target_location)
        
        # Validate application using Bash tools
        validation_results = await validate_pattern_application(
            pattern, target_location
        )
        
        if validation_results.success:
            await document_pattern_application(pattern, validation_results)
            return {'status': 'success', 'validation': validation_results}
        else:
            await rollback_pattern_application(backup_created)
            return {'status': 'failed', 'errors': validation_results.errors}
            
    except Exception as e:
        await rollback_pattern_application(backup_created)
        return {'status': 'error', 'exception': str(e)}

Pattern Learning and Evolution

Success Pattern Extraction

pattern_learning:
  success_identification:
    metrics_tracking:
      - performance_improvements: "Before/after measurements"
      - quality_enhancements: "Bug reduction, maintainability"
      - development_velocity: "Feature delivery speed"
      - team_satisfaction: "Developer experience metrics"
      
    pattern_attribution:
      - isolate_pattern_impact: "What specifically caused improvement?"
      - control_for_variables: "Account for other changes"
      - measure_confidence: "How certain are we of the attribution?"
      
  failure_analysis:
    failure_indicators:
      - performance_degradation: "Slower than expected"
      - increased_complexity: "Harder to maintain"
      - team_resistance: "Adoption difficulties"
      - integration_problems: "Doesn't play well with existing code"
      
    root_cause_analysis:
      - context_mismatch: "Pattern didn't fit the situation"
      - implementation_errors: "Pattern applied incorrectly"
      - prerequisite_missing: "Missing foundational elements"
      - environmental_factors: "External constraints interfered"

Pattern Repository Management

Pattern Storage and Retrieval

pattern_repository:
  pattern_metadata:
    identification:
      - pattern_id: "unique_identifier"
      - pattern_name: "descriptive_name"
      - pattern_category: "architectural|code|workflow|performance"
      - pattern_tags: ["microservices", "async", "resilient"]
      
    context_information:
      - applicable_technologies: ["nodejs", "react", "mongodb"]
      - project_sizes: ["small", "medium", "enterprise"]
      - team_sizes: ["1-3", "4-10", "10+"]
      - complexity_levels: ["simple", "moderate", "complex"]
      
    success_metrics:
      - implementation_count: "number_of_times_applied"
      - success_rate: "percentage_successful_implementations"
      - average_impact: "typical_improvement_metrics"
      - confidence_score: "reliability_rating"
      
  search_and_retrieval:
    multi_dimensional_search:
      - by_problem_type: "What are you trying to solve?"
      - by_context: "What's your current situation?"
      - by_technology: "What tools are you using?"
      - by_constraints: "What limitations do you have?"
      
    intelligent_ranking:
      - relevance_score: "How well does this pattern fit?"
      - success_probability: "How likely is this to work?"
      - implementation_effort: "How hard is this to implement?"
      - risk_assessment: "What could go wrong?"

Claude Code Integration Commands

# Pattern discovery and analysis
bmad patterns analyze --project <path>
bmad patterns detect --anti-patterns --project <path>
bmad patterns extract --successful --from-history

# Pattern recommendation and application
bmad patterns recommend --problem "scaling-issues" --context "microservices"
bmad patterns apply --pattern "circuit-breaker" --location "api-gateway"
bmad patterns validate --applied-pattern "event-sourcing"

# Pattern learning and evolution
bmad patterns learn --from-outcome "successful" --project <path>
bmad patterns evolve --pattern-id "microservice-decomposition"
bmad patterns optimize --based-on "recent-applications"

This Pattern Intelligence system transforms Claude Code into a pattern-aware development assistant that can recognize successful approaches, avoid known pitfalls, and continuously learn from development experiences to provide increasingly sophisticated guidance.