No description
Find a file
Jesús Pérez 56d3c10d9e site: put the ADR projection in the build chain, and a contract outside the data tree
Two failures, one shape: something living in a tree whose consumers assume it holds
only something else.

adr-pages: gen-adr-pages.nu existed but no recipe called it, so the ADR projection
silently stopped tracking the spine — ADR-059..069 were written months ago and never
reached the site. A generator outside the dependency chain is a generator that does
not run. Wired into sync-full ahead of `content` (it emits the markdown that content
indexes), and it is idempotent: this commit carries no ADR diff because regenerating
reproduces the tree byte for byte.

graph: gen-content-graph nickel-exports every .ncl under site/content, and
expedientes/_schema/expediente.ncl was a CONTRACT, not an instance — export demanded
`id` and the recipe aborted. `just graph` had been dead since expedientes landed. The
generator was right and the file was in the wrong tree: site/content/ holds instances,
so a schema there is a category error. Moved to site/schemas/expediente.ncl; the one
sidecar that imports it still type-checks against the contract. graph now builds
(mini:154 related:222 ontology:15).

sync-full ordering: graph / adr-map / about-json ran AFTER content, but the leg that
copies the four nu artifacts into the serve tree lived INSIDE content — so a full sync
left site/r rendering the previous run's About and ADR map. Added sync-artifacts as the
final link. Both trees now agree on all four.

Gates
-----
adr-check  spine vs site: fails if the spine holds an ADR the site never published.
           Verified by deleting adr-069 — the gate caught it (69 vs 68, exit 1) and
           sync-full rebuilt it unattended.

This is the third gate (with templates-check and posts-check) and, like the others, it
runs before the damage, not after. None of them run on deploy yet: `just authoring
publish` still ships without asking. That is what keeps these gates a habit rather
than a law — and is the subject of the governed-delivery ADR still to be written.

Refs: ADR-066 (the check decides, never the reporter).

Versión corta, si la prefieres:

site: wire the ADR projection into the build chain; move a contract out of the data tree

gen-adr-pages existed but no recipe called it — eleven ADRs never reached the site. Now in
sync-full, with an adr-check gate that fails when the spine holds an ADR the site doesn't.
`just graph` had been dead since expedientes landed: a schema sat inside site/content/, which
gen-content-graph nickel-exports as if everything there were an instance. Moved to
site/schemas/. Also fixed sync-full ordering so the serve tree stops rendering the previous
run's About and ADR map.
2026-07-12 00:02:01 +01:00
site site: put the ADR projection in the build chain, and a contract outside the data tree 2026-07-12 00:02:01 +01:00
README.md init repo 2026-07-06 03:39:15 +01:00