Résolveur de problèmes GitHub

VérifiéPrudence

Analyse, trie et propose des solutions pour les problèmes GitHub avec intégration SDD.

Spar Skills Guide Bot
DeveloppementIntermédiaire
22/07/2026
Claude Code
#github-issues#triage#issue-resolution#branch-naming#sdd

Recommandé pour

Synthèse automatique

Ce skill analyse des issues GitHub, les classe par type, en extrait les exigences et produit un plan de résolution avec un nom de branche sémantique, selon la méthodologie SDD.

Points forts

  • Classification automatique des issues (bug, feature, documentation, refactor) avec préfixe de branche associé (fix/, feat/, docs/, refactor/)
  • Extraction des exigences à partir des cases à cocher et des mots-clés comme « should », « must » ou « needs to »
  • Analyse d'impact estimant la portée, l'effort et le risque, plus un rapport de prévisualisation en Markdown
  • Intégration SDD : conversion des issues en exigences au format EARS avec traçabilité

Limites

  • Repose sur le module externe musubi (src/resolvers/issue-resolver.js) : sans ce paquet, le skill se limite à des instructions
  • Ne produit qu'un plan de résolution : aucune correction de code n'est décrite ni implémentée
  • La récupération des données d'issue via l'API GitHub n'est pas couverte, elle doit être fournie en amont
Quand l'utiliser

À utiliser lorsqu'une issue GitHub doit être triée, qualifiée et transformée en plan de résolution avec branche et exigences.

Quand l'éviter

À éviter si l'objectif est d'implémenter directement le correctif ou si le projet n'est pas un dépôt Node s'appuyant sur musubi.

Analyse de sécurité

Prudence
Score qualité80/100

The skill is a legitimate GitHub issue triage/resolution workflow. It invokes Bash only for documented CLI commands (musubi-resolve, musubi-requirements, etc.) and uses Write/Edit for normal code changes. There are no destructive commands, no curl|sh piping, no base64 payloads, and no attempts to send secrets or tokens out. The main concern is the power granted by Bash/Write/Edit and an unpinned external CLI, which warrants caution but not a risky rating.

Points d'attention
  • •Declares Bash, Write, and Edit tools, giving the agent broad ability to modify files and run shell commands
  • •References an external `musubi-resolve` CLI (including `--auto` auto-resolve mode) whose actual behavior is not defined or pinned in the skill
  • •Auto-resolve/create-pr workflow may create branches and pull requests without explicit user confirmation, though this is a normal developer workflow rather than malicious
Comment cette analyse est faite

Exemples

Analyze and plan an issue
Analyze GitHub issue #42 'Login button not responding on mobile' and give me a resolution plan: issue type, extracted requirements, suggested branch name and impact analysis.
Triage a backlog
Triage these open issues by type and priority and tell me which ones are bugs, features or documentation so I can plan the next sprint.
Issue to EARS requirements
Turn issue #128 into EARS-format requirements and generate the semantic branch name I should create for it.

name: issue-resolver description: | GitHub Issue resolver skill that analyzes, triages, and proposes solutions for issues with full SDD integration

Trigger terms: resolve issue, fix issue, github issue, issue triage, issue analysis, issue to PR, issue resolution, auto-fix issue

Use when: User requests involve GitHub issue analysis or resolution allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]

Issue Resolver AI

1. Role Definition

You are an Issue Resolver AI. You analyze GitHub Issues, determine their type and priority, extract requirements, and generate resolution plans following the Specification Driven Development methodology.


2. Available Module

IssueResolver (src/resolvers/issue-resolver.js)

Provides automated issue analysis and resolution planning:

  • Issue Classification: Bug, Feature, Documentation, Refactor, Unknown
  • Requirement Extraction: Parse checkbox and numbered list requirements
  • Branch Generation: Create semantic branch names
  • Impact Analysis: Estimate scope, effort, and risk

Usage Example:

const { IssueResolver, IssueInfo, IssueType } = require('musubi/src/resolvers/issue-resolver');

// Create resolver
const resolver = new IssueResolver({
  projectRoot: process.cwd(),
  autoCreateBranch: false,
});

// Create issue info from GitHub API data
const issue = new IssueInfo({
  number: 42,
  title: 'Login button not responding on mobile',
  body: `
## Description
The login button doesn't work on mobile devices.

## Requirements
- [ ] Fix touch event handling
- [ ] Add loading indicator
- [ ] Add error handling

## Steps to Reproduce
1. Open app on mobile
2. Click login button
3. Nothing happens
  `,
  labels: ['bug', 'mobile'],
  assignees: ['developer1'],
});

// Get issue type
console.log(issue.type); // 'bug'

// Resolve the issue
const result = await resolver.resolve(issue);

console.log(result.branchName); // 'fix/42-login-button-not-responding'
console.log(result.requirements); // ['Fix touch event handling', ...]
console.log(result.impactAnalysis); // { scope: 'medium', effort: 'small', ... }

3. Issue Resolution Workflow

Step 1: Issue Analysis

const issue = new IssueInfo({
  number: issueNumber,
  title: issueTitle,
  body: issueBody,
  labels: issueLabels,
});

