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.

  1. 2026-10-24AcceptedD24Every real action runs on a live terminal you can read, type into and stopcontract
  2. 2026-10-24AcceptedD23The logo is the Big Sticker: a calm two-dot face with a rose heart stickerbrand
  3. 2026-10-23AcceptedD22Identify: a harmless way to show which physical thing a row ishardware safety
  4. 2026-10-23AcceptedD21The name is RobotDxbrand
  5. 2026-10-23AcceptedD20Stable and Preview channels from the shared runtime, with the tray inside Stablerelease
  6. 2026-10-23AcceptedD19A plug or unplug shows in the log within a tenth of a second, and the Computer is livelogging
  7. 2026-10-23AcceptedD18One activity log on one clock, with an Activity channel and a Raw channellogging
  8. 2026-10-23ProposedD17Proposed: the expected setup grows into the rig's acceptance speccontract
  9. 2026-10-23AcceptedD16A composite names the members that caused it, so one fact counts oncecontract
  10. 2026-10-23AcceptedD15A small file says what this PC should see, so the page can name what is missingcontract
  11. 2026-10-23AcceptedD14A driver registers what to check when its device is plugged incontract
  12. 2026-10-23AcceptedD13The command line is the seam: any command that exits 0 to 3 is a diagnosticcontract
  13. 2026-10-22SupersededD12Keep the name RobotDiagnosticsbrand
  14. 2026-10-22AcceptedD11A skin is a file of tokens, with one great default and the rest a pick awayUI
  15. 2026-10-22AcceptedD10Rows are devices, not wires: one row per entity, the path one toggle awayUI
  16. 2026-10-22AcceptedD09Quiet until something is wrong: no green, a shape for every problem, colour reserved for diagnosticsUI
  17. 2026-10-22AcceptedD08Whoever owns the port does the talking: RobotDx never competes with a robot stack or a person's toolhardware safety
  18. 2026-10-22AcceptedD07Every action dry-runs first, carries a danger class, and only a person runs the real onehardware safety
  19. 2026-10-22AcceptedD06One action vocabulary across every drivercontract
  20. 2026-10-22AcceptedD05Each black box reports what a failure means for it, and the host never overrides itcontract
  21. 2026-10-22AcceptedD04The record is ROS's DiagnosticStatus, kept whole, with sibling records beside itcontract
  22. 2026-10-22AcceptedD03A small chip in the top bar opens one window: an entity tree beside its detailUI
  23. 2026-10-21SupersededD02The first shape: a Plug Journal tray with a submenu per deviceUI
  24. 2026-10-21AcceptedD01Drivers bring their own diagnostics, as small programs that answer three verbscontract