# Spec-Kit – 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. --- ## 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 d’environnement **`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 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 | — | 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). --- ## 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 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é). --- ## 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.