a decline is an entry — fold declines.md into the event log

loom asked whether .loom/declines.md was a thing or had drifted. It had drifted:
written during the conversion of cart almanac because the cart agreement says a
round emits the artifact and the declines, and made a separate file without
checking against .loom/published/recording-decisions.md, published in this
repository an hour later, which says declines belong in the event log.

A decline is a decision — what you considered and did not do, with the belief
that could later be shown wrong. Splitting them loses the ordering between what
we did and what we did not, and makes a reader know to look in two places.

The seven declines from almanac are now entries, followed by an entry recording
the fix and its general form: a second file for a special case of something that
already has a home is drift, and it is easiest to catch by reading your own
published rules back.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-07 10:40:01 -04:00
co-authored by Claude Opus 5
parent 42d963d24f
commit 0c61c7a42d
2 changed files with 91 additions and 46 deletions
+91
View File
@@ -3489,3 +3489,94 @@ buys aggregation and a self-describing surface, and it buys them after the
conventions have been used enough to know their shape.** Entry 12 said there is a
server and that is unchanged — **this says what it is for, and that it is not
first.***
---
**Declined** (2026-09-07, loom + claude-substrate — `cart: almanac`): **a registry
service, first.** *Considered for three days.*
**Because** we believe a git host already provides a document with an owner, an
address, an `ETag`, history and rendering — **so the service buys aggregation and
a self-describing entry point, and buys them better after the conventions have
been used.** *Wrong if the conventions turn out to need a server to be usable at
all, which using them will show.*
---
**Declined** (2026-09-07, loom + claude-substrate — `cart: almanac`):
**affordances, stagings, roles and beads, for infrastructure and practice
description.** *Built out over three days and then bracketed.*
**Because** we believe the model is for describing software above its
implementation, and **that infrastructure and practice description is a different
altitude** being forced into it. *Wrong if the documentation layer turns out to
need decomposition to answer anything useful.*
---
**Declined** (2026-09-07, claude-substrate — `cart: almanac`): **bulk recasting a
bead across stagings.**
**Because** we believe the list is the migration plan — *resumable, observable,
and owned by whoever owns each staging* — where **a bulk operation is one
uninspectable moment that breaks every consumer at once.**
---
**Declined** (2026-09-07, claude-substrate — `cart: almanac`): **signatures.**
**Because** we believe a content hash catches every accident, and **a signature
answers an adversary that does not exist** — one tailnet, one operator. *Revisit
when a consumer must verify without being able to ask.*
---
**Declined** (2026-09-07, claude-substrate — `cart: almanac`): **`watch`, and any
subscription.**
**Because** we believe it would be **the first thing giving a registry persistent
knowledge of its consumers**, which is the line drawn at *a pin is not a
subscription* — and a conditional `GET` suffices for documents that change
monthly.
---
**Declined** (2026-09-07, claude-substrate — `cart: almanac`): **naming the thing
we kept reaching for** — *"accommodations", "standard".*
**Because** we believe it is **a lifecycle stage with a measurement rather than a
kind needing a name**: *a specification is a thing that names roles and casts none
of them.* **Coin it when we keep needing to say it**, which is a better reason
than noticing a gap.
---
**Declined** (2026-09-07, claude-substrate — `cart: almanac`): **an `internal/`
directory.**
**Because** we believe naming the complement of `published/` invents a category —
**and one called `internal/` would look like a security boundary and not be
one.**
---
**Decided** (2026-09-07, loom + claude-substrate — `discovered`, `cart: kestrel`):
**a decline is an entry.** `.loom/declines.md` is removed and its seven entries
are above.
**Advances** one record rather than two, and the ordering between *what we did*
and *what we considered and did not* being visible.
**Because** loom asked whether `declines.md` was a thing or had drifted. **It had
drifted** — written during conversion because the cart agreement says a round
emits the artifact **and** the declines, and made a separate file without checking
against the primitive published in this repository an hour later. *Which says, in
so many words, **declines belong here too.***
> **A decline is a decision: what you considered and did not do, with the belief
> that could later be shown wrong.** *Splitting them loses the ordering, and
> makes a reader know to look in two places.*
*The general form, worth having: **a second file for a special case of something
that already has a home is drift**, and it is easiest to catch by reading your own
published rules back.*