chore(ideai): synchronise l'état de suivi (tickets, agents, skills, mémoire)
Rattrapage de l'état runtime IdeA (nouveaux tickets #80-#91, agents coach/commercial, skills, permissions MCP) resté non commité depuis la clôture du ticket #79. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
28
.ideai/tickets/80/carnet.md
Normal file
28
.ideai/tickets/80/carnet.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
issueRef: "#80"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1784665470112
|
||||
---
|
||||
## Spec UX (livrée)
|
||||
|
||||
Bibliothèque d'exercices basket de démarrage (7 catégories, ~20 exercices), programme "Fondations basket - 45 min" (8 exercices), séance-modèle "Séance exemple - Fondations basket", règles UX (badge Exemple, éditable/supprimable, anti-réapparition, états vides). Détail complet dans l'historique de la conversation d'orchestration Main.
|
||||
|
||||
## Plan technique Architect (livré)
|
||||
|
||||
Migration Drift v16 : ajout `category` (enum ExerciseCategory: shoot, freeThrows, dribble, finishing, conditioning, defense, mobility, uncategorized) + `is_example` sur exercises/programs/workout_templates. Table `local_seed_metadata` (key, version, applied_at) pour tracker `starterSeedVersion=1`. Use case `SeedStarterContentUseCase` appelé dans `AppBootstrap.create()`, transactionnel, "base vide" = aucune ligne (y compris soft-deleted) dans exercises/programs/workout_templates. IDs stables déterministes type `starter-v1-exercise-form-shooting`. Données seed en Dart const (`lib/application/starter_content/basket_starter_seed_v1.dart`), pas JSON. Séance-modèle via `WorkoutTemplateProgram.snapshotFromProgram`. Contenu seed = `syncState=localOnly`, pas de sync serveur automatique.
|
||||
|
||||
Découpage :
|
||||
- Lot B1 (DevBackend) : schéma/domaine — ExerciseCategory, champs category/isExample, migration v16, mappers, tests migration.
|
||||
- Lot B2 (DevBackend) : seed applicatif — ports StarterSeedStateRepository/StarterContentRepository, SeedStarterContentUseCase, basket_starter_seed_v1.dart (contenu complet UX), adapter Drift transactionnel, branchement AppBootstrap.
|
||||
- Lot B3 (DevBackend/QA) : tests (seed unique, non-réapparition, snapshots programme/séance corrects, catégories/isExample persistés).
|
||||
- Lot F1/F2 (DevFrontend) : badge "Exemple" bibliothèque/programmes/séances, affichage category.
|
||||
- Lot F3 (DevFrontend) : première ouverture / états vides, dépend du résultat du seed use case.
|
||||
|
||||
## Décisions Main sur questions Architect
|
||||
1. Badge "Exemple" conservé après modification par l'utilisateur (provenance, pas immutabilité) → OK, suivre la reco Architect.
|
||||
2. Contenu exemple non synchronisé au serveur par défaut → OK, suivre la reco Architect.
|
||||
3. Catégorie `uncategorized` visible sous "Autres" dans l'UI si nécessaire → OK, suivre la reco Architect.
|
||||
4. Liste complète des ~20 exercices : transmise intégralement à DevBackend par Main (spec UX complète disponible).
|
||||
|
||||
Prochaine étape : Git pour la branche, puis DevBackend (B1+B2+B3).
|
||||
25
.ideai/tickets/80/issue.md
Normal file
25
.ideai/tickets/80/issue.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
id: "8f4ea0ec-ef5a-42e0-bcf4-9eaa751bea94"
|
||||
number: 80
|
||||
title: "Bibliothèque de drills basket de démarrage + séance exemple modifiable"
|
||||
status: "inProgress"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1784650708413
|
||||
updatedAt: 1784665470112
|
||||
version: 4
|
||||
---
|
||||
Constat Commercial : le socle applicatif (exercices/programmes/séances/exécution/historique) est déjà solide, mais l'app démarre vide. Les concurrents basket (94FEETOFGAME) et musculation (Hevy, JEFIT) gagnent en crédibilité grâce à un contenu de départ.
|
||||
|
||||
Objectif : fournir dès l'installation une bibliothèque d'exercices basket courants (shoot, lancers francs, dribble, finition, conditionnement, défense, mobilité) et au moins un programme + une séance-modèle exemple, immédiatement modifiables, pour qu'un nouvel utilisateur n'ait jamais un écran vide.
|
||||
|
||||
Périmètre global (à cadrer/découper par UX puis Architect avant implémentation) :
|
||||
- Contenu basket de départ (liste d'exercices, mesures par défaut, textes).
|
||||
- Programme(s) et séance(s)-modèle d'exemple pré-remplis.
|
||||
- Stratégie de seed (première ouverture, pas de compte requis, éditable/supprimable sans casser l'app).
|
||||
|
||||
Priorité court terme d'après l'analyse marché (cf. mémoire gametime-commercial-positioning-2026-07).
|
||||
Reference in New Issue
Block a user