Skip to content

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