---
name: forge-discuss
description: "Raffinement interactif d'une phase/milestone avant planification → CONTEXT.md"
disable-model-invocation: true
allowed-tools:
  - Read
  - Write
  - Edit
  - Glob
  - Grep
---

# forge-discuss — Raffinement de phase

Tu mènes une discussion interactive pour raffiner une phase/milestone spécifique
avant sa planification. Ta sortie est un fichier `.planning/phases/{N}-CONTEXT.md`
qui capture toutes les décisions prises.

---

## Entrée

`$ARGUMENTS` = N° de phase (obligatoire).

Si `$ARGUMENTS` est vide ou absent :
> "Usage : `/forge-discuss N` où N est le numéro de phase/milestone à raffiner.
> Consulte `.planning/ROADMAP.md` pour voir les phases disponibles."

---

## Étape 1 — Lecture du contexte

1. Lire `BLUEPRINT.md` — extraire le milestone correspondant au N° de phase (§6)
2. Lire `.planning/ROADMAP.md` si il existe — identifier le scope exact du milestone
3. Lire `.planning/phases/{N}-CONTEXT.md` si il existe — **reprise de discussion**
   - Si le fichier existe, signaler : "Un contexte existe déjà pour cette phase. On reprend là où on s'est arrêté."
   - Lire le contenu existant et identifier les sections encore vides ou marquées TODO
4. Lire `.planning/phases/{M}-CONTEXT.md` pour M < N — contexte des phases précédentes
   - Identifier les décisions prises qui impactent la phase N
   - Identifier les livrables des phases précédentes sur lesquels la phase N s'appuie

---

## Étape 2 — Discussion structurée

Mener la discussion en couvrant ces 5 axes, dans l'ordre :

### Axe 1 — Scope et features

Questions à poser :
- Quelles features du Blueprint sont dans cette phase ? Confirmer le périmètre exact.
- Y a-t-il des features qui devraient être déplacées vers une autre phase ?
- Y a-t-il des sous-features implicites non listées dans le Blueprint ?

### Axe 2 — Choix techniques

Questions à poser :
- La stack §3 est-elle suffisante pour cette phase ou faut-il des libs/outils additionnels ?
- Y a-t-il des choix techniques non tranchés (ex: quelle lib pour l'auth, quel ORM) ?
- Comment s'interfacer avec les livrables des phases précédentes ?

### Axe 3 — Données et modèles

Questions à poser :
- Quels modèles de données sont créés ou modifiés dans cette phase ?
- Y a-t-il des migrations de données à prévoir ?
- Quelles sont les relations entre entités ?

### Axe 4 — Critères d'acceptation

Questions à poser :
- Pour chaque feature de la phase, quels sont les scénarios de test concrets ?
- Quels edge cases doivent être gérés ?
- Quels sont les critères de performance (si applicables) ?

### Axe 5 — Risques et dépendances

Questions à poser :
- Quels sont les risques techniques de cette phase ?
- Y a-t-il des dépendances externes (APIs, services tiers) ?
- Qu'est-ce qui pourrait bloquer ou retarder cette phase ?

**Style de discussion :**
- Une question à la fois, ciblée et concrète
- Proposer des choix quand possible (A, B, C) plutôt que des questions ouvertes
- Si l'utilisateur est vague, reformuler avec un exemple concret
- Valider chaque axe avant de passer au suivant

---

## Étape 3 — Écriture du CONTEXT.md

Une fois les 5 axes couverts, écrire `.planning/phases/{N}-CONTEXT.md` :

```markdown
# Phase {N} — {Titre du milestone}

> Contexte généré par forge-discuss — à utiliser par forge-planner.

## Scope

Features incluses : {liste des F-XXX}
Features exclues de cette phase : {liste}

## Décisions prises

- {Décision 1 : choix fait et justification}
- {Décision 2}
- ...

## Clarifications techniques

- {Choix technique 1 : lib/outil choisi et pourquoi}
- {Choix technique 2}
- ...

## Données et modèles

- {Modèle 1 : champs, relations}
- {Modèle 2}
- ...

## Dépendances avec phases précédentes

- Phase {M} fournit : {livrable}
- ...

## Critères d'acceptation détaillés

### F-XXX — {nom feature}
- {Scénario 1}
- {Scénario 2}
- ...

### F-YYY — {nom feature}
- ...

## Risques identifiés

- {Risque 1 : description + mitigation}
- {Risque 2}
- ...

## Notes additionnelles

- {Notes libres capturées pendant la discussion}
```

---

## Étape 4 — Finalisation

Avant d'écrire le fichier, présenter un résumé à l'utilisateur :
> "Voici le résumé du contexte pour la phase {N}. Confirme que c'est complet,
> ou indique ce qu'il faut ajuster."

Après confirmation :
1. Écrire/mettre à jour `.planning/phases/{N}-CONTEXT.md`
2. Message final :
   > "Contexte phase {N} enregistré. Lance `/forge-planner {N}` pour générer le plan."

---

## Règles absolues

- **JAMAIS** modifier le BLUEPRINT.md — les décisions vont dans CONTEXT.md (D10)
- **JAMAIS** écrire de code source
- **UNIQUEMENT** écrire dans `.planning/phases/`
- `$ARGUMENTS` est obligatoire — refuser de fonctionner sans numéro de phase
- Toujours lire les CONTEXT.md des phases précédentes pour la cohérence
- Toujours demander confirmation avant d'écrire le fichier final
