v2: converting destroys, so extract first
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>
This commit is contained in:
+29
-1
@@ -1,6 +1,6 @@
|
||||
# Agreement — the cart
|
||||
|
||||
**v1.** Depends on `annotating/v0`.
|
||||
**v2.** Depends on `annotating/v0`.
|
||||
|
||||
**How two parties work out what something means before one of them changes it.**
|
||||
|
||||
@@ -92,6 +92,34 @@ words.** That costs precision and buys something better:
|
||||
> **Pinning a defect in place lets you be exact without having understood.
|
||||
> Restating surfaces the misunderstanding that pinning hides.**
|
||||
|
||||
## Converting destroys, so extract first
|
||||
|
||||
**The cart is not committed. So conversion does not archive it — it deletes it.**
|
||||
*Every earlier version of this agreement was wrong about that by accident: a
|
||||
committed cart left its dailies in history, and "gone" was only ever true of the
|
||||
tree.*
|
||||
|
||||
> **At conversion the cart is the only copy of everything in it.** *The dailies,
|
||||
> the annotations, the answers to every prompt, and the write-ahead log.*
|
||||
|
||||
**So before converting, extract:**
|
||||
|
||||
- **every answer to a `Question`, `Select` or `Affirm`** — *an answer lands in a
|
||||
notes file, a notes file dies at dissolve, and an untracked cart has no history
|
||||
to fall back on.* **A prompt answered and not extracted was never answered.**
|
||||
- **every write-ahead entry that survived** — *promote or discard, and both are
|
||||
acts.*
|
||||
- **every fallback that quietly became the decision** — *say so in the entry, in
|
||||
those words.*
|
||||
|
||||
**Staging as you go turns conversion into a move rather than a rewrite.** *Keep
|
||||
the write-ahead log current during the round and there is nothing to reconstruct
|
||||
at the end, which is when you have least appetite for it.*
|
||||
|
||||
*Two rules in this agreement now both push toward loss — **act as if the shelf is
|
||||
discarded daily**, and **the cart is not committed.** They are both right and
|
||||
together they mean **nothing in a cart is safe by default.***
|
||||
|
||||
## Conversion emits two things
|
||||
|
||||
**The artifact** — the code, the decision, the change — **and the declines.**
|
||||
|
||||
Reference in New Issue
Block a user