You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							383 lines
						
					
					
						
							11 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							383 lines
						
					
					
						
							11 KiB
						
					
					
				| # Meta-Rule: Change Evaluation and Breaking Change Detection | |
| 
 | |
| **Author**: Matthew Raymer   | |
| **Date**: 2025-08-25   | |
| **Status**: 🎯 **ACTIVE** - Manually activated change evaluation rule | |
| 
 | |
| ## Purpose | |
| 
 | |
| This meta-rule provides a systematic approach to evaluate changes between | |
| branches and detect potential breaking changes. It's designed to catch | |
| problematic model behavior by analyzing the nature, scope, and impact of | |
| code changes before they cause issues. | |
| 
 | |
| ## When to Use | |
| 
 | |
| **Manual Activation Only** - This rule should be invoked when: | |
| 
 | |
| - Reviewing changes before merging branches | |
| - Investigating unexpected behavior after updates | |
| - Validating that model-generated changes are safe | |
| - Analyzing the impact of recent commits | |
| - Debugging issues that may be caused by recent changes | |
| 
 | |
| ## Workflow State Enforcement | |
| 
 | |
| **This meta-rule enforces current workflow mode constraints:** | |
| 
 | |
| ### **Current Workflow State** | |
| 
 | |
| ```json | |
| { | |
|   "workflowState": { | |
|     "currentMode": "diagnosis|fixing|planning|research|documentation", | |
|     "constraints": { | |
|       "mode": "read_only|implementation|design_only|investigation|writing_only", | |
|       "allowed": ["array", "of", "allowed", "actions"], | |
|       "forbidden": ["array", "of", "forbidden", "actions"] | |
|     } | |
|   } | |
| } | |
| ``` | |
| 
 | |
| ### **Mode-Specific Enforcement** | |
| 
 | |
| **Diagnosis Mode (read_only):** | |
| 
 | |
| - ❌ **Forbidden**: File modification, code creation, build commands, git | |
|   commits | |
| - ✅ **Allowed**: File reading, code analysis, investigation, documentation | |
| - **Response**: Focus on analysis and documentation, not implementation | |
| 
 | |
| **Fixing Mode (implementation):** | |
| 
 | |
| - ✅ **Allowed**: File modification, code creation, build commands, testing, | |
|   git commits | |
| - ❌ **Forbidden**: None (full implementation mode) | |
| - **Response**: Proceed with implementation and testing | |
| 
 | |
| **Planning Mode (design_only):** | |
| 
 | |
| - ❌ **Forbidden**: Implementation, coding, building, deployment | |
| - ✅ **Allowed**: Analysis, design, estimation, documentation, architecture | |
| - **Response**: Focus on planning and design, not implementation | |
| 
 | |
| **Research Mode (investigation):** | |
| 
 | |
| - ❌ **Forbidden**: File modification, implementation, deployment | |
| - ✅ **Allowed**: Investigation, analysis, research, documentation | |
| - **Response**: Focus on investigation and analysis | |
| 
 | |
| **Documentation Mode (writing_only):** | |
| 
 | |
| - ❌ **Forbidden**: Implementation, coding, building, deployment | |
| - ✅ **Allowed**: Writing, editing, formatting, structuring, reviewing | |
| - **Response**: Focus on documentation creation and improvement | |
| 
 | |
| ## Change Evaluation Process | |
| 
 | |
| ### **Phase 1: Change Discovery and Analysis** | |
| 
 | |
| 1. **Branch Comparison Analysis** | |
| 
 | |
|    - Compare working branch with master/main branch | |
|    - Identify all changed files and their modification types | |
|    - Categorize changes by scope and impact | |
| 
 | |
| 2. **Change Pattern Recognition** | |
| 
 | |
|    - Identify common change patterns (refactoring, feature addition, bug | |
|      fixes) | |
|    - Detect unusual or suspicious change patterns | |
|    - Flag changes that deviate from established patterns | |
| 
 | |
| 3. **Dependency Impact Assessment** | |
| 
 | |
|    - Analyze changes to imports, exports, and interfaces | |
|    - Identify potential breaking changes to public APIs | |
|    - Assess impact on dependent components and services | |
| 
 | |
| ### **Phase 2: Breaking Change Detection** | |
| 
 | |
| 1. **API Contract Analysis** | |
| 
 | |
|    - Check for changes to function signatures, method names, class | |
|      interfaces | |
|    - Identify removed or renamed public methods/properties | |
|    - Detect changes to configuration options and constants | |
| 
 | |
| 2. **Data Structure Changes** | |
| 
 | |
|    - Analyze database schema modifications | |
|    - Check for changes to data models and interfaces | |
|    - Identify modifications to serialization/deserialization logic | |
| 
 | |
| 3. **Behavioral Changes** | |
| 
 | |
|    - Detect changes to business logic and algorithms | |
|    - Identify modifications to error handling and validation | |
|    - Check for changes to user experience and workflows | |
| 
 | |
