Architecture decision records

Every architectural decision is an ADR in this directory: one file per decision, with Status, Context, Decision and Consequences sections. An ADR starts as a GitHub issue labelled adr; the accepted text is committed here. An accepted ADR is never edited — a change of mind is a new ADR that supersedes it, and the old one's status line says which superseded it.

Numbers

Blocks keep parallel work from colliding: 0000–0099 the harness (core, language, engine, CLI), 0100–0199 steps and adapters, 0200–0299 the hosted venture. The next ADR takes the next free number in its block.

Conventions

A file named NNNN-kebab-title.md — the number, then the title in lowercase kebab-case — with a heading that matches it, e.g. 0000-record-architecture-decisions.md begins # ADR 0000: Record architecture decisions.

A guard test (cargo test -p ks-testing --test adr_guard) checks every ADR below: the file exists, the heading matches the filename, and it is linked in the index exactly once.

Index

ADRTitleStatus
0000Record architecture decisionsAccepted
0001Typed values and secret referencesAccepted
0002Ports and adaptersAccepted
0003Workflow syntaxAccepted
0004SecretsAccepted
0005Local-first core with optional hosted servicesAccepted
0006Licence and open-source modelAccepted
0008GitHub Actions firstAccepted
0009TypeScript escape-hatch runtimeAccepted
0010Image build backendProposed
0011Block distributionAccepted
0012Policy authorityProposed
0013Rust workspaceAccepted
0014Release and contract versioningAccepted
0015Telemetry policyAccepted
0100Step contract and composition checksAccepted
0200Hosted venture on the Cratefield harnessAccepted
0201Hosted on CloudflareProposed
0202Billing through PolarAccepted