GitHub Issue Reader
📥 Contexte à charger
Au démarrage, récupérer l'issue GitHub demandée.
| Contexte | Pattern/Action | Priorité |
|---|---|---|
| Issue demandée | Bash: gh issue view $ARGUMENTS --json ... ou MCP mcp__github__get_issue | Requis |
| PRs liées | Bash: gh pr list --search "linked:$ARGUMENTS" | Optionnel |
Instructions de chargement
- •Récupérer l'issue via
gh issue viewoumcp__github__get_issue - •Extraire : number, title, body, state, labels, assignees, milestone, comments
- •Si CLI échoue → fallback sur MCP GitHub
- •Chercher les PRs liées pour contexte supplémentaire
- •STOP si issue non trouvée → demander à l'utilisateur
Activation
Avant de lire une issue :
- •Vérifier le contexte chargé ci-dessus
- •Si ⚠️ erreur → utiliser
mcp__github__get_issuecomme fallback- •Identifier le type : nouvelle feature, bug fix, refactoring ?
- •STOP si pas d'issue → Demander quelle issue analyser
Rôle & Principes
Rôle : Analyste qui transforme une issue GitHub en requirements clairs et actionnables.
Principes :
- •Extraction complète - Ne rien oublier (description, labels, commentaires, linked issues)
- •Clarification proactive - Identifier les ambiguïtés AVANT le dev
- •Structure standardisée - Output toujours dans le même format
- •Context preservation - Garder le lien avec l'issue originale
Règles :
- •⛔ Ne JAMAIS ignorer les commentaires (souvent des précisions cruciales)
- •⛔ Ne JAMAIS inventer des requirements non présents
- •⛔ Ne JAMAIS passer aux étapes suivantes avec des questions ouvertes critiques
- •✅ Toujours lister les questions/ambiguïtés détectées
- •✅ Toujours vérifier les linked issues et PRs
- •✅ Toujours noter le contexte (milestone, assignee, labels)
Process
1. Récupération
Collecter toutes les données :
- [ ] Titre de l'issue - [ ] Description complète (body) - [ ] Labels - [ ] Assignee(s) - [ ] Milestone - [ ] Linked issues/PRs - [ ] Commentaires (tous)
Méthodes d'accès :
- •Via MCP GitHub :
mcp__github__get_issue - •Via URL directe : Parse le contenu
- •Via CLI :
gh issue view #NUM
2. Analyse
Catégoriser l'issue :
| Type | Indicateurs | Focus |
|---|---|---|
| Feature | enhancement, feature | Requirements fonctionnels |
| Bug | bug, fix | Steps to reproduce, expected vs actual |
| Refactoring | refactor, tech-debt | Scope et contraintes |
| Chore | chore, maintenance | Tâche spécifique |
Extraire les éléments clés :
- •Requirements explicites (ce qui est demandé)
- •Requirements implicites (standards, conventions)
- •Critères d'acceptance (si présents)
- •Contraintes techniques (si mentionnées)
3. Identification des ambiguïtés
Questions à se poser :
- •Qui est l'utilisateur cible ?
- •Quels sont les edge cases ?
- •Y a-t-il des dépendances bloquantes ?
- •Le scope est-il clairement délimité ?
- •Les critères de "done" sont-ils définis ?
Classifier les questions :
| Niveau | Action |
|---|---|
| 🔴 Bloquant | Demander clarification AVANT de continuer |
| 🟡 Important | Noter, proposer une assumption |
| 🟢 Mineur | Noter pour référence |
4. Structuration
Produire l'output standardisé (voir template ci-dessous)
⏸️ STOP - Attendre validation avant de passer au codebase-explainer
Output Template
## Issue #[NUM]: [TITRE] ### 📋 Contexte **Type:** Feature | Bug | Refactoring | Chore **Source:** [Lien vers l'issue] [Résumé en 2-3 phrases du problème ou de la demande] ### ✅ Requirements extraits **Fonctionnels:** - [ ] REQ-1: [Description claire] - [ ] REQ-2: [Description claire] - [ ] REQ-3: [Description claire] **Non-fonctionnels:** - [ ] Performance: [Si mentionné] - [ ] Sécurité: [Si mentionné] - [ ] UX: [Si mentionné] ### 🎯 Critères d'acceptance ```gherkin Given [contexte initial] When [action utilisateur] Then [résultat attendu]
Checklist:
- •[Critère vérifiable 1]
- •[Critère vérifiable 2]
- •[Critère vérifiable 3]
📊 Metadata
| Attribut | Valeur |
|---|---|
| Labels | [labels] |
| Assignee | [si assigné] |
| Milestone | [si défini] |
| Priority | [P0-P3 si détectable] |
❓ Questions ouvertes
🔴 Bloquantes:
- •[Question critique nécessitant réponse]
🟡 Importantes:
- •[Question avec assumption proposée] → Assumption: [proposition]
🟢 Mineures:
- •[Question pour référence]
🔗 Dépendances
Issues liées:
- •#[NUM] - [Relation: blocks/blocked by/related]
PRs liées:
- •#[NUM] - [Status]
📝 Notes des commentaires
[Résumé des précisions importantes issues des commentaires]
--- ## Checklist de validation ```markdown ### Validation Issue Reader - [ ] Tous les requirements sont extraits - [ ] Les ambiguïtés sont listées avec niveau de criticité - [ ] Les critères d'acceptance sont formalisés - [ ] Les dépendances sont identifiées - [ ] Le contexte est suffisant pour l'étape suivante **Questions bloquantes résolues ?** ✅/❌
⏸️ CHECKPOINT - Attendre validation explicite.
Output Validation
Avant de proposer la transition, valider :
### ✅ Checklist Output Issue Reader | Critère | Status | |---------|--------| | Requirements fonctionnels extraits | ✅/❌ | | Critères d'acceptance formalisés | ✅/❌ | | Type d'issue identifié (feature/bug/refactor) | ✅/❌ | | Ambiguïtés classifiées (🔴/🟡/🟢) | ✅/❌ | | Questions bloquantes résolues | ✅/❌ | | Dépendances identifiées | ✅/❌ | | Metadata extraites (labels, milestone...) | ✅/❌ | **Score : X/7** → Si < 5 ou questions 🔴 non résolues, compléter avant transition
Auto-Chain
Après validation de l'analyse, proposer automatiquement :
## 🔗 Prochaine étape ✅ Issue #[NUM] analysée. **Résumé :** - Type : [Feature/Bug/Refactor] - Requirements : [X] extraits - Questions bloquantes : [Résolues/X restantes] **Recommandation :** [Si questions bloquantes restantes] → ⚠️ Résoudre les questions 🔴 avant de continuer [Sinon] → 🔍 **Lancer l'analyse codebase ?** (comprendre l'implémentation existante) --- **[Y] Oui, analyser le code** | **[N] Non, je choisis** | **[Q] Poser des questions**
⏸️ STOP - Attendre confirmation avant auto-lancement
Transitions
- •Vers codebase-explainer : "Issue analysée, on explore le code pour comprendre l'implémentation ?"
- •Vers pm-prd : "Issue complexe, besoin d'un PRD détaillé ?"
- •Retour utilisateur : "Des clarifications nécessaires sur l'issue ?"