Plan du code
Carte navigable du dépôt : où vit quoi (modules backend, frontend, mcp, catalogue).
Pour reprendre le projet : où vit quoi dans le code. Les autres pages donnent le pourquoi
et le quoi ; celle-ci donne le où. La version repo-locale détaillée est dans
docs/CODEBASE.md.
Monorepo
| Chemin | Rôle |
|---|---|
platform/backend/ | Backend NestJS — le cœur (resolver, validation, catalogue, auth, config, tracing). |
platform/frontend/ | Dashboard React + Vite + Tailwind v4. |
platform/mcp/ | Adaptateur MCP (Streamable HTTP), sans logique métier. |
platform/docs/ | Ce site de docs (Fumadocs / Next.js). |
catalog/ | Talents (17) + personas builtin + _TEMPLATE/. |
docs/ | Documentation repo-locale (ARCHITECTURE, ENGINE, MCP, DASHBOARD, CODEBASE, context/). |
Backend — un module par contexte
platform/backend/src/. Chaque contexte est un module Nest à quatre couches (domain →
application → infrastructure / interface), composé via useFactory dans son *.module.ts.
| Module | Responsabilité | Routes |
|---|---|---|
identity | Organisations (multitenant + cycle d'approbation), membres, projets d'org, tokens, SSO par org, admin plateforme, audit sécurité. Auth humaine déléguée à Better Auth (ACL infrastructure/better-auth/). | /api/auth/* (Better Auth), /web/orgs/current/*, /web/admin/* |
catalog | Lecture catalogue (DB + fichiers), cards, facettes, doctor, CRUD personas custom. | GET /catalog, GET /doctor |
project-config | Install / uninstall / toggle d'un talent, appliquer un persona. | PATCH /projects/:id/talents |
resolution | Le moteur : resolve, search, get, réglages de pertinence. | POST /resolve, GET /search, POST /talents/get |
validation | Checks structurels typés + config CI. | POST /validate |
tracing | Observabilité : enregistre les actions, synthèses, usage par talent. | GET /web/activity/summary, /web/projects/:id/traces[...] |
web | Façade dashboard (/web/*) sous session Better Auth, scopée par l'organisation active ; agrège les use cases. | tout /web/* |
Transverse : auth/ (trois gardes : projet, session Better Auth, admin plateforme),
tracing/infrastructure/tracing.interceptor.ts, tokenizer/, relevance-status.ts. Persistance :
db/schema/*.ts (Drizzle, source de vérité du modèle), db/migrations/ (drizzle-kit,
0000_baseline → 0003_contraction), seed/seed.ts (idempotent), entrypoint.sh
(migrate → seed → start au boot).
Le moteur en détail : Moteur de résolution et Pertinence sémantique.
Frontend
platform/frontend/src/ : pages/ (une par route), components/ (TalentGraph, ActivityPanel,
CommandPalette, PersonaEditor…), components/ui/ (design system), api.ts (client /web/*).
Voir Dashboard.
MCP
platform/mcp/src/server.ts (6 outils, stateless) + backend.ts (client HTTP propageant le
bearer). Voir Outils MCP.
Tests
platform/backend/test/ : intégration (*.test.ts), unitaires (test/unit/ avec fakes des
ports, npm run test:unit) et acceptance (test/acceptance/, npm run test:acceptance — app
Nest in-process + supertest + vraie Postgres via DATABASE_URL ; s'ignore si Postgres est
injoignable). prompt-test-runner.mjs pour les tests de conformité des talents.