- 2026-10-07Sentinel: The Command PlaneWhere the system stops observing and becomes able to be wrong in ways that matter: desired and reported held as separate values, a durable claim set, banded arbitration, and a state machine that turns a fire-and-forget write into a verified outcome.23 min
- 2026-10-05Sentinel Dev Diary: Auditing the WatchdogBuild step four was audited against the watchdog document. One sentence had two halves and a test that asserted the half that worked, three exit criteria passed without a running core anywhere near them, and a stale point's checkpoint never moved until a deployment showed it.13 min
- 2026-09-30Sentinel: The Watchdog and Derived PointsOne timer wheel for every freshness deadline, why on-change without a heartbeat is a trap, why liveness is a freshness policy rather than a value, and what happens to a derived point whose inputs go stale.17 min
- 2026-09-28Sentinel Dev Diary: Checks & BalancesFive processes act as checks and balances on the Sentinel build. Code and documents will drift apart on any long project; the aim is to notice quickly and correct it where the next person will see. Here is what each process watches, what keeps it honest, and where it stops.13 min
- 2026-09-23Sentinel: Ingest Path and Log SchemaTwo logs rather than one, a bus message whose own identity doubles as the dedup key and the ingest watermark, and the native-value column that makes unit conversion reversible - so restart and reprocess both fall out of the schema.20 min
- 2026-09-21Sentinel Dev Diary: Where the Check LivesThe driver contract says a module emits and says a host reads, and only one of those was built. Three conformance checks placed where one of them can go, a register sentence that was false for three pull requests, and fifty-seven tests that cannot check where a test lives.12 min
- 2026-09-16Sentinel: The Driver ContractMaking every device look identical to the core while keeping protocol ugliness on the far side of a wire boundary: driver hosts, per-instance supervision, one northbound transport for every protocol, and assignments exported rather than queried.14 min
- 2026-09-14Sentinel Dev Diary: What the Specification Left UnsaidBuild step one was called complete, then audited against the document that owns it. Six named rejections had become twenty-eight, two of them rules the specification never states, and one guard existed as a function with a fixture and no caller.9 min
- 2026-09-09Sentinel: The Semantic ModelIdentity, hierarchy and the point descriptor: why a point ID is a dotted slug rather than a UUID, why a component is the unit of independent failure, and why a point is always scalar.17 min
- 2026-09-08Sentinel Dev Diary: Four Registers and a Drift CheckThe specification was finished before the build started, and then the build began producing statements it had no home for. Four numbered registers, one rule about where a sentence is allowed to live, and the distinction that stops a specification gap being closed by the commit that routed around it.13 min
- 2026-09-02Sentinel: An IntroductionA soil moisture sensor goes quiet for three days, and nothing in the system says so — a reading and a memory of one look identical. Deciding what that costs is what a specification is for, and this is the first of eleven parts publishing one in full, while the system it describes gets built.20 min
- 2026-06-30Your CLAUDE.md Is an Architecture Document — Write It Like OneThe patterns worth stealing from a FastAPI project whose agent-instructions file quietly became its architecture doc — layering, config quarantine, the DI trap that breaks transactions, and more.12 min