refactor: adopt sitekit as the site model and renderer - #1
Merged
Conversation
…the shared package Substrata becomes sitekit's reference consumer, per orangecat ADR-0003. - config/site-content.ts re-exports the types and helpers from sitekit and keeps only the wiring that says which pages this site has; the local copy of the section union and all of components/ are deleted (-577 lines of renderer that now improve every generated site when fixed once). - The chrome takes next/link through sitekit's Link seam, and the canonical host moves into the chrome spec. - globals.css gains @source for the package dist so Tailwind emits the semantic classes the renderers use. Tokens stay 100% local — that is the contract: uniform system, divergent aesthetics. - verify's test gate is real for the first time: 'jest --passWithNoTests' referenced a jest that was never installed, so the gate was a no-op on every fresh install. Replaced with tsx --test and an actual test that validates the ENTIRE site content against the sitekit schema — a schema change that would break this site now fails in CI here. Verified: type-check, lint, 3/3 tests, full production build (10 static pages), semantic classes present in emitted CSS. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AZCNYHwjEeqxNpYCUk6Yna
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Substrata becomes sitekit's reference consumer — Site Factory phase 1, per orangecat ADR-0003 (#799).
What moved out
The section union, the page/chrome model, the helpers, and all 577 lines of renderers now live in
sitekit(v0.1.1, installed fromgithub:bitbaum/sitekit).config/site-content.tskeeps re-exports plus the wiring that says which pages this site has; content stays insite-substrata.ts; tokens stay 100% local — the package ships semantic classes only, which is the contract: uniform system, divergent aesthetics.What the conversion caught
'use client'and the injectedLink(a component function) can't cross the server→client boundary. Fixed upstream in v0.1.1: the nav is a server component and only the scroll-into-view effect is client, taking a string. The first consumer did its job.jest --passWithNoTestsreferenced a jest that was never in devDependencies, soverify's third gate was a no-op on every fresh install (the exact classverify-floor-audit.shhunts). Replaced withtsx --testand a real test: the entire site content validates against the sitekit schema, so a schema change that would break this site fails here in CI before it ships to any generated site.Verified
@sourceworks)data-sitekit-nav)🤖 Generated with Claude Code
https://claude.ai/code/session_01AZCNYHwjEeqxNpYCUk6Yna