Skip to content

Extraction candidates

DRAFT (survey of 2026-11-02; extraction not started)

Eight repos in the starlight family, all @wyatt/* at 0.1.0, zero cross-imports, five per-repo types.ts/utils.ts copies with no identical hashes (drift already present). starlight-sites has no src (site content only). starlight-dse-test is a test corpus, not a kit.

ReposrcShape
starlight-kit3 filesplugin-factory + shared-config: the hub in waiting
starlight-interactive-islands6 filesisland registry, auto-import, remark pass
starlight-katex4 filesremark escape + katex css loader
starlight-progress6 filesReadingProgress + CollapsibleTOC components
starlight-multi-site11 fileszod site schema, config merge, deploy emitters
starlight-content-guard17 filescontent validators (frontmatter, links, math, images, mdx)
starlight-cross-domain-sync4 filestheme sync script
shroom-theme3 filestheme generator

Extraction plan (Rust-estate playbook: pull from consumers, one concern each)

Section titled “Extraction plan (Rust-estate playbook: pull from consumers, one concern each)”
New kitAbsorbsRigor anchor
@est/starlight-pluginstarlight-kit factory + multi-site config mergezod schema fixtures (one definePlugin, validated config)
@est/content-guardcontent-guard validators (pure functions)a bad-content fixture corpus (frontmatter/links/math/mdx)
@est/islandsinteractive-islands registry + auto-importregistry fixtures
@est/deploy-targetsmulti-site deploy emittersemitted-output golden files (cloudflare, GH Actions)
@est/mathstarlight-katex remark + css loaderrender fixtures
theme tokensshroom-theme + cross-domain-syncCSS custom properties generated from the Rust theme-kit (one token source, both ecosystems)

The web estate’s own docs app (Starlight) is the first consumer: @est/content-guard in its CI is the docs gate for MDX, and the docs config migrates to @est/starlight-plugin. core status for each new kit starts the day the docs app pins it.

  • npm scope migrates @wyatt/* to @est/* (one convention across the web estate; the old names are frozen at 0.1.0 and unpublished).
  • commander+picocolors and zod appear in two repos each; the kits absorb them as shared dependencies, not per-repo copies.
  • starlight-dse-test stays a corpus; nightjar, WyattsNotes are content repos, not extraction targets.