Files
unionflow-server-api/unionflow/.cursor/rules/unionflow-spec-kit.mdc
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

58 lines
3.7 KiB
Plaintext
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.

---
description: Spec-Kit et workflow Spec-Driven Development pour UnionFlow
alwaysApply: true
---
# UnionFlow Spec-Kit & Spec-Driven Development
## Contexte projet
UnionFlow est un monorepo (Java/Quarkus backend + Flutter mobile). La constitution est dans `CONSTITUTION.md` et `.specify/memory/constitution.md`. La référence anti-hallucination est `.specify/memory/inventaire-code.md`. **En cas de divergence entre documentation et code, le code fait foi** ; mettre à jour linventaire en conséquence.
## Respect des acquis
- **Toujours respecter** la constitution (`CONSTITUTION.md`), le baseline (`specs/000-unionflow-baseline/spec.md`) et les conventions existantes (DDD, API/Impl, Keycloak, tests, etc.).
- Toute nouvelle feature doit **sintégrer** à lexistant sans le contredire ; en cas de conflit, la constitution et le baseline priment.
- **Langue** : tout contenu rédigé pour le projet (specs, plans, tâches, commentaires utilisateur visibles) doit être **en français**. Le code (noms de variables, classes, messages techniques) peut rester en anglais si cest la convention du module.
## WOU / DRY (We Only Use Dont Repeat Yourself)
- **Avant de créer** tout nouvel élément (fichier, classe, méthode, widget, service, repository, etc.) : **vérifier quil nexiste pas déjà** (recherche par nom, motif ou responsabilité dans le codebase).
- Si un équivalent existe : **réutiliser** ou **étendre** lexistant ; ne pas dupliquer la logique.
- Si création après vérification : sassurer de ne pas recoder une responsabilité déjà couverte ailleurs (ex. création de `MembreOrganisation` + quota déjà dans un service → réutiliser ce service plutôt quajouter une méthode similaire).
- En résumé : **toujours vérifier linexistence avant de procéder à une création**.
## Commandes Spec-Kit disponibles
| Commande | Usage |
|----------|--------|
| `/speckit.constitution` | Créer ou mettre à jour les principes du projet |
| `/speckit.specify` | Décrire une nouvelle feature (crée branche + spec) |
| `/speckit.plan` | Générer le plan technique d'implémentation |
| `/speckit.tasks` | Décomposer en tâches exécutables |
| `/speckit.implement` | Exécuter l'implémentation |
| `/speckit.clarify` | Clarifier les exigences avant le plan |
| `/speckit.checklist` | Listes de vérification (qualité spec / pré-impl) |
| `/speckit.analyze` | Analyse de cohérence projet |
| `/speckit.taskstoissues` | Exporter les tâches en issues |
**Scripts** : Toutes les commandes qui sappuient sur un script utilisent **uniquement** les scripts PowerShell dans `.specify/scripts/powershell/` (depuis la racine du dépôt `unionflow/`). Aucun script Bash nest fourni dans ce dépôt.
## Workflow feature
1. `/speckit.specify` + description → crée `specs/00X-nom/spec.md` (et branche).
2. `/speckit.clarify` (optionnel) → précise les exigences.
3. `/speckit.plan` + stack technique → génère `plan.md`, `data-model.md`, etc.
4. `/speckit.tasks` → génère `tasks.md`.
5. `/speckit.implement` → implémente selon `tasks.md`.
## Branches
Format : `001-nom-court`, `002-autre-feature`. Les specs vivent dans `specs/001-nom-court/`.
## Références obligatoires
- Avant toute implémentation backend ou mobile : lire `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.
- Vue densemble Spec-Kit : `SPEC-KIT.md` à la racine de `unionflow/`.