Decision log¶
Architecture Decision Records — each one captures a single real design decision, the context that led to it, and its honest trade-offs, so nobody has to reconstruct "why did we do it this way?" from git blame later. See adr.github.io for the convention this follows. Numbers are sequential and never reused, even for a rejected or superseded decision — a reference to "ADR-0003" always points at the same file.
This is a different kind of document from
docs/claude/plans/:
a plan is written before a change lands, to think through how to make
it; an ADR is a durable record of a decision already made, kept
accurate after the fact (superseded by a new ADR when circumstances
change, never rewritten in place).
| # | Decision | Status |
|---|---|---|
| 0001 | Remote BuildKit builder, no local Docker-in-Docker | accepted |
| 0002 | Credentials never touch argv, env history, or the clone URL | accepted |
| 0003 | Registry resolution via server-side mapping rules | accepted |
| 0004 | SSH host key verification is always enforced | accepted |
| 0005 | The BDD suite runs on Thomas, a real-command framework | accepted |
| 0006 | A reusable chart owns every test namespace, not --create-namespace |
accepted |
| 0007 | Structured registry auth, and an auto-rendered settings file | accepted |
| 0008 | GET/DELETE /image for existence checks and best-effort deletion |
accepted |
| 0009 | Event-oriented structured logging, and log/trace correlation via OpenTelemetry | accepted |
| 0010 | Capture git/docker subprocess output to files instead of stdout | accepted |
| 0011 | GET /devcontainer: merged Dev Container metadata, read from the image |
accepted |
| 0012 | Dev Container → Kubernetes runtime mapping | accepted (hostRequirements part superseded by 0014) |
| 0013 | A fallback image for repositories without a devcontainer.json | accepted |
| 0014 | hostRequirements are minimums |
accepted |
| 0015 | customizations.kubernetes for pod resources and node placement |
accepted |