Depended on by the conventions built on this, and depending on none of them. - the .loom directory — everything lives there, a directory means a kind, a stream is a file. Fixes .loom/ and deliberately not which kinds exist. - sibling facets — x.<facet>.md beside x.md, owned by whoever wrote the facet, never by whoever wrote x.md. Plus the three choices a convention must make. - recording decisions — what an entry says, why it is never revised, and why it has no status field. - publication — the act, the contract, and that what is published is a document. Also carries the event log and declines from cart `almanac`, which ran 2026-09-04 to 2026-09-07 and produced seventy-eight entries. Read it forwards; entry 69 is where it changes its own mind and brackets most of what came before. The git history here starts now. The event log is the history that matters. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.1 KiB
Recording decisions
An entry says what was decided, what it is believed to advance, and the belief that could turn out false.
Only a stated belief can later be shown wrong. "To satisfy §4" is a citation, not a reason — it points at a label. A constraint whose reason cannot be found gets re-litigated as a defect by whoever inherits it.
Appended, newest last, never revised. A later entry supersedes an earlier one by saying so. A revised record cannot show that anybody changed their mind, which is most of what a reader wants from it.
No status, no assignee, nothing to process. The moment an entry can be "not yet applied", somebody must track which ones are — and the record becomes a work tracker, which is how a thing that outlives its authors turns into a queue nobody reads.
Declines belong here too
What you considered and did not do, with the reason you did not.
Almost nobody writes these, and three weeks later somebody proposes the thing you already rejected — because the rejection lived somewhere that did not survive.
Where it lives
.loom/event-log.md. A stream, so a file.