- Mount each student's own App Lab files into the app container so the
agent can read/fix them: mount-user-workspace.sh binds ~/sketches (rw),
~/ArduinoApps/* (rw), ~/Arduino/libraries (ro) under /app/workspace via
a root oneshot ordered before arduino-app-cli.service (the /app bind is
rprivate, so binds must precede container start; App Lab has no app.yaml
volumes field). Wired into provision-node-app, provision-fleet (systemd,
best-effort sudo), and package-onboard-app (bundled under host-setup/).
- uno-q-hardware skill: document the mux-aware i2c_scan output format
(0x70:mux, 0x70.2=0x1d) and tell the agent its student's files live at
/app/workspace. See USER-WORKSPACE.md.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Vendors the fork's 11 granular UNO Q skills (bridge, flashing, led-matrix,
uno-q-hardware, sketch-patterns, modulino, linux-led, audio, vision, wireless,
arduino-app-lab) next to the comprehensive arduino-uno-q skill, and installs the
whole set into every agent's workspace on each board.
Why both: the comprehensive skill is the rich cloud reference (read_skill →
references); the granular skills are keyword-triggered and match the fork's eager
skill-inliner rules, so the on-board Qwen auto-inlines them (no read_skill
round-trip). flashing + led-matrix carry the exact uno_q_flash + frame-API /
ArduinoGraphics-not-installed detail that makes flashing reliable.
- push-skill.sh generalized: a single skill dir (has SKILL.md) OR a parent dir
installs every skill under it; provision-fleet now ships all of skills/.
- Verified on board 65301572: cloud/Sonnet-5 lists all 12 skills.
Co-Authored-By: Claude Opus 4.8 <[email protected]>