packwise-skills 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/.cursorrules +23 -23
  2. package/CLAUDE.md +25 -25
  3. package/LICENSE +21 -0
  4. package/README.md +404 -295
  5. package/audit.md +224 -224
  6. package/bin/packwise.js +322 -155
  7. package/install.sh +123 -0
  8. package/package.json +32 -31
  9. package/skill.md +944 -719
  10. package/sub-skills/ai/local-llm.md +183 -183
  11. package/sub-skills/ai/python-ml.md +164 -164
  12. package/sub-skills/backend/go-server.md +184 -184
  13. package/sub-skills/backend/java-spring.md +241 -241
  14. package/sub-skills/backend/node-server.md +164 -164
  15. package/sub-skills/backend/php-laravel.md +175 -175
  16. package/sub-skills/backend/python-server.md +164 -164
  17. package/sub-skills/backend/rust-backend.md +118 -118
  18. package/sub-skills/cli/python-cli.md +236 -236
  19. package/sub-skills/cli/sdk-library.md +497 -497
  20. package/sub-skills/cloud/ci-cd-pipelines.md +350 -350
  21. package/sub-skills/cloud/docker.md +191 -191
  22. package/sub-skills/cloud/kubernetes.md +277 -277
  23. package/sub-skills/cloud/payment-integration.md +307 -307
  24. package/sub-skills/cross-platform/multiplatform.md +252 -252
  25. package/sub-skills/desktop/electron.md +783 -783
  26. package/sub-skills/desktop/game-dev.md +443 -443
  27. package/sub-skills/desktop/native-app.md +123 -123
  28. package/sub-skills/desktop/scenarios.md +443 -443
  29. package/sub-skills/desktop/smart-platforms.md +324 -324
  30. package/sub-skills/desktop/tauri.md +428 -428
  31. package/sub-skills/desktop/vr-ar.md +252 -252
  32. package/sub-skills/desktop/web-to-desktop.md +153 -153
  33. package/sub-skills/embedded/car-infotainment.md +129 -129
  34. package/sub-skills/embedded/esp32.md +184 -184
  35. package/sub-skills/embedded/ros.md +150 -150
  36. package/sub-skills/embedded/stm32.md +160 -160
  37. package/sub-skills/mobile/android.md +322 -322
  38. package/sub-skills/mobile/capacitor.md +232 -232
  39. package/sub-skills/mobile/flutter-mobile.md +138 -138
  40. package/sub-skills/mobile/harmonyos.md +150 -150
  41. package/sub-skills/mobile/ios.md +245 -245
  42. package/sub-skills/mobile/react-native.md +443 -443
  43. package/sub-skills/mobile/wearables.md +230 -230
  44. package/sub-skills/plugins/browser-extension.md +308 -308
  45. package/sub-skills/plugins/jetbrains-plugin.md +226 -226
  46. package/sub-skills/plugins/vscode-extension.md +204 -204
  47. package/sub-skills/security/security-tools.md +174 -174
  48. package/sub-skills/web/monorepo.md +274 -274
  49. package/sub-skills/web/pwa.md +220 -220
  50. package/sub-skills/web/serverless-edge.md +295 -295
  51. package/sub-skills/web/spa.md +266 -266
  52. package/sub-skills/web/ssr.md +228 -228
  53. package/sub-skills/web/wasm.md +243 -243
