Verification & release

The gates used to verify source, generated output, real consumer installs and documentation behavior.

Source contracts

npm run lint --prefix registry
npm run build --prefix registry
npm run sync:docs --prefix registry
npm test --prefix registry
npm run check:generated --prefix registry
npm run lint --prefix docs
npm run typecheck --prefix docs
npm run build --prefix docs

Registry tests verify dependency closure, documented examples, theme contracts and generated-source assumptions before browser work begins.

Generated equality

  • registry/registry.json, both public endpoint copies, theme CSS and bootstrap are source-derived.
  • check:generated requires byte-equivalent generated output and matching item lists.
  • The final clean-generation step rejects tracked diffs and unexpected untracked files.

Consumer installation

  • Aggregate scenarios cover fresh/existing Vite and Next.js projects, real shadcn installs, custom aliases and application-owned CSS/source preservation.
  • The independent matrix derives every file-bearing item from the built catalog.
  • Templates build in fresh Next.js projects; other items build independently in both Next.js and Vite.
  • The independent matrix is sharded across three CI jobs to keep the release gate finite.

Browser verification

  • Chromium, Firefox and WebKit exercise installed consumer interactions without documentation CSS.
  • Documentation Playwright checks localized routes, light/dark layouts, mobile reflow, templates, charts and recovery states.
  • Failure evidence is retained under docs/test-results by CI artifacts.

Release boundaries

  • A passing local or CI build does not claim shadcn directory approval or deployed-domain equivalence.
  • Live-domain verification must match the exact deployed commit and public registry endpoints.
  • License and attribution are a separate legal release gate; they are not inferred from repository ownership.