finances/CLAUDE.md
Natalie d8ae381847 feat: stub extraction of finances to dedicated app (Nest+PWA+MCP+DB) modeled on prospector
- Full skeleton: backend modules (financials per LP contract + shape), auth/health, web PWA tabs (dashboard/income/etc), mcp stub, migrations, docs (FINANCES.md + detailed MIGRATION_FROM_LP.md), CLAUDE, STANDARDS, run/scripts.
- Design embodied: scope from lp.live entities/financials + surfaces/my/financials* + my/backend schema + frontend Financials* pages/tabs + docs/quinn-my/financials.md
- Follows prospector extraction precedent exactly for future cutover/proxies from lp.live
- Verified: structure ls, partial tsc (dep errors only), files read
2026-06-29 16:13:15 -04:00

2.8 KiB

@applications/finances/ (Quinn Finances)

Canonical home for the Quinn Finances system (provider financial ops dashboard + aggregates + MCP). Tier 2 application under @applications/.

Read docs/FINANCES.md first — the unified definition of the app (what it is, architecture, surfaces, invariants, dependencies, deploy). It supersedes scattered my/ financials and api financials code.

What this is

One repo, one app: a NestJS backend (src/) + an installable Chrome PWA (web/) + an MCP server (@packages/mcp-finances/), on its own Postgres database. Focused financial console for income/expense tracking, ROI, cashflow, pending, tour-leg financials, projects tie-in. PWA is primary operator surface (standalone or embedded via quinn.my proxy during transition).

The extraction follows the prospector pattern: move bounded financial domain out of the lilith-platform.live monolith (quinn-api surfaces/my/financials + entities/financials + my/backend-api schema-financials + frontend pages + mcp) into a dedicated, focused app.

Two DB notes during transition: LP quinn.api has fin_ prefixed tables (to avoid conflict with booking income_sessions); the dedicated finances owns clean tables (or prefixed internally). Proxies + dual-write or backfill during cutover.

Always-active for this workspace

  • Read the unified doc + spec first: docs/FINANCES.md, then src/README.md (module index) and the relevant per-module README.md.
  • Code standards: follow docs/STANDARDS.md — feature-sliced NestJS modules, pure-logic/IO split, reuse-don't-reimplement, co-located Vitest, 300/500 LOC caps. src/financials/ is the reference module.
  • Filesystem-as-docs: every feature module carries a README.md. Add/refresh when building or changing materially.
  • No legacy / no tech debt: full production code, no stubs/shims/back-compat in the final modules. Delete unused entirely. (Skeletons here are the extraction bootstrap.)
  • Collective voice: "We...", "The collective...".
  • Git: scoped commits only, conventional + Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>.
  • Verification: run backend tests, typecheck/build, build the web PWA, compare surfaces to lp.live financials docs + pages, run health before done.

Extraction context

See docs/MIGRATION_FROM_LP.md for LP code locations (api/entities/financials/* , surfaces/my/{financials.ts,pending-income.ts,projects.ts,tour-legs.ts,...}, my/backend-api/db/schema-financials.ts + routes, my/frontend-public financials pages + tabs, mcp surfaces, tests).

Specialized agents

  • Backend Nest: general.
  • Web/PWA React: frontend-developer.
  • MCP: mcp-server-builder.

See top-level platform CLAUDE.md and cocottetech for broader.

Last updated: 2026-06-29 (initial stub of extraction from lp.live per prospector precedent).