tansy converts: three entries, no shelf

Publishes what the tool guarantees, on a condition that fired rather than a
decision reversed. Records the narrower promise that replaced promising the command
surface — a change to it lands on the page consumers already lock, so a rename
reports 200 the day it happens.

And records a limit found by accident that follows from a guarantee rather than
from anybody's code: an ETag is opaque, we promise never to interpret one, so two
of them can be compared and never ordered. A consumer can know two versions
disagree and can never know which is behind. Anybody building freshness on this
inherits it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018UTxuSizozEA8yDitPuris
This commit is contained in:
2026-09-08 10:48:47 -04:00
co-authored by Claude Opus 5
parent d3fec24bc6
commit 045924ec36
3 changed files with 81 additions and 1 deletions
+59
View File
@@ -1092,3 +1092,62 @@ three times, and then declined.*
*Recorded as a working note rather than a decision: **when a word could be read
narrowly or broadly, this repository has evidence that I pick narrow.***
## 2026-09-08 — published: what the tool guarantees `tansy`
**`.loom/published/guarantees.md`**, *and step 4 of `publication` was run: `200`
anonymously, off no credential of ours.*
**The earlier decision did not reverse; its condition fired.** *`.loom/published/`
was recorded as deferred rather than declined, on the condition that somebody
depends on the tool's behaviour rather than reading its help.* **A docs site whose
build calls `add`, `check` and `apply` is that consumer.**
*The delta is not the command list — that is a copy of what the code owns.*
**`--help` says what the tool does; a published page says what will keep being
true**, *and a reader cannot learn from a binary which of its behaviours survives
the next version.*
**The page includes what is not promised**, *which is the half a reimplementation
needs most:* **the command surface, the orientation file's format across
versions, the precision of the visibility signal, and that anything is checked
when nobody is looking.**
## 2026-09-08 — we do not promise the surface; we promise the change lands `tansy`
**A consumer's README tells a person to type `loomctl external add loom/<repo>
<doc>.md`.** *Nothing parses it — which is exactly why no check would catch a
rename.* **The thing that moved would not be a document anybody adopted.**
**Promising the surface would freeze the CLI. So the promise is narrower and
runs:**
> **We do not promise the surface holds. We promise a change to it lands on the
> page you already lock.**
*`guarantees.md` carries an append-only `Surface changes` section*, **so a rename
reports `200` to every consumer the day it happens.**
**Belief that could be shown wrong:** *that anybody remembers to write in it.*
**Nothing enforces the section***the same weakness as a facet nobody updates.*
## 2026-09-08 — two ETags can be compared and never ordered `tansy`
**Found by accident, and it is a consequence of a rule we published this
morning.**
*The docs site stamped a hand-written guide with the `ETag` it was read against,
and its banner said `written against an older guarantees`.* **It was backwards:
the guide was ahead of the site's copy, not behind.**
**And it cannot be fixed by trying harder.** *An `ETag` is opaque — that is the
point of it, and we guarantee we never interpret one.* **So a consumer can know
that two versions disagree and can never know which is behind.**
*The banner now claims no direction.* **Anybody building freshness on this
inherits the same limit**, *and it belongs in the log because it follows from the
guarantee rather than from anybody's code.*
*Consequence nobody predicted: reconciling cleared the banner with no
acknowledgement, which is correct — an acknowledgement is for a guide that is
behind, and this one was ahead.*