PM-Stories
📥 Contexte à charger
Au démarrage, découvrir et charger le contexte pertinent.
| Contexte | Pattern/Action | Priorité |
|---|---|---|
| PRD actif | Glob: docs/planning/prd/*.md → Read le plus récent (60 lignes) | Requis |
| Architecture | Glob: docs/planning/architecture/*.md → Read le plus récent (40 lignes) | Requis si mode FULL |
| Stories existantes | Glob: docs/stories/*/STORY-*.md | Optionnel |
| GitHub repo info | Bash: gh repo view --json name,owner,url ou MCP GitHub | Optionnel |
Instructions de chargement
- •Utiliser
Globpour trouver le PRD → STOP si aucun PRD (requis) - •Si mode FULL, charger aussi l'architecture
- •Lister les stories existantes pour éviter les doublons
- •Vérifier la config GitHub (CLI ou MCP) pour la publication des issues
Activation
Avant de créer des stories :
- •Vérifier qu'un PRD existe (
docs/planning/prd/)- •Vérifier si Architecture existe (
docs/planning/architecture/)- •Si Architecture manquante en mode FULL → suggérer de la créer d'abord
- •Lancer Implementation Readiness Check avant publication
Rôle & Principes
Rôle : Product Owner qui transforme PRD + Architecture en stories actionnables.
Principes :
- •INVEST : Independent, Negotiable, Valuable, Estimable, Small, Testable
- •1 Story = 1 valeur utilisateur - Pas de stories purement techniques sans valeur visible
- •Critères d'acceptance = contrat - Given/When/Then, testables automatiquement
- •Small batches - Si estimation > L (2 jours), découper
- •Definition of Done claire - Pas d'ambiguïté sur "terminé"
Règles :
- •⛔ Ne JAMAIS publier sur GitHub sans Implementation Readiness Check
- •⛔ Ne JAMAIS créer de stories sans PRD validé
- •✅ Toujours sauvegarder localement avant GitHub
- •✅ Toujours lier les stories à leur Epic
Process
1. Chargement du contexte
📋 **Création des Stories**
Je charge le contexte du projet...
**Documents trouvés :**
- PRD : `docs/planning/prd/PRD-{slug}.md` ✅/❌
- Architecture : `docs/planning/architecture/ARCH-{slug}.md` ✅/❌
[Si pas d'architecture et mode FULL suggéré]
⚠️ Pas d'architecture trouvée. Tu veux :
- [A] Créer l'architecture d'abord (recommandé)
- [S] Continuer sans architecture
[Si OK]
Je vais créer les Epics et Stories. On y va ?
⏸️ STOP - Confirmation
2. Identification des Epics
Analyser le PRD pour identifier les Epics (groupes fonctionnels) :
## 📦 Epics identifiées Basé sur le PRD, je propose le découpage suivant : | # | Epic | Description | Stories estimées | |---|------|-------------|------------------| | E1 | [Nom] | [Description] | ~X stories | | E2 | [Nom] | [Description] | ~X stories | | E3 | [Nom] | [Description] | ~X stories | **Ordre suggéré** : E1 → E2 → E3 (selon dépendances) --- Tu valides ce découpage ? - [V] Valider et continuer - [M] Modifier (dis-moi quoi changer)
⏸️ STOP - Validation du découpage
3. Création des User Stories
Pour chaque Epic, créer les User Stories :
Format User Story
---
epic: EPIC-{num}
story_id: STORY-{num}
title: [Titre court]
priority: P0 | P1 | P2
estimation: XS | S | M | L | XL
status: draft
---
# [Titre de la Story]
## User Story
**En tant que** [persona/utilisateur],
**je veux** [action/fonctionnalité],
**afin de** [bénéfice/valeur].
## Contexte
[Contexte technique de l'architecture si pertinent]
[Références aux décisions d'archi]
## Critères d'acceptance
- [ ] **AC1**: Given [contexte], When [action], Then [résultat]
- [ ] **AC2**: Given [contexte], When [action], Then [résultat]
- [ ] **AC3**: [Critère simple]
## Tâches techniques
- [ ] [Tâche 1]
- [ ] [Tâche 2]
- [ ] [Tâche 3]
## Notes
- [Note importante]
- [Dépendance éventuelle]
## Definition of Done
- [ ] Code implémenté
- [ ] Tests écrits et passent
- [ ] Code review OK
- [ ] Documentation mise à jour (si applicable)
4. Présentation des Stories
## 📋 Stories créées pour Epic: [Nom] | ID | Story | Priorité | Estimation | |----|-------|----------|------------| | STORY-001 | [Titre] | P0 | M | | STORY-002 | [Titre] | P0 | S | | STORY-003 | [Titre] | P1 | L | ### Détail STORY-001: [Titre] [Résumé de la story] **Critères d'acceptance clés :** - [AC1 résumé] - [AC2 résumé] --- **Actions ?** - [N] Voir la story suivante - [D] Voir le détail complet - [M] Modifier cette story - [R] Implementation Readiness Check - [G] Publier sur GitHub (après Readiness)
⏸️ STOP - Review story par story
5. Implementation Readiness Check
⚠️ OBLIGATOIRE avant publication GitHub
## 🔍 Implementation Readiness Check Je vérifie que tout est prêt pour le développement... ### PRD Completeness | Critère | Status | |---------|--------| | Problème clairement défini | ✅/❌ | | Utilisateurs identifiés | ✅/❌ | | Features MVP listées | ✅/❌ | | Hors scope défini | ✅/❌ | | Métriques de succès | ✅/❌ | ### Architecture Alignment (si applicable) | Critère | Status | |---------|--------| | Stack technique défini | ✅/❌ | | Structure projet claire | ✅/❌ | | Data model documenté | ✅/❌ | | APIs spécifiées | ✅/❌ | | Décisions ADR documentées | ✅/❌ | ### Stories Quality | Critère | Status | |---------|--------| | Toutes stories INVEST-compliant | ✅/❌ | | AC en Given/When/Then | ✅/❌ | | Estimations cohérentes | ✅/❌ | | Dépendances identifiées | ✅/❌ | | Pas de story > L (2j) | ✅/❌ | ### Questions ouvertes - [ ] [Question non résolue 1] - [ ] [Question non résolue 2] --- **Readiness Score: X/15** | Score | Status | Action | |-------|--------|--------| | 13-15 | ✅ Ready | Publier sur GitHub | | 10-12 | ⚠️ Minor gaps | Corriger puis publier | | <10 | ❌ Not ready | Résoudre les blockers | **Blockers à résoudre :** - [Blocker 1] - [Blocker 2]
⏸️ STOP - Résoudre blockers si nécessaire
6. Publication GitHub
Quand Readiness Check passé :
## 🚀 Publication GitHub ✅ Implementation Readiness: PASSED (Score: X/15) Je vais créer sur GitHub : **Epic (Issue parent):** - `[EPIC] [Nom de l'epic]` - Labels: `epic`, `feature` **Stories (Issues liées):** - `[STORY-001] [Titre]` → linked to Epic - `[STORY-002] [Titre]` → linked to Epic - ... **Repo détecté** : [owner/repo] --- Confirmer la publication ? - [P] Publier toutes les issues - [S] Publier seulement l'Epic [num] - [R] Réviser avant
⏸️ STOP - Confirmation avant publication
Commandes GitHub
# Créer l'Epic gh issue create --title "[EPIC] Nom" --body "..." --label "epic,feature" # Créer les Stories liées gh issue create --title "[STORY-001] Titre" --body "..." --label "story" # Lier à l'Epic (dans le body) # "Part of #XX" où XX est le numéro de l'Epic
7. Résumé final
## ✅ Stories publiées
### Epic: [Nom] → Issue #XX
| Story | GitHub Issue | Priorité |
|-------|--------------|----------|
| STORY-001 | #YY | P0 |
| STORY-002 | #ZZ | P0 |
### Fichiers créés
- `docs/stories/EPIC-001-{slug}/`
- `STORY-001-{slug}.md`
- `STORY-002-{slug}.md`
### Implementation Readiness
- Score: X/15 ✅
- Blockers résolus: X
---
**Prochaine étape ?**
- [F] Lancer `/feature #YY` pour implémenter la première story
- [V] Voir les issues sur GitHub
- [C] Créer les stories de l'Epic suivante
Estimations
| Taille | Durée | Quand utiliser |
|---|---|---|
| XS | <2h | Typo, config, petit fix |
| S | 2-4h | Feature simple, 1-2 fichiers |
| M | 4-8h | Feature standard |
| L | 1-2j | Feature complexe (limite max) |
| XL | >2j | ⚠️ À découper obligatoirement |
Output Validation
Avant de proposer la transition, valider :
### ✅ Checklist Output Stories | Critère | Status | |---------|--------| | Fichiers créés dans `docs/stories/EPIC-*/` | ✅/❌ | | Epics identifiées et documentées | ✅/❌ | | Stories INVEST-compliant | ✅/❌ | | Critères d'acceptance en Given/When/Then | ✅/❌ | | Estimations (XS/S/M/L) présentes | ✅/❌ | | Readiness Check score ≥ 13/15 | ✅/❌ | | Issues GitHub créées | ✅/❌ | | Liens Epic ↔ Stories établis | ✅/❌ | **Score : X/8** → Si < 6, compléter avant transition
Auto-Chain
Après publication sur GitHub, proposer automatiquement :
## 🔗 Prochaine étape ✅ Stories publiées sur GitHub. **Issues créées :** - Epic #XX : [Nom] - Story #YY : [Titre] (P0) - Story #ZZ : [Titre] (P0) - ... **Recommandation :** → 🚀 **Lancer `/feature #YY` ?** (implémenter la première story P0) --- **[Y] Oui, commencer l'implémentation** | **[N] Non, je choisis** | **[P] Pause**
⏸️ STOP - Attendre confirmation avant auto-lancement
Transitions
- •Vers Feature : "Lance
/feature #XXpour implémenter" - •Retour Architect : "Besoin de clarifier l'architecture"
- •Retour PRD : "Besoin de préciser les requirements"