Skip to content
cccskills
FreePublished on GitHub

bugfix

Bug hunter. Reproduces bugs with failing tests (RED), then fixes with TDD. Accepts a prompt, issue URL, or bug description. Use when: bugfix, fix bug, debug, broken, regression, failing, doesn't work, fix this.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Bugfix

Bug hunter. Reproduces the bug with a failing test, then fixes it with strict TDD. Focused and surgical.

Usage

  • /bugfix — asks what's broken
  • /bugfix <prompt> — fix from description
  • /bugfix <url> — fix from GitHub issue
  • /bugfix <path> — fix from bug report file

Workflow

Phase 1: Understand the Bug

No arguments: Ask: "What's broken? Describe the bug, paste an issue URL, or point me to a report."

Wait for the user's response.

Prompt: Use as bug description.

URL: Fetch: gh issue view <number> --json title,body --jq '.title + "\n\n" + .body'

File path: Read the file.

Restate the bug:

My understanding: {what's broken, when it happens, expected vs actual behavior}

Is that right? Anything else I should know?

Wait. Confirm understanding before proceeding.

Phase 2: Scout the Bug

Explore the codebase to understand the area where the bug lives:

  • Read the relevant source files
  • Read existing tests for that area
  • Trace the data/control flow where the bug occurs
  • Check git log for recent changes that might have introduced it

Report findings:

Here's what I found:

  • Where it happens: {file(s), function(s), line(s)}
  • Root cause hypothesis: {what I think is wrong and why}
  • Existing test coverage: {what's tested, what's missing}
  • Recent changes: {any suspicious recent commits, or "nothing recent"}

Does this match what you're seeing?

Wait. The user may have more context.

Phase 3: Reproduce with a Failing Test

This is the most important phase. Do not skip. Do not rush.

Write a test that fails right now because of the bug. This test proves the bug exists.

Rules:

  • It must fail for the right reason (the actual bug, not a setup error)
  • It must be minimal — test only the broken behavior
  • It must describe the expected behavior
  • Name it clearly: test "description of correct behavior that is currently broken"
  • Use assert_receive with monitors for async assertions, never Process.sleep

Reproduction test:

{test_code}

This proves: {what broken behavior it captures} Expected: {what should happen} Actual: {what happens now}

Write it?

Wait. The user may adjust the test.

Write the test. Run it. Confirm RED.

mix test test/path/to/test_file.exs:LINE

RED — {error message or assertion failure}

If the test passes unexpectedly: The test doesn't reproduce the bug. Investigate. Ask the user for help if stuck after 3 attempts.

Phase 4: Fix (GREEN)

Write the minimum code to make the failing test pass. No more.

  • Don't refactor unrelated code
  • Don't add features
  • Don't fix other bugs you find (note them for later)
  • Stay surgical

Run tests. Confirm GREEN.

mix test test/path/to/test_file.exs:LINE

GREEN — Bug fix verified.

Phase 5: Check for Collateral

Run the full suite:

mix test
mix dialyzer

If other tests break: the fix introduced a regression. Adjust the fix.

Full suite: {pass/fail}. {details if any breakage}

Phase 6: Refactor (if needed)

Only if the fix is ugly or the area needs cleanup:

  • Clean up, run tests, confirm GREEN
  • Keep it minimal — this is a bugfix, not a rewrite

Phase 7: Commit

Stage only the changed files. Commit with:

fix(<scope>): <what was fixed>

No Co-Authored-By. No AI mentions.


Multiple Bugs

If the input describes multiple bugs:

  1. List them
  2. Ask the user which to tackle first
  3. Fix one at a time, full cycle each
  4. Commit each fix separately

Iron Rules

  1. No fix without a failing test. The test must prove the bug exists before you touch production code
  2. Persist on RED. If you can't reproduce it in a test, dig deeper. Don't skip to the fix
  3. Minimum fix. Smallest change that makes the test pass. No scope creep
  4. Run full suite. mix test && mix dialyzer
  5. One bug at a time. Don't batch
  6. Ask when stuck. If you can't reproduce after 3 attempts, ask the user for more context
  7. Note but don't fix other bugs you discover along the way

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

commit

Free

Create a git commit following project conventions. Use when: commit, commit this, make a commit, commit changes, git commit, save changes, commit my work, stage and commit, detailed commit.

The English summary is being prepared. Showing the original description.

leandronsp/overmind12Updated Apr 13, 2026

debug

Free

Elixir debugging workflow and tools. Use when: debug, debugging, pry, inspect, trace, why is this failing, what's wrong, investigate, diagnose.

The English summary is being prepared. Showing the original description.

leandronsp/overmind12Updated Apr 13, 2026

dev

Free

Implementer - fetches a GitHub issue, builds an implementation plan, then implements using TDD. Use when: implement, build this, code this, add this feature, TDD, test first, red green refactor, pick a task, next task, dev.

The English summary is being prepared. Showing the original description.

leandronsp/overmind12Updated Apr 13, 2026

learn

Free

Extract learnings from the current session and update memory/config. Use when: learn from this, what did we learn, update memory, session retrospective, extract patterns, save learnings.

The English summary is being prepared. Showing the original description.

leandronsp/overmind12Updated Apr 13, 2026

Orchestrator - spawns an autonomous orchestrator agent that decomposes a task into subtasks and drives multiple Claude agents to completion. Use when: overmind, orchestrate, multi-agent, delegate, spawn agents, break down task, run agents.

The English summary is being prepared. Showing the original description.

leandronsp/overmind12Updated Apr 13, 2026

pair

Free

TDD pair programming with mode switching. Claude can be driver (writes code) or navigator (watches, questions, provokes). Supports GitHub issues, file watching, or arbitrary prompts. Scientific TDD, baby steps, one test at a time. Trigger on: pair, let's pair, tdd, you drive, I'll drive, dojo.

The English summary is being prepared. Showing the original description.

leandronsp/overmind12Updated Apr 13, 2026

See all skills by leandronsp

Report a problem with this skill