# SESSION RESUME — formation-hub Acadenice (2026-05-07) > Document de reference pour reprendre le travail apres restart Claude Code OU /compact. > Lis-moi avant de commencer la prochaine session. ## Vision projet en 3 lignes Notion-like self-host pour Acadenice (CFA + Agence dev) en Stack composite : - **Docmost** (wiki AGPL, illimite users) + **Baserow** (DBs MIT, illimite users) + **bridge service** custom Node TS (Phase 2) - Suivi heures formateurs/devs unifie via entite **PERSONNE** pivot multi-roles, scope etendu CFA + Agence approuve. - Cible 90-100 users total. Production-like des le jour 1. ## User & equipe - **Corentin JOGUET** (corentin@acadenice.fr) — AdminSys/DevOps solo, bras droit de Yan (resp tech). Decisionnaire technique. - Yan (resp tech), Ludo (fondateur), Sophie (co-fondatrice) — validation business. Pas a confondre avec Corentin. ## Localisation des artefacts | Resource | Chemin / URL | |----------|--------------| | Repo source of truth | https://git.acadenice.com/AcadeNice/Wiki (Forgejo selfhost, public) | | Repo mirror GitHub | https://github.com/AcadeNice/wiki (private, plan free) | | Local dev | `/home/imugiii/Documents/jsap/formation-hub/` | | Wiki conception (19 docs) | https://wiki.acadenice.com/collection/agence-rd-notion-like-v9nvBLodst | | BYAN web project | id `4e72108b-dc05-4938-a1a9-530e1551ed52` | | Stack locale | http://localhost:3000 (Docmost) + http://localhost:8080 (Baserow) | ## Phase 0 — Conception (DONE — 19 docs) Localises dans `docs/` du repo + miroir Outline collection R&D Notion-Like : | # | Doc | Status | |---|-----|--------| | 01 | Discovery Recap | OK | | 02 | Scope etendu CFA + Agence (APPROVED 2026-05-07) | OK | | 03 | Decision Records (5 ADR) | OK | | 04 | CDC Technique (stack + NFR + roadmap + couts) | OK | | 05 | Data Dictionary | OK | | 06 | Merise MCD (5 vues splittees) | OK | | 07 | Merise MLD (5 vues splittees) | OK | | 08 | Merise MCT | OK | | 09 | Merise MOT | OK | | 10 | State Diagrams | OK | | 11 | UML Use Cases (4 vues splittees) | OK | | 12 | UML Class Diagram (5 vues splittees) | OK | | 13 | UML Activity Diagrams | OK | | 14 | Repo Structure & GitOps | OK | | 15 | Baserow MPD | OK | | 16 | Plan de tests | OK | | 17 | Plan de deployment | OK | | 18 | Plan d'operations | OK | | 19 | Bridge API design (incl. MCP server Phase 3+) | OK | | 99 | DRAWIO Architecture infra (XML) | OK | ## Phase 1 — Build local (en cours — local seul, prod-like) ### OK et teste live | Iteration | Detail | |-----------|--------| | **I1 — Baserow tables + liens** | 9 tables (PERSONNE + CFA + Agence) + 10 link FK avec related fields renommes | | **I2 — Baserow formulas** | 17 formulas (rollups + heures_restantes) | | **I3 — Docmost setup** | Workspace `Acadenice` + 3 spaces (CFA, Agence, Interne) + page Welcome + share link | | **I5a — Healthcheck etendu** | UI + API Docmost/Baserow + container status — 4/4 OK | ### Partiellement OK | Item | Probleme | Fix prevu | |------|----------|-----------| | **I4a — Forms publics Baserow** | Form cree mais endpoint `/api/database/views/form/{id}/field-options/` retourne 404 sur Baserow 1.30 | A investiguer (URL exacte selon version) — bridge-dev | | **I4b — Space etudiant Docmost** | Slug fix applique (`re.sub`), limit fix (200→100). Pas re-teste. | Re-run pour confirmer — quick | | **I5b — Cron install** | Script ecrit non-execute (sudo requis) | A run sur la prod quand VPS sera up — acadenice-devops | | **I5c — Backup test E2E** | Script `scripts/backup.sh` existant, pas teste end-to-end avec restore | Test mensuel selon plan ops — acadenice-devops | ### TODO Phase 1 finale | Item | Pour qui | |------|----------| | Test rollups Baserow live (1 personne + 1 formation + 1 attribution) | Corentin | | Migration data initiale (formations/clients existants) | Corentin + Yan + Sophie | | Onboarding 5-10 testeurs (Yan, Ludo, Sophie + 2-3 formateurs + 2 devs) | Corentin | | Setup VPS staging (Hetzner CPX21) | acadenice-devops | | Configurer Forgejo Actions runner (`infra/forgejo-runner/`) | acadenice-devops | ## Phase 2 — Bridge service (a demarrer) Code Phase 2 = MAIN focus de la prochaine session (estimation 2-3 mois fullstack). Brief complet dans `docs/19-bridge-api-design.md`. Architecture : - 5 missions : expose Baserow, webhooks Baserow, sert Tiptap nodes Docmost, orchestre workflows metier, **sync bidirec Docmost ↔ Baserow** - Stack fixee : Node 22 + Hono + zod + ofetch + ioredis + pino + decimal.js + Vitest + Biome - Endpoints REST `/api/v1/*` versionnes - Webhooks anti-loop via header `X-Bridge-Origin` - MCP server (Phase 3+) co-located dans le meme service Decoupage en blocs : - Bloc 1 : Adapters BaserowClient + DocmostClient + RedisCache (drafts existants dans `bridge/src/adapters/`, **a refaire proprement** par bridge-dev — TS errors actuels) - Bloc 2 : Domain models (Personne, Module, Tache, etc.) - Bloc 3 : Routes REST principales - Bloc 4 : Auth middleware (API tokens scopes) - Bloc 5 : Cache Redis pattern cache-aside - Bloc 6 : Tests unit + integration (par bridge-tester) - Bloc 7 : Webhook handlers Baserow (sync bidirec) - Bloc 8 : Tiptap node-view custom (par docmost-fork-dev — Phase 2.3+) - Bloc 9 : Bidirec backlinks (par docmost-fork-dev — Phase 3) - Bloc 10 : Documentation utilisateur + release v0.1.0 ## Agents BYAN crees pour le projet Dans `.claude/agents/` du repo : | Agent | Mission | Quand l'invoquer | |-------|---------|------------------| | **bridge-dev** | Code TS du bridge service (adapters, domain, routes, webhooks) | Toute tache code metier dans `bridge/` | | **bridge-tester** | Tests Vitest + testcontainers + E2E Playwright + coverage | Toute tache test bridge ou validation AC | | **acadenice-devops** | Infra (Docker, Traefik, Forgejo, backups, monitoring, CI/CD) | Toute tache ops/deploy/infra | | **docmost-fork-dev** | Fork Docmost + Tiptap node-views React + bidirec backlinks | Phase 2.3+ et Phase 3 (UI custom) | **Invocation** : Agent tool avec `subagent_type='bridge-dev'` (ou autre nom) apres restart Claude Code. Chaque agent a un brief detaille (~150-200 lignes) avec : - Mission + contexte projet - Stack technique fixee - Specialisations - Conventions code & commits - Limites (ce qu'il ne fait PAS) - Resources & references ## Workflows BYAN proposes (a creer plus tard) Pas encore crees. A faire via BYAN web ou skill `byan-bmb-workflow-builder` : | Workflow | Phases | |----------|--------| | **WF formation-hub BUILD** | story → bridge-dev code → bridge-tester tests → user review → push → deploy staging → smoke tests. Boucle si fail. | | **WF formation-hub SYNC** | webhook Baserow → bridge handler → cache invalidation → notif → log audit. Idempotence event_id. | | **WF formation-hub RELEASE** | tests E2E staging → CHANGELOG update → tag semver → approval review → deploy prod → 30 min watch period → rollback si fail. | ## Decisions structurelles (a respecter) | Decision | Reference | |----------|-----------| | Stack Docmost + Baserow + bridge custom | ADR-001 doc 03 | | Path B : UX quasi-unified via Tiptap nodes | ADR-002 doc 03 | | Monorepo trunk-based development | ADR-003 doc 03 | | Postgres separe par service | ADR-004 doc 03 | | Bridge stack Node 22 + Hono | ADR-005 doc 03 | | Scope etendu CFA + Agence via PERSONNE pivot | ADR-006 doc 02 | | Etudiants pas modelises en Baserow, juste users Docmost | doc 02 | | API Docmost = Enterprise paye → on utilise endpoints internes (AGPL legal) | doc 19 | | Repo source of truth = Forgejo selfhost (git.acadenice.com), GitHub mirror optionnel | doc 14 | | **Pas de mirror auto** decide pour l'instant | session 2026-05-07 | | **Local seul** pour le moment (pas de staging deploy) | session 2026-05-07 | | Pas de modification des docs conception sans ADR | session 2026-05-07 | ## Credentials utilises (dans `.env` gitignore — a regenerer si compromis) ``` DOCMOST_ADMIN_EMAIL=corentin@acadenice.fr DOCMOST_ADMIN_PASSWORD=ton-pwd123456 BASEROW_EMAIL=admin@acadenice.fr BASEROW_PASSWORD=ton-pwd123456 GITHUB_TOKEN=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 (a revoke apres session) FORGEJO_TOKEN=cc21fee2913b6043fb68f93d8b6c184fac4671f4 (admin AcadeNice) OUTLINE_TOKEN=ol_api_s2EqjDW5SPlXzM4vqiZaMd8UD00jsnespK4rRs ``` ## Commits Forgejo selfhost (cumulés cette session) ``` 668576c chore: initial commit (55 files, 7986 insertions, conception complete) d510bdd ops: fix CI run + bump testcontainers + doc 19 sync bidirec 991d172 ops(ci): trigger CI on main + disable auto deploy-staging Phase 0 66ff909 ops(ci): add vitest config + sanity tests d8e8bde ops(ci): fix docker-build .env before compose ecb7a44 ops(infra): add Forgejo Actions Runner skeleton 6724be6 feat(baserow): add seed script + Fast-App iteration 1 artifacts a0266b8 feat(baserow): add formulas pass + related field naming 5d02977 feat(docmost): manual setup guide for iteration 3 8a676d2 feat(docmost): add seed.py via internal endpoints d5558ca fix(docmost-seed): handle data envelope + add format field 1d71364 feat(seed): add I4 forms publics + space etudiant + I5 healthcheck 7d4d2cd feat(agents): create bridge-dev specialized agent (1st BYAN INT) [NEXT] feat(agents): create 3 more agents + session resume MD ``` ## Memoire BYAN persistee `/home/imugiii/.claude/projects/-home-imugiii-Documents-jsap/memory/` : - `user_role.md` : Corentin JOGUET profil + role chez Acadenice - `project_notion_like.md` : projet detaille, scope, stack, decisions, IDs externes - `reference_outline.md` : Outline wiki Acadenice config + endpoints ## Pour la prochaine session — checklist demarrage ``` [ ] Lire ce SESSION-RESUME.md [ ] Verifier stack locale up : docker compose ps [ ] Verifier git pull a jour : cd formation-hub && git pull [ ] Verifier les 4 agents disponibles dans Agent tool [ ] Decider quoi attaquer en premier : - Option A : invoque bridge-dev pour Bloc 1 adapters propres - Option B : invoque bridge-tester pour test plan E2E detaille - Option C : invoque acadenice-devops pour setup VPS staging - Option D : invoque docmost-fork-dev pour exploration codebase Docmost ``` Mon vote pour la prochaine session : **Option A** — bridge-dev refait les adapters proprement (drafts actuels dans `bridge/src/adapters/` ont des TS errors). ## Fast-App workflow local (artefacts dans `_byan-output/fast-app/formation-hub/`) | Fichier | Contenu | |---------|---------| | pitch.json | Validated 2026-05-07 | | backlog.json | 15 features MoSCoW + 5 WONT validated | | cdcf-stories.json | 10 stories Connextra+Gherkin pour Phase 1 | | plan.json | 7 iterations BUILD | | dispatch.json | Repartition Claude/Corentin/equipe | | build-state.json | current_iteration: 1, completed phases 1-6 (workflow Fast-App) | --- **Tao Acadenice respecte tout au long** : direct, structures avec tirets, zero emoji, orientation solution. Pret pour la suite. Bonne session.