The entry said to measure first and put the number in the commit, so: a plain page renders in 14µs, a twelve-picture gallery in 1.23ms. Of that, ~102µs per picture was reading, hashing and decoding bytes the previous request had already read. Remembering that one fact — keyed by path, size and modification time — brings the same gallery to 63µs. 19.5× faster, 21× fewer bytes allocated, twenty-odd lines. After which nothing is slow enough to justify caching whole pages, so ADR-0044 declines the page cache and leaves the parked validity model parked, now with a measurement rather than an intuition behind its trigger. That parked model has five axes and was written before any code existed. The problem it would have been built for turned out to be one repeated file read. Benchmarks live in internal/web so they measure through the real handler, which is also what conventions.md wants before any cache goes in the render path. The invalidation risk has its own test: an edited picture is a different key, so the memo cannot serve yesterday's dimensions. Everything runs clean under -race, since the map is read by concurrent requests.
Ideas — parked, not dropped
One file per idea, self-contained enough to resume cold. Nothing here is committed to; presence is not permission to build. An idea file exists so picking the thread back up costs one read instead of one re-derivation — the whole justification for writing it while the context is still in hand.
What goes where
| It is… | Where |
|---|---|
| an engine feature you might build (webmentions, gemtext, galleries) | docs/exploration.md catalog line, /leaf for a verdict |
| that same feature, but with a discussion worth not repeating | an idea file here, linked from the catalog line |
| the harness, agent workflow, token cost, tooling, process | here — exploration.md is engine-only |
| a decision already made | docs/decisions.md |
| a known code flaw deliberately unfixed | Latent list in docs/state.md |
| a durable fact, number, or link | reference/ |
Format
Five headings, present tense, terse. Copy an existing file. Required first lines:
# <title>
Status: parked | active | adopted → <where> | dropped: <one-line why>
Raised: YYYY-MM-DD
Keep dropped files — a one-line reason is the cheapest defence against relitigating it in four
months.
Reading discipline
Exploratory scratch code may live here too; verify.sh never formats, vets, builds or budgets it, so
it does not have to compile.
Out of agent context by default, this index included. A file is opened when the human names that
idea, not otherwise: not swept, not listed to see what is here, not cited unasked. This index is for
you, not the agent; verify.sh keeps it honest without reading it into context.
Index
- deferred-decisions.md — five pre-code ADRs demoted to intent; each returns when something implements it. parked
- specs-as-secondary-artifacts.md — optional per-feature specs, derived by default, plus the named-test convention. parked
- engine-design-review.md — open design decisions for a multi-type site; items graduate to ADRs one at a time. parked
- token-conservation.md — cut agent token cost without losing output quality. parked