Twenty-seven ADRs existed before a line of Go. Five specified the shape of unbuilt mechanisms — cache validity, declared types, the settings cascade, taxonomies, extras — which breaks the rule against abstraction before a second concrete use, in prose where the counters cannot see it. They move to ideas/deferred-decisions.md as recorded intent and return shaped by whatever implements them. Citations retargeted throughout; where one was decoration the rule now stands on its own reasoning. Type declarations and the cascade drop to [spec] with the MVP behaviour stated instead, so the first prompts have less to build. conventions.md names http.ServeMux as the router, closing a hole that invited hand-rolling a path splitter. The ADR gate now checks a number is registered in the log rather than headed by an entry, so withdrawals resolve and invented numbers still fail. Two architecture invariants corrected: identity no longer implies a required language suffix, and the duplicated permalink clause is gone.
46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# 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](deferred-decisions.md) — five pre-code ADRs demoted to intent; each returns when something implements it. **parked**
|
|
- [specs-as-secondary-artifacts.md](specs-as-secondary-artifacts.md) — optional per-feature specs, derived by default, plus the named-test convention. **parked**
|
|
- [engine-design-review.md](engine-design-review.md) — open design decisions for a multi-type site; items graduate to ADRs one at a time. **parked**
|
|
- [token-conservation.md](token-conservation.md) — cut agent token cost without losing output quality. **parked**
|