
# 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
