diff --git a/.loom/declines.md b/.loom/declines.md deleted file mode 100644 index 7f86ef9..0000000 --- a/.loom/declines.md +++ /dev/null @@ -1,46 +0,0 @@ -# Declines - -**What was considered and not done, with the reason.** *Only a belief can later -be shown wrong, so each says what was believed and not only what was chosen.* - ---- - -## `cart: almanac`, 2026-09-07 - -**A registry service, first.** *Considered for three days and deferred.* **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. *Entry 78. **Wrong if the conventions turn out to need a server to be -usable at all**, which using them will show.* - -**Affordances, stagings, roles and beads, for problems 1 and 2.** *Built out over -three days and then bracketed.* **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. *Entries 69 and 70. **Wrong if the -documentation layer turns out to need decomposition to answer anything -useful.*** - -**Bulk recasting a bead across stagings.** **We believe the list is the migration -plan** — resumable, observable, owned by whoever owns each staging — where a bulk -operation is one uninspectable moment that breaks every consumer at once. *Entry -35.* - -**Signatures on receipts.** **We believe a content hash catches every accident, -and a signature answers an adversary that does not exist** — one tailnet, one -operator. *Entry 41. **Revisit when a consumer must verify without being able to -ask.*** - -**`watch`, and any subscription.** **We believe it would be the first thing -giving the 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. *Entry 72.* - -**Naming what loom kept reaching for — "accommodations", "standard".** **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. -*Entries 45 and 48. **Coin it when we keep needing to say it.*** - -**An `internal/` directory.** **We believe naming the complement of `published/` -invents a category, and one that looks like a security boundary and is not.** -*Entries 29 and 67.* diff --git a/.loom/event-log.md b/.loom/event-log.md index 1479ec3..a3b0c22 100644 --- a/.loom/event-log.md +++ b/.loom/event-log.md @@ -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.*