Developer / Operator
Architecture, module boundaries, quality gates, deployment, and how to keep docs in sync with code.
This area is for engineers and operators running and extending Heimdallone.
Topics
- Architecture — TanStack Start + oRPC + Drizzle on a Bun/Turborepo monorepo.
- Module boundaries — each module owns its domain; coordination layers link, never mutate.
- RBAC — byte-aligned helpers between server and client; deny-by-default.
- Quality gates —
check-types,build, permission audit, lint baseline, verify scripts. - Migration scripts — read-only v1 access, scratch-only writes, reconciliation.
- Deployment — apps and the docs site.
Keeping docs in sync
Documentation is part of the product. When the UI, a workflow, permissions, or a
module changes, the relevant docs in this site change with it — ideally in the same
commit. See the Documentation Rule in AGENTS.md.
Operator / cutover documents (internal)
These live in the repository under docs/migration and docs/architecture — they
are the developer/operator record (plans, exact commands, evidence), not product
help. They are intentionally not part of the user-facing docs above:
docs/migration/phase-21p-cutover-authorization.md— owner sign-off packet (decision checklist + freeze checklist + GO/NO-GO).docs/migration/v1-to-v2-cutover-runbook.md— exact cutover commands (labelled do-not-run-until-approved).docs/migration/phase-21m-freeze-readiness.md— dress-rehearsal evidence.docs/architecture/device-sync-bridge-plan.md— biometric device sync design.
Audience split
User-facing product help (how to use the app) lives in this Fumadocs site.
Migration phase reports, shell-command runbooks, and cutover command packets stay
in docs/migration / docs/architecture and are never presented as normal user
help.
This docs site
These docs are built with Fumadocs on TanStack Start in apps/docs, isolated
from the product app. Content is MDX under apps/docs/content/docs. Build with
bun run -F docs build; develop with bun run -F docs dev.