TacidOS
DevelopersGitHub

Decision 0028

A typed fact API feeds Doctor and the health gate

Architecture decision record 0028: A typed fact API feeds Doctor and the health gate

Status
Accepted
Date
2026-09-03

Context

Parsing shell output is how agents hallucinate machine state. The health gate and diagnostics need the same truth.

The three plans

  • Grok: hw.info, svc.status tools; a system pulse in the TUI.
  • Fable: a tacid-system MCP server for services, journal, hardware inventory, generations.
  • Codex: a structured OS fact API (system.*) and Tacid Doctor combining deterministic checks with explanation; the checks produce facts, the model produces prose.

Decision

system.* is a typed model (cpu, memory, gpu, disks, usb, serial, probes, network, services, processes, logs, generations, packages, kernel, session, drift) derived from sysfs, udev, journald, systemd’s D-Bus, the Nix store and GPU tools. tacid doctor <domain> runs deterministic checks over facts and lets the model explain and propose a transaction; the health gate reuses the same checks; the shell’s system pulse reads the same model.

Consequences

  • One source of truth for diagnostics, health and the agent’s self-knowledge.
  • A Doctor check is a contribution on-ramp.

Alternatives rejected

  • Letting the model run lspci and read: slower, wrong more often, and unauditable.