| ### **Phase 3: Risk Assessment and Recommendations** | |
| 
 | |
| 1. **Risk Level Classification** | |
| 
 | |
|    - **LOW**: Cosmetic changes, documentation updates, minor refactoring | |
|    - **MEDIUM**: Internal API changes, configuration modifications, | |
|      performance improvements | |
|    - **HIGH**: Public API changes, breaking interface modifications, major | |
|      architectural changes | |
|    - **CRITICAL**: Database schema changes, authentication modifications, | |
|      security-related changes | |
| 
 | |
| 2. **Impact Analysis** | |
| 
 | |
|    - Identify affected user groups and use cases | |
|    - Assess potential for data loss or corruption | |
|    - Evaluate impact on system performance and reliability | |
| 
 | |
| 3. **Mitigation Strategies** | |
| 
 | |
|    - Recommend testing approaches for affected areas | |
|    - Suggest rollback strategies if needed | |
|    - Identify areas requiring additional validation | |
| 
 | |
| ## Implementation Guidelines | |
| 
 | |
| ### **Change Analysis Tools** | |
| 
 | |
| 1. **Git Diff Analysis** | |
| 
 | |
|    ```bash | |
|    # Compare working branch with master | |
|    git diff master..HEAD --name-only | |
|    git diff master..HEAD --stat | |
|    git log master..HEAD --oneline | |
|    ``` | |
| 
 | |
| 2. **File Change Categorization** | |
| 
 | |
|    - **Core Files**: Application entry points, main services, critical | |
|      utilities | |
|    - **Interface Files**: Public APIs, component interfaces, data models | |
|    - **Configuration Files**: Environment settings, build configurations, | |
|      deployment scripts | |
|    - **Test Files**: Unit tests, integration tests, test utilities | |
| 
 | |
| 3. **Change Impact Mapping** | |
| 
 | |
|    - Map changed files to affected functionality | |
|    - Identify cross-dependencies and ripple effects | |
|    - Document potential side effects and unintended consequences | |
| 
 | |
| ### **Breaking Change Detection Patterns** | |
| 
 | |
| 1. **Function Signature Changes** | |
| 
 | |
|    ```typescript | |
|    // BEFORE | |
|    function processData(data: string, options?: Options): Result | |
|     | |
|    // AFTER - BREAKING CHANGE | |
|    function processData(data: string, options: Required<Options>): Result | |
|    ``` | |
| 
 | |
| 2. **Interface Modifications** | |
| 
 | |
|    ```typescript | |
|    // BEFORE | |
|    interface UserProfile { | |
|      name: string; | |
|      email: string; | |
|    } | |
|     | |
|    // AFTER - BREAKING CHANGE | |
|    interface UserProfile { | |
|      name: string; | |
|      email: string; | |
|      phone: string; // Required new field | |
|    } | |
|    ``` | |
| 
 | |
| 3. **Configuration Changes** | |
| 
 | |
|    ```typescript | |
|    // BEFORE | |
|    const config = { | |
|      apiUrl: 'https://api.example.com', | |
|      timeout: 5000 | |
|    }; | |
|     | |
|    // AFTER - BREAKING CHANGE | |
|    const config = { | |
|      apiUrl: 'https://api.example.com', | |
|      timeout: 5000, | |
|      retries: 3 // New required configuration | |
|    }; | |
|    ``` | |
| 
 | |
| ## Output Format | |
| 
 | |
| ### **Change Evaluation Report** | |
| 
 | |
