v1: the cart is local, the write-ahead log, and the durable record outlives it
Three additions, and adopters of v0 have a reconciliation. The cart is not committed. The reason is not tidiness — a committed cart in a shared repository grows a third daily by itself, because this document's defence against one assumes somebody asks for it and version control does not require anybody to ask. Anyone who can clone can add theirs and the "does it transfer or die" test is never invoked. It is also what makes a round end: committed, a cart is gone from the tree and permanent in history, so gone means no longer live and negotiation stays quotable; ignored, gone means gone. The cost is stated — two presences who do not share a filesystem cannot use a cart, which is the right limit, since reaching for one across machines is how it becomes a chat log. The write-ahead log, for findings that are neither questions nor decisions, with the same two exits as a polad at conversion and for the same reason. It was invented in practice and load-bearing for weeks before appearing here. With the rule that matters: write why it is not yet an entry, or whoever finds it will promote it on the strength of it having been written down. And the durable record must outlive the cart and therefore cannot be inside it — implied by "durable", never stated, so an adopter could have cast it to a path in .loom/cart/ and this document would not have told them otherwise. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+47
-2
@@ -1,6 +1,6 @@
|
||||
# Agreement — the cart
|
||||
|
||||
**v0.** Depends on `annotating/v0`.
|
||||
**v1.** Depends on `annotating/v0`.
|
||||
|
||||
**How two parties work out what something means before one of them changes it.**
|
||||
|
||||
@@ -104,9 +104,54 @@ already rejected, and the rejection is gone because it lived in an annotation
|
||||
that died with the round.
|
||||
|
||||
**A decline needs no file of its own.** It is an entry in whatever durable record
|
||||
you keep, and **it should say what you believed, not just what you chose** — only
|
||||
you keep — **which must outlive the cart**, *and therefore cannot be inside it* — and **it should say what you believed, not just what you chose** — only
|
||||
a belief can later be shown wrong.
|
||||
|
||||
## The cart is local, and that is what keeps it to two files
|
||||
|
||||
**A cart is two developers working side by side.** *Everything else — the wider
|
||||
team, the people who need to know, the thing that has to be tracked — is issues,
|
||||
chat, whatever you already have.* **This is not that channel and it does not scale
|
||||
into one.**
|
||||
|
||||
> **So the cart is not committed.** *It lives in the working tree of the machine
|
||||
> the two presences share, and `.loom/cart/` is ignored by version control.*
|
||||
|
||||
**The reason is not tidiness. A committed cart grows a third file by itself.**
|
||||
*The rule above defends against somebody asking for one; **version control does
|
||||
not require anybody to ask.*** *Anyone who can clone can add `joe-rose.md`, and
|
||||
then `sue-rose.md`, and the agreement's defence — **what happens to this file when
|
||||
the person changes?** — is never invoked, because nobody ever had the
|
||||
conversation.*
|
||||
|
||||
**This is also what makes a round actually end.** *Committed, a cart is gone from
|
||||
the tree and permanent in history — **so "gone" means "no longer live" and
|
||||
negotiation stays quotable forever.*** **Ignored, gone means gone**, which is what
|
||||
the round dying was for.
|
||||
|
||||
*The cost, stated: **two presences who do not share a filesystem cannot use a
|
||||
cart.*** *That is a real limit and it is the right one — if you need a medium
|
||||
between machines, you need the other channel, and reaching for a cart there is
|
||||
how it becomes a chat log.*
|
||||
|
||||
## What is not yet a decision goes in the write-ahead log
|
||||
|
||||
**A round produces things that are neither questions nor decisions:** *something
|
||||
observed, something that may turn out to be noise, something you would kick
|
||||
yourself for losing and cannot yet justify writing down.*
|
||||
|
||||
**`event-log.wal.md`, in the cart.** *Findings, not decisions.* **Nothing in it is
|
||||
durable and nothing in it has been decided.**
|
||||
|
||||
**At conversion, each entry either becomes an entry in the durable record or is
|
||||
discarded.** *Same two exits as a polad, and for the same reason: **conversion is
|
||||
when you know most about it.***
|
||||
|
||||
> **Write the reason it is not yet an entry.** *An observation you cannot justify
|
||||
> promoting is worth keeping; **one you have not said why you are hesitant about
|
||||
> will be promoted by whoever finds it, on the strength of it having been written
|
||||
> down.***
|
||||
|
||||
## Where a cart lives, and the shelf
|
||||
|
||||
**A fixed path, and at most two things in it:**
|
||||
|
||||
@@ -44,3 +44,23 @@ refused nor decided is neither of those.* **Today "out of scope" means "lost."**
|
||||
**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.*
|
||||
|
||||
Reference in New Issue
Block a user