Files
bedrock/.loom/published/publication.md
T
jeffryandClaude Opus 5 6dcc06ab1c publication requires a reader; recording-decisions allows compaction
Both from gap files loom-cli filed as the first real adopter of externals.

publication.md: "publishing is not an act you can complete alone" existed only in
a sibling document as an aside about a tool. It is a property of the act and now
says so, along with the fact that publication has a visibility — which externals'
confidentiality rule depends on entirely and this document never mentioned.

recording-decisions.md: "never revised" and "must be readable" conflict far enough
out. Adopts loom-cli's rule verbatim in substance — drop what the artifact could
recover, never drop a decline, a measurement, a belief shown wrong, or a
supersession — because compaction is safe in exactly the cases where the entry was
redundant and unsafe in exactly the cases the log exists for.

Entries 79-81. annotating's gaps are left standing on purpose; it is the most
depended-on document and its revision is Jeff's call.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 16:02:24 -04:00

54 lines
2.3 KiB
Markdown

# Publication
**What a repository has handed over for others to depend on lives in
`.loom/published/`.**
> **Publishing is a change of kind, not a change of status.** *An unpublished
> document is an implementation detail you may rename at will. **A published one
> is a contract.***
**So publication is an act somebody performs** — a file moves in — **and the move
is a diff that shows up in review.** *A flag in frontmatter is a line nobody
notices; this is the moment a thing becomes somebody else's problem, and it
should be unmissable.*
**`ls .loom/published/` is *what have we committed to?*** — and it is the question
to ask before changing anything.
## Publishing is not an act you can complete alone
**A file in `.loom/published/` that its intended readers cannot fetch is not
published.** *The move is the act, but the act is not finished until somebody who
is not you can perform the read.*
> **The failure is invisible from the inside.** *Every check available to the
> publisher passes — the file is there, the commit landed, the path is right.*
> **Only a reader can detect it, and a reader who cannot fetch it does not know
> the document exists to ask about.**
*The commonest form is a document that answers "why can you not see this?" and is
published **inside** the thing that cannot be seen.*
**So publication has a visibility, and it is a property of the act rather than of
the file.** *"Others" is not "everyone".* **Naming who the readers are is part of
publishing**, because a repository that depends on this one has to know whether it
is inside that set — *and because a reader who copies a document out inherits the
copy without inheriting the visibility it was published under.*
**The test is a fetch you did not perform.**
## What is published is a document
**Prose, in whatever form its readers need.** *If a repository organises its
thinking some other way internally, that is its own business:* **a consumer
cannot tell whether it did, and must not need to.**
> **What is not exported is not hidden.** *The rest of the repository is there to
> read. It is simply not what you depend on.*
## There is no directory for what is unpublished
**Everything else is simply elsewhere in the repository.** *Naming the complement
invents a category — and a directory called `internal/` would look like a
security boundary and not be one.*