dev:auto:fetch-issue
Récupérer le contenu d'une issue GitHub - Mode AUTO (Phase 0)
Best use case
dev:auto:fetch-issue is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Récupérer le contenu d'une issue GitHub - Mode AUTO (Phase 0)
Teams using dev:auto:fetch-issue should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/auto-fetch-issue/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How dev:auto:fetch-issue Compares
| Feature / Agent | dev:auto:fetch-issue | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Récupérer le contenu d'une issue GitHub - Mode AUTO (Phase 0)
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Objectif
## Instructions à Exécuter
**IMPORTANT : Exécute ce workflow étape par étape :**
Phase 0 (Initialisation) du workflow automatisé : récupérer la specification depuis une issue GitHub.
Exécuté au démarrage du workflow avant Phase 1.
# Instructions
## 1. Valider le paramètre
- Vérifier que l'argument est un numéro valide
- Exit avec erreur si pas un numéro
```bash
issue_number=$ARGUMENTS
if ! [[ "$issue_number" =~ ^[0-9]+$ ]]; then
echo "❌ Erreur : l'argument doit être un numéro d'issue GitHub"
echo "Usage: /dev:auto:feature 123"
exit 1
fi
```
## 2. Récupérer l'issue
Utiliser `gh issue view` pour récupérer le contenu :
```bash
issue_data=$(gh issue view "$issue_number" --json title,body,labels,state)
issue_exists=$?
if [ $issue_exists -ne 0 ]; then
echo "❌ Issue #$issue_number non trouvée"
echo "Vérifie que :"
echo " 1. Le numéro est correct"
echo " 2. Tu es authentifié sur GitHub (gh auth login)"
echo " 3. L'issue existe dans le repo courant"
exit 1
fi
```
## 3. Parser les données
Extraire les champs nécessaires :
```bash
# Utiliser jq pour parser
issue_title=$(echo "$issue_data" | jq -r '.title')
issue_body=$(echo "$issue_data" | jq -r '.body')
issue_state=$(echo "$issue_data" | jq -r '.state')
issue_labels=$(echo "$issue_data" | jq -r '.labels | map(.name) | join(", ")')
```
## 4. Valider l'issue
- Vérifier que l'issue est en state "OPEN"
- Vérifier que la description n'est pas vide
```bash
if [ "$issue_state" != "OPEN" ]; then
echo "❌ Issue #$issue_number n'est pas ouverte (state: $issue_state)"
exit 1
fi
if [ -z "$issue_body" ] || [ "$issue_body" == "null" ]; then
echo "⚠️ Issue #$issue_number : description vide"
echo "Ajoute une description détaillée avant de relancer le workflow"
exit 1
fi
```
## 5. Afficher les infos
```
🔗 Issue GitHub récupérée
#$issue_number : $issue_title
État : $issue_state
Labels : $issue_labels
Description :
───────────────────────────────
$issue_body
───────────────────────────────
```
## 6. Sauvegarder dans le workflow state
Déterminer le chemin :
```bash
issue_number=$ARGUMENTS
workflow_state_file=".claude/data/workflows/issue-${issue_number}-dev-workflow-state.json"
mkdir -p ".claude/data/workflows"
```
Créer le fichier `.dev-workflow-state.json` :
```json
{
"mode": "auto",
"issue": {
"number": $issue_number,
"title": "$issue_title",
"description": "$issue_body",
"labels": "$issue_labels",
"state": "$issue_state",
"fetchedAt": "{ISO timestamp}"
},
"feature": "$issue_title",
"status": "in_progress",
"startedAt": "{ISO timestamp}",
"currentPhase": 0,
"phases": {
"0": {
"status": "completed",
"completedAt": "{ISO timestamp}",
"durationMs": {durée}
}
}
}
```
## 7. Transférer à Phase 1
Passer la spec de l'issue à `discover.md` en paramètre :
```bash
spec="Issue #$issue_number: $issue_title\n\n$issue_body"
# Cette spec sera utilisée dans Phase 1 (Discover)
```
# Règles
- ✅ **Valider le numéro** (doit être entier)
- ✅ **Vérifier que l'issue existe** (gh auth required)
- ✅ **Vérifier que l'issue est OPEN**
- ✅ **Vérifier que la description n'est pas vide**
- ✅ **Sauvegarder dans workflow state** avec issue metadata
- ✅ **Afficher les infos** pour transparence
- ❌ **Ne pas modifier l'issue** (read-only)
- ❌ **Ne pas continuer si l'issue est invalide** (exit 1)
# Cas d'erreur
## Issue non trouvée
```
❌ Issue #123 non trouvée
Vérifie que :
1. Le numéro est correct
2. Tu es authentifié sur GitHub (gh auth login)
3. L'issue existe dans le repo courant
```
## Issue fermée
```
❌ Issue #123 n'est pas ouverte (state: CLOSED)
```
## Description vide
```
⚠️ Issue #123 : description vide
Ajoute une description détaillée avant de relancer le workflow
```
# Dépendances
- `gh` CLI installé et authentifié (`gh auth login`)
- Exécuté depuis le repo contenant l'issueRelated Skills
dev:auto:review
Review avec auto-fix automatique - Mode AUTO (Phase 7)
dev:auto:plan
Générer plan d'implémentation automatiquement - Mode AUTO (Phase 5)
dev:auto:feature
Workflow complet de développement automatisé (mode non-interactif)
dev:auto:explore
Explorer le codebase automatiquement - Mode AUTO (Phase 2)
dev:auto:discover
Comprendre le besoin avant développement - Mode AUTO (Phase 0)
dev:auto:design
Choisir architecture automatiquement (Phase 4)
dev:auto:code
Implémenter selon le plan - Mode AUTO (Phase 6)
dev:auto:clarify
Lever ambiguités avec heuristiques automatiques (Phase 3)
dev:auto:check-prerequisites
Vérifier tous les prérequis - Mode AUTO (Phase -1)
fix-grammar
Fix grammar and spelling errors in one or multiple files while preserving formatting
symfony-framework
Comprehensive Symfony 6.4 development skill for web applications, APIs, and microservices.
symfony:make
Cherche si il existe un maker Symfony pour faire la tache demandée et l'utilise si il existe. Si aucun maker n'existe alors utilise la slash command "/prepare"