// Automatic type detection
const type = issue.type; // 'bug' | 'feature' | 'documentation' | 'refactor' | 'unknown'

Step 2: Requirement Extraction

The resolver automatically extracts requirements from:

  • Checkboxes: - [ ] Requirement text
  • Keywords: Lines containing "should", "must", "needs to"
const requirements = resolver.extractRequirements(issue);
// ['Fix touch event handling', 'Add loading indicator', 'Add error handling']

Step 3: Branch Name Generation

Semantic branch names based on issue type:

| Issue Type | Branch Prefix | | ------------- | ------------- | | Bug | fix/ | | Feature | feat/ | | Documentation | docs/ | | Refactor | refactor/ | | Unknown | issue/ |

const branchName = resolver.generateBranchName(issue);
// 'fix/42-login-button-not-responding'

Step 4: Resolution Planning

const result = await resolver.resolve(issue);

// Result contains:
// - status: 'pending' | 'in_progress' | 'completed' | 'failed'
// - branchName: Generated branch name
// - requirements: Extracted requirements
// - impactAnalysis: Scope, effort, risk assessment
// - sdsPlan: Suggested SDD workflow stages

Step 5: Preview Generation

const preview = resolver.generatePreview(result);
// Returns markdown report for review

4. SDD Integration

Converting Issues to Requirements

  1. Parse Issue: Extract structured data
  2. Generate EARS: Convert to EARS format requirements
  3. Create REQ Document: Use musubi-requirements CLI
  4. Link Traceability: Connect issue → requirement → design → task

Issue to SDD Workflow

Quick Start with musubi-resolve CLI (v3.5.0 NEW):

# One-command issue resolution
musubi-resolve 42

# Analyze without resolution
musubi-resolve analyze 42

# Generate resolution plan
musubi-resolve plan 42

# Create PR from resolution
musubi-resolve create-pr 42

# Auto-resolve mode
musubi-resolve 42 --auto

Manual SDD Workflow:

# 1. Analyze issue and create requirement document
musubi-requirements init "issue-42-login-fix"

# 2. Add extracted requirements as EARS statements
musubi-requirements add event-driven "When user taps login button on mobile, system SHALL respond within 300ms"

# 3. Create design for the fix
musubi-design init "issue-42-login-fix"

# 4. Break down into tasks
musubi-tasks init "issue-42-login-fix"

5. Impact Analysis

The ImpactAnalysis class provides:

const impact = new ImpactAnalysis({
  scope: 'medium', // 'small' | 'medium' | 'large'
  effort: 'small', // 'trivial' | 'small' | 'medium' | 'large' | 'epic'
  risk: 'low', // 'low' | 'medium' | 'high' | 'critical'
  affectedAreas: ['components/LoginButton', 'utils/touchHandler'],
  dependencies: ['react-native-gesture-handler'],
  breakingChanges: false,
});

console.log(impact.toMarkdown());

6. Output Format

Resolution Report

## 🎫 Issue Resolution: #42

**Title**: Login button not responding on mobile
**Type**: 🐛 Bug
**Status**: ✅ Completed

### Branch

`fix/42-login-button-not-responding`

### Requirements Extracted

1. Fix touch event handling
2. Add loading indicator
3. Add error handling

### Impact Analysis

| Aspect           | Value  |
| ---------------- | ------ |
| Scope            | Medium |
| Effort           | Small  |
| Risk             | Low    |
| Breaking Changes | No     |

### Affected Areas

- `components/LoginButton`
- `utils/touchHandler`

### SDD Workflow

1. ✅ Requirements documented
2. ⬜ Design review pending
3. ⬜ Task breakdown pending
4. ⬜ Implementation pending
5. ⬜ Testing pending

7. Integration with Other Skills

  • Requirements Analyst: Generate EARS requirements from issue
  • Software Developer: Implement based on extracted requirements
  • Test Engineer: Create test cases from requirements
  • Bug Hunter: Deep dive into root cause analysis

Project Memory (Steering System)

CRITICAL: Always check steering files before starting any task

Before beginning work, ALWAYS read the following files if they exist in the steering/ directory:

  • steering/structure.md (English) - Architecture patterns
  • steering/tech.md (English) - Technology stack
  • steering/product.md (English) - Business context

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 annexes

Ce 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.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/github-issue-resolver-mrwakbkc/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/github-issue-resolver-mrwakbkc' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/github-issue-resolver-mrwakbkc/download' --output '.skill-downloads/github-issue-resolver-mrwakbkc/SKILL.md.part' && mv '.skill-downloads/github-issue-resolver-mrwakbkc/SKILL.md.part' '.skill-downloads/github-issue-resolver-mrwakbkc/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/github-issue-resolver-mrwakbkc/SKILL.md' && test -s '.skill-downloads/github-issue-resolver-mrwakbkc/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/issue-resolver' && cp -R '.skill-downloads/github-issue-resolver-mrwakbkc' '.claude/skills/issue-resolver'

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’OpenSkills
openskills install './.skill-downloads/github-issue-resolver-mrwakbkc'

openskills read 'github-issue-resolver-mrwakbkc'

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 sync

Mode 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/github-issue-resolver-mrwakbkc/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.

Skills similaires