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.
		
		
		
		
		
			
		
			
				
					
					
						
							224 lines
						
					
					
						
							5.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							224 lines
						
					
					
						
							5.9 KiB
						
					
					
				| # Build Validation — Procedures and Requirements | |
| 
 | |
| > **Agent role**: Reference this file for | |
|   detailed validation procedures when working with build architecture changes. | |
| 
 | |
| ## Required Validation Checklist | |
| 
 | |
| ### Before Any Build System Change | |
| 
 | |
| - [ ] **Impact Assessment**: Which platforms are affected? | |
| 
 | |
| - [ ] **Testing Plan**: How will this be tested across platforms? | |
| 
 | |
| - [ ] **Rollback Plan**: How can this be reverted if it breaks? | |
| 
 | |
| - [ ] **Documentation**: Will `BUILDING.md` need updates? | |
| 
 | |
| - [ ] **Dependencies**: Are all required tools available? | |
| 
 | |
| ### After Build System Change | |
| 
 | |
| - [ ] **Web Platform**: Does `npm run build:web:dev` work? | |
| 
 | |
| - [ ] **Mobile Platforms**: Do iOS/Android builds succeed? | |
| 
 | |
| - [ ] **Desktop Platform**: Does Electron build and run? | |
| 
 | |
| - [ ] **Tests Pass**: Do all build-related tests pass? | |
| 
 | |
| - [ ] **Documentation Updated**: Is `BUILDING.md` current? | |
| 
 | |
| ## Specific Test Commands (Minimum Required) | |
| 
 | |
| ### Web Platform | |
| 
 | |
| - **Development**: `npm run build:web:dev` - serve and load app | |
| 
 | |
| - **Production**: `npm run build:web:prod` - verify SW and WASM present | |
| 
 | |
| ### Mobile Platforms | |
| 
 | |
| - **Android**: `npm run build:android:test` or `:prod` - confirm assets copied | |
| 
 | |
| - **iOS**: `npm run build:ios:test` or `:prod` - verify build succeeds | |
| 
 | |
| ### Android Platform (Enhanced) | |
| 
 | |
| - **Development Mode**: `npm run build:android --dev` - | |
| 
 | |
|   verify 10.0.2.2 API routing | |
| 
 | |
| - **Custom IP Mode**: `npm run build:android --dev --api-ip 192.168.1.100` - | |
| 
 | |
|   verify custom IP | |
| 
 | |
| - **Asset Validation**: `npm run build:android --assets` - | |
| 
 | |
|   verify resource generation | |
| 
 | |
| - **Deploy Mode**: `npm run build:android --deploy` - verify device deployment | |
| 
 | |
| ### Desktop Platform | |
| 
 | |
| - **Electron**: `npm run build:electron:dev` and packaging for target OS | |
| 
 | |
| - **Verify**: Single-instance behavior and app boot | |
| 
 | |
| ### Auto-run (if affected) | |
| 
 | |
| - **Test Mode**: `npm run auto-run:test` and platform variants | |
| 
 | |
| - **Production Mode**: `npm run auto-run:prod` and platform variants | |
| 
 | |
| ### Clean and Rebuild | |
| 
 | |
| - Run relevant `clean:*` scripts and ensure re-build works | |
| 
 | |
| ## Risk Matrix & Required Validation | |
| 
 | |
| ### Environment Handling | |
| 
 | |
| - **Trigger**: Change to `.env.*` loading / variable names | |
| 
 | |
| - **Validation**: Prove `dev/test/prod` builds; show environment echo in logs | |
| 
 | |
| ### Script Flow | |
| 
 | |
| - **Trigger**: Reorder steps (prebuild → build → package), new flags | |
| 
 | |
| - **Validation**: Dry-run + normal run, show exit codes & timing | |
| 
 | |
| ### Platform Packaging | |
| 
 | |
| - **Trigger**: Electron NSIS/DMG/AppImage, Android/iOS bundle | |
| 
 | |
| - **Validation**: Produce installer/artifact and open it; | |
| 
 | |
|   verify single-instance, | |
|   icons, signing | |
| 
 | |
| ### Service Worker / WASM | |
| 
 | |
| - **Trigger**: `sw_combine.js`, WASM copy path | |
| 
 | |
| - **Validation**: Verify combined SW exists and is injected; page loads offline; | |
| 
 | |
|   WASM present | |
| 
 | |
| ### Docker | |
| 
 | |
| - **Trigger**: New base image, build args | |
| 
 | |
