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
Automatically generate clear, actionable issue reports from failing tests and repository analysis.
$ npx skills add ArabelaTso/Skills-4-SE --skill issue-report-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ArabelaTso/Skills-4-SE issue-report-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/issue-report-generator .claude/skills/issue-report-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 "issue-report-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/issue-report-generator into .claude/skills/issue-report-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-report-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/issue-report-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 issue-report-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ArabelaTso/Skills-4-SE issue-report-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/issue-report-generator .agents/skills/issue-report-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 "issue-report-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/issue-report-generator into .agents/skills/issue-report-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-report-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 issue-report-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ArabelaTso/Skills-4-SE issue-report-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/issue-report-generator .cursor/skills/issue-report-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 "issue-report-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/issue-report-generator into .cursor/skills/issue-report-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-report-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/issue-report-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 issue-report-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ArabelaTso/Skills-4-SE issue-report-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/issue-report-generator .gemini/skills/issue-report-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 "issue-report-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/issue-report-generator into .gemini/skills/issue-report-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-report-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 issue-report-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 issue-report-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/issue-report-generator .github/skills/issue-report-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 "issue-report-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/issue-report-generator into .github/skills/issue-report-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-report-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 issue-report-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 issue-report-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/issue-report-generator .opencode/skills/issue-report-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 "issue-report-generator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/issue-report-generator into .opencode/skills/issue-report-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-report-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.
issue-report-generatorAutomatically 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. 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.
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.
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.
Links to these hosts (documentation or services it may open):
docs.github.comFrom 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.
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.
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,037 words, ~3,464 tokens.
.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.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.
Understand what the test is checking and why it fails:
Identify the test:
Understand test intent:
Analyze the failure:
Extract key information:
Locate the code related to the failure:
From stack trace:
From test code:
Code analysis:
Record locations:
Determine why the failure occurs (when possible):
For exceptions:
For assertion failures:
For timeouts:
For integration failures:
State uncertainty:
Create the issue report with required sections:
Title:
[Exception/Issue] in [Component].[Method][Feature] returns incorrect [result]Description:
Steps to Reproduce:
Expected Behavior:
Actual Behavior:
Affected Code:
Analysis (optional):
Additional Context:
Produce the final Markdown report:
Use proper Markdown:
Be precise:
Be clear:
Be actionable:
For detailed templates and patterns, see report_patterns.md.
| Failure Type | Template | Key Focus |
|---|---|---|
| Exception | Exception-Based Bug | Exception type, location, null/invalid variable |
| Assertion failure | Assertion Failure Bug | Expected vs. actual, wrong value source |
| Timeout | Performance/Timeout Bug | Slow operation, bottleneck |
| Integration error | Integration Failure Bug | External system, error message, config |
| Regression | Regression Bug | Breaking commit, what changed |
Input:
UserServiceTest.testAuthenticateNonExistentUserNullPointerException at UserService.java:45Generated Report:
# 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 Behaviorjava.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 hereThe 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.
src/test/java/com/example/UserServiceTest.javatestAuthenticateNonExistentUser
### 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.5assert calc.divide(5, 2) == 2.5AssertionError: assert 2.0 == 2.5
Expected: 2.5
Actual: 2.0src/calculator.pyCalculator.divideCurrent implementation:
def divide(self, a, b):
return a / b # Using integer divisionThe 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:
def divide(self, a, b):
return float(a) / float(b)tests/test_calculator.pytest_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
}
}
}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:
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
}
}tests/data_processor.test.jstestLargeDataset
### 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 BehaviorStatus: 200 OK Body: [{"id": 1, "name": "John"}, ...]
## Actual BehaviorStatus: 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`Evidence-based reporting:
Precise language:
Clear uncertainty:
Complete information:
Don't invent:
Don't be vague:
Don't be judgmental:
Before finalizing a report:
© 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 1 other file (references) in skills/issue-report-generator of ArabelaTso/Skills-4-SE.
Open the folder on GitHubat commit 4f38503
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Issue Report Generator this skillArabelaTso/Skills-4-SE | 253 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Triage CI Flakepayloadcms/payload | 45k | — | ~4.4k | Automated safety check: Pass | MIT | |
| GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb | 6.7k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Fix Issueremix-run/remix | 33k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Issue To Regression Testbrunosabot/streamline-card | 269 | — | ~529 | Automated safety check: Pass | MIT | |
| Detect Flaky Testsagent-substrate/substrate | 4.5k | — | ~3k | Automated safety check: Pass | Apache-2.0 |
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
GreptimeTeam/greptimedb
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.
remix-run/remix
Fix a reported issue in Remix from a GitHub issue. An agent skill from remix-run/remix.
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.
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…
dotnet/macios
Investigate and fix flaky/random CI test failures in dotnet/macios.
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
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.
Issue Report Generator fits situations like: debugging issues; the user asks to create an issue report; generate a bug report; document a test failure.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Issue Report Generator is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: docs.github.com. 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.
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.
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.
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.
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.