Prp Debug
Wirasm/prp
Diagnoses a bug, error, stack trace, regression, or unexplained behavior and publishes the evidence-backed root cause to GitHub.
Generate code fixes and patches from bug reports, failing test cases, error messages, and stack traces.
$ npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ArabelaTso/Skills-4-SE bug-to-patch-generator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/bug-to-patch-generator .claude/skills/bug-to-patch-generator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "bug-to-patch-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generator into .claude/skills/bug-to-patch-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-to-patch-generator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ArabelaTso/Skills-4-SE bug-to-patch-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/bug-to-patch-generator .agents/skills/bug-to-patch-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bug-to-patch-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generator into .agents/skills/bug-to-patch-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-to-patch-generator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ArabelaTso/Skills-4-SE bug-to-patch-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/bug-to-patch-generator .cursor/skills/bug-to-patch-generator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bug-to-patch-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generator into .cursor/skills/bug-to-patch-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-to-patch-generator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ArabelaTso/Skills-4-SE.git --path skills/bug-to-patch-generator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ArabelaTso/Skills-4-SE bug-to-patch-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/bug-to-patch-generator .gemini/skills/bug-to-patch-generator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bug-to-patch-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generator into .gemini/skills/bug-to-patch-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-to-patch-generator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ArabelaTso/Skills-4-SE bug-to-patch-generatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/bug-to-patch-generator .github/skills/bug-to-patch-generator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bug-to-patch-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generator into .github/skills/bug-to-patch-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-to-patch-generator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ArabelaTso/Skills-4-SE bug-to-patch-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/bug-to-patch-generator .opencode/skills/bug-to-patch-generator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bug-to-patch-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/bug-to-patch-generator into .opencode/skills/bug-to-patch-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-to-patch-generator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bug-to-patch-generatorGenerate code fixes and patches from bug reports, failing test cases, error messages, and stack traces.
Bug To Patch Generator is an agent skill from ArabelaTso/Skills-4-SE. Generate code fixes and patches from bug reports, failing test cases, error messages, and stack traces. Use this skill when debugging code, fixing test failures, addressing GitHub issues, resolving runtime errors, or patching security vulnerabilities. Analyzes the bug context, identifies root causes, and generates precise code patches with explanations and validation steps.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Failing and flaky tests, Debugging and Root cause analysis. It works with GitHub. The repository describes itself as: A curated list of 180+ useful Claude Skills for Software Engineering and resources for customizing AI for SE workflows. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4f38503. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pytestFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bug To Patch Generator loads about 4.4k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 892 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ArabelaTso/Skills-4-SE at commit 4f38503, republished under its Apache-2.0 licence (© ArabelaTso). 892 words, ~4,383 tokens.
.claude/skills/bug-to-patch-generator/SKILL.md (or your agent's skills folder).Automatically generate code fixes from bug reports, failing tests, error messages, and stack traces. Analyzes bug context, identifies root causes, and produces verified patches.
Understand bugs from multiple sources:
Determine the underlying issue:
Create targeted fixes:
Ensure fix correctness:
Collect all relevant information:
From failing tests:
FAILED tests/test_calculator.py::test_divide - ZeroDivisionError: division by zero
def test_divide():
result = divide(10, 0)
assert result == None # Expected to return None for division by zeroFrom error messages:
Traceback (most recent call last):
File "app.py", line 42, in process_data
result = data[index]
IndexError: list index out of rangeFrom bug reports:
Title: App crashes when processing empty file
Steps to reproduce:
1. Upload empty CSV file
2. Click "Process"
3. App crashes with NoneType error
Expected: Error message shown to user
Actual: Application crashesIdentify the root cause:
Questions to answer:
Common bug patterns:
Find the code that needs fixing:
# Read the source file
def divide(a, b):
return a / b # Bug: No check for b == 0Context needed:
Create minimal, focused fix:
Patch format:
# Before (buggy code)
def divide(a, b):
return a / b
# After (fixed code)
def divide(a, b):
if b == 0:
return None # or raise ValueError("Cannot divide by zero")
return a / bPatch components:
Ensure correctness:
Validation steps:
# Test that should now pass
def test_divide_by_zero():
assert divide(10, 0) is None
# Additional tests for edge cases
def test_divide_normal():
assert divide(10, 2) == 5
def test_divide_negative():
assert divide(-10, 2) == -5Verification checklist:
Bug report:
AttributeError: 'NoneType' object has no attribute 'upper'Buggy code:
def format_name(name):
return name.upper()Root cause: No validation for None input
Patch:
def format_name(name):
if name is None:
return "" # or raise ValueError("Name cannot be None")
return name.upper()Explanation:
Alternative approaches:
# Option 1: Raise exception
def format_name(name):
if name is None:
raise ValueError("Name cannot be None")
return name.upper()
# Option 2: Use default parameter
def format_name(name=None):
return (name or "").upper()
# Option 3: Type hint and early return
def format_name(name: str | None) -> str:
if not name:
return ""
return name.upper()Bug report:
IndexError: list index out of rangeFailing test:
def test_get_last_element():
arr = [1, 2, 3]
assert get_element(arr, 3) == 3 # Want last elementBuggy code:
def get_element(arr, index):
return arr[index] # index 3 is out of bounds for length 3Root cause: Confusion between length and index (0-based)
Patch:
def get_element(arr, index):
if index < 0 or index >= len(arr):
raise IndexError(f"Index {index} out of range for array of length {len(arr)}")
return arr[index]Explanation:
Better alternative:
def get_element(arr, index):
"""Get element at index. Supports negative indexing."""
try:
return arr[index]
except IndexError:
raise IndexError(f"Index {index} out of range for array of length {len(arr)}")Bug report:
Application crashes when file doesn't exist
FileNotFoundError: [Errno 2] No such file or directory: 'config.json'Buggy code:
def load_config():
with open('config.json') as f:
return json.load(f)Root cause: No handling for missing file
Patch:
def load_config():
try:
with open('config.json') as f:
return json.load(f)
except FileNotFoundError:
# Return default config
return {"debug": False, "port": 8080}
except json.JSONDecodeError as e:
raise ValueError(f"Invalid JSON in config.json: {e}")Explanation:
Alternative with logging:
import logging
def load_config():
try:
with open('config.json') as f:
return json.load(f)
except FileNotFoundError:
logging.warning("config.json not found, using defaults")
return {"debug": False, "port": 8080}
except json.JSONDecodeError as e:
logging.error(f"Invalid JSON in config.json: {e}")
raiseFailing test:
def test_is_even():
assert is_even(0) == True # FAILS
assert is_even(2) == True
assert is_even(3) == FalseBuggy code:
def is_even(n):
if n % 2: # Bug: 0 % 2 == 0 which is falsy
return False
return TrueRoot cause: Incorrect boolean logic (0 is falsy)
Patch:
def is_even(n):
return n % 2 == 0 # Explicitly check equalityExplanation:
Bug report:
Intermittent test failure in multithreaded code
AssertionError: Expected counter=1000, got counter=987Buggy code:
class Counter:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1 # Not atomic!Root cause: Non-atomic operation in concurrent context
Patch (Python):
import threading
class Counter:
def __init__(self):
self.count = 0
self.lock = threading.Lock()
def increment(self):
with self.lock:
self.count += 1Alternative using atomic operations:
from threading import Lock
from threading import local
class Counter:
def __init__(self):
self.count = 0
self._lock = Lock()
def increment(self):
with self._lock:
self.count += 1
# Or use atomic integer
from threading import Lock
class Counter:
def __init__(self):
from queue import Queue
self._queue = Queue()
self.count = 0
# Better: use threading.local or atomic types
import threading
class AtomicCounter:
def __init__(self):
self._value = 0
self._lock = threading.Lock()
def increment(self):
with self._lock:
self._value += 1
return self._value
@property
def value(self):
with self._lock:
return self._valueBug report:
Application memory usage grows unbounded
Memory increases by ~100MB every hourBuggy code:
class Cache:
def __init__(self):
self.data = {}
def store(self, key, value):
self.data[key] = value # Never clears old entries
def get(self, key):
return self.data.get(key)Root cause: Unbounded cache growth
Patch:
from collections import OrderedDict
class Cache:
def __init__(self, max_size=1000):
self.data = OrderedDict()
self.max_size = max_size
def store(self, key, value):
if key in self.data:
# Move to end (most recently used)
self.data.move_to_end(key)
else:
self.data[key] = value
# Evict oldest if over limit
if len(self.data) > self.max_size:
self.data.popitem(last=False)
def get(self, key):
if key in self.data:
# Move to end (most recently used)
self.data.move_to_end(key)
return self.data[key]
return NoneExplanation:
Failing test:
def test_invalid_input():
with pytest.raises(ValueError):
process(-1) # FAILS: raises TypeError insteadBuggy code:
def process(value):
if value < 0:
raise TypeError("Value must be non-negative") # Wrong exception type
return value * 2Root cause: Using TypeError instead of ValueError
Patch:
def process(value):
if value < 0:
raise ValueError("Value must be non-negative") # Correct exception
return value * 2Explanation:
## Bug Fix: [Short description]
### Bug Details
- **Location:** [file:line]
- **Error:** [error message or test failure]
- **Root Cause:** [explanation of the underlying issue]
- **Severity:** [Critical/High/Medium/Low]
### Analysis
[Detailed explanation of why the bug occurs]
### Proposed Fix
#### Changes
```[language]
# File: [filename]
# Before (lines X-Y)
[buggy code]
# After
[fixed code][Why this fix works and what it does]
[test code that validates the fix]
### Example Complete Patch
```markdown
## Bug Fix: Handle division by zero in calculator
### Bug Details
- **Location:** src/calculator.py:15
- **Error:** `ZeroDivisionError: division by zero`
- **Root Cause:** Missing validation for zero divisor
- **Severity:** High (causes crash)
### Analysis
The `divide` function performs division without checking if the divisor is zero.
When called with b=0, Python raises ZeroDivisionError, crashing the application.
The function should either return None, return infinity, or raise a custom exception
with a clear message.
### Proposed Fix
#### Changes
```python
# File: src/calculator.py
# Before (lines 14-15)
def divide(a, b):
return a / b
# After
def divide(a, b):
"""Divide a by b. Returns None if b is zero."""
if b == 0:
return None
return a / bAdded a check for zero divisor before performing division. Returns None to indicate invalid operation, which is consistent with other error cases in the codebase. This prevents the uncaught exception and allows callers to handle the None return.
Raise custom exception: raise ValueError("Cannot divide by zero")
Return float('inf'): Mathematical infinity
Return 0: Default to zero
Chosen approach: Return None because it's consistent with the existing codebase pattern of returning None for invalid operations.
# tests/test_calculator.py
def test_divide_by_zero():
"""Test that division by zero returns None."""
assert divide(10, 0) is None
assert divide(0, 0) is None
assert divide(-5, 0) is None
def test_divide_normal():
"""Test normal division still works."""
assert divide(10, 2) == 5
assert divide(10, 3) == pytest.approx(3.333, rel=0.001)pytest tests/test_calculator.py::test_dividepytestdivide(10, 0) should return Nonemodulo function for same issuepower function may have similar edge cases (0^0, 0^-1)
## Best Practices
1. **Minimal changes** - Fix only what's broken, don't refactor unnecessarily
2. **Preserve behavior** - Ensure fix doesn't break working functionality
3. **Clear explanations** - Explain why the bug occurred and how fix addresses it
4. **Test thoroughly** - Add tests that would have caught the bug
5. **Consider alternatives** - Present multiple fix options when applicable
6. **Document the fix** - Add comments explaining non-obvious fixes
7. **Check for similar bugs** - Look for the same pattern elsewhere
8. **Validate edge cases** - Ensure fix handles all scenarios
9. **Follow code style** - Match existing patterns and conventions
10. **Suggest improvements** - Note related technical debt if relevant
## Common Pitfalls to Avoid
### Pitfall 1: Over-fixing
```python
# Bad: Refactoring unrelated code
def divide(a, b):
# Also renamed parameters and restructured
if divisor == 0:
return None
quotient = dividend / divisor
return quotient
# Good: Minimal fix
def divide(a, b):
if b == 0:
return None
return a / b# Bad: Fix creates new issue
def get_first(arr):
if len(arr) == 0:
return None
return arr[1] # Bug! Should be arr[0]
# Good: Correct fix
def get_first(arr):
if len(arr) == 0:
return None
return arr[0]# Bad: Silencing exceptions
def load_data():
try:
return dangerous_operation()
except Exception:
return None # Hides the actual error!
# Good: Specific exception handling
def load_data():
try:
return dangerous_operation()
except FileNotFoundError:
return None # Expected case
# Let other exceptions propagateFor language-specific bug patterns and fixes:
© ArabelaTso, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/bug-to-patch-generator of ArabelaTso/Skills-4-SE.
Open the folder on GitHubat commit 4f38503
Bug To Patch Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bug To Patch Generator this skillArabelaTso/Skills-4-SE | 253 | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Prp DebugWirasm/prp | 2.3k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Prp DebugWirasm/prp | 2.3k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Triage Issuesoftspark/ai-toolkit | 179 | — | ~1.3k | Automated safety check: Notes | Apache-2.0 | |
| Pester Failure AnalysisPowerShell/PowerShell | 56k | — | ~5.1k | Automated safety check: Pass | MIT | |
| Issue To Regression Testbrunosabot/streamline-card | 269 | — | ~529 | Automated safety check: Pass | MIT |
Wirasm/prp
Diagnoses a bug, error, stack trace, regression, or unexplained behavior and publishes the evidence-backed root cause to GitHub.
Wirasm/prp
Diagnoses a bug, error, stack trace, regression, or unexplained behavior and publishes the evidence-backed root cause to GitHub.
softspark/ai-toolkit
Bug triage: explores codebase for root cause, files GitHub issue with TDD fix plan.
PowerShell/PowerShell
Investigates failing Pester tests in PowerShell CI jobs by following a six-step workflow from pull request status to documented fix recommendations.
brunosabot/streamline-card
A skill your agent uses when the user asks to fix a bug, references a GitHub issue number, or describes an issue and wants a fix.
AnastasiyaW/codex-claude-code-config
Find likely software bugs in a codebase, rank concrete bug candidates, and prove or reject them with focused regression tests before proposing a fix.
ArabelaTso/Skills-4-SE
Generate prioritized CVE watchlists and actionable security recommendations for repositories.
ArabelaTso/Skills-4-SE
Automatically migrate Python web applications between frameworks (Flask → FastAPI, Django → FastAPI).
ArabelaTso/Skills-4-SE
Generate test cases using metamorphic testing by applying transformations based on metamorphic properties.
ArabelaTso/Skills-4-SE
Instruments programs to capture execution traces specifically for reproducing reported bugs, enabling consistent replay and diagnosis of failures.
ArabelaTso/Skills-4-SE
Automatically migrate Spring MVC applications to Spring Boot.
ArabelaTso/Skills-4-SE
Instrument programs (Python, C/C++, Java) to capture snapshots of key program states at runtime, including variables, memory, and call stacks.
Works with
Categories
Generate code fixes and patches from bug reports, failing test cases, error messages, and stack traces. Bug To Patch Generator is an agent skill from ArabelaTso/Skills-4-SE. Generate code fixes and patches from bug reports, failing test cases, error messages, and stack traces.
Bug To Patch Generator fits situations like: fixing test failures; addressing GitHub issues; resolving runtime errors; patching security vulnerabilities.
Run `npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a claude-code`. Or copy the skill folder (skills/bug-to-patch-generator in ArabelaTso/Skills-4-SE) into .claude/skills/bug-to-patch-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a codex`. Or copy the skill folder (skills/bug-to-patch-generator in ArabelaTso/Skills-4-SE) into .agents/skills/bug-to-patch-generator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ArabelaTso/Skills-4-SE --skill bug-to-patch-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bug-to-patch-generator, .gemini/skills/bug-to-patch-generator, .github/skills/bug-to-patch-generator and .opencode/skills/bug-to-patch-generator in your project.
Going by SKILL.md and its folder, Bug To Patch Generator needs the command-line tools its instructions call (pytest). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Bug To Patch Generator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Bug To Patch Generator: Prp Debug (Wirasm/prp, 2.3k stars), Prp Debug (Wirasm/prp, 2.3k stars), Triage Issue (softspark/ai-toolkit, 179 stars) and Pester Failure Analysis (PowerShell/PowerShell, 56k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ArabelaTso (a GitHub user) maintains it in ArabelaTso/Skills-4-SE, which has 253 GitHub stars. The repository holds 151 skills in this directory. The repository was last updated on August 21, 2026.
Source: ArabelaTso/Skills-4-SE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.