From unity-coding-skills
Diagnoses and fixes bugs using a test-first workflow (reproduce, diagnose, fix). Activates on bug reports, unexpected behavior, or defect investigations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unity-coding-skills:fix-bug [incident or failing-test-name][incident or failing-test-name]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide for diagnosing and fixing bugs. This skill defines a test-first debugging workflow:
Guide for diagnosing and fixing bugs. This skill defines a test-first debugging workflow: reproduce the bug with a failing test, diagnose the root cause, then fix it.
This skill must be used outside plan mode. Before doing anything else, check the current mode:
ExitPlanMode is NOT in the deferred tools list (i.e., directly callable) → in plan mode → stop immediately and tell the user:
"This skill (
/fix-bug) must be used outside plan mode. Please exit plan mode first."
ExitPlanMode is in the deferred tools list → not in plan mode → proceed.Do not read code files during this step. You may only read specs and design docs.
Extract the following from the user's prompt:
If any of the three cannot be determined from the prompt, use AskUserQuestion to ask
the user before proceeding. All three must be known before moving to Step 2.
Also determine the report type:
Also check the relevant documentation (specs, design docs) for consistency with the
user's bug report. If the documentation and the report conflict, use AskUserQuestion
to clarify with the user which is correct. If the docs contain errors or are missing
relevant information, add them to the list of files to be modified in this bug fix.
Skip this step if Step 1 identified this as an existing test failure case. Proceed directly to Step 3.
Search the project's test code for existing tests closest to the bug scenario. These serve two purposes:
When the bug condition involves on-screen display or a user-facing UI operation, search for integration tests with UI operations or visual verification tests — the reproduction test must be at that layer, so the placement anchor and style reference must be too.
Use Explore agents to locate relevant test files and test cases.
Launch the test-designer agent to design the reproduction test case — do not design it in the main context; the agent is pinned to Opus so test design stays on the stronger model even when the implementation model is faster. Use the following prompt structure:
## Requirements
[Bug report from Step 1: Condition / Expected / Actual.
Task type: bug-fix — design a reproduction test and regression tests per the reproduction-tests section of the guide.]
## Implementation Design
[Existing class/method structure of the affected production code, from the Explore results — this is the design; there is no new design for a bug fix]
## Existing Code Context
[Nearby test files, test classes, and conventions found above]
## Language Convention
[Project language resolved from CLAUDE.md; default English]
From the agent's output, take the test case marked (reproduction test). Keep any regression test cases for Step 6 — do not implement them yet.
Then load the test-writing-guide skill and implement the reproduction test. Place it near the similar tests found above.
If an existing test is testing the wrong behavior (i.e., the test itself is buggy), rewrite that test to correctly reproduce the bug rather than adding a new one.
Run tests using the /run-tests skill and verify that the reproduction test fails:
If multiple tests fail and it is unclear which one corresponds to the reported bug, use
AskUserQuestion to ask the user which test to focus on.
If reproduction has been attempted 3 times without success, return to Step 1 and
use AskUserQuestion to re-clarify the bug report with the user.
Present the reproduction evidence to the user via AskUserQuestion before proceeding.
Include:
Once the user confirms the reproduction is as expected:
With the reproduction confirmed, investigate the root cause:
Before applying the fix, check whether the affected area has adequate coverage for adjacent behavior:
test-designer agent produced in Step 2 (if Step 2 ran)test-writing-guide) and run them — they must pass
(they test existing correct behavior, not the bug itself)code-writing-guide skill — do not rely on automatic skill triggering/run-testsLaunch test-deduplicator agent with: list of test files added or modified in this iteration
Resolve diagnostics at the warning or higher severity level using the following procedure,
one file at a time — mcp__ide__getDiagnostics only returns results for files currently open
in editor tabs, and opening all files at once exceeds the tab limit:
open_file_in_editor — open the file in the editormcp__ide__getDiagnostics — collect all diagnostics for that fileUse mcp__ide__getDiagnostics instead of get_file_problems (unstable) or
the Unity compiler output (does not reflect .editorconfig severity settings).
Re-run tests using /run-tests command to confirm they still pass
Run the Claude Code built-in /simplify skill (Skill({skill: "simplify"}) — not a plugin skill) to apply quality improvements to the modified code
Re-run tests using /run-tests command to confirm they still pass
Commit all remaining changes to git
npx claudepluginhub nowsprinting/unity-coding-skills --plugin unity-coding-skillsUse when fixing a bug — enforces reproduce-first-then-fix discipline with a strict step-by-step protocol. Prevents wrong-approach loops by gating each step on success criteria.
Fast bug fixes with root cause investigation + TDD. Enforces 'no fix without root cause' discipline and verification protocol. Without this skill, fixes are applied at symptoms instead of sources, and bugs return.
Guides systematic bug fixing: create issue, debug, write failing test, fix, verify, and close. Includes fix status classification.