Git History Bug Audit
ben-manes/caffeine
Audits a module by walking its git history commit by commit, tracking unresolved issues forward, and reporting the ones that survive to HEAD as findings.
Explains runtime errors and compilation failures with actionable debugging guidance.
$ npx skills add ArabelaTso/Skills-4-SE --skill runtime-error-explainer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ArabelaTso/Skills-4-SE runtime-error-explainer --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/runtime-error-explainer .claude/skills/runtime-error-explainer && 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 "runtime-error-explainer" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/runtime-error-explainer into .claude/skills/runtime-error-explainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runtime-error-explainer", 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/runtime-error-explainerType 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 runtime-error-explainer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ArabelaTso/Skills-4-SE runtime-error-explainer --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/runtime-error-explainer .agents/skills/runtime-error-explainer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "runtime-error-explainer" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/runtime-error-explainer into .agents/skills/runtime-error-explainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runtime-error-explainer", 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 runtime-error-explainer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ArabelaTso/Skills-4-SE runtime-error-explainer --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/runtime-error-explainer .cursor/skills/runtime-error-explainer && 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 "runtime-error-explainer" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/runtime-error-explainer into .cursor/skills/runtime-error-explainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runtime-error-explainer", 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/runtime-error-explainer--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 runtime-error-explainer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ArabelaTso/Skills-4-SE runtime-error-explainer --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/runtime-error-explainer .gemini/skills/runtime-error-explainer && 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 "runtime-error-explainer" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/runtime-error-explainer into .gemini/skills/runtime-error-explainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runtime-error-explainer", 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 runtime-error-explainerInstalls 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 runtime-error-explainer -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/runtime-error-explainer .github/skills/runtime-error-explainer && 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 "runtime-error-explainer" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/runtime-error-explainer into .github/skills/runtime-error-explainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runtime-error-explainer", 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 runtime-error-explainer -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 runtime-error-explainer --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/runtime-error-explainer .opencode/skills/runtime-error-explainer && 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 "runtime-error-explainer" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/runtime-error-explainer into .opencode/skills/runtime-error-explainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runtime-error-explainer", 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.
runtime-error-explainerExplains runtime errors and compilation failures with actionable debugging guidance.
Runtime Error Explainer is an agent skill from ArabelaTso/Skills-4-SE. Explains runtime errors and compilation failures with actionable debugging guidance. Use when Python or Java code throws runtime exceptions (NullPointerException, TypeError, AttributeError, etc.), compilation errors (syntax errors, type mismatches, import failures), or dependency issues. Analyzes error messages, stack traces, and code context to identify root causes and provide concrete fixes with examples. Distinct from test-related errors - focuses on errors during normal code execution and build processes.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/debugging_guide.md` and `references/error_catalog.md`).
It sits in Development, covering Debugging and Root cause analysis. It works with Python and Java. 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.
5 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:
pythonjavajavacpippip3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip and pip3, which can reach the network depending on how they are called.
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.
Runtime Error Explainer loads about 4.8k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 135 tokens; SKILL.md has 1,027 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). 1,027 words, ~4,750 tokens.
.claude/skills/runtime-error-explainer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Analyze runtime and compilation errors with clear explanations and actionable fixes.
This skill helps debug runtime and compilation errors by:
Collect all relevant information about the error.
Essential Information:
Additional Context (if available):
How to Gather:
# Python - Run with full traceback
python script.py
# Python - More verbose error output
python -v script.py
# Java - Compile with verbose output
javac -verbose MyClass.java
# Java - Run with stack trace
java -XX:+ShowCodeDetailsInExceptionMessages MyClassIdentify the error type using references/error_catalog.md:
Error Categories:
Syntax/Compilation Errors
Runtime Errors
Import/Dependency Errors
Type Errors
Name/Reference Errors
Pull out critical details from the error.
From Error Message:
From Stack Trace:
Example Python Error:
Traceback (most recent call last):
File "app.py", line 45, in <module>
result = process_user(None)
File "app.py", line 12, in process_user
return user.name.upper()
AttributeError: 'NoneType' object has no attribute 'name'Extracted Information:
AttributeError.name on Noneapp.py line 12, in process_user functionuser parameter is NoneAnalyze why the error occurred.
Common Root Causes:
Syntax/Compilation:
Runtime:
Import/Dependency:
See references/error_catalog.md for detailed root cause analysis for each error type.
Structure the explanation with clear sections.
Explanation Template:
## Error Summary
[One-sentence description of what went wrong]
## What Happened
[Explain the error in plain language]
**Error Type:** [Error name and category]
**Location:** [File and line number]
**Problem:** [What specifically failed]
## Root Cause
[Explain why this happened - the underlying issue]
## How to Fix
### Solution 1: [Most common fix] ⭐
[Specific code change or action]
```[language]
# Before
[problematic code]
# After
[fixed code]Why this works: [Brief explanation]
[Another fix if Solution 1 doesn't apply]
[How to verify the fix works]
[command to test][How to avoid this error in future]
### Step 6: Suggest Next Steps
Provide actionable debugging guidance.
**If fix is straightforward:**
- Show exact code change
- Provide command to verify
- Mention related code to review
**If more investigation needed:**
- Suggest adding print/logging statements
- Recommend debugging tools
- Propose simplification to isolate issue
**If environmental issue:**
- Suggest checking installation/versions
- Recommend environment verification
- Propose configuration review
## Common Error Patterns
### Python: AttributeError - NoneType
**Error:**AttributeError: 'NoneType' object has no attribute 'method_name'
**Explanation:**
```markdown
## Error Summary
Attempted to call a method on None instead of an object instance.
## What Happened
**Error Type:** AttributeError
**Problem:** Code tried to access an attribute or method on `None`
Python functions return `None` by default if no explicit return statement is
used. When you try to call a method on `None`, you get this error.
## Root Cause
Common causes:
1. Function didn't return a value but you expected an object
2. Variable not initialized before use
3. Database/API query returned no result
4. Method called before object creation
## How to Fix
### Solution 1: Add None check ⭐
```python
# Before
result = get_user(user_id)
name = result.name # Crashes if result is None
# After
result = get_user(user_id)
if result is not None:
name = result.name
else:
name = "Unknown"Why this works: Defensively handles the case where get_user returns None.
# Before
def get_user(user_id):
if user_id in users:
return users[user_id]
# Implicitly returns None
# After
def get_user(user_id):
if user_id in users:
return users[user_id]
return User(id=user_id, name="Guest") # Return default user# Assign and check in one line
if (result := get_user(user_id)) is not None:
name = result.namepython script.pydef get_user(user_id: int) -> Optional[User]:assert result is not None, "User not found"
### Python: ImportError / ModuleNotFoundError
**Error:**ModuleNotFoundError: No module named 'requests'
**Explanation:**
```markdown
## Error Summary
Python cannot find the module you're trying to import.
## What Happened
**Error Type:** ModuleNotFoundError (Python 3) or ImportError (Python 2)
**Problem:** The module is not installed or not in Python's path
## Root Cause
1. Package not installed via pip
2. Wrong virtual environment activated
3. Typo in module name
4. Package installed in different Python version
## How to Fix
### Solution 1: Install the missing package ⭐
```bash
# Install package
pip install requests
# Or if using Python 3 explicitly
pip3 install requests
# Or with specific Python version
python -m pip install requestsWhy this works: Makes the package available to your Python environment.
# Check current environment
which python
# Activate virtual environment
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Install package in virtual environment
pip install requests# Wrong
import reqests # Typo
# Correct
import requestspython -c "import requests; print('Success')"pip install -r requirements.txtpip freeze > requirements.txt to capture dependencies
### Java: NullPointerException
**Error:**Exception in thread "main" java.lang.NullPointerException at com.example.MyClass.process(MyClass.java:25)
**Explanation:**
```markdown
## Error Summary
Attempted to use an object reference that is null.
## What Happened
**Error Type:** NullPointerException
**Location:** MyClass.java, line 25
**Problem:** Tried to access a method or field on a null object
## Root Cause
Common causes:
1. Object not initialized before use
2. Method returned null unexpectedly
3. Array element is null
4. Forgotten to instantiate object
## How to Fix
### Solution 1: Add null check ⭐
```java
// Before
String name = user.getName().toUpperCase();
// After
if (user != null && user.getName() != null) {
String name = user.getName().toUpperCase();
} else {
String name = "UNKNOWN";
}Why this works: Prevents accessing methods on null references.
// Before
public User getUser(int id) {
return userMap.get(id); // Returns null if not found
}
String name = getUser(123).getName(); // NPE if user not found
// After
public Optional<User> getUser(int id) {
return Optional.ofNullable(userMap.get(id));
}
String name = getUser(123)
.map(User::getName)
.orElse("Unknown");// Before
private User user; // Field is null by default
public void process() {
user.getName(); // NullPointerException
}
// After
private User user = new User(); // Initialize at declaration
// Or in constructor
public MyClass() {
this.user = new User();
}import java.util.Objects;
// Throw meaningful exception if null
Objects.requireNonNull(user, "User must not be null");
String name = user.getName();javac MyClass.java && java MyClass
### Java: ClassNotFoundException
**Error:**java.lang.ClassNotFoundException: com.example.MyClass at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
**Explanation:**
```markdown
## Error Summary
Java cannot find the specified class at runtime.
## What Happened
**Error Type:** ClassNotFoundException
**Problem:** Class exists in source code but not found when running
## Root Cause
1. Class not in classpath
2. Package name doesn't match directory structure
3. .class file not compiled
4. Typo in class name
5. JAR file not included
## How to Fix
### Solution 1: Check classpath ⭐
```bash
# Compile with source files in correct package structure
javac -d bin src/com/example/MyClass.java
# Run with classpath pointing to bin directory
java -cp bin com.example.MyClassWhy this works: Ensures compiled .class files are in classpath.
Project structure should be:
src/
com/
example/
MyClass.java// MyClass.java must declare matching package
package com.example;
public class MyClass {
public static void main(String[] args) {
System.out.println("Hello");
}
}# If MyClass is in external JAR
java -cp "lib/mylib.jar:." com.example.MyClass
# Windows (use semicolon)
java -cp "lib/mylib.jar;." com.example.MyClassMaven automatically manages classpaths.
<!-- pom.xml -->
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>my-library</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies># Check if class file exists
ls bin/com/example/MyClass.class
# Verify package declaration matches
head -1 src/com/example/MyClass.java
### Python: SyntaxError
**Error:**File "script.py", line 10 if x == 5 ^ SyntaxError: invalid syntax
**Explanation:**
```markdown
## Error Summary
Code has syntax error preventing Python from parsing it.
## What Happened
**Error Type:** SyntaxError
**Location:** Line 10
**Problem:** Missing colon at end of if statement
## Root Cause
Python syntax violated - common causes:
- Missing colons after if/for/while/def/class
- Unmatched parentheses/brackets
- Incorrect indentation
- Invalid operator usage
## How to Fix
### Solution 1: Add missing colon ⭐
```python
# Before
if x == 5
print("Five")
# After
if x == 5:
print("Five")Why this works: Python requires colon to start code blocks.
# Before
result = calculate(a, b, (c + d)
print(result)
# After
result = calculate(a, b, (c + d))
print(result)# Before (mixing tabs and spaces)
def my_function():
x = 5
return x # Indentation error
# After (consistent spaces)
def my_function():
x = 5
return x# Python will parse file without running
python -m py_compile script.py
# Or just run it
python script.py
### Java: Type Mismatch Compilation Error
**Error:**MyClass.java:15: error: incompatible types: int cannot be converted to String String result = 42; ^
**Explanation:**
```markdown
## Error Summary
Trying to assign value of wrong type to variable.
## What Happened
**Error Type:** Compilation error - type mismatch
**Location:** Line 15
**Problem:** Assigning int (42) to String variable
## Root Cause
Java is statically typed - variables can only hold values of declared type
or compatible types.
## How to Fix
### Solution 1: Convert type explicitly ⭐
```java
// Before
String result = 42;
// After
String result = String.valueOf(42);
// or
String result = Integer.toString(42);
// or
String result = "" + 42; // Concatenation with empty stringWhy this works: Explicitly converts int to String.
// Before
String result = 42;
// After
int result = 42;// Before (assigning int to double)
double price = 10; // Works but not ideal
// After (use double literal)
double price = 10.0;javac MyClass.java
## Language-Specific Notes
### Python Error Characteristics
**Common Patterns:**
- Runtime errors only (no compilation phase)
- Clear stack traces with file/line numbers
- Descriptive error messages
- Exception hierarchy (all inherit from BaseException)
**Key Files to Check:**
- Module `__init__.py` for package imports
- `sys.path` for import resolution
- Virtual environment activation
**Debugging Tools:**
```bash
# Interactive debugging
python -m pdb script.py
# Print traceback programmatically
import traceback
traceback.print_exc()Common Patterns:
Key Files to Check:
pom.xml (Maven) or build.gradle (Gradle)Debugging Tools:
# Verbose compilation
javac -verbose MyClass.java
# Show detailed exception messages (Java 14+)
java -XX:+ShowCodeDetailsInExceptionMessages MyClass
# Using debugger
jdb MyClass| Category | Python Examples | Java Examples | Common Fix |
|---|---|---|---|
| Null/None errors | AttributeError on None | NullPointerException | Add null checks |
| Type errors | TypeError | Type mismatch error | Fix types or convert |
| Import errors | ModuleNotFoundError | ClassNotFoundException | Check imports/classpath |
| Syntax errors | SyntaxError | Compilation errors | Fix syntax |
| Index errors | IndexError | ArrayIndexOutOfBoundsException | Check array bounds |
| Name errors | NameError | Cannot find symbol | Fix variable names |
| Key errors | KeyError | - | Check dict keys exist |
references/error_catalog.md - Comprehensive catalog of Python and Java errors with detailed examples, root causes, and solutionsreferences/debugging_guide.md - Systematic debugging strategies, tools, and techniques for complex errors© 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
SKILL.md and 2 other files (references) in skills/runtime-error-explainer of ArabelaTso/Skills-4-SE.
Open the folder on GitHubat commit 4f38503
Runtime Error Explainer 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 |
|---|---|---|---|---|---|---|
| Runtime Error Explainer this skillArabelaTso/Skills-4-SE | 253 | — | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Git History Bug Auditben-manes/caffeine | 18k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| The Art of Debuggingstas00/the-art-of-debugging | 1.7k | — | ~6.1k | Automated safety check: Notes | CC-BY-SA-4.0 | |
| MCP Debuggerdebugmcp/mcp-debugger | 171 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Dbgtheodo-group/debug-that | 158 | — | ~1.9k | Automated safety check: Pass | MIT | |
| WxJava Troubleshooterbinarywang/WxJava | 33k | — | ~135 | Automated safety check: Pass | Apache-2.0 |
ben-manes/caffeine
Audits a module by walking its git history commit by commit, tracking unresolved issues forward, and reporting the ones that survive to HEAD as findings.
stas00/the-art-of-debugging
Condensed debugging method and tool recipes for Unix, Python and PyTorch programs: crashes, hangs, segfaults, wrong output, CUDA OOM, NaN values and slowness.
debugmcp/mcp-debugger
A skill your agent uses when investigating a bug, failing test, or unexpected runtime behavior and the mcp-debugger MCP server is available — drives real step-through debuggers (breakpoints, stack…
theodo-group/debug-that
Debug applications using the dbg CLI debugger. An agent skill from theodo-group/debug-that.
binarywang/WxJava
排查 WxJava 在配置初始化、access token、签名验签、支付证书、回调通知、序列化、网络请求和多账号隔离方面的问题。适用于用户提供异常、日志、请求响应或“WxJava 为什么不能调用”的场景。
HoangTheQuyen/think-better
Systematic problem-solving toolkit: root cause analysis, hypothesis testing, debugging strategies, critical thinking frameworks.
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.
Categories
Explains runtime errors and compilation failures with actionable debugging guidance. Runtime Error Explainer is an agent skill from ArabelaTso/Skills-4-SE. Explains runtime errors and compilation failures with actionable debugging guidance.
Runtime Error Explainer fits situations like: java code throws runtime exceptions (NullPointerException; compilation errors (syntax errors; type mismatches; import failures).
Run `npx skills add ArabelaTso/Skills-4-SE --skill runtime-error-explainer -a claude-code`. Or copy the skill folder (skills/runtime-error-explainer in ArabelaTso/Skills-4-SE) into .claude/skills/runtime-error-explainer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ArabelaTso/Skills-4-SE --skill runtime-error-explainer -a codex`. Or copy the skill folder (skills/runtime-error-explainer in ArabelaTso/Skills-4-SE) into .agents/skills/runtime-error-explainer 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 runtime-error-explainer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/runtime-error-explainer, .gemini/skills/runtime-error-explainer, .github/skills/runtime-error-explainer and .opencode/skills/runtime-error-explainer in your project.
Going by SKILL.md and its folder, Runtime Error Explainer needs the command-line tools its instructions call (python, java, javac, pip and pip3). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. 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.
Runtime Error Explainer 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.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Runtime Error Explainer: Git History Bug Audit (ben-manes/caffeine, 18k stars), The Art of Debugging (stas00/the-art-of-debugging, 1.7k stars), MCP Debugger (debugmcp/mcp-debugger, 171 stars) and Dbg (theodo-group/debug-that, 158 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.