src/: Rust backend, router, services, CLIweb/: React + Vite app and Storybookdocs-site/: public Rspress docs sitedocs/: internal design docs, specs, and historical planning materialThe GitHub Pages workflow builds docs-site and Storybook separately, then assembles them into a
single static artifact with Storybook mounted under /storybook/.
main now follows a repo-local quality-gates contract: PR-only for everyone, strict required checks, signed commits, no force-push, no branch deletion, and admin enforcement enabled.Quality Gates ContractRelease intent label gateWorktree Bootstrap SmokeWeb AssetsLint & ChecksBackend Shard PlanBackend TestsFrontend ChecksCompose Smoke (ForwardAuth + Caddy)Build (Release)Docs Pages GateDocs Pages Gate is the only required docs-surface check. build-docs, build-storybook, and assemble-pages stay visible as leaf checks for failure triage; when a PR is unrelated to docs/site/Storybook, the gate returns success/no-op instead of disappearing.CI Pipeline handles Rust checks, backend tests, and compose smoke coverage.Docs Pages now evaluates scope on every PR and main push; when docs/web/README/root .bun-version/assemble inputs are relevant it builds docs-site + Storybook and deploys Pages, otherwise it only emits the no-op Docs Pages Gate success.Release publishes container releases based on PR intent labels.After authenticating gh on a maintainer machine, run:
This validates:
.github/quality-gates.json schema and workflow inventorymain branch protection required checks / strict mode / admin enforcement / force-push / deletion statemain required signatures (signed commits)To regenerate the branch-protection payload before syncing with gh api, run: