The upstream cart.md change was planted to test whether the tool would notice, and the honest sequence is that check did not catch it. Every document was unlocked, and unlocked means I cannot tell you. add revealed the change by overwriting the file, and the only reason the diff was visible is that git happened to be watching the working tree. So the mechanism is proven and the workflow is not: a document nobody has locked is a document nobody is checking, silently. Fixes the defect that exposed. add reported only "adopted" while overwriting local content that differed from what the publisher serves — and a differing copy is the only evidence that something moved while the document was unlocked. It now says so. Recorded with its own limit: add still overwrites rather than stashing, so outside a git working tree the note says something was lost without letting you see it. Also records the unowned half. Nothing decides when check runs, and every answer — a hook, CI, an agent's session start, a schedule — is outside the tool. Filed as a need with no owner rather than built, because choosing one would put a scheduler inside a fetcher and a comparator, with the falsifier that if nobody ever runs check unaided then a tool that reports only when asked reports nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018UTxuSizozEA8yDitPuris
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.
The design is in .loom/event-log.md, not in a spec.
Every entry says what was decided and the belief that could turn out false, so
you can see which parts are load-bearing and which were guesses. Everything
tagged osprey was decided in one round.
Three commands. pull adopts a document and writes its lock; check asks
every publisher whether their copy has moved; reachable asks whether somebody
who is not you can fetch what you published. None of them repairs anything.
bedrock and externals, under .loom/externals/, are not
discardable. Read them as given — accommodating them is what makes this a loom
tool rather than some other thing.