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:
@@ -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 l’ensemble des artefacts, commandes et conventions du Spec-Kit. **En cas de divergence avec le code source, le code fait foi** ; l’inventaire 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 d’environnement **`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 l’implé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 s’appuient 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 l’existant (packages, classes, endpoints, routes, migrations), s’appuyer 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 c’est la convention du module.
|
||||
- **Priorité** : en cas de divergence entre la documentation Spec-Kit et le code source, **le code fait foi** ; mettre à jour l’inventaire (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 l’architecture et des commandes.
|
||||
|
||||
Reference in New Issue
Block a user