@@ -1,153 +1,153 @@
1
- # Web-to-Desktop Build Sub-Skill
2
-
3
- Quickly wrap existing web applications as desktop clients. For scenarios not requiring complex backends, pursuing minimal footprint.
4
-
5
- ---
6
-
7
- ## Solution Comparison
8
-
9
- | Framework | Language | Size | Engine | Platform | Best For |
10
- |-----------|---------|------|--------|----------|---------|
11
- | Pake/PakePlus | Rust (Tauri) | ~3-10MB | System WebView | Win/Mac/Linux/Android | Website → desktop minimal wrapper |
12
- | Neutralinojs | JS + C++ | ~1-3MB | System WebView | Win/Mac/Linux | Lightweight Electron alternative |
13
- | Capacitor | JS/TS | ~20MB | Chromium (Electron) | Win/Mac/Linux/iOS/Android | Web → all platforms |
14
- | Carlo | JS | ~0MB | System Chrome | Win/Mac/Linux | Users with Chrome installed |
15
-
16
- ---
17
-
18
- ## Pake / PakePlus (Recommended: Minimal Wrapper)
19
-
20
- **Version**: PakePlus 2.7.x (2025-2026) — the actively maintained successor to the original Pake project.
21
-
22
- ### When to Use
23
- - Any website wrapped as desktop app
24
- - No backend logic needed
25
- - Minimal size (~3MB)
26
- - Custom window styling
27
-
28
- ### Usage
29
-
30
- ```bash
31
- npm install -g pake-cli
32
-
33
- # Basic
34
- pake https://example.com --name MyApp
35
-
36
- # Custom window
37
- pake https://example.com \
38
- --name MyApp \
39
- --icon ./icon.png \
40
- --width 1200 --height 800 \
41
- --hide-title-bar \
42
- --fullscreen false \
43
- --resizable true
44
-
45
- # Multi-platform
46
- pake https://example.com --name MyApp --platform all
47
- ```
48
-
49
- ### Limitations
50
- - No Node.js backend support
51
- - No native module support
52
- - Features limited to WebView capabilities
53
-
54
- ---
55
-
56
- ## Neutralinojs (5.6.x)
57
-
58
- **Version**: Neutralinojs 5.6.x (2025-2026)
59
-
60
- ### When to Use
61
- - Need lightweight backend (file system, network)
62
- - Don't need full Node.js
63
- - Minimal footprint (~2MB)
64
-
65
- ### Setup
66
-
67
- ```bash
68
- npm install -g @nicepkg/neutralino
69
- neu create myapp
70
- ```
71
-
72
- ### Frontend API
73
-
74
- ```javascript
75
- // File system
76
- await Neutralino.filesystem.writeFile('data.txt', 'Hello');
77
- const data = await Neutralino.filesystem.readFile('data.txt');
78
-
79
- // Window control
80
- await Neutralino.window.setTitle('New Title');
81
-
82
- // System
83
- await Neutralino.os.open('https://example.com');
84
- ```
85
-
86
- ### Build
87
-
88
- ```bash
89
- neu run # Development
90
- neu build # Production
91
- # Output: dist/myapp-win_x64/, dist/myapp-mac_x64/, dist/myapp-linux_x64/
92
- ```
93
-
94
- ---
95
-
96
- ## Capacitor (Web → All Platforms)
97
-
98
- ### When to Use
99
- - Existing web application
100
- - Need desktop + mobile support simultaneously
101
- - Need native API access (camera, filesystem, notifications)
102
-
103
- ### Setup
104
-
105
- ```bash
106
- npm install @capacitor/core @capacitor/cli
107
- npx cap init MyApp com.example.myapp
108
- npm install @capacitor/electron
109
- npx cap add electron
110
- npx cap copy electron
111
- npx cap open electron
112
- ```
113
-
114
- ### Native API Usage
115
-
116
- ```typescript
117
- import { Filesystem, Directory } from '@capacitor/filesystem';
118
- import { LocalNotifications } from '@capacitor/local-notifications';
119
-
120
- await Filesystem.writeFile({
121
- path: 'data.txt',
122
- data: 'Hello World',
123
- directory: Directory.Documents,
124
- });
125
-
126
- await LocalNotifications.schedule({
127
- notifications: [{ title: 'Alert', body: 'New message', id: 1 }],
128
- });
129
- ```
130
-
131
- ---
132
-
133
- ## Selection Guide
134
-
135
- | Your Situation | Recommended |
136
- |---------------|------------|
137
- | Pure website wrap, minimal size | Pake |
138
- | Need filesystem/network backend | Neutralinojs |
139
- | Need desktop + mobile unified | Capacitor |
140
- | Need full Node.js backend | Electron (see electron.md) |
141
- | Need Rust backend + minimal size | Tauri (see tauri.md) |
142
-
143
- ---
144
-
145
- ## Common Pitfalls
146
-
147
- | Issue | Fix |
148
- |-------|-----|
149
- | WebView display differences | Use standard CSS, avoid experimental features |
150
- | CORS cross-origin | Configure WebView to allow cross-origin or use proxy |
151
- | WebView missing (Linux) | Install libwebkit2gtk-4.1-dev |
152
- | Local storage lost | Use filesystem API instead of localStorage |
153
- | Keyboard shortcut conflicts | Configure WebView to ignore system shortcuts |
1
+ # Web-to-Desktop Build Sub-Skill
2
+
3
+ Quickly wrap existing web applications as desktop clients. For scenarios not requiring complex backends, pursuing minimal footprint.
4
+
5
+ ---
6
+
7
+ ## Solution Comparison
8
+
9
+ | Framework | Language | Size | Engine | Platform | Best For |
10
+ |-----------|---------|------|--------|----------|---------|
11
+ | Pake/PakePlus | Rust (Tauri) | ~3-10MB | System WebView | Win/Mac/Linux/Android | Website → desktop minimal wrapper |
12
+ | Neutralinojs | JS + C++ | ~1-3MB | System WebView | Win/Mac/Linux | Lightweight Electron alternative |
13
+ | Capacitor | JS/TS | ~20MB | Chromium (Electron) | Win/Mac/Linux/iOS/Android | Web → all platforms |
14
+ | Carlo | JS | ~0MB | System Chrome | Win/Mac/Linux | Users with Chrome installed |
15
+
16
+ ---
17
+
18
+ ## Pake / PakePlus (Recommended: Minimal Wrapper)
19
+
20
+ **Version**: PakePlus 2.7.x (2025-2026) — the actively maintained successor to the original Pake project.
21
+
22
+ ### When to Use
23
+ - Any website wrapped as desktop app
24
+ - No backend logic needed
25
+ - Minimal size (~3MB)
26
+ - Custom window styling
27
+
28
+ ### Usage
29
+
30
+ ```bash
31
+ npm install -g pake-cli
32
+
33
+ # Basic
34
+ pake https://example.com --name MyApp
35
+
36
+ # Custom window
37
+ pake https://example.com \
38
+ --name MyApp \
39
+ --icon ./icon.png \
40
+ --width 1200 --height 800 \
41
+ --hide-title-bar \
42
+ --fullscreen false \
43
+ --resizable true
44
+
45
+ # Multi-platform
46
+ pake https://example.com --name MyApp --platform all
47
+ ```
48
+
49
+ ### Limitations
50
+ - No Node.js backend support
51
+ - No native module support
52
+ - Features limited to WebView capabilities
53
+
54
+ ---
55
+
56
+ ## Neutralinojs (5.6.x)
57
+
58
+ **Version**: Neutralinojs 5.6.x (2025-2026)
59
+
60
+ ### When to Use
61
+ - Need lightweight backend (file system, network)
62
+ - Don't need full Node.js
63
+ - Minimal footprint (~2MB)
64
+
65
+ ### Setup
66
+
67
+ ```bash
68
+ npm install -g @nicepkg/neutralino
69
+ neu create myapp
70
+ ```
71
+
72
+ ### Frontend API
73
+
74
+ ```javascript
75
+ // File system
76
+ await Neutralino.filesystem.writeFile('data.txt', 'Hello');
77
+ const data = await Neutralino.filesystem.readFile('data.txt');
78
+
79
+ // Window control
80
+ await Neutralino.window.setTitle('New Title');
81
+
82
+ // System
83
+ await Neutralino.os.open('https://example.com');
84
+ ```
85
+
86
+ ### Build
87
+
88
+ ```bash
89
+ neu run # Development
90
+ neu build # Production
91
+ # Output: dist/myapp-win_x64/, dist/myapp-mac_x64/, dist/myapp-linux_x64/
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Capacitor (Web → All Platforms)
97
+
98
+ ### When to Use
99
+ - Existing web application
100
+ - Need desktop + mobile support simultaneously
101
+ - Need native API access (camera, filesystem, notifications)
102
+
103
+ ### Setup
104
+
105
+ ```bash
106
+ npm install @capacitor/core @capacitor/cli
107
+ npx cap init MyApp com.example.myapp
108
+ npm install @capacitor/electron
109
+ npx cap add electron
110
+ npx cap copy electron
111
+ npx cap open electron
112
+ ```
113
+
114
+ ### Native API Usage
115
+
116
+ ```typescript
117
+ import { Filesystem, Directory } from '@capacitor/filesystem';
118
+ import { LocalNotifications } from '@capacitor/local-notifications';
119
+
120
+ await Filesystem.writeFile({
121
+ path: 'data.txt',
122
+ data: 'Hello World',
123
+ directory: Directory.Documents,
124
+ });
125
+
126
+ await LocalNotifications.schedule({
127
+ notifications: [{ title: 'Alert', body: 'New message', id: 1 }],
128
+ });
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Selection Guide
134
+
135
+ | Your Situation | Recommended |
136
+ |---------------|------------|
137
+ | Pure website wrap, minimal size | Pake |
138
+ | Need filesystem/network backend | Neutralinojs |
139
+ | Need desktop + mobile unified | Capacitor |
140
+ | Need full Node.js backend | Electron (see electron.md) |
141
+ | Need Rust backend + minimal size | Tauri (see tauri.md) |
142
+
143
+ ---
144
+
145
+ ## Common Pitfalls
146
+
147
+ | Issue | Fix |
148
+ |-------|-----|
149
+ | WebView display differences | Use standard CSS, avoid experimental features |
150
+ | CORS cross-origin | Configure WebView to allow cross-origin or use proxy |
151
+ | WebView missing (Linux) | Install libwebkit2gtk-4.1-dev |
152
+ | Local storage lost | Use filesystem API instead of localStorage |
153
+ | Keyboard shortcut conflicts | Configure WebView to ignore system shortcuts |
@@ -1,129 +1,129 @@
1
- # Car Infotainment Build Sub-Skill
2
-
3
- Build applications for automotive infotainment systems: Android Automotive OS, QNX, AGL (Automotive Grade Linux), and HarmonyOS Car.
4
-
5
- **Current versions**: Android Automotive 14 / QNX 8.0 / AGL UCB 16 (2025-2026)
6
-
7
- ## When to Use
8
-
9
- - In-vehicle infotainment (IVI) systems
10
- - Digital instrument clusters
11
- - Heads-up display (HUD) applications
12
- - Rear-seat entertainment
13
- - Telematics and fleet management
14
- - EV charging station UI
15
-
16
- ## Platform Comparison
17
-
18
- | Platform | Base OS | Language | Market Share | Best For |
19
- |----------|---------|----------|-------------|---------|
20
- | Android Automotive OS (AAOS) | Android 14 | Kotlin/Java | Growing fast | Mass-market vehicles (Volvo, GM, Ford, Honda) |
21
- | QNX | QNX Neutrino RTOS | C/C++ | Largest (safety-critical) | Instrument clusters, safety systems |
22
- | AGL | Linux | C/C++, HTML5/JS | Growing (open-source) | Custom IVI, fleet vehicles |
23
- | HarmonyOS Car | HarmonyOS | ArkTS | China market | Huawei ecosystem vehicles |
24
- | webOS Auto | Linux | JavaScript | Niche | LG-based IVI systems |
25
- | Custom Linux (Yocto) | Linux | C/C++/Qt/QML | Many | Full control, custom hardware |
26
-
27
- ---
28
-
29
- ## Android Automotive OS (AAOS)
30
-
31
- ### Key Differences from Android Mobile
32
-
33
- | Feature | Android Mobile | Android Automotive |
34
- |---------|---------------|-------------------|
35
- | Display | Single screen | Multiple displays (IVI, cluster, HUD) |
36
- | Input | Touch, voice | Touch, rotary controller, steering wheel, voice |
37
- | Audio | Single zone | Multi-zone (driver, passenger, rear) |
38
- | Lifecycle | Phone lifecycle | Vehicle lifecycle (10+ years) |
39
-
40
- ### Build
41
-
42
- ```kotlin
43
- // build.gradle.kts
44
- android {
45
- defaultConfig {
46
- minSdk = 28
47
- targetSdk = 34
48
- }
49
- }
50
-
51
- dependencies {
52
- implementation("androidx.car.app:app:1.7.0")
53
- implementation("androidx.media3:media3-session:1.5.0")
54
- }
55
- ```
56
-
57
- ```xml
58
- <manifest>
59
- <uses-feature android:name="android.hardware.type.automotive" android:required="true" />
60
- <application>
61
- <service android:name=".MyCarService" android:exported="true">
62
- <intent-filter>
63
- <action android:name="android.car.app.CarAppService" />
64
- </intent-filter>
65
- </service>
66
- </application>
67
- </manifest>
68
- ```
69
-
70
- ```bash
71
- ./gradlew assembleRelease
72
- # Test with Android Automotive emulator in Android Studio
73
- ```
74
-
75
- ---
76
-
77
- ## QNX (Safety-Critical)
78
-
79
- - **Microkernel RTOS** — deterministic real-time behavior
80
- - **Safety certified** — ISO 26262 ASIL-D, IEC 61508 SIL-3
81
- - **Used by**: BlackBerry QNX, deployed in 200M+ vehicles
82
-
83
- ```bash
84
- # Cross-compile from Linux/macOS host
85
- qcc -Vgcc_ntoaarch64le -o myapp myapp.c -lGL -lEGL
86
-
87
- # Build with CMake
88
- cmake -DCMAKE_TOOLCHAIN_FILE=qnx-aarch64.cmake ..
89
- make
90
- ```
91
-
92
- ---
93
-
94
- ## AGL (Automotive Grade Linux)
95
-
96
- ```bash
97
- # AGL uses Yocto/BitBake build system
98
- repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
99
- repo sync
100
-
101
- source meta-agl/scripts/aglsetup.sh -m qemux86-64 -b build agl-demo agl-appfw-smack
102
- bitbake agl-demo-platform
103
- ```
104
-
105
- ---
106
-
107
- ## Selection Guide
108
-
109
- | Project Type | Recommended Platform |
110
- |-------------|---------------------|
111
- | Consumer car IVI | Android Automotive |
112
- | Instrument cluster | QNX |
113
- | Fleet management | AGL or custom Linux |
114
- | Chinese market vehicle | HarmonyOS Car |
115
- | Research/prototype | AGL or Raspberry Pi + custom |
116
- | Motorcycle/scooter IVI | Custom Linux (Yocto/Buildroot) |
117
-
118
- ## Universal Car Software Packaging Checklist
119
-
120
- 1. **Driver distraction** — no interactive content while vehicle is moving
121
- 2. **Startup time** — must be < 2 seconds
122
- 3. **Temperature range** — test at -40°C to +85°C
123
- 4. **Long lifecycle** — support for 10+ years
124
- 5. **OTA updates** — must support over-the-air updates
125
- 6. **Multi-display** — support IVI + instrument cluster + HUD
126
- 7. **Audio zones** — separate audio for driver vs passenger
127
- 8. **Safety compliance** — ASIL rating if interacting with vehicle systems
128
- 9. **Power management** — handle ignition on/off, sleep/wake gracefully
129
- 10. **CAN bus integration** — vehicle data via CAN
1
+ # Car Infotainment Build Sub-Skill
2
+
3
+ Build applications for automotive infotainment systems: Android Automotive OS, QNX, AGL (Automotive Grade Linux), and HarmonyOS Car.
4
+
5
+ **Current versions**: Android Automotive 14 / QNX 8.0 / AGL UCB 16 (2025-2026)
6
+
7
+ ## When to Use
8
+
9
+ - In-vehicle infotainment (IVI) systems
10
+ - Digital instrument clusters
11
+ - Heads-up display (HUD) applications
12
+ - Rear-seat entertainment
13
+ - Telematics and fleet management
14
+ - EV charging station UI
15
+
16
+ ## Platform Comparison
17
+
18
+ | Platform | Base OS | Language | Market Share | Best For |
19
+ |----------|---------|----------|-------------|---------|
20
+ | Android Automotive OS (AAOS) | Android 14 | Kotlin/Java | Growing fast | Mass-market vehicles (Volvo, GM, Ford, Honda) |
21
+ | QNX | QNX Neutrino RTOS | C/C++ | Largest (safety-critical) | Instrument clusters, safety systems |
22
+ | AGL | Linux | C/C++, HTML5/JS | Growing (open-source) | Custom IVI, fleet vehicles |
23
+ | HarmonyOS Car | HarmonyOS | ArkTS | China market | Huawei ecosystem vehicles |
24
+ | webOS Auto | Linux | JavaScript | Niche | LG-based IVI systems |
25
+ | Custom Linux (Yocto) | Linux | C/C++/Qt/QML | Many | Full control, custom hardware |
26
+
27
+ ---
28
+
29
+ ## Android Automotive OS (AAOS)
30
+
31
+ ### Key Differences from Android Mobile
32
+
33
+ | Feature | Android Mobile | Android Automotive |
34
+ |---------|---------------|-------------------|
35
+ | Display | Single screen | Multiple displays (IVI, cluster, HUD) |
36
+ | Input | Touch, voice | Touch, rotary controller, steering wheel, voice |
37
+ | Audio | Single zone | Multi-zone (driver, passenger, rear) |
38
+ | Lifecycle | Phone lifecycle | Vehicle lifecycle (10+ years) |
39
+
40
+ ### Build
41
+
42
+ ```kotlin
43
+ // build.gradle.kts
44
+ android {
45
+ defaultConfig {
46
+ minSdk = 28
47
+ targetSdk = 34
48
+ }
49
+ }
50
+
51
+ dependencies {
52
+ implementation("androidx.car.app:app:1.7.0")
53
+ implementation("androidx.media3:media3-session:1.5.0")
54
+ }
55
+ ```
56
+
57
+ ```xml
58
+ <manifest>
59
+ <uses-feature android:name="android.hardware.type.automotive" android:required="true" />
60
+ <application>
61
+ <service android:name=".MyCarService" android:exported="true">
62
+ <intent-filter>
63
+ <action android:name="android.car.app.CarAppService" />
64
+ </intent-filter>
65
+ </service>
66
+ </application>
67
+ </manifest>
68
+ ```
69
+
70
+ ```bash
71
+ ./gradlew assembleRelease
72
+ # Test with Android Automotive emulator in Android Studio
73
+ ```
74
+
75
+ ---
76
+
77
+ ## QNX (Safety-Critical)
78
+
79
+ - **Microkernel RTOS** — deterministic real-time behavior
80
+ - **Safety certified** — ISO 26262 ASIL-D, IEC 61508 SIL-3
81
+ - **Used by**: BlackBerry QNX, deployed in 200M+ vehicles
82
+
83
+ ```bash
84
+ # Cross-compile from Linux/macOS host
85
+ qcc -Vgcc_ntoaarch64le -o myapp myapp.c -lGL -lEGL
86
+
87
+ # Build with CMake
88
+ cmake -DCMAKE_TOOLCHAIN_FILE=qnx-aarch64.cmake ..
89
+ make
90
+ ```
91
+
92
+ ---
93
+
94
+ ## AGL (Automotive Grade Linux)
95
+
96
+ ```bash
97
+ # AGL uses Yocto/BitBake build system
98
+ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
99
+ repo sync
100
+
101
+ source meta-agl/scripts/aglsetup.sh -m qemux86-64 -b build agl-demo agl-appfw-smack
102
+ bitbake agl-demo-platform
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Selection Guide
108
+
109
+ | Project Type | Recommended Platform |
110
+ |-------------|---------------------|
111
+ | Consumer car IVI | Android Automotive |
112
+ | Instrument cluster | QNX |
113
+ | Fleet management | AGL or custom Linux |
114
+ | Chinese market vehicle | HarmonyOS Car |
115
+ | Research/prototype | AGL or Raspberry Pi + custom |
116
+ | Motorcycle/scooter IVI | Custom Linux (Yocto/Buildroot) |
117
+
118
+ ## Universal Car Software Packaging Checklist
119
+
120
+ 1. **Driver distraction** — no interactive content while vehicle is moving
121
+ 2. **Startup time** — must be < 2 seconds
122
+ 3. **Temperature range** — test at -40°C to +85°C
123
+ 4. **Long lifecycle** — support for 10+ years
124
+ 5. **OTA updates** — must support over-the-air updates
125
+ 6. **Multi-display** — support IVI + instrument cluster + HUD
126
+ 7. **Audio zones** — separate audio for driver vs passenger
127
+ 8. **Safety compliance** — ASIL rating if interacting with vehicle systems
128
+ 9. **Power management** — handle ignition on/off, sleep/wake gracefully
129
+ 10. **CAN bus integration** — vehicle data via CAN