| ```markdown | |
| # Change Evaluation Report | |
| 
 | |
| ## Executive Summary | |
| 
 | |
| - **Risk Level**: [LOW|MEDIUM|HIGH|CRITICAL] | |
| - **Overall Assessment**: [SAFE|CAUTION|DANGEROUS|CRITICAL] | |
| - **Recommendation**: [PROCEED|REVIEW|HALT|IMMEDIATE_ROLLBACK] | |
| 
 | |
| ## Change Analysis | |
| 
 | |
| ### Files Modified | |
| 
 | |
| - **Total Changes**: [X] files | |
| - **Core Files**: [X] files | |
| - **Interface Files**: [X] files | |
| - **Configuration Files**: [X] files | |
| - **Test Files**: [X] files | |
| 
 | |
| ### Change Categories | |
| 
 | |
| - **Refactoring**: [X] changes | |
| - **Feature Addition**: [X] changes | |
| - **Bug Fixes**: [X] changes | |
| - **Configuration**: [X] changes | |
| - **Documentation**: [X] changes | |
| 
 | |
| ## Breaking Change Detection | |
| 
 | |
| ### API Contract Changes | |
| 
 | |
| - **Function Signatures**: [X] modified | |
| - **Interface Definitions**: [X] modified | |
| - **Public Methods**: [X] added/removed/modified | |
| 
 | |
| ### Data Structure Changes | |
| 
 | |
| - **Database Schema**: [X] modifications | |
| - **Data Models**: [X] changes | |
| - **Serialization**: [X] changes | |
| 
 | |
| ### Behavioral Changes | |
| 
 | |
| - **Business Logic**: [X] modifications | |
| - **Error Handling**: [X] changes | |
| - **User Experience**: [X] changes | |
| 
 | |
| ## Risk Assessment | |
| 
 | |
| ### Impact Analysis | |
| 
 | |
| - **User Groups Affected**: [Description] | |
| - **Use Cases Impacted**: [Description] | |
| - **Performance Impact**: [Description] | |
| - **Reliability Impact**: [Description] | |
| 
 | |
| ### Dependencies | |
| 
 | |
| - **Internal Dependencies**: [List] | |
| - **External Dependencies**: [List] | |
| - **Configuration Dependencies**: [List] | |
| 
 | |
| ## Recommendations | |
| 
 | |
| ### Testing Requirements | |
| 
 | |
| - [ ] Unit tests for modified components | |
| - [ ] Integration tests for affected workflows | |
| - [ ] Performance tests for changed algorithms | |
| - [ ] User acceptance tests for UI changes | |
| 
 | |
| ### Validation Steps | |
| 
 | |
| - [ ] Code review by domain experts | |
| - [ ] API compatibility testing | |
| - [ ] Database migration testing | |
| - [ ] End-to-end workflow testing | |
| 
 | |
| ### Rollback Strategy | |
| 
 | |
| - **Rollback Complexity**: [LOW|MEDIUM|HIGH] | |
| - **Rollback Time**: [Estimated time] | |
| - **Data Preservation**: [Strategy description] | |
| 
 | |
| ## Conclusion | |
| 
 | |
| [Summary of findings and final recommendation] | |
| ``` | |
| 
 | |
| ## Usage Examples | |
| 
 | |
| ### **Example 1: Safe Refactoring** | |
| 
 | |
| ```bash | |
| @meta_change_evaluation.mdc analyze changes between feature-branch and master | |
| ``` | |
| 
 | |
| ### **Example 2: Breaking Change Investigation** | |
| 
 | |
| ```bash | |
| @meta_change_evaluation.mdc evaluate potential breaking changes in recent commits | |
| ``` | |
| 
 | |
| ### **Example 3: Pre-Merge Validation** | |
| 
 | |
| ```bash | |
| @meta_change_evaluation.mdc validate changes before merging feature-branch to master | |
| ``` | |
| 
 | |
| ## Success Criteria | |
| 
 | |
| - [ ] **Change Discovery**: All modified files are identified and categorized | |
| - [ ] **Pattern Recognition**: Unusual change patterns are detected and flagged | |
| - [ ] **Breaking Change Detection**: All potential breaking changes are identified | |
| - [ ] **Risk Assessment**: Accurate risk levels are assigned with justification | |
| - [ ] **Recommendations**: Actionable recommendations are provided | |
| - [ ] **Documentation**: Complete change evaluation report is generated | |
| 
 | |
| ## Common Pitfalls | |
| 
 | |
| - **Missing Dependencies**: Failing to identify all affected components | |
| - **Underestimating Impact**: Not considering ripple effects of changes | |
| - **Incomplete Testing**: Missing critical test scenarios for changes | |
| - **Configuration Blindness**: Overlooking configuration file changes | |
| - **Interface Assumptions**: Assuming internal changes won't affect external | |
|   users | |
| 
 | |
| ## Integration with Other Meta-Rules | |
| 
 | |
| ### **With Bug Diagnosis** | |
| 
 | |
| - Use change evaluation to identify recent changes that may have caused | |
|   bugs | |
| - Correlate change patterns with reported issues | |
| 
 | |
| ### **With Feature Planning** | |
| 
 | |
| - Evaluate the impact of planned changes before implementation | |
| - Identify potential breaking changes early in the planning process | |
| 
 | |
| ### **With Bug Fixing** | |
| 
 | |
| - Validate that fixes don't introduce new breaking changes | |
| - Ensure fixes maintain backward compatibility | |
| 
 | |
| --- | |
| 
 | |
| **See also**: | |
| 
 | |
| - `.cursor/rules/meta_core_always_on.mdc` for core always-on rules | |
| - `.cursor/rules/meta_feature_planning.mdc` for feature development | |
|   workflows | |
| - `.cursor/rules/meta_bug_diagnosis.mdc` for bug investigation workflows | |
| - `.cursor/rules/meta_bug_fixing.mdc` for fix implementation workflows | |
| 
 | |
| **Status**: Active change evaluation meta-rule | |
| **Priority**: High (applies to all change evaluation tasks) | |
| **Estimated Effort**: Ongoing reference | |
| **Dependencies**: All bundled sub-rules | |
| **Stakeholders**: Development team, Quality Assurance team, Release | |
| Management team
 | |
| 
 |