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>
This commit is contained in:
2026-09-08 10:37:10 -04:00
co-authored by Claude Opus 5
parent e7d7cc9451
commit b41148f369
8 changed files with 304 additions and 11 deletions
+8 -11
View File
@@ -1,10 +1,11 @@
import { defineConfig } from 'astro/config'
import starlight from '@astrojs/starlight'
import sidebar from './src/sidebar.json' with { type: 'json' }
// The sidebar is autogenerated from directories, so adopting a document and
// re-running `npm run generate` is the whole of adding a page. Nothing here
// names a document; a config that listed them would be a second place to
// update and would go stale silently.
// Nothing in this file names a document or a section. The sidebar is generated
// from .loom/externals/.locks, so adopting anything and re-running
// `npm run generate` is the whole of adding it — a config that listed them
// would be a second place to update and would go stale silently.
export default defineConfig({
site: 'https://loom.hypertheory-labs.dev',
srcDir: './src',
@@ -21,13 +22,9 @@ export default defineConfig({
},
],
editLink: { baseUrl: 'https://git.hypertheory-labs.dev/loom/docs/_edit/main/' },
sidebar: [
{ label: 'Start here', link: '/' },
{ label: 'bedrock', autogenerate: { directory: 'bedrock' } },
{ label: 'externals', autogenerate: { directory: 'externals' } },
{ label: 'annotating', autogenerate: { directory: 'annotating' } },
{ label: 'cart', autogenerate: { directory: 'cart' } },
],
// Generated by scripts/generate.mjs from the locks. Adopting from a new
// repository adds a section here with no edit to this file.
sidebar,
customCss: ['./src/styles/loom.css'],
}),
],