apiVersion: conventions/v1 version: 0.1.0 updated: "2026-06-29" name: naming_conventions title: Naming — provider-generic code, instance-specific domains scope: general status: active summary: Code/packages are provider-generic; only deployed domains/instances are provider-specific (quinn.*). Snake_case slugs/IDs/DB fields. V4 canonical (supersedes v2 quinn-* package names). appliesTo: ["@applications/*", "@projects/*"] rules: - id: provider_generic_code level: must text: "Package/module names are provider-generic (provider-portal, messenger, prospector) — no `quinn-*` in new code. Quinn is an instance, not the codebase." - id: instance_domains level: must text: "Instance-specific names appear only in deployed domains: quinn.api / quinn.my / quinn.ai; other providers get {provider}.*." - id: brand_shared level: should text: "Shared/platform infra uses the brand domain (sso.cocotte.io, platform.admin, beacon.cocotte.io)." - id: snake_identifiers level: must text: "snake_case for slugs, IDs, and DB fields (org_id, user_id, slug: transquinnftw)." - id: lang_naming level: should text: "Per-language casing per that language's convention (TS PascalCase types / camelCase vals / kebab files; Py snake; etc.). See programming_."