| - **Validation**: Build image locally; run container; list produced `/dist` | |
| 
 | |
| ### Android Asset Management | |
| 
 | |
| - **Trigger**: Changes to `validate_android_assets()` function or resource paths | |
| 
 | |
| - **Validation**: | |
| 
 | |
|   Run `npm run build:android --assets` and verify all mipmap/drawable resources | |
| 
 | |
| - **Risk**: Missing splash screens or app icons causing build failures | |
| 
 | |
| ### Android API Routing | |
| 
 | |
| - **Trigger**: Changes to Android-specific API server IP logic | |
| 
 | |
| - **Validation**: Test both emulator (10.0.2.2) and custom IP modes | |
| 
 | |
| - **Risk**: API connectivity failures on different device types | |
| 
 | |
| ### Signing/Notarization | |
| 
 | |
| - **Trigger**: Cert path/profiles | |
| 
 | |
| - **Validation**: Show signing logs + verify on target OS | |
| 
 | |
| ## PR Template (Paste into Description) | |
| 
 | |
| - [ ] **Level**: L1 / L2 / L3 + justification | |
| 
 | |
| - [ ] **Files & platforms touched**: | |
| 
 | |
| - [ ] **Risk triggers & mitigations**: | |
| 
 | |
| - [ ] **Commands run (paste logs)**: | |
| 
 | |
| - [ ] **Artifacts (names + sha256)**: | |
| 
 | |
| - [ ] **Docs updated (sections/links)**: | |
| 
 | |
| - [ ] **Rollback steps verified**: | |
| 
 | |
| - [ ] **CI**: Jobs passing and artifacts uploaded | |
| 
 | |
| ## ADR Trigger List | |
| 
 | |
| Raise an ADR when you propose any of: | |
| 
 | |
| - **New build stage** or reorder of canonical stages | |
| 
 | |
| - **Replacement of packager** / packaging format | |
| 
 | |
| - **New environment model** or secure secret handling scheme | |
| 
 | |
| - **New service worker assembly** strategy or cache policy | |
| 
 | |
| - **New Docker base** or multi-stage pipeline | |
| 
 | |
| - **Relocation of build outputs** or directory conventions | |
| 
 | |
| - **New Android build modes** or argument parsing logic | |
| 
 | |
| - **Changes to asset validation** or resource generation strategy | |
| 
 | |
| - **Modifications to platform-specific API routing** ( | |
| 
 | |
|   Android emulator vs physical) | |
| 
 | |
| - **New Android deployment strategies** or device management | |
| 
 | |
| **ADR must include**: | |
|   motivation, alternatives, risks, validation plan, rollback, | |
|   doc diffs. | |
| 
 | |
| --- | |
| 
 | |
| **See also**: | |
| 
 | |
| - `.cursor/rules/architecture/build_architecture_guard.mdc` for | |
| 
 | |
|   core protection guidelines | |
| 
 | |
| - `.cursor/rules/architecture/build_testing.mdc` for testing requirements | |
| 
 | |
| **Status**: Active validation procedures | |
| **Priority**: High | |
| **Estimated Effort**: Ongoing reference | |
| **Dependencies**: build_architecture_guard.mdc | |
| **Stakeholders**: Development team, DevOps team, Build team | |
| 
 | |
| ## Model Implementation Checklist | |
| 
 | |
| ### Before Build Changes | |
| 
 | |
| - [ ] **Level Assessment**: Determine build validation level (L1/L2/L3) | |
| - [ ] **Platform Analysis**: Identify all platforms affected by changes | |
| - [ ] **Risk Assessment**: Identify risk triggers and mitigation strategies | |
| - [ ] **Rollback Planning**: Plan rollback steps for build failures | |
| 
 | |
| ### During Build Implementation | |
| 
 | |
| - [ ] **Validation Commands**: Run appropriate validation commands for level | |
| - [ ] **Platform Testing**: Test changes across all affected platforms | |
| - [ ] **Risk Mitigation**: Implement identified risk mitigation strategies | |
| - [ ] **Documentation**: Document all commands run and their outputs | |
| 
 | |
| ### After Build Implementation | |
| 
 | |
| - [ ] **Artifact Validation**: Verify build artifacts are correct and accessible | |
| - [ ] **CI Verification**: Ensure CI jobs pass and artifacts are uploaded | |
| - [ ] **Documentation Update**: Update relevant documentation sections | |
| - [ ] **Team Communication**: Share build validation results with team
 | |
| 
 |