From 5fbdda1983fb9fc37fe86cc94ac246e4f81e43fa Mon Sep 17 00:00:00 2001 From: Matthieu Date: Fri, 19 Jun 2026 15:00:17 +0200 Subject: [PATCH] docs : log LST-56 socle back session learnings --- .claude/skills/ticket-executor/LEARNINGS.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.claude/skills/ticket-executor/LEARNINGS.md b/.claude/skills/ticket-executor/LEARNINGS.md index a5f24ac..4799a5a 100644 --- a/.claude/skills/ticket-executor/LEARNINGS.md +++ b/.claude/skills/ticket-executor/LEARNINGS.md @@ -54,6 +54,25 @@ - **Pattern**: Retirer de composer.json + bundles.php + supprimer config YAML + templates - **Learning**: API Platform ne requiert PAS twig, c'est juste suggéré pour Swagger UI +## Session 2026-06-19 (LST-56 / 0.1 — Socle back modular monolith) + +### Contexte +- Ticket exécuté via plan TDD dédié (`docs/superpowers/plans/2026-06-19-lst-56-socle-back.md`) délégué à un sous-agent (contexte isolé), pilotage MCP/chrono/vérif depuis la session principale. +- 4 tâches, 14 nouveaux tests (110 total, 216 assertions, vert), 4 commits (un par tâche). + +### Patterns +- **Strangler 100 % additif** : nouveau noyau `src/Shared/` (Domain/Contract, Domain/Module, Domain/Sidebar, Domain/Trait, Application, Infrastructure/{ApiPlatform,Doctrine,Security,Database}) sans toucher au métier — `make test` reste vert sans migration. +- **Endpoints DTO purs** : logique métier dans classes pures testées unitairement (`ModuleRegistry`, `SidebarFilter`), exposées par Providers API Platform minces (`ModulesProvider`/`SidebarProvider`) sur des Resources DTO. +- **resolve_target_entities** : contrat `Shared\Domain\Contract\UserInterface` mappé sur `App\Entity\User` (sera re-pointé vers `Module\Core\User` en 1.1). Inert tant qu'aucune entité n'utilise le trait. + +### Gotchas +- **API Platform 4 découvre les Resources sous `src/Shared/...` sans config `mapping.paths`** — le 404 anticipé dans le plan ne s'est pas produit, aucun ajout dans `api_platform.yaml` nécessaire. +- **Hook pre-commit php-cs-fixer** normalise le style du code fourni dans le plan : `\DateTimeImmutable`→`DateTimeImmutable` importé, FQN→`use`, `static::createClient()`→`self::`. Pur style, tests inchangés. Ne pas lutter contre. +- **`config/reference.php`** : fichier auto-généré qui apparaît modifié dans `git status` — ne jamais le committer. + +### Time tracking +- Le sous-agent a stoppé lui-même le timer d'implémentation (id 1005, 35 min) — garder le time-tracking sur la session principale pour rester maître du chrono si un sous-agent a accès aux tools MCP lesstime. + ## Meta-learnings - **Parallélisation**: Les tickets touchant des fichiers indépendants peuvent tourner en parallèle sans problème - **MCP status**: Toujours mettre "En cours" AVANT de commencer, "Terminé" APRÈS validation