Agent skill

Issue Report Generator

by ArabelaTso in ArabelaTso/Skills-4-SE

Automatically generate clear, actionable issue reports from failing tests and repository analysis.

Apache-2.0Auto-check passedTesting & QA

Install Issue Report Generator

skills CLI
$ npx skills add ArabelaTso/Skills-4-SE --skill issue-report-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ArabelaTso/Skills-4-SE issue-report-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/issue-report-generator .claude/skills/issue-report-generator && rm -rf skills-src

Use ~/.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/

Facts

Skill name
issue-report-generator
GitHub stars
253
Token cost
~3.5k tokens
SKILL.md length
1,037 words
Files
2 (incl. references)
Skills in repo
150
Repo updated
First seen
Licence
Apache-2.0

At a glance

Automatically generate clear, actionable issue reports from failing tests and repository analysis.

  • Works in 5 steps: Analyze the Failing Test → Identify Affected Code Components → Infer Root Cause → …
  • Debugging issues
  • SKILL.md covers Overview, Report Generation Workflow, Report Templates and Examples, plus 13 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Issue Report Generator is an agent skill from ArabelaTso/Skills-4-SE. Automatically generate clear, actionable issue reports from failing tests and repository analysis. Analyze test failures to understand expected vs. actual behavior, identify affected code components, and produce well-structured Markdown reports suitable for GitHub Issues or similar trackers. Use when a test fails, when debugging issues, or when the user asks to create an issue report, generate a bug report, or document a test failure.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/report_patterns.md`).

It sits in Testing & QA, covering Failing and flaky tests. 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.

When your agent uses it

  • Debugging issues
  • The user asks to create an issue report
  • Generate a bug report
  • Document a test failure

Example prompts

  • “/issue-report-generator”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Analyze the Failing Test
  2. Identify Affected Code Components
  3. Infer Root Cause
  4. Generate Report Structure
  5. Format and Finalize

What it can do on your machine

Read from SKILL.md and the folder at commit 4f38503. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, markdown and javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Issue Report Generator loads about 3.5k tokens when it runs, and up to ~7.3k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,037 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~115
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from ArabelaTso/Skills-4-SE at commit 4f38503, republished under its Apache-2.0 licence (© ArabelaTso). 1,037 words, ~3,464 tokens.

Download SKILL.mdSave it as .claude/skills/issue-report-generator/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
issue-report-generator
description
Automatically generate clear, actionable issue reports from failing tests and repository analysis. Analyze test failures to understand expected vs. actual behavior, identify affected code components, and produce well-structured Markdown reports suitable for GitHub Issues or similar trackers. Use when a test fails, when debugging issues, or when the user asks to create an issue report, generate a bug report, or document a test failure.

Issue Report Generator

Overview

Generate comprehensive, developer-friendly issue reports from failing tests. Analyze test failures, identify affected code, infer root causes when possible, and produce structured Markdown reports ready for issue tracking systems.

Report Generation Workflow

Step 1: Analyze the Failing Test

Understand what the test is checking and why it fails:

  1. Identify the test:

    • Test file path
    • Test class/function name
    • Test method name
  2. Understand test intent:

    • What functionality is being tested?
    • What is the expected behavior?
    • What assertions are being made?
  3. Analyze the failure:

    • Exception type (if any)
    • Assertion failure details
    • Expected vs. actual values
    • Error messages
    • Stack trace
  4. Extract key information:

    • Failure type (exception, assertion, timeout, etc.)
    • Failure location (file, line number)
    • Failure context (method calls, parameters)
Step 2: Identify Affected Code Components

Locate the code related to the failure:

  1. From stack trace:

    • Extract file paths
    • Extract class/method names
    • Extract line numbers
    • Identify the failure point
  2. From test code:

    • Find the method/class being tested
    • Identify dependencies
    • Locate related components
  3. Code analysis:

    • Read the failing code section
    • Understand the logic
    • Identify potential issues
  4. Record locations:

    • Primary affected file(s)
    • Specific methods/functions
    • Line numbers or ranges
Step 3: Infer Root Cause

Determine why the failure occurs (when possible):

  1. For exceptions:

    • Which variable/object caused it?
    • Why is it null/invalid?
    • Where should it be initialized?
    • What condition triggers the exception?
  2. For assertion failures:

    • Why does actual differ from expected?
    • What code produces the wrong value?
    • What condition causes the mismatch?
    • Is there a logic error?
  3. For timeouts:

    • What operation is slow?
    • Is there an infinite loop?
    • Is there inefficient algorithm?
    • Are there blocking operations?
  4. For integration failures:

    • What external system failed?
    • What's the error from that system?
    • Is it configuration?
    • Is it connection?
  5. State uncertainty:

    • If root cause is unclear, say so
    • Use "suspected," "likely," "appears to be"
    • Suggest areas for investigation
Step 4: Generate Report Structure

Create the issue report with required sections:

  1. Title:

    • Format: [Exception/Issue] in [Component].[Method]
    • Or: [Feature] returns incorrect [result]
    • Keep it concise (50-80 characters)
    • Make it descriptive
  2. Description:

    • Brief summary of the issue
    • Context about when it occurs
    • Impact on functionality
  3. Steps to Reproduce:

    • Test command to run
    • Or code snippet to execute
    • Minimal reproduction steps
  4. Expected Behavior:

    • What should happen
    • Based on test assertions
    • Based on documentation
  5. Actual Behavior:

    • What actually happens
    • Include error messages
    • Include stack traces
    • Include assertion failures
  6. Affected Code:

    • File paths
    • Class/method names
    • Line numbers
    • Code snippets if helpful
  7. Analysis (optional):

    • Suspected root cause
    • Why it happens
    • Suggested fix (if clear)
  8. Additional Context:

    • Test details
    • Environment info
    • Related issues
    • Labels/severity
Step 5: Format and Finalize

Produce the final Markdown report:

  1. Use proper Markdown:

    • Headers for sections
    • Code blocks for code/errors
    • Lists for steps
    • Bold for emphasis
  2. Be precise:

    • Use exact error messages
    • Include full stack traces
    • Reference specific locations
    • Use technical terminology
  3. Be clear:

    • Developer-friendly language
    • Avoid vague descriptions
    • State facts, not opinions
    • Indicate uncertainty
  4. Be actionable:

    • Provide reproduction steps
    • Identify affected code
    • Suggest investigation areas
    • Make it easy to fix

Report Templates

For detailed templates and patterns, see report_patterns.md.

Quick Template Selection
Failure TypeTemplateKey Focus
ExceptionException-Based BugException type, location, null/invalid variable
Assertion failureAssertion Failure BugExpected vs. actual, wrong value source
TimeoutPerformance/Timeout BugSlow operation, bottleneck
Integration errorIntegration Failure BugExternal system, error message, config
RegressionRegression BugBreaking commit, what changed

Examples

Example 1: NullPointerException

Input:

  • Test: UserServiceTest.testAuthenticateNonExistentUser
  • Error: NullPointerException at UserService.java:45
  • Stack trace provided

Generated Report:

markdown
# NullPointerException in UserService.authenticate() when user not found

## Description
A `NullPointerException` is thrown in `UserService.authenticate()` when attempting to authenticate a user that doesn't exist in the database. This causes the authentication endpoint to return a 500 error instead of properly handling the missing user case.

## Steps to Reproduce
1. Run test: `mvn test -Dtest=UserServiceTest#testAuthenticateNonExistentUser`
2. Or call: `userService.authenticate("nonexistent@example.com", "password")`

## Expected Behavior
The method should return an authentication failure result (e.g., `AuthResult.FAILED`) or throw a specific `UserNotFoundException`, not a `NullPointerException`.

## Actual Behavior

java.lang.NullPointerException at com.example.UserService.authenticate(UserService.java:45) at com.example.AuthController.login(AuthController.java:23) at com.example.UserServiceTest.testAuthenticateNonExistentUser(UserServiceTest.java:67)


## Affected Code
- **File:** `src/main/java/com/example/UserService.java`
- **Method:** `UserService.authenticate`
- **Line:** 45

**Code at line 45:**
```java
String hashedPassword = user.getPassword(); // user is null here

Analysis

The exception occurs because the user object is null when the user lookup fails (line 42). The code attempts to call user.getPassword() without checking if the user exists.

Suspected cause: Missing null check after user lookup.

Show full SKILL.md (405 more words)Show less

Test Details

  • Test file: src/test/java/com/example/UserServiceTest.java
  • Test method: testAuthenticateNonExistentUser

### Example 2: Assertion Failure

**Input:**
- Test: `CalculatorTest.testDivision`
- Error: `AssertionError: expected 2.5 but got 2.0`

**Generated Report:**
```markdown
# Calculator.divide() returns integer instead of decimal result

## Description
The `Calculator.divide()` method returns `2.0` instead of the expected `2.5` when dividing 5 by 2. This indicates the method is performing integer division instead of floating-point division.

## Steps to Reproduce
1. Run test: `pytest tests/test_calculator.py::CalculatorTest::test_division`
2. Or execute:
```python
calc = Calculator()
result = calc.divide(5, 2)
# Returns 2.0, expected 2.5

Expected Behavior

python
assert calc.divide(5, 2) == 2.5

Actual Behavior

python
AssertionError: assert 2.0 == 2.5
  Expected: 2.5
  Actual: 2.0

Affected Code

  • File: src/calculator.py
  • Method: Calculator.divide
  • Lines: 15-16

Current implementation:

python
def divide(self, a, b):
    return a / b  # Using integer division

Analysis

The method performs integer division when both operands are integers. In Python 2 or when using // operator, this truncates the decimal part.

Suspected cause: Missing float conversion or using wrong division operator.

Suggested fix:

python
def divide(self, a, b):
    return float(a) / float(b)

Test Details

  • Test file: tests/test_calculator.py
  • Test method: test_division

### Example 3: Timeout

**Input:**
- Test: `DataProcessorTest.testLargeDataset`
- Error: `Test timeout after 30s`

**Generated Report:**
```markdown
# Performance issue: processLargeDataset() exceeds timeout

## Description
The `DataProcessor.processLargeDataset()` method takes longer than 30 seconds when processing 10,000 items, causing the test to timeout.

## Steps to Reproduce
1. Run test: `npm test -- DataProcessorTest.testLargeDataset`
2. Test processes 10,000 items

## Expected Behavior
Processing should complete within 30 seconds.

## Actual Behavior
Test times out after 30 seconds. Processing is incomplete.

## Affected Code
- **File:** `src/data_processor.js`
- **Method:** `DataProcessor.processLargeDataset`
- **Lines:** 45-60

**Suspected bottleneck (lines 50-55):**
```javascript
for (let i = 0; i < items.length; i++) {
  for (let j = 0; j < items.length; j++) {  // O(n²) nested loop
    if (items[i].id === items[j].relatedId) {
      // Process relationship
    }
  }
}

Analysis

The performance issue appears to be caused by a nested loop with O(n²) complexity. With 10,000 items, this results in 100 million iterations.

Suspected cause: Inefficient algorithm using nested loops.

Suggested optimization: Use a hash map for O(n) lookup:

javascript
const itemMap = new Map(items.map(item => [item.id, item]));
for (let item of items) {
  const related = itemMap.get(item.relatedId);
  if (related) {
    // Process relationship
  }
}

Test Details

  • Test file: tests/data_processor.test.js
  • Test method: testLargeDataset
  • Input size: 10,000 items

### Example 4: Integration Failure

**Input:**
- Test: `ApiTest.testGetUserEndpoint`
- Error: `Expected status 200, got 500`
- Response: `{"error": "Database connection failed"}`

**Generated Report:**
```markdown
# Database connection failure in GET /api/users endpoint

## Description
The `/api/users` endpoint returns a 500 error with message "Database connection failed" instead of returning user data.

## Steps to Reproduce
1. Run test: `pytest tests/test_api.py::ApiTest::test_get_user_endpoint`
2. Or make request: `GET http://localhost:8000/api/users`

## Expected Behavior

Status: 200 OK Body: [{"id": 1, "name": "John"}, ...]


## Actual Behavior

Status: 500 Internal Server Error Body: {"error": "Database connection failed"}

Stack trace: at DatabaseConnection.connect (db.js:23) at UserRepository.findAll (user_repository.js:15) at UserController.getUsers (user_controller.js:42)


## Affected Code
- **File:** `src/db.js`
- **Method:** `DatabaseConnection.connect`
- **Line:** 23

## Analysis
The database connection fails, likely due to:
1. Database server not running
2. Incorrect connection configuration
3. Missing environment variables

**Suspected cause:** Missing or incorrect `DATABASE_URL` environment variable.

## Environment
- Database: PostgreSQL
- Required env var: `DATABASE_URL`
- Expected format: `postgresql://user:pass@host:port/dbname`

## Test Details
- Test file: `tests/test_api.py`
- Test method: `test_get_user_endpoint`

Constraints and Requirements

MUST Requirements
  1. Evidence-based reporting:

    • Only report what's in the test/code
    • Don't invent behavior
    • Don't claim fixes without evidence
  2. Precise language:

    • Use exact error messages
    • Include full stack traces
    • Reference specific locations
    • Use technical terminology
  3. Clear uncertainty:

    • Use "suspected," "likely," "appears to be"
    • State when root cause is unclear
    • Suggest investigation areas
  4. Complete information:

    • Include all required sections
    • Provide reproduction steps
    • Document affected code
    • Include test details
MUST NOT Requirements
  1. Don't invent:

    • Don't create behavior not in test
    • Don't guess at functionality
    • Don't assume fixes
  2. Don't be vague:

    • Avoid "something is wrong"
    • Avoid "the code doesn't work"
    • Avoid "fix the bug"
  3. Don't be judgmental:

    • Avoid "badly written"
    • Avoid "obviously wrong"
    • State facts, not opinions

Best Practices

  1. Be specific: Reference exact files, methods, line numbers
  2. Be clear: Use developer-friendly language
  3. Be honest: Indicate uncertainty when appropriate
  4. Be actionable: Provide steps to reproduce and investigate
  5. Be complete: Include all relevant information
  6. Be concise: Don't include irrelevant details
  7. Be formatted: Use proper Markdown for readability

Quality Checklist

Before finalizing a report:

  • Title is concise and descriptive
  • Description explains the issue clearly
  • Steps to reproduce are provided
  • Expected behavior is stated
  • Actual behavior is documented
  • Error messages/stack traces included
  • Affected code locations specified
  • Uncertainty is indicated where appropriate
  • Language is developer-friendly
  • Report is properly formatted in Markdown
  • Report is ready to post to issue tracker

Resources

© 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

Files

SKILL.md and 1 other file (references) in skills/issue-report-generator of ArabelaTso/Skills-4-SE.

  • SKILL.md
  • references/report_patterns.md

Open the folder on GitHubat commit 4f38503

Compare with similar skills

Issue Report 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.

Issue Report Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Issue Report Generator this skillArabelaTso/Skills-4-SE253—~3.5kAutomated safety check: PassApache-2.0
Triage CI Flakepayloadcms/payload45k—~4.4kAutomated safety check: PassMIT
GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb6.7k—~4.4kAutomated safety check: PassApache-2.0
Fix Issueremix-run/remix33k—~1.8kAutomated safety check: PassMIT
Issue To Regression Testbrunosabot/streamline-card269—~529Automated safety check: PassMIT
Detect Flaky Testsagent-substrate/substrate4.5k—~3kAutomated safety check: PassApache-2.0

Similar skills

  • Triage CI Flake

    payloadcms/payload

    A skill your agent uses when CI tests fail on main branch after PR merge, when investigating flaky test failures, or when user provides a PR URL/number to aggregate all failing tests

    45k GitHub stars~4.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.

    6.7k GitHub stars~4.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Fix Issue

    remix-run/remix

    Fix a reported issue in Remix from a GitHub issue. An agent skill from remix-run/remix.

    33k GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Issue To Regression Test

    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.

    269 GitHub stars~529 tokensUpdated 4 mo ago
    Testing & QAAuto-check passed
  • Detect Flaky Tests

    agent-substrate/substrate

    Detects flaky Go tests by analyzing GitHub Actions workflow runs across the last 7 days and all PRs — covering both the run-tests job (unit/integration) and the e2e-test job (gVisor and microVM…

    4.5k GitHub stars~3k tokensUpdated today
    Testing & QAAuto-check passed
  • Official

    Investigate and fix flaky/random CI test failures in dotnet/macios.

    2.9k GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed

More from ArabelaTso/Skills-4-SE

All 150 skills in this repo
  • Framework Migration Assistant

    ArabelaTso/Skills-4-SE

    Automatically migrate Python web applications between frameworks (Flask → FastAPI, Django → FastAPI).

    253 GitHub stars~1.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Metamorphic Test Generator

    ArabelaTso/Skills-4-SE

    Generate test cases using metamorphic testing by applying transformations based on metamorphic properties.

    253 GitHub stars~798 tokensUpdated 1 mo ago
    Auto-check passed
  • Reproduction Trace Instrumenter

    ArabelaTso/Skills-4-SE

    Instruments programs to capture execution traces specifically for reproducing reported bugs, enabling consistent replay and diagnosis of failures.

    253 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Spring Mvc To Boot Migrator

    ArabelaTso/Skills-4-SE

    Automatically migrate Spring MVC applications to Spring Boot.

    253 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed
  • State Snapshot Instrumenter

    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.

    253 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Issue Report Generator

What does Issue Report Generator do?

Automatically generate clear, actionable issue reports from failing tests and repository analysis. Issue Report Generator is an agent skill from ArabelaTso/Skills-4-SE. Automatically generate clear, actionable issue reports from failing tests and repository analysis.

When should I use Issue Report Generator?

Issue Report Generator fits situations like: debugging issues; the user asks to create an issue report; generate a bug report; document a test failure.

How do I install Issue Report Generator in Claude Code?

Run `npx skills add ArabelaTso/Skills-4-SE --skill issue-report-generator -a claude-code`. Or copy the skill folder (skills/issue-report-generator in ArabelaTso/Skills-4-SE) into .claude/skills/issue-report-generator in your project. Claude Code loads it when a task matches its description.

How do I install Issue Report Generator in Codex?

Run `npx skills add ArabelaTso/Skills-4-SE --skill issue-report-generator -a codex`. Or copy the skill folder (skills/issue-report-generator in ArabelaTso/Skills-4-SE) into .agents/skills/issue-report-generator in your project. Codex loads it when a task matches its description.

Can I use Issue Report Generator in Cursor, Gemini CLI or GitHub Copilot?

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 issue-report-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/issue-report-generator, .gemini/skills/issue-report-generator, .github/skills/issue-report-generator and .opencode/skills/issue-report-generator in your project.

What does Issue Report Generator need to run?

SKILL.md names no scripts, command-line tools or credentials: Issue Report Generator is instructions for the agent only. Our summary lists: Python 3.

Does Issue Report Generator access the network?

SKILL.md names 1 domain. As links in the text: docs.github.com. This is read from the text; nothing was executed.

Is Issue Report Generator safe to install?

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.

What licence does Issue Report Generator use?

Issue Report 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.

How many tokens does Issue Report Generator use?

About 3.5k tokens (SKILL.md is roughly 14k 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 3.8k tokens, read only when the agent opens those files.

What are the alternatives to Issue Report Generator?

Skills that share tags, products or a category with Issue Report Generator: Triage CI Flake (payloadcms/payload, 45k stars), GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars), Fix Issue (remix-run/remix, 33k stars) and Issue To Regression Test (brunosabot/streamline-card, 269 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Issue Report Generator?

ArabelaTso (a GitHub user) maintains it in ArabelaTso/Skills-4-SE, which has 253 GitHub stars. The repository holds 150 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.