Grace
Architecture

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 . La version repo-locale détaillée est dans docs/CODEBASE.md.

Monorepo

CheminRô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 (domainapplicationinfrastructure / interface), composé via useFactory dans son *.module.ts.

ModuleResponsabilitéRoutes
identityOrganisations (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/*
catalogLecture catalogue (DB + fichiers), cards, facettes, doctor, CRUD personas custom.GET /catalog, GET /doctor
project-configInstall / uninstall / toggle d'un talent, appliquer un persona.PATCH /projects/:id/talents
resolutionLe moteur : resolve, search, get, réglages de pertinence.POST /resolve, GET /search, POST /talents/get
validationChecks structurels typés + config CI.POST /validate
tracingObservabilité : enregistre les actions, synthèses, usage par talent.GET /web/activity/summary, /web/projects/:id/traces[...]
webFaç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_baseline0003_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.

On this page