v1 made the cart untracked and did not say what that does to conversion. Every earlier version left the dailies in git, so "gone" was only ever true of the tree; now it is true absolutely, and the agreement was silent. Filed by loom-cli as first adopter, from three rounds: two rules now both push toward loss — act as if the shelf is discarded daily, and the cart is not committed — and neither said what has to be written down first. They staged a write-ahead log as they went and noted they would not have thought of it unsuggested, which is the whole argument for stating it here. Names what must be extracted: every prompt answer, since an answer lands in a notes file which dies at dissolve and an untracked cart has no history to fall back on; every surviving write-ahead entry; and every fallback that quietly became the decision. And the practice that makes it cheap — stage as you go, so conversion is a move rather than a rewrite at the moment you have least appetite for one. This is a defect introduced this afternoon and repaired the same day, on a report from the adopter who hit it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.2 KiB
cart
How two parties work out what something means before one of them changes it — including when neither of them knows.
- The agreement —
v0
A cart is one bounded exchange. It starts, it runs, it converts, and then it is gone. The directory is only where a cart happens.
What it depends on
annotating/v0. Dailies
are annotated, and everything here rests on that.
Four roles it leaves to you
An agreement adopted with these uncast has not been adopted. It has been filed.
- Where a cart lives
- What durable record declines go into
- What isolates work in progress while a cart is open
- Who decides when the round ends — and this one is not a preference. When one party cannot feel a cost, the decision belongs to the party who can. An agent will not feel a cart filling and will keep writing until told to stop.
The agreement asks these as prompts. Answer them where you adopt it, not here.
Known and unresolved
An out-of-scope need has no exit. Conversion emits the artifact and the declines — and a thing that came up, was correctly out of scope, and was neither refused nor decided is neither of those. Today "out of scope" means "lost."
Proposed as a third exit and not yet adopted; it is loom's to make. Recorded in
bedrock's event log, cart
almanac.
Provenance of this copy
Adopted by staribridge/substrate on 2026-08-21 and reconciled to v0 the
same day. Read many times, never edited. If loom's own copy differs, this
one is wrong and should be replaced before anybody adopts it.
v1 — 2026-09-07
Three additions. Adopters of v0 have a reconciliation.
The cart is local and not committed, because a committed cart in a shared repository grows a third daily by itself — the agreement's defence against one assumes somebody asks, and version control does not require anybody to ask. It is also what makes a round actually end: committed, "gone" means "no longer live"; ignored, gone means gone.
The write-ahead log, for findings that are not yet decisions, transferred to the durable record or discarded at conversion. Invented in practice and load- bearing for weeks before it was written down here.
The durable record must outlive the cart, and therefore cannot be inside it.
Implied by "durable" and never stated, so an adopter could have cast it to a path
in .loom/cart/ and this document would not have told them otherwise.
v2 — 2026-09-07
One addition, and it repairs v1 on the day it landed.
Converting destroys. v1 made the cart untracked without saying what that
does to conversion — every earlier version left the dailies in git, so "gone"
had only ever been true of the working tree. Now it is true absolutely, and
the agreement did not say so.
Filed by loom-cli as its first adopter, from three rounds: "two rules now both
push toward loss, and neither says what has to be written down first." They
staged a write-ahead log as they went and noted they would not have thought of it
unsuggested.