TypeScript Type Safety
Zero `any` Types Policy
NEVER use `any` type - Project enforces 100% type safety
BAD - Implicit any
function process(data) { }GOOD - Proper typing
function process(data: Record<string, string | number>): Promise<void> { }UI Design System
ALWAYS follow the design system documented in docs/ui-design-system.md
Colors: Use AppTheme constants (no hardcoded colors)
Primary: #00979D (teal)
Typography: RobotoMono font family
Borders: 2px borders for cards, inputs
Border Radius: 8-12px
Flutter Version Management
Use FVM (Flutter Version Manager) for all Flutter commands:
# All Flutter commands must use fvm prefix fvm flutter run fvm flutter build apk fvm flutter pub get fvm flutter test
Locked Version: Flutter 3.24.5 (Dart 3.5.4)
Git Practices
Commit Convention
feat: Add visual programming IDE fix: Resolve BLE connection timeout docs: Update protocol specifications refactor: Simplify motor control logic test: Add BLE integration tests chore: Update dependencies
Common Commands
Development
npm run dev - Start Next.js
fvm flutter run - Run Flutter
idf.py monitor - Monitor ESP32
Building
npm run build - Build Next.js
fvm flutter build apk - Build APK
idf.py build - Build ESP32