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
À utiliser lorsqu'une issue GitHub doit être triée, qualifiée et transformée en plan de résolution avec branche et exigences.
À é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é
PrudenceThe 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.
- •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
Exemples
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 these open issues by type and priority and tell me which ones are bugs, features or documentation so I can plan the next sprint.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
- Parse Issue: Extract structured data
- Generate EARS: Convert to EARS format requirements
- Create REQ Document: Use
musubi-requirementsCLI - 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 patternssteering/tech.md(English) - Technology stacksteering/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 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/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’OpenSkillsopenskills 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 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/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.
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.