Bring every doc up to date, and give the repo a Wi-Fi template that exists

CONTEXT.md had grown by appending and contradicted itself (all four nodes vs six, a retracted CPU
figure, "no calibration", "nobody enrolled", "audio untested as a service", the Wi-Fi-off boot as
not done, a class the tracker replaced). Rewritten as one current-state document organised by
subsystem, with fresh measurements, the owner's decisions, the gotchas, the neck's arrival-day plan
and what is genuinely still open.

README: status, speakers not fitted, new-session note for Hermes, the calibration section (shipped
calibration, coverage hints, outlier dropping, --from-views), running the tests, the docs row.
HANDOFF.md gets a status banner listing where the original brief has drifted. CLAUDE.md starts at
CONTEXT.md. The echo-cancel config no longer talks about a Pi Zero, and the enclosure guide no longer
tells you to centre a servo with a tool that does not exist yet.

pi/network-config.example is a tracked, credentials-free first-boot template: the README pointed at
pi/50-cloud-init.yaml, which is gitignored and so missing from a fresh clone. The dead IdentityCache
(replaced by the tracker) is removed. Docstrings corrected: audio scope publishing, the MCP health
topics, and what the calibration tool does.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AFN8nRRCiDiMN7ChBpHJhs
This commit is contained in:
2026-10-05 08:38:32 -07:00
co-authored by Claude Sonnet 5.5
parent ce7063f647
commit 720a7cfc34
14 changed files with 390 additions and 468 deletions
+17
View File
@@ -1,5 +1,22 @@
# Hermes robot: Pi 4 + BrainCraft build — implementation handoff
> **Status note (2026-10-05): this is the original brief, kept as the record of intent. It has drifted.**
> Read `CONTEXT.md` for where things really stand. The main differences:
> - **ROS never leaves the Pi.** There is no `host/ros-shell` talking to the robot over DDS; `hermes_mcp` is
> the only bridge, and the firewall blocks DDS on every interface (section 3, package 0b, package 5).
> - **Stock libcamera does not work** on this kernel; the camera needs the Raspberry Pi libcamera fork,
> with `camera_ros` built against it (package 0a, package 3). The WM8960 overlay needed a fix too
> (package 1), and the HAT's Audio switch must be ON.
> - **MCP tools** are `look`, `faces`, `list_people` (and `turn_head` / `head_position` only when a head is
> fitted), not just `look` / `turn_head`. Hermes does not pass MCP images to the model; it saves the
> photo and the model calls its own vision tool, which is package 6's fallback, handled by Hermes.
> - **One launch file and one unit** run the whole robot; `pi/install.sh` is the single installer; the old
> Pi Zero files in section 4 are deleted; `omarchy/` became `host/omarchy/`.
> - Done since: the face (flat shape only), recognition (opt-in), the thermal guard, camera calibration.
> - Not built yet because the hardware has not arrived: `hermes_head` and the servos, speakers and echo
> cancel, the fan, the enclosure. The NixOS host config is skipped for now.
This document is the brief for finishing the robot. It is written to be worked through by
Claude Code with the owner at hand for the physical steps. Read it in full before changing
anything; then work the packages in order, since later ones depend on earlier ones.