feat: WebSocket temps réel + Finance Workflow + corrections

- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics)
  * Backend: KafkaEventProducer, KafkaEventConsumer
  * Mobile: WebSocketService (reconnection, heartbeat, typed events)
  * DashboardBloc: Auto-refresh depuis WebSocket events

- Finance Workflow: approbations + budgets (backend + mobile)
  * Backend: entities, services, resources, migrations Flyway V6
  * Mobile: features finance_workflow complète avec BLoC

- Corrections DI: interfaces IRepository partout
  * IProfileRepository, IOrganizationRepository, IMembreRepository
  * GetIt configuré avec @injectable

- Spec-Kit: constitution + templates mis à jour
  * .specify/memory/constitution.md enrichie
  * Templates agent, plan, spec, tasks, checklist

- Nettoyage: fichiers temporaires supprimés

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 02:12:17 +00:00
parent bbc409de9d
commit e8ad874015
635 changed files with 58160 additions and 20674 deletions

View File

@@ -1,65 +1,128 @@
# Spec-Kit - UnionFlow
# Spec-Kit UnionFlow
Configuration Spec-Driven Development pour le projet UnionFlow.
Configuration **Spec-Driven Development** pour le projet UnionFlow. Ce document décrit lensemble des artefacts, commandes et conventions du Spec-Kit. **En cas de divergence avec le code source, le code fait foi** ; linventaire et la documentation doivent être tenus à jour.
## Structure
---
## 1. Structure des artefacts
```
unionflow/
├── .specify/
│ ├── memory/
│ │ ── constitution.md # Principes (sync avec CONSTITUTION.md)
├── scripts/powershell/ # Scripts workflow
── templates/ # Templates spec, plan, tasks
│ │ ── constitution.md # Principes projet (sync avec CONSTITUTION.md)
│ └── inventaire-code.md # Référence anti-hallucination (packages, routes, features)
── scripts/
│ │ └── powershell/ # Scripts workflow (pas de Bash dans ce dépôt)
│ │ ├── common.ps1
│ │ ├── check-prerequisites.ps1
│ │ ├── setup-plan.ps1
│ │ ├── create-new-feature.ps1
│ │ └── update-agent-context.ps1
│ └── templates/
│ ├── spec-template.md
│ ├── plan-template.md
│ ├── tasks-template.md
│ ├── checklist-template.md
│ ├── constitution-template.md
│ └── agent-file-template.md
├── .cursor/
│ ├── commands/ # Commandes /speckit.*
└── rules/ # Règles Cursor
├── specs/ # Spécifications par feature
└── 00X-nom-court/
│ ├── commands/ # Commandes /speckit.*
│ ├── speckit.constitution.md
├── speckit.specify.md
│ ├── speckit.plan.md
│ │ ├── speckit.tasks.md
│ │ ├── speckit.implement.md
│ │ ├── speckit.clarify.md
│ │ ├── speckit.checklist.md
│ │ ├── speckit.analyze.md
│ │ └── speckit.taskstoissues.md
│ └── rules/
│ ├── unionflow-spec-kit.mdc # Toujours appliqué
│ ├── unionflow-backend.mdc
│ └── unionflow-mobile.mdc
├── specs/
│ ├── 000-unionflow-baseline/
│ │ └── spec.md # Baseline (état actuel du projet)
│ └── 00X-nom-court/ # Par feature
│ ├── spec.md
│ ├── plan.md
── tasks.md
└── CONSTITUTION.md # Référence principale
── tasks.md
│ ├── research.md # Optionnel (Phase 0)
│ ├── data-model.md # Optionnel (Phase 1)
│ ├── quickstart.md # Optionnel (Phase 1)
│ ├── contracts/ # Optionnel (Phase 1)
│ └── checklists/ # Optionnel (qualité spec / pré-impl)
├── CONSTITUTION.md # Référence principale (principes, DDD, API, sécurité)
└── SPEC-KIT.md # Ce fichier
```
## Démarrage rapide
Tous les chemins des scripts sont **relatifs à la racine du dépôt** (`unionflow/`). Environnement supporté : **Windows, PowerShell** (scripts Bash non fournis).
### 1. Nouvelle feature
---
Dans Cursor, utilisez les commandes slash :
## 2. Workflow feature (ordre établi)
```
/speckit.specify Implémenter la gestion des rappels de cotisation
```
1. **`/speckit.specify`** + description → crée la branche feature et `specs/00X-nom/spec.md`.
2. **`/speckit.clarify`** (optionnel) → précise les exigences avant le plan.
3. **`/speckit.plan`** + contexte technique → génère `plan.md`, éventuellement `research.md`, `data-model.md`, `contracts/`, `quickstart.md`.
4. **`/speckit.tasks`** → génère `tasks.md` à partir de `plan.md` et `spec.md`.
5. **`/speckit.implement`** → exécute les tâches de `tasks.md` (après vérification des prérequis et optionnellement des checklists).
Cela crée une branche `001-xxx` et `specs/001-xxx/spec.md`.
**Prérequis pour plan / tasks / implement** : le répertoire `specs/00X-nom/` doit exister. Pour cela :
- être sur une **branche feature** (ex. `001-mutuelles-anti-blanchiment`), **ou**
- définir la variable denvironnement **`SPECIFY_FEATURE`** (ex. `SPECIFY_FEATURE=001-mutuelles-anti-blanchiment`).
### 2. Plan technique
Sans cela, les scripts PowerShell renverront une erreur du type « Feature directory not found: specs/master » (sur branche `master`/`main`). La commande `/speckit.specify` crée elle-même la branche et le répertoire.
```
/speckit.plan Le backend utilise les services existants (CotisationService).
Ajouter un job Quarkus Scheduler pour les rappels. Endpoint REST pour lister les rappels.
```
Commandes complémentaires : `/speckit.constitution` (principes), `/speckit.checklist` (listes de vérification), `/speckit.analyze` (analyse de cohérence), `/speckit.taskstoissues` (export des tâches en issues).
### 3. Tâches
---
```
/speckit.tasks
```
## 3. Commandes et scripts
### 4. Implémentation
| Commande | Usage | Script PowerShell (depuis racine dépôt) |
|----------|--------|----------------------------------------|
| `/speckit.constitution` | Créer ou mettre à jour les principes | — |
| `/speckit.specify` | Décrire une nouvelle feature (branche + spec) | `.specify/scripts/powershell/create-new-feature.ps1 -Json …` |
| `/speckit.clarify` | Clarifier les exigences | — |
| `/speckit.plan` | Générer le plan technique | `.specify/scripts/powershell/setup-plan.ps1 -Json` |
| `/speckit.tasks` | Décomposer en tâches | `.specify/scripts/powershell/check-prerequisites.ps1 -Json` |
| `/speckit.implement` | Exécuter limplémentation | `.specify/scripts/powershell/check-prerequisites.ps1 -Json -RequireTasks -IncludeTasks` |
| `/speckit.checklist` | Listes de vérification | — |
| `/speckit.analyze` | Analyse de cohérence | — |
| `/speckit.taskstoissues` | Tâches → issues | — |
```
/speckit.implement
```
Les commandes qui sappuient sur un script utilisent **uniquement** les scripts PowerShell ci-dessus. Les chemins `FEATURE_DIR`, `IMPL_PLAN`, `TASKS`, etc. sont déduits de la branche courante (ou de `SPECIFY_FEATURE`) et du répertoire contenant `.specify` (racine du dépôt).
## Environnement
---
- **OS** : Windows (scripts PowerShell)
- **Agent** : Cursor
- **Projet** : Brownfield (existant)
## 4. Références obligatoires
## Références
- **Avant toute implémentation** (backend ou mobile) : lire `CONSTITUTION.md` (ou `.specify/memory/constitution.md`) pour les conventions DDD, API, tests, sécurité.
- **Anti-hallucination** : pour toute affirmation sur lexistant (packages, classes, endpoints, routes, migrations), sappuyer sur `.specify/memory/inventaire-code.md`. Ne jamais inventer de fichier, package ou endpoint non listé ; en cas de doute, vérifier dans le code.
- **Baseline** : `specs/000-unionflow-baseline/spec.md` décrit létat actuel du projet (modules, workflow Spec-Kit, inventaire consolidé).
- [Spec-Kit GitHub](https://github.com/github/spec-kit)
- [CONSTITUTION.md](./CONSTITUTION.md) - Principes du projet
---
## 5. Conventions
- **Branches feature** : format `001-nom-court`, `002-autre-feature`. Les specs vivent dans `specs/001-nom-court/`.
- **Langue** : tout contenu rédigé pour le projet (specs, plans, tâches, commentaires utilisateur visibles) est **en français**. Le code (noms de variables, classes, messages techniques) peut rester en anglais si cest la convention du module.
- **Priorité** : en cas de divergence entre la documentation Spec-Kit et le code source, **le code fait foi** ; mettre à jour linventaire (et si besoin la constitution / le baseline) pour refléter létat réel.
---
## 6. Environnement
- **OS** : Windows (scripts PowerShell).
- **Agent** : Cursor.
- **Projet** : Brownfield (existant). Monorepo : unionflow-server-api, unionflow-server-impl-quarkus, unionflow-client-quarkus-primefaces-freya, unionflow-mobile-apps.
---
## 7. Liens utiles
- **CONSTITUTION.md** (à la racine de `unionflow/`) Principes du projet.
- **.specify/memory/inventaire-code.md** Liste exacte des packages, migrations, features mobile, routes, DI.
- **specs/000-unionflow-baseline/spec.md** Résumé de larchitecture et des commandes.