Commit Graph
3 Commits
Author SHA1 Message Date
jeffryandClaude Opus 5 2d766d0a72 the guide, reconciled — and the banner was confidently backwards
Adopts the loom-cli guide the builder wrote, and reconciles guarantees.md, which
grew an append-only "Surface changes" section: the promise is not that the command
surface holds, but that a change to it lands on the page we already lock. A rename
reports 200 here the day it happens.

The banner said "written against an older guarantees". It was wrong. The guide was
stamped against a version newer than our copy — the builder had pushed and we had
not reconciled — and the message claimed a direction it cannot possibly know,
because an etag is opaque and two of them cannot be ordered. That opacity is the
point of the lock. The banner now says only that the two differ, and names both
ways out.

It also means reconciling cleared this banner with no ack, which is correct: ack
is for a guide that is behind, and this one was ahead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 10:45:29 -04:00
jeffryandClaude Opus 5 b41148f369 adopt loomctl's guarantees, and generate the sidebar from the locks
The sidebar named its four sections by hand, so adopting from a new repository
needed a config edit — a second place to update, which is exactly what the
autogenerated directories were already avoiding one level down. It is written
from the locks now and astro.config.mjs names nothing.

guarantees.usages.md is the first usages facet here with a short real answer,
because this site is built with the tool: check-reports-does-not-fix is what lets
npm run check run in CI, and the etag being the publisher's verbatim is what the
guide stamps are.

It also records what we lean on that the page explicitly does not promise — the
command surface, quoted in our README. A renamed command breaks our documentation
and not our build, and no check will catch it, because the thing that moved is
not a document we adopted.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 10:37:10 -04:00
jeffryandClaude Opus 5 969524b8ea the loom conventions, rendered — and adopted the way the conventions say
Astro Starlight over .loom/externals/. Every reference page is a copy of a
document published by another loom repository, adopted with loomctl, locked to
the etag it was fetched at. Nothing is written twice.

Two kinds of page. Generated ones are overwritten every build because nobody
typed them. Guides are hand-written, never overwritten, and stamped in
frontmatter with the etags they were written against; when a source moves, the
build renders a banner onto the page asking whether it is still true. It cannot
answer that — only a person can — so it asks where a reader will see it too, and
the site degrades honestly instead of reading as authoritative and being wrong.
npm run ack is the person saying they re-read it.

Declined: having the build stage a polad into the cart. loomctl external check
does that and is right to, but a docs build runs in CI and in worktrees where
there is no cart, and staging a polad is an act of judgment. The build reports;
a person raises.

The guides are worked examples rather than explanations, deliberately. An
explanation is a second saying of a rule owned on the page beside it and goes
stale silently; an example goes stale visibly, because the artifacts in it are
the wrong shape.

Generation is byte-deterministic — locks are walked in path order, no timestamps
— because the diff is most of the value.

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