CLAUDE.md — Briven (project root)
Agent instructions for this repo. Hard rules never break.
HARD RULE — Auth work: open SuperTokens knowledge base first (never break)
Owner intent (flndrn, 2026-07-26): Agents were guessing Auth instead of using the SuperTokens library. That ends here.
Before any Auth change
This includes: magic link, OTP, SMS, OAuth / social / Konnos, sessions, MFA, passkeys, FDI proxy, IdP/OIDC, SSO, multitenancy, branding, providers UI, secrets, allowed domains, disable/enable Auth, or anything under apps/api/src/**/auth*, apps/api/src/services/auth-core/**, packages/auth/**, Auth dashboard routes, or Auth docs.
You must:
- Open and read
docs/knowledge-base.md (the SuperTokens + Doltgres library cabinet for this project).
- Open the matching SuperTokens section/URL for the feature (passwordless, thirdparty, sessions, FDI, multitenancy, etc.).
- If the work touches the database or SQL: also open the Doltgres section of that file (and
AI_DOCS/dolt-reference/ when present).
- State in one plain sentence what SuperTokens (or the KB) says the correct behavior is — then implement Briven-branded on Doltgres.
- Do not invent login shapes, magic-link hosts, OAuth flows, or cookie rules from memory alone.
Forbidden
- Shipping Auth changes without reading
docs/knowledge-base.md first.
- “Looks reasonable” / assume / guess when SuperTokens already documents the flow.
- Abandoning briven-engine / architecture after one SQL error without Doltgres docs + notifying flndrn.
After Auth changes
- Prefer prove on a real project path (e.g. mavi pay / ISY) with evidence — not “code looks fine.”
Library path: docs/knowledge-base.md
Purpose: SuperTokens as product/architecture map; Briven stays Briven-branded on Doltgres.
Other standing notes
- Product walls, multi-tenant isolation,
pk_briven_auth_ public keys, no inventing Clerk/Firebase as the platform engine.
- Infra compose logging caps and Docker rules: see
infra/CLAUDE.md and docs/DOCKER.md when editing infra/.
- Deploy: France Briven compose +
scripts/safe-redeploy-service.sh; batch deploys when possible.