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.
		
		
		
		
		
			
		
			
				
					
					
						
							186 lines
						
					
					
						
							4.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							186 lines
						
					
					
						
							4.9 KiB
						
					
					
				| 
 | |
| # Build Architecture Guard Directive | |
| 
 | |
| **Author**: Matthew Raymer | |
| **Date**: 2025-08-22 | |
| **Status**: 🎯 **ACTIVE** - Build system protection guidelines | |
| 
 | |
| ## Purpose | |
| 
 | |
| Protect the TimeSafari building architecture from unauthorized changes that | |
| could break the multi-platform build pipeline, deployment processes, or | |
| development workflow. This directive ensures all build system modifications | |
| follow proper review, testing, and documentation procedures. | |
| 
 | |
| **Note**: Recent Android build system enhancements (2025-08-22) include | |
|   sophisticated asset validation, platform-specific API routing, and automatic | |
|   resource regeneration. These features require enhanced testing and validation | |
|   procedures. | |
| 
 | |
| ## Protected Architecture Components | |
| 
 | |
| ### Core Build Infrastructure | |
| 
 | |
| - **Vite Configuration Files**: `vite.config.*.mts` files | |
| 
 | |
| - **Build Scripts**: All scripts in `scripts/` directory | |
| 
 | |
| - **Package Scripts**: `package.json` build-related scripts | |
| 
 | |
| - **Platform Configs**: `capacitor.config.ts`, `electron/`, `android/`, | |
| 
 | |
|   `ios/` | |
| 
 | |
| - **Docker Configuration**: `Dockerfile`, `docker-compose.yml` | |
| 
 | |
| - **Environment Files**: `.env.*`, `.nvmrc`, `.node-version` | |
| 
 | |
| ### Android-Specific Build Validation | |
| 
 | |
| - **Asset Validation Scripts**: | |
| 
 | |
|   `validate_android_assets()` function and resource checking | |
| 
 | |
| - **Resource Generation**: `capacitor-assets` integration and verification | |
| 
 | |
| - **Platform-Specific IP Handling**: | |
| 
 | |
|   Android emulator vs physical device API routing | |
| 
 | |
| - **Build Mode Validation**: Development/test/production mode handling | |
| 
 | |
| - **Resource Fallback Logic**: | |
| 
 | |
|   Automatic regeneration of missing Android resources | |
| 
 | |
| ### Critical Build Dependencies | |
| 
 | |
| - **Build Tools**: Vite, Capacitor, Electron, Android SDK, Xcode | |
| 
 | |
| - **Asset Management**: `capacitor-assets.config.json`, asset scripts | |
| 
 | |
| - **Testing Infrastructure**: Playwright, Jest, mobile test scripts | |
| 
 | |
| - **CI/CD Pipeline**: GitHub Actions, build validation scripts | |
| 
 | |
| - **Service Worker Assembly**: `sw_scripts/`, `sw_combine.js`, WASM copy steps | |
| 
 | |
| ## Change Authorization Requirements | |
| 
 | |
| ### Level 1: Minor Changes (Requires Review) | |
| 
 | |
| - Documentation updates to `BUILDING.md` | |
| 
 | |
| - Non-breaking script improvements | |
| 
 | |
| - Test additions or improvements | |
| 
 | |
| - Asset configuration updates | |
| 
 | |
| **Process**: Code review + basic testing | |
| 
 | |
| ### Level 2: Moderate Changes (Requires Testing) | |
| 
 | |
| - New build script additions | |
| 
 | |
| - Environment variable changes | |
| 
 | |
| - Dependency version updates | |
| 
 | |
| - Platform-specific optimizations | |
| 
 | |
| - **Build script argument parsing**: | |
| 
 | |
|   New flag handling (--api-ip, --auto-run, --deploy) | |
| 
 | |
| - **Platform-specific environment overrides**: | |
| 
 | |
|   Android API server IP customization | |
| 
 | |
| - **Asset regeneration logic**: Automatic fallback for missing Android resources | |
| 
 | |
| **Process**: Code review + platform testing + documentation update | |
| 
 | |
| ### Level 3: Major Changes (Requires ADR) | |
| 
 | |
| - Build system architecture changes | |
| 
 | |
| - New platform support | |
| 
 | |
| - Breaking changes to build scripts | |
| 
 | |
| - Major dependency migrations | |
| 
 | |
| **Process**: ADR creation + comprehensive testing + team review | |
| 
 | |
| ## Prohibited Actions | |
| 
 | |
| ### ❌ Never Allow Without ADR | |
| 
 | |
| - **Delete or rename** core build scripts | |
| 
 | |
| - **Modify** `package.json` build script names | |
| 
 | |
| - **Change** Vite configuration structure | |
| 
 | |
| - **Remove** platform-specific build targets | |
| 
 | |
| - **Alter** Docker build process | |
| 
 | |
| - **Modify** CI/CD pipeline without testing | |
| 
 | |
| ### ❌ Never Allow Without Testing | |
| 
 | |
| - **Update** build dependencies | |
| 
 | |
| - **Change** environment configurations | |
| 
 | |
| - **Modify** asset generation scripts | |
| 
 | |
| - **Alter** test infrastructure | |
| 
 | |
| - **Update** platform SDK versions | |
| 
 | |
| --- | |
| 
 | |
| **See also**: | |
| 
 | |
| - `.cursor/rules/architecture/build_validation.mdc` for | |
| 
 | |
|   detailed validation procedures | |
| 
 | |
| - `.cursor/rules/architecture/build_testing.mdc` for testing requirements | |
| 
 | |
| **Status**: Active build protection guidelines | |
| **Priority**: Critical | |
| **Estimated Effort**: Ongoing reference | |
| **Dependencies**: None | |
| **Stakeholders**: Development team, DevOps team, Build team | |
| 
 | |
| **Estimated Effort**: Ongoing vigilance | |
| **Dependencies**: All build system components | |
| **Stakeholders**: Development team, DevOps, Platform owners | |
| **Next Review**: 2025-09-22 | |
| 
 | |
| ## Model Implementation Checklist | |
| 
 | |
| ### Before Build Changes | |
| 
 | |
| - [ ] **Change Level**: Determine if change is L1, L2, or L3 | |
| - [ ] **Impact Assessment**: Assess impact on build system architecture | |
| - [ ] **ADR Requirement**: Check if ADR is required for major changes | |
| - [ ] **Testing Planning**: Plan appropriate testing for change level | |
| 
 | |
| ### During Build Changes | |
| 
 | |
| - [ ] **Guard Compliance**: Ensure changes comply with build architecture guard | |
| - [ ] **Documentation**: Document changes according to level requirements | |
| - [ ] **Testing**: Execute appropriate testing for change level | |
| - [ ] **Review Process**: Follow required review process for change level | |
| 
 | |
| ### After Build Changes | |
| 
 | |
| - [ ] **Validation**: Verify build system still functions correctly | |
| - [ ] **Documentation Update**: Update relevant documentation | |
| - [ ] **Team Communication**: Communicate changes to affected teams | |
| - [ ] **Monitoring**: Monitor for any build system issues
 | |
| 
 |