Synthèse automatique
Récupère les métadonnées d’une issue GitHub et, si elle existe, le commentaire d’analyse IA du bot github-actions, puis les renvoie en JSON structuré pour la planification de workflow.
Points forts
- Valide le numéro d’issue avant l’appel gh, ce qui évite les requêtes mal formées.
- Détecte le label ai-analyzed et filtre les commentaires sur l’auteur github-actions[bot].
- Fournit une sortie JSON et l’extraction optionnelle de sections d’analyse nommées pour les étapes suivantes.
- Regroupe les champs de base de l’issue et l’analyse IA en une seule passe.
Limites
- Suppose une CLI gh authentifiée, jq et sed, et est adapté au workflow conductor de WescoBar.
- L’extraction des sections dépend de titres Markdown exacts et peut tronquer ou manquer du contenu si le format du commentaire IA change.
- Ne cherche qu’un commentaire de bot contenant « AI Issue Analysis » ; ne gère ni la pagination ni d’autres noms de bots.
À utiliser au démarrage ou à la reprise d’une phase du workflow conductor nécessitant le contexte d’une issue et le commentaire d’analyse IA.
À ne pas utiliser pour des issues sans label ai-analyzed ni pour une recherche ou un reporting global sur les issues GitHub plutôt qu’une récupération unitaire.
Analyse de sécurité
SûrThe skill uses standard GitHub CLI (gh) and text processing tools (jq, sed, grep) to fetch and parse issue data and comments. All operations are read-only and non-destructive. No destructive commands, no exfiltration of secrets, no obfuscated payloads, and no network calls beyond the official GitHub API via gh. The bash commands are straightforward and legitimate for the stated purpose.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Fetch GitHub issue #137 for this repo, including the AI Issue Analysis comment from github-actions[bot], and return the structured JSON for conductor Phase 1.Resume the conductor workflow using issue #204: fetch its labels, body, and any AI analysis sections, then summarize the architectural alignment and files affected.Check whether issue #88 has the ai-analyzed label and, if present, extract the AI analysis testing strategy and implementation suggestions.name: fetch-github-issue-analysis description: Fetch GitHub issue details with AI analysis comment from github-actions bot, extracting structured data for architecture planning in WescoBar workflows
Fetch GitHub Issue Analysis
Purpose
Retrieve complete GitHub issue information including title, body, labels, and AI-generated analysis comment (if present) for use in conductor workflow Phase 1.
When to Use
- Conductor workflow Phase 1 (Issue Discovery and Planning)
- Workflow resumption with existing issue number
- Issue selection and validation
- Architecture planning with AI insights
Instructions
Step 1: Fetch Basic Issue Data
# Safe parameter handling with validation
ISSUE_NUMBER=${1:-""}
# Validate required parameter
if [ -z "$ISSUE_NUMBER" ]; then
echo "❌ Error: Issue number required"
echo "Usage: fetch-github-issue-analysis <issue_number>"
exit 1
fi
# Get issue details
ISSUE_DATA=$(gh issue view "$ISSUE_NUMBER" --json title,body,labels,number,state)
# Extract fields
ISSUE_TITLE=$(echo "$ISSUE_DATA" | jq -r '.title')
ISSUE_BODY=$(echo "$ISSUE_DATA" | jq -r '.body')
ISSUE_STATE=$(echo "$ISSUE_DATA" | jq -r '.state')
LABELS=$(echo "$ISSUE_DATA" | jq -r '[.labels[].name] | join(",")')
Step 2: Check for AI Analysis Label
# Check if issue has ai-analyzed label
if echo "$LABELS" | grep -q "ai-analyzed"; then
HAS_AI_ANALYSIS=true
else
HAS_AI_ANALYSIS=false
fi
Step 3: Fetch AI Analysis Comment (if exists)
if [ "$HAS_AI_ANALYSIS" = true ]; then
# Get repository name with owner
REPO_NAME=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
# Fetch AI analysis comment from github-actions bot
AI_ANALYSIS=$(gh api "repos/$REPO_NAME/issues/$ISSUE_NUMBER/comments" \
--jq '.[] | select(.user.login == "github-actions[bot]" and (.body | contains("AI Issue Analysis"))) | .body')
if [ -n "$AI_ANALYSIS" ]; then
AI_ANALYSIS_FOUND=true
else
AI_ANALYSIS_FOUND=false
fi
else
AI_ANALYSIS=""
AI_ANALYSIS_FOUND=false
fi
Step 4: Return Structured Output
Output as JSON for easy parsing by conductor:
{
"issue": {
"number": 137,
"title": "Add user dark mode preference toggle",
"body": "User wants to...",
"state": "open",
"labels": ["feature", "frontend", "ai-analyzed"]
},
"aiAnalysis": {
"found": true,
"content": "# AI Issue Analysis\n\n## Architectural Alignment...",
"sections": {
"architecturalAlignment": "...",
"technicalFeasibility": "...",
"implementationSuggestions": "...",
"filesAffected": [...],
"testingStrategy": "..."
}
}
}
Step 5: Parse AI Analysis Sections (Optional)
If AI analysis found, extract key sections:
# Extract Architectural Alignment section
ARCH_ALIGNMENT=$(echo "$AI_ANALYSIS" | sed -n '/## Architectural Alignment/,/## /p' | sed '$d')
# Extract Technical Feasibility section
TECH_FEASIBILITY=$(echo "$AI_ANALYSIS" | sed -n '/## Technical Feasibility/,/## /p' | sed '$d')
# Extract Implementation Suggestions section
IMPL_SUGGESTIONS=$(echo "$AI_ANALYSIS" | sed -n '/## Implementation Suggestions/,/## /p' | sed '$d')
# Extract Files/Components section
FILES_AFFECTED=$(echo "$AI_ANALYSIS" | sed -n '/## Files/,/## /p' | sed '$d')
# Extract Testing Strategy section
TESTING_STRATEGY=$(echo "$AI_ANALYSIS" | sed -n '/## Testing Strategy/,/## /p' | sed '$d')
Output Format
Success Case
{
"status": "success",
"issue": {
"number": 137,
"title": "Add user dark mode preference toggle",
"state": "open",
"labels": ["feature", "frontend", "ai-analyzed"]
},
"aiAnalysis": {
"found": true,
"architecturalAlignment": "Aligns with component-based architecture...",
"technicalFeasibility": "High - uses existing React patterns...",
"implementationSuggestions": "1. Add darkMode to state\n2. Create toggle component...",
"filesAffected": ["src/components/Settings.tsx", "src/context/WorldContext.tsx"],
"testingStrategy": "Unit tests for toggle, integration tests for persistence"
}
}
No AI Analysis Case
{
"status": "success",
"issue": {
"number": 123,
"title": "Fix character portrait loading",
"state": "open",
"labels": ["bug", "frontend"]
},
"aiAnalysis": {
"found": false
}
}
Integration with Conductor
Used in conductor Phase 1, Step 1:
**Step 1: Issue Selection**
If issue number provided by user:
Use `fetch-github-issue-analysis` skill:
- Input: issue_number
- Output: issue details + AI analysis (if available)
If AI analysis found:
✅ Use AI insights for architecture planning
📋 Extract: architectural alignment, implementation suggestions, testing strategy
→ Skip orchestrator selection, proceed to architecture review
If no AI analysis:
→ Delegate to orchestrator for issue selection logic
Error Handling
Issue Not Found
{
"status": "error",
"error": "Issue #999 not found",
"code": "NOT_FOUND"
}
Issue Closed
{
"status": "warning",
"issue": {...},
"warning": "Issue is closed - confirm before proceeding"
}
Rate Limit
{
"status": "error",
"error": "GitHub API rate limit exceeded",
"code": "RATE_LIMIT",
"retryAfter": 3600
}
Related Skills
parse-ai-analysis- Deep parsing of AI analysis sectionsselect-optimal-issue- Backlog selection when no issue specifiedcreate-tracking-issue- Create new issues
Examples
Example 1: Issue with AI Analysis
# Input
fetch-github-issue-analysis 137
# Output
{
"status": "success",
"issue": {
"number": 137,
"title": "Add user dark mode preference toggle"
},
"aiAnalysis": {
"found": true,
"architecturalAlignment": "Aligns with React Context patterns..."
}
}
Example 2: Issue without AI Analysis
# Input
fetch-github-issue-analysis 123
# Output
{
"status": "success",
"issue": {
"number": 123,
"title": "Fix character portrait loading"
},
"aiAnalysis": {
"found": false
}
}
Best Practices
- Always check issue state - Warn if closed
- Cache AI analysis - Avoid repeated API calls
- Handle rate limits - Implement exponential backoff
- Validate JSON output - Ensure well-formed response
- Extract sections carefully - AI analysis format may vary
Notes
- AI analysis format is defined by github-actions bot
- Comment must contain "AI Issue Analysis" heading
- Sections may vary based on issue type
- Always validate AI analysis exists before parsing sections
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fetch-github-issue-with-ai-analysis-ms47vpx5/download' --output '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md.part' && mv '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md.part' '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md' && test -s '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/fetch-github-issue-analysis' && cp -R '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5' '.claude/skills/fetch-github-issue-analysis'Cursor
test -f '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md' && test -s '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/fetch-github-issue-analysis' && cp -R '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5' '.cursor/skills/fetch-github-issue-analysis'Codex
test -f '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md' && test -s '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/fetch-github-issue-analysis' && cp -R '.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5' '.agents/skills/fetch-github-issue-analysis'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5'openskills read 'fetch-github-issue-with-ai-analysis-ms47vpx5'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/fetch-github-issue-with-ai-analysis-ms47vpx5/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.