6 Commits
Author SHA1 Message Date
jeffryandClaude Opus 5 26f8b98dc6 venues get a document, written from entry 6
Four documents used the word and none defined it. cart.md leaned on it hardest —
an authority claim entering as a venue fact carries a reason and can be shown
wrong — which is a real mechanism resting on an undefined term.

It is bedrock's because venues/ is one of the directories starting.md already
lists beside published/ and gaps/. A concept named in the primitives was being
half-defined in a downstream convention's four-line aside, which is the same
diagnosis loom-cli made about publication two days ago. Second instance of that
shape.

Nothing is invented: entry 6 settled this on 2026-09-05 and the table is that
entry's. New here is that a venue file is local because it has no upstream, and
that it goes stale in a way no fetch can detect — so it needs the reason
underneath the choice or it cannot be checked at all.

Entry 84.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 10:54:52 -04:00
jeffryandClaude Opus 5 ffa56daa41 publication says how; starting.md points at an example you can fetch
publication.md gains the procedure, with "fetch it, from somewhere that is not
your machine and not your account" as its own step. Steps 1-3 are things you do;
step 4 is a fact about the world you find out, which is why it is the one that
gets skipped. Declined a separate procedural document: publishing.md beside
publication.md is two files one letter apart, and the gap filed was that this
document was underspecified.

starting.md still described the worked example as private and refused to link it.
It went public four days ago. The first page a newcomer reads was demonstrating
its own lesson instead of teaching it.

Entries 82-83.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 08:58:17 -04:00
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
jeffryandClaude Opus 5 cc95488726 stop pointing a public page at a private example
loom-cli's builder measured all three things we had published and none could be
fetched by somebody who is not us: settled 404, .loom fetchable but not where a
reader lands, and homelab-cluster 404 while this page named it as the canonical
answer. Three for three.

A public page naming a private thing as its canonical answer is worse than no
example — it costs the reader a request and their confidence in the rest of the
page. The page now says the example exists, is private, and why, and does not
link it.

The diagnosis is theirs and worth keeping: publication was being treated as a
change of directory rather than the act publication.md describes. Moving a file
into published/ is not publishing; the file becoming fetchable is.

And reachable, the command we nearly cut for being a third kind of thing, found
all three on the day it would have shipped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 13:46:20 -04:00
jeffryandClaude Opus 5 0c61c7a42d a decline is an entry — fold declines.md into the event log
loom asked whether .loom/declines.md was a thing or had drifted. It had drifted:
written during the conversion of cart almanac because the cart agreement says a
round emits the artifact and the declines, and made a separate file without
checking against .loom/published/recording-decisions.md, published in this
repository an hour later, which says declines belong in the event log.

A decline is a decision — what you considered and did not do, with the belief
that could later be shown wrong. Splitting them loses the ordering between what
we did and what we did not, and makes a reader know to look in two places.

The seven declines from almanac are now entries, followed by an entry recording
the fix and its general form: a second file for a special case of something that
already has a home is drift, and it is easiest to catch by reading your own
published rules back.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 10:40:01 -04:00
jeffryandClaude Opus 5 42d963d24f the four primitives
Depended on by the conventions built on this, and depending on none of them.

- the .loom directory — everything lives there, a directory means a kind, a
  stream is a file. Fixes .loom/ and deliberately not which kinds exist.
- sibling facets — x.<facet>.md beside x.md, owned by whoever wrote the facet,
  never by whoever wrote x.md. Plus the three choices a convention must make.
- recording decisions — what an entry says, why it is never revised, and why it
  has no status field.
- publication — the act, the contract, and that what is published is a document.

Also carries the event log and declines from cart `almanac`, which ran 2026-09-04
to 2026-09-07 and produced seventy-eight entries. Read it forwards; entry 69 is
where it changes its own mind and brackets most of what came before.

The git history here starts now. The event log is the history that matters.

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