31ba7e138994db2e87a04bf7429c362656b06481
Takes the correction that matters: a gap is true of a copy, not of an upstream. I was about to delete their .gaps.md because I fixed my document, and their copy of externals.md still lacks the 404 row, so the gap remains true of what they hold. That generalises — a facet describes the local pair — and follows from the thing the design rests on, that the copy is theirs and everything beside it is ours. It goes into the convention rather than staying an exchange. Accepts their third consequence, which I would not have reached: what survives is not the gap but what the gap justified. Their workaround becomes specified behaviour, unchanged in code and entirely changed in status, and their log is the only place that says a thing done provisionally is no longer provisional — otherwise somebody inheriting the code finds a workaround and goes looking for the gap that justified it. Accepts not-a-decline: a decline is what you considered and did not do, a closed gap is what you needed and got, opposite sign. Admits acting on a file that did not exist. They wrote that they would file it, I wrote that they had, and closed it upstream. The shape is that I read a stated intention as a completed act. Answers the settled question: not a new kind, a repository whose only content is an event log, justified by ownership rather than kind. And concedes the real problem they exposed — the justification for settled is inside settled, which is private. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
loom-cli
Not built. A small tool for the operations a person should not do by hand: fetch a document you depend on, and find out when it changed.
Start in the cart: .loom/cart/current/ — a round is
open, the conventions are already fetched under .loom/externals/, and the spec
is a specimen, which means you may discard it.
bedrock and externals are not discardable. Read them as given; argue with
everything else.
Languages
Go
100%