Créer une branche de bug

VérifiéPrudence

Crée une nouvelle branche de bug à partir d'une branche projet existante en guidant l'utilisateur pour ajouter un défi de débogage unique. Utile pour générer des exercices de débogage avec un script run.sh qui reproduit l'échec.

Spar Skills Guide Bot
DeveloppementIntermédiaire
02/06/2026
Claude Code
#git#debugging#bug-challenge#automation

Recommandé pour

Synthèse automatique

Crée une branche de bug à partir d'une branche de projet existante, avec un seul défi de débogage à résoudre.

Points forts

  • Automatise la création de branches de bug numérotées séquentiellement.
  • Guide l'utilisateur dans l'ajout d'un bug et la création du script de reproduction.
  • Vérifie l'état du dépôt et s'assure que tout est commité avant de finaliser.

Limites

  • Nécessite que l'utilisateur introduise manuellement le bug (aucune génération automatique de bug).
  • Ne prend pas en charge les bugs multi-fichiers complexes – conçu pour un seul bug simple.
Quand l'utiliser

Lorsque vous voulez créer un défi de débogage structuré avec une seule branche, un script de reproduction et une numérotation claire.

Quand l'éviter

Si vous avez besoin de générer automatiquement un bug ou de gérer des bugs complexes avec plusieurs dépendances.

Analyse de sécurité

Prudence
Score qualité90/100

The skill uses git and bash to create branches and run user-specified commands. While not inherently malicious, it allows the user to supply any command that will be executed, posing a risk if the user provides dangerous input. No input sanitization is mentioned.

Points d'attention
  • •The skill instructs the execution of user-provided shell commands (via run.sh and uv run), which could be arbitrary and potentially destructive. It also uses git operations that modify the repository state.
Comment cette analyse est faite

Exemples

Basic usage
/add-bug
Specifying project name
/add-bug
Project name: tinydb
Providing description upfront
/add-bug
Project name: quixbugs-challenge
Description: Add off-by-one error in loop condition

name: add-bug description: Create a new bug branch from an existing project branch with a single debugging challenge

Add Bug Branch

Creates a new bug branch from an existing project branch with a single debugging challenge.

Usage

/add-bug

Instructions

When this command is invoked:

  1. Ask the user for required information:

    • Project name (the base project branch, e.g., tinydb, quixbugs-challenge)
    • Bug number (or auto-detect next available number)
    • Brief description of what bug they want to add (optional, for commit message)
  2. Verify current state:

    • Confirm the project branch exists
    • Check for uncommitted changes (warn if any exist)
    • Find the next available bug number by checking for existing <project-name>-bug* branches
  3. Create the bug branch:

    git checkout <project-name>
    git checkout -b <project-name>-bug<N>
    
  4. Guide the user through adding the bug:

    • Explain that they should now: a. Modify the code to introduce the bug b. Verify the bug causes a test failure or observable issue
    • Wait for the user to make their changes (don't make code changes automatically)
  5. Help create the run script:

    • Ask the user what command reproduces the bug (e.g., pytest tests/test_foo.py::test_bar)
    • Create run.sh with the appropriate command:
      #!/bin/bash
      uv run <command>
      
    • Make it executable: chmod +x run.sh
  6. Commit the bug:

    git add .
    git commit -m "[<project-name>] Add bug <N>: <description>"
    
  7. Verify the setup:

    • Test that ./run.sh reproduces the failure
    • Confirm all changes are committed
  8. Provide next steps:

    • Suggest pushing the branch: git push -u origin <project-name>-bug<N>
    • Remind that this branch is now a complete debugging challenge

Context

Bug branches are the actual debugging challenges given to participants. Each bug branch should:

  • Contain exactly ONE bug (not multiple bugs)
  • Have a run.sh script that demonstrates the failure
  • Be small enough to debug within 30 minutes
  • Have bugs that aren't obvious from simple code inspection
  • Include clear test failures or observable incorrect behavior

Types of Bugs

According to academic software engineering research, the majority of all bug fixes are one of two kinds:

  1. Changes to a conditional path (adding a predicate to a branch, adding/removing a branch, adding an early exit branch)
  2. Changing a method call by changing the expression passed to the method or changing the shape of the method call

Thus, bugs that we add should prefer to have solutions that are one of these types of fixes.

Guidelines for Good Bugs

A good 30-minute debugging challenge should:

  • ✅ Require executing code to understand the failure
  • ✅ Have bugs that aren't obvious from simple inspection
  • ✅ Be small enough to debug within the time limit
  • ✅ Have clear test cases that show failures
  • ✅ Test realistic debugging scenarios
  • ❌ Not be solvable by just reading the code for 5 minutes
  • ❌ Not be so complex that understanding the code takes most of the time

Bug Numbering

Bug numbers should be sequential per project. If tinydb-bug1 and tinydb-bug2 exist, the next bug should be tinydb-bug3.

The skill should auto-detect the next available number, but allow the user to override if needed.

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/add-bug-branch-mm78nnva/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/add-bug-branch-mm78nnva' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/add-bug-branch-mm78nnva/download' --output '.skill-downloads/add-bug-branch-mm78nnva/SKILL.md.part' && mv '.skill-downloads/add-bug-branch-mm78nnva/SKILL.md.part' '.skill-downloads/add-bug-branch-mm78nnva/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/add-bug-branch-mm78nnva/SKILL.md' && test -s '.skill-downloads/add-bug-branch-mm78nnva/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/add-bug' && cp -R '.skill-downloads/add-bug-branch-mm78nnva' '.claude/skills/add-bug'

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/add-bug-branch-mm78nnva'

openskills read 'add-bug-branch-mm78nnva'

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/add-bug-branch-mm78nnva/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