Design decisions
What RobotDx decided, why, and what else was on the table. Newest first. Each page names its sources: the contract docs, the commit log, the reports, and Zach's own notes, quoted word for word with his spelling.
“I really like documenting the design decisions and philophsies that went behind the different decisions... etc...”
Zach Yamaoka, notes, 22 Oct 2026
24 decisions, 21 accepted, 1 proposed, 2 superseded. Areas: contract, UI, logging, hardware safety, release, brand. The app was built in the week of 21 to 24 October 2026, so the dates are close together. A ruling is dated when it was made, and later changes to it are on its page. The reports are here.
- 2026-10-24AcceptedD24Every real action runs on a live terminal you can read, type into and stopcontract
- 2026-10-24AcceptedD23The logo is the Big Sticker: a calm two-dot face with a rose heart stickerbrand
- 2026-10-23AcceptedD22Identify: a harmless way to show which physical thing a row ishardware safety
- 2026-10-23AcceptedD21The name is RobotDxbrand
- 2026-10-23AcceptedD20Stable and Preview channels from the shared runtime, with the tray inside Stablerelease
- 2026-10-23AcceptedD19A plug or unplug shows in the log within a tenth of a second, and the Computer is livelogging
- 2026-10-23AcceptedD18One activity log on one clock, with an Activity channel and a Raw channellogging
- 2026-10-23ProposedD17Proposed: the expected setup grows into the rig's acceptance speccontract
- 2026-10-23AcceptedD16A composite names the members that caused it, so one fact counts oncecontract
- 2026-10-23AcceptedD15A small file says what this PC should see, so the page can name what is missingcontract
- 2026-10-23AcceptedD14A driver registers what to check when its device is plugged incontract
- 2026-10-23AcceptedD13The command line is the seam: any command that exits 0 to 3 is a diagnosticcontract
- 2026-10-22SupersededD12Keep the name RobotDiagnosticsbrand
- 2026-10-22AcceptedD11A skin is a file of tokens, with one great default and the rest a pick awayUI
- 2026-10-22AcceptedD10Rows are devices, not wires: one row per entity, the path one toggle awayUI
- 2026-10-22AcceptedD09Quiet until something is wrong: no green, a shape for every problem, colour reserved for diagnosticsUI
- 2026-10-22AcceptedD08Whoever owns the port does the talking: RobotDx never competes with a robot stack or a person's toolhardware safety
- 2026-10-22AcceptedD07Every action dry-runs first, carries a danger class, and only a person runs the real onehardware safety
- 2026-10-22AcceptedD06One action vocabulary across every drivercontract
- 2026-10-22AcceptedD05Each black box reports what a failure means for it, and the host never overrides itcontract
- 2026-10-22AcceptedD04The record is ROS's DiagnosticStatus, kept whole, with sibling records beside itcontract
- 2026-10-22AcceptedD03A small chip in the top bar opens one window: an entity tree beside its detailUI
- 2026-10-21SupersededD02The first shape: a Plug Journal tray with a submenu per deviceUI
- 2026-10-21AcceptedD01Drivers bring their own diagnostics, as small programs that answer three verbscontract