Files
unionflow-server-api/unionflow/SPEC-KIT.md
dahoud e8ad874015 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
2026-03-15 02:12:17 +00:00

129 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Spec-Kit 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.
---
## 1. Structure des artefacts
```
unionflow/
├── .specify/
│ ├── memory/
│ │ ├── 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.*
│ │ ├── 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
│ ├── 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
```
Tous les chemins des scripts sont **relatifs à la racine du dépôt** (`unionflow/`). Environnement supporté : **Windows, PowerShell** (scripts Bash non fournis).
---
## 2. Workflow feature (ordre établi)
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).
**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`).
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.
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. Commandes et scripts
| 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 | — |
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).
---
## 4. Références obligatoires
- **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é).
---
## 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.