# Plan d'implémentation : [FONCTIONNALITÉ] **Branche** : `[###-nom-court]` | **Date** : [DATE] | **Spec** : [lien] **Entrée** : Spécification dans `/specs/[###-nom-court]/spec.md` **Note** : Ce template est rempli par la commande `/speckit.plan`. Voir `.specify/templates/plan-template.md` pour le déroulé. ## Résumé [Extraire de la spec : exigence principale + approche technique issue de la recherche] ## Contexte technique **Langage/Version** : [ex. Java 17, Dart 3, ou À PRÉCISER] **Dépendances principales** : [ex. Quarkus, Flutter, ou À PRÉCISER] **Stockage** : [ex. PostgreSQL, CoreData, fichiers ou N/A] **Tests** : [ex. JUnit, pytest, ou À PRÉCISER] **Plateforme cible** : [ex. serveur Linux, iOS 15+, ou À PRÉCISER] **Type de projet** : [ex. lib/cli/service-web/app-mobile ou À PRÉCISER] **Objectifs de performance** : [ex. 1000 req/s, 60 fps ou À PRÉCISER] **Contraintes** : [ex. p95 < 200 ms, mémoire < 100 Mo, hors-ligne ou À PRÉCISER] **Échelle / périmètre** : [ex. 10k utilisateurs, 50 écrans ou À PRÉCISER] ## Contrôle constitution *JALON : Doit être validé avant la phase 0 (recherche). Re-vérifier après la phase 1 (conception).* [Critères déterminés à partir du fichier constitution] ## Structure du projet ### Documentation (cette feature) ```text specs/[###-feature]/ ├── plan.md # Ce fichier (sortie /speckit.plan) ├── research.md # Phase 0 (/speckit.plan) ├── data-model.md # Phase 1 (/speckit.plan) ├── quickstart.md # Phase 1 (/speckit.plan) ├── contracts/ # Phase 1 (/speckit.plan) └── tasks.md # Phase 2 (/speckit.tasks — NON créé par /speckit.plan) ``` ### Code source (racine du dépôt) ```text # [SUPPRIMER SI INUTILISÉ] Option 1 : Projet unique (DÉFAUT) src/ ├── models/ ├── services/ ├── cli/ └── lib/ tests/ ├── contract/ ├── integration/ └── unit/ # [SUPPRIMER SI INUTILISÉ] Option 2 : Application web (backend + frontend) backend/ ├── src/ │ ├── models/ │ ├── services/ │ └── api/ └── tests/ frontend/ ├── src/ │ ├── components/ │ ├── pages/ │ └── services/ └── tests/ # [SUPPRIMER SI INUTILISÉ] Option 3 : Mobile + API (iOS/Android) api/ └── [idem backend ci-dessus] ios/ ou android/ └── [structure plateforme : modules feature, flux UI, tests] # [SUPPRIMER SI INUTILISÉ] Option 4 : Monorepo UnionFlow (backend + mobile) unionflow-server-api/ # DTOs, enums unionflow-server-impl-quarkus/ # Migrations, services, resources unionflow-mobile-apps/lib/ # app/, core/, features//, shared/ ``` **Décision de structure** : [Documenter la structure retenue et les répertoires réels. Pour UnionFlow, s’appuyer sur `.specify/memory/inventaire-code.md`.] ## Suivi des écarts à la constitution > **À remplir UNIQUEMENT si le Contrôle constitution a des violations à justifier** | Écart | Pourquoi nécessaire | Alternative plus simple refusée car | |-------|---------------------|-------------------------------------| | [ex. 4e projet] | [besoin actuel] | [pourquoi 3 projets ne suffisent pas] | | [ex. pattern Repository] | [problème précis] | [pourquoi l'accès direct DB ne suffit pas] |