cocottetech/docs/GLOSSARY.md

46 lines
4.6 KiB
Markdown
Raw Permalink Normal View History

# Glossary
Canonical domain terms. Every doc that uses these terms means *exactly* what's defined here. If a term is ambiguous in your draft, add it here first.
## Tenancy
- **Person** — a single human user. Primary tenant. Identified by `user_id`. Owns a profile, inbox, bookings, analytics.
- **Org** — optional overlay tenant: an entity (typically an LLC) that holds talent contracts + financial flows. Identified by `org_id`. Has one **owner** Person, N admin Persons, N member Persons.
- **Tenant** — umbrella term covering both Person and Org. Every multi-tenant table carries `user_id` and optional `org_id`.
- **Provider** — a Person who offers services through the platform (escort, content creator, etc.). Independent of whether they belong to an Org.
- **Client** — the Provider's customer. Lives one tenancy layer deeper than Provider.
## Brand & corporate
- **Cocotte** — public-facing umbrella **brand** operated by the Demimonde Org. Customers see "Cocotte", never "Demimonde".
- **Demimonde** — back-office **Org** (the LLC). Holds contracts + financials. Invisible to customers.
- **Sansonnet** — separately-held independent Org with its own brand at `sansonnet.maison`.
- **Lilith Apps ehf** — the tech company (platform infrastructure / shared services).
- **Brand** vs **Org** — Brand = customer-visible presentation (logo, copy, domain). Org = back-office legal entity. One Org can operate multiple Brands.
## Lineage
- **V0** (`egirl-platform`) — viky-era, 27-app monorepo. Archived as `.archive/platform.0.tar.zst`.
- **V1** (`lilith-platform`) — 54-feature SaaS, never shipped. Archived as `.archive/platform.1.tar.zst`.
- **V2** (`lilith-platform.live`) — Quinn-personal, currently in production. Archived as `.archive/platform.2.tar.zst`. Source path on apricot is **never modified**.
- **V3** (`@atlilith`) — brief intermediate workspace, skipped. Preserved-readonly sibling repo at `forge.black.lan/lilith/atlilith` (now defunct; the host is dead) AND archived as `.archive/platform.3.tar.zst` for completeness (small — no code shipped). **Caveat:** All references to `forge.black.lan` are historical; the old infra is retired. Use the current cocotte-forge (ct-forge) bare IP or the new ct.uvlava.com domains once live.
- **V4** (`@cocottetech`) — current active workspace. Additive to V2 — does not replace it.
## Architecture
- **Feature** — vertical slice owning its `ai-core/`, `web-fe/`, `ios-fe/`, `worker/`, `mcp-server/`, `sql/`, `deploy/`, `docs/`, `tests/`, `agents/`. Has a `feature.yaml` manifest.
- **Surface** — a user-reachable interface of a feature: `ai-core` (NestJS API), `web-fe` (React), `ios-fe` (Swift), `worker` (cron/queue), `mcp-server` (MCP tools).
- **Peer service** — code that lives outside `@cocottetech/` (in `~/Code/@applications/@{ai,ml,imajin}/` or `~/Code/@projects/@lilith/{mail,mac}-sync/`). Consumed over HTTP/MCP. Never vendored.
- **Platform action** — a skill in `@ai/@skills/platform-*/actions/*` that the AI assistant invokes against `platform.api`. Contributed upstream to `@ai`, not vendored into V4.
- **`@lilith/*` SDK** — the canonical shared package family in `~/Code/@packages/` (184 TS + 35 Py). V4 consumes via private registry.
**Current (transition, 2026-06-28):** `http://134.199.243.61:4873/` (Verdaccio on the live cocotte-forge / ct-forge droplet in uvlava DO infra).
**Target (once live):** `https://npm.ct.uvlava.com/` (with Caddy/LE TLS).
**Caveats:** Old `forge.black.lan` and `npm.black.lan` are dead (hosts retired). uvlava.com DNS (ct. subdomains including npm.ct, pypi.ct, swift.ct) is defined in uvlava/terraform/do/dns.tf but NOT LIVE YET (joker registrar NS delegation pending). Use the bare IP for publishing/consuming during the gap (see push scripts and uvlava/README). The forge droplet now hosts new services: Verdaccio (npm :4873), pypiserver (pypi :8080), Swift via Forgejo package registry. Under TF management in the DO ct-forge setup (cloud-init/forge.yaml + compose). Never use `file:` or `link:` in package.json. Publish from ct-forge CI runners (on-demand DO).
## Methodology
- **lix** — the unified build/test/validate toolchain (`lixbuild`, `lixtest`, `lixrun`) provided by `@lilith/lix-*` packages.
- **ACS** — auto-commit-service running on apricot. Agents stage changes; ACS commits.
- **Vertical slice** — shipping a feature across all its surfaces (ai + web + ios + worker + sql + deploy + tests) before starting the next feature.
- **Source-of-truth symlink** — `CLAUDE.md` and `.claude/` at the repo root are symlinks to `tooling/claude/CLAUDE.md` and `tooling/claude/dot-claude/`. Edit only the targets.