Implementation Spikes¶
This directory holds Cairn's implementation spikes — the build-prep tasks that take the decided architecture (the numbered spec §1–§11 and the Decision log) and exercise it against reality, on real hardware and real links.
A spike is not architecture and not a decision. It is a concrete, runnable task with explicit pass/fail thresholds that validates a bet the spec is making. Its results feed back into the spec: a passing spike ratifies a default into an ADR; a failing spike sends a question back to the design.
Why a separate area¶
The spec stays a clean statement of what Cairn is; the ADR log stays a clean statement of why. A spike record is a third thing — what we tried, on what, and what we learned. Keeping it out of both preserves the §3.13 discipline that the architecture documents describe a settled design, not a lab notebook.
Index¶
| Spike | Title | Status | Validates |
|---|---|---|---|
| 0001 | Walking skeleton, WAN-sync, and Pi cost | Bet A ✓ (→ADR-0015) · Bet B prepared, awaiting the Pi | ADR-0001 projection cost · §6.2 convergence under real partition · ADR-0013 availability floor · day-one serialization/signature/digest primitives |
| 0002 | Advisory-actor write contract (kastellan ↔ Cairn) | Ran ✓ — C1–C5 PASS (PR #27) → ADR-0029/0030 | the advisory-tier integration contract: ADR-0021/0022 floor-in-DB write path · ADR-0007/0010 additive un-attested authorship · ADR-0011 version-pinning + the parked skill-epoch refinement |
| 0003 | A Cairn node on an Android phone (native bionic PostgreSQL 18 + pgrx) | Ran 2026-06-25 — G0–G3 PASS (full). Native PG 18.2 on stock Android 16 + a cross-built pgrx extension (incl. SPI); kit at poc/pg-android-kit/ |
the fractal-topology invariant at the phone tier · ADR-0001 Postgres-is-the-node · ADR-0002 pgrx escape hatch on the node arch · ADR-0021 substrate provenance invisible above the event-core socket |
| 0004 | iced as the reference-UI framework — against an EHR's hard bars | Harness built, awaiting human runs. Pure core (multi-script shaping + latency stats) unit-tested in CI; A11y-tree / live-IME / Pi-latency passes operator-scripted; kit at poc/iced-ui-spike/ |
the L3 reference-UI framework choice (eval 0004): accessibility (AccessKit tree), complex-text/IME (cosmic-text shaping, ADR-0014 culture-neutrality), paper-parity latency (§1.2) on the tiny-skia Pi path · ADR-0021 UI is a pure L3 producer, never on the inter-node path |