Exposed Bug Fix Workflow
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
Analyze a GitHub Issue to extract error context, stack traces, file references, and cross-references.
$ npx skills add akiojin/unity-cli --skill gh-fix-issue -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install akiojin/unity-cli gh-fix-issue --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/akiojin/unity-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gh-fix-issue .claude/skills/gh-fix-issue && 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 "gh-fix-issue" agent skill from https://github.com/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issue into .claude/skills/gh-fix-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-fix-issue", 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/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issueType 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 akiojin/unity-cli --skill gh-fix-issue -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install akiojin/unity-cli gh-fix-issue --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akiojin/unity-cli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/gh-fix-issue .agents/skills/gh-fix-issue && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gh-fix-issue" agent skill from https://github.com/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issue into .agents/skills/gh-fix-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-fix-issue", 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 akiojin/unity-cli --skill gh-fix-issue -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install akiojin/unity-cli gh-fix-issue --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akiojin/unity-cli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/gh-fix-issue .cursor/skills/gh-fix-issue && 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 "gh-fix-issue" agent skill from https://github.com/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issue into .cursor/skills/gh-fix-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-fix-issue", 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/akiojin/unity-cli.git --path .agents/skills/gh-fix-issue--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 akiojin/unity-cli --skill gh-fix-issue -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install akiojin/unity-cli gh-fix-issue --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akiojin/unity-cli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/gh-fix-issue .gemini/skills/gh-fix-issue && 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 "gh-fix-issue" agent skill from https://github.com/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issue into .gemini/skills/gh-fix-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-fix-issue", 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 akiojin/unity-cli gh-fix-issueInstalls 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 akiojin/unity-cli --skill gh-fix-issue -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/akiojin/unity-cli.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/gh-fix-issue .github/skills/gh-fix-issue && 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 "gh-fix-issue" agent skill from https://github.com/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issue into .github/skills/gh-fix-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-fix-issue", 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 akiojin/unity-cli --skill gh-fix-issue -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install akiojin/unity-cli gh-fix-issue --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akiojin/unity-cli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/gh-fix-issue .opencode/skills/gh-fix-issue && 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 "gh-fix-issue" agent skill from https://github.com/akiojin/unity-cli/tree/main/.agents/skills/gh-fix-issue into .opencode/skills/gh-fix-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-fix-issue", 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.
gh-fix-issueAnalyze a GitHub Issue to extract error context, stack traces, file references, and cross-references.
Gh Fix Issue is an agent skill from akiojin/unity-cli. Analyze a GitHub Issue to extract error context, stack traces, file references, and cross-references. Classify the issue, search the codebase for relevant files, produce a structured Issue Analysis Report, and propose a concrete fix plan. Post progress updates to the issue.
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 scripts (for example `scripts/inspect_issue.py`).
It sits in Development, covering Debugging. It works with GitHub. The repository describes itself as: Rust CLI for Unity Editor automation over Unity TCP protocol. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7f45d7a. 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.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3ghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
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.
Gh Fix Issue loads about 3.5k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 931 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); the scripts in this folder are not scanned.
The full file from akiojin/unity-cli at commit 7f45d7a, republished under its MIT licence (© akiojin). 931 words, ~3,464 tokens.
.claude/skills/gh-fix-issue/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use gh to inspect a GitHub Issue and:
Then produce a structured Issue Analysis Report, post progress to the issue, and implement fixes after explicit approval.
plan skill for drafting and approving the fix plan.Prereq: ensure gh is authenticated (for example, run gh auth login once), then run gh auth status with escalated permissions (include repo scope) so gh commands succeed.
| Prohibited | Required Alternative |
|---|---|
| "We should look into..." | "Edit path/file.ts:42 to..." |
| "There seem to be some issues" | "3 actionable items detected" |
| "This might be causing..." | "Root cause: <error from issue>" |
| "Consider fixing..." / "It looks like..." | "Action: Fix <what> in <where>" |
| "Various errors are reported" | "2 error messages extracted: <msg1>, <msg2>" |
| "Some files are involved" | "3 file references: src/a.ts:42, src/b.rs:10, src/c.py" |
| "I'll try to fix this" | "Action: <specific fix>" |
\n.gh issue comment), verify the final body does not accidentally include escaped control sequences (\n, \t).When posting progress updates to the issue, use this template:
Progress
- ...
Done
- ...
Next
- ...Next, explicitly state blockers or the immediate next action.repo: path inside the repo (default .)issue: Issue number or URL (required)focus: codebase search narrowing (optional; e.g., src/lib/components)max-comment-length: max characters per comment body (0 = unlimited)gh authentication for the repo host# Inspect issue (text output)
python3 "${CLAUDE_PLUGIN_ROOT}/github/skills/gh-fix-issue/scripts/inspect_issue.py" --repo "." --issue "<number>"
# Inspect issue by URL
python3 "${CLAUDE_PLUGIN_ROOT}/github/skills/gh-fix-issue/scripts/inspect_issue.py" --repo "." --issue "https://github.com/org/repo/issues/123"
# With focus area
python3 "${CLAUDE_PLUGIN_ROOT}/github/skills/gh-fix-issue/scripts/inspect_issue.py" --repo "." --issue "<number>" --focus "src/lib"
# JSON output
python3 "${CLAUDE_PLUGIN_ROOT}/github/skills/gh-fix-issue/scripts/inspect_issue.py" --repo "." --issue "<number>" --json
# Limit comment length
python3 "${CLAUDE_PLUGIN_ROOT}/github/skills/gh-fix-issue/scripts/inspect_issue.py" --repo "." --issue "<number>" --max-comment-length 500Verify gh authentication.
gh auth status in the repo with escalated scopes (repo).Resolve the Issue.
Run inspect_issue.py to fetch and parse data.
Classify the Issue.
Search the codebase for relevant context.
--focus is provided, restrict search to that area.Produce Issue Analysis Report (mandatory format).
Output MUST use this exact structure:
## Issue Analysis Report: #<number>
**Issue Type:** BUG | FEATURE | ENHANCEMENT | DOCUMENTATION | QUESTION | UNCLASSIFIED
**Title:** <issue title>
**State:** OPEN | CLOSED
**Labels:** <label1>, <label2>, ...
**Assignees:** <assignee1>, <assignee2>, ...
Actionable items: <N>
---
### EXTRACTED CONTEXT
#### Error Messages
- `<error message 1>`
- `<error message 2>`
#### Stack Traces<stack trace>
```
path/to/file.ext:42 [EXISTS]path/to/other.ext:10 [NOT FOUND]<extracted Steps to Reproduce section>
<extracted expected behavior><extracted actual behavior><file or symbol>path/to/file.ext:line<file or symbol>...
...
<number>: <title> [<state>]<number><number><N> comments from <M> authorsSummary: <N> actionable items, <M> informational items, <K> codebase matches.
**Category labels:** `CODE-FIX`, `CONFIG-FIX`, `TEST-FIX`, `DEPENDENCY`, `DOCUMENTATION`, `DESIGN-DECISION`, `INVESTIGATION`
**Confidence judgment:**
- **High** — Clear error with obvious fix location, stack trace points to exact line
- **Medium** — Error pattern matches but fix location needs investigation
- **Low** — Requires design decision or the root cause is unclearDecide execution path based on Confidence.
Post progress comment to the Issue.
gh issue comment <number> -b "<body>"Implement fixes after approval.
Fixes #<number>).GitHub Issue inspection and analysis tool. Fetches issue data, parses error context, classifies the issue, and checks file existence.
Arguments:
| Argument | Default | Description |
|---|---|---|
--repo | . | Path inside the target Git repository |
--issue | (required) | Issue number or URL |
--focus | (none) | Codebase search narrowing area |
--max-comment-length | 0 (unlimited) | Max characters per comment body |
--json | false | Emit JSON output |
Exit codes:
0: Success1: Error occurredFetches comprehensive issue data:
Parses issue body and comments for:
Error:, TypeError:, panicked at, etc.)at , Traceback, thread '...' panicked, etc.)path/to/file.ext:123 format)#123, org/repo#123)Classifies based on labels (highest priority) and body/title heuristics:
bug, defect, regression, crash, error labels or error indicators in bodyfeature, feature-request labels or feature request languageenhancement, improvement labelsdocumentation, docs labelsquestion, help, support labels or question languageValidates extracted file references against the repository:
[EXISTS] or [NOT FOUND] statusIssue #42: TypeError when clicking save button
============================================================
State: OPEN
Type: BUG
Labels: bug, ui
Assignees: developer1
Author: @reporter1
URL: https://github.com/org/repo/issues/42
BODY
------------------------------------------------------------
When I click the save button on the settings page, I get this error:
TypeError: Cannot read properties of undefined (reading 'name') at SaveHandler (src/components/Settings.tsx:42) at onClick (src/components/Button.tsx:15)
### Steps to Reproduce
1. Open Settings page
2. Change any setting
3. Click Save
### Expected Behavior
Settings should be saved successfully.
### Actual Behavior
TypeError is thrown and settings are not saved.
EXTRACTED SECTIONS
------------------------------------------------------------
[Steps To Reproduce]
1. Open Settings page
2. Change any setting
3. Click Save
[Expected]
Settings should be saved successfully.
[Actual]
TypeError is thrown and settings are not saved.
ERROR MESSAGES (1)
------------------------------------------------------------
[1] TypeError: Cannot read properties of undefined (reading 'name')
STACK TRACES (1)
------------------------------------------------------------
[1]
at SaveHandler (src/components/Settings.tsx:42)
at onClick (src/components/Button.tsx:15)
FILE REFERENCES (2)
------------------------------------------------------------
src/components/Settings.tsx:42 [EXISTS]
src/components/Button.tsx:15 [EXISTS]
COMMENTS (1)
------------------------------------------------------------
@maintainer1 (2025-01-20):
This might be related to the recent refactor in #38.
LINKED PULL REQUESTS (1)
------------------------------------------------------------
PR #45: Fix settings save handler [OPEN]
https://github.com/org/repo/pull/45
============================================================{
"issue": {
"number": 42,
"title": "TypeError when clicking save button",
"body": "...",
"state": "OPEN",
"labels": [{"name": "bug"}, {"name": "ui"}],
"assignees": [{"login": "developer1"}],
"author": {"login": "reporter1"},
"url": "https://github.com/org/repo/issues/42"
},
"issueType": "BUG",
"comments": [
{
"id": 123456,
"author": "maintainer1",
"body": "This might be related to the recent refactor in #38.",
"createdAt": "2025-01-20T12:00:00Z"
}
],
"linkedPRs": [
{
"number": 45,
"title": "Fix settings save handler",
"state": "OPEN",
"url": "https://github.com/org/repo/pull/45"
}
],
"parsed": {
"errorMessages": [
"TypeError: Cannot read properties of undefined (reading 'name')"
],
"stackTraces": [
"at SaveHandler (src/components/Settings.tsx:42)\n at onClick (src/components/Button.tsx:15)"
],
"fileReferences": [
"src/components/Settings.tsx:42",
"src/components/Button.tsx:15"
],
"codeBlocks": ["TypeError: Cannot read properties of undefined..."],
"sections": {
"steps_to_reproduce": "1. Open Settings page\n2. Change any setting\n3. Click Save",
"expected": "Settings should be saved successfully.",
"actual": "TypeError is thrown and settings are not saved."
},
"crossReferences": [
{"repo": "", "number": 38, "ref": "#38"}
]
},
"fileChecks": [
{"reference": "src/components/Settings.tsx:42", "path": "src/components/Settings.tsx", "exists": true},
{"reference": "src/components/Button.tsx:15", "path": "src/components/Button.tsx", "exists": true}
]
}© akiojin, MIT. 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 (scripts) in .agents/skills/gh-fix-issue of akiojin/unity-cli.
Open the folder on GitHubat commit 7f45d7a
Gh Fix Issue 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 |
|---|---|---|---|---|---|---|
| Gh Fix Issue this skillakiojin/unity-cli | 107 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Exposed Bug Fix WorkflowJetBrains/Exposed | 9.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| OpenCLI Adapter Autofixjackwener/OpenCLI | 30k | 1 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Issue Fixmono/SkiaSharp | 5.6k | — | ~5.1k | Automated safety check: Pass | MIT | |
| React Router Bug Fix Workflowremix-run/react-router | 57k | — | ~1.3k | Automated safety check: Pass | MIT | |
| OpenROAD Bug FixerThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~784 | Automated safety check: Pass | BSD-3-Clause |
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
jackwener/OpenCLI
Repairs a broken OpenCLI site adapter after a command fails: collects a trace, patches only the adapter, retries, and files an upstream GitHub issue once fixed.
mono/SkiaSharp
Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.
remix-run/react-router
Fixes a React Router bug reported in a GitHub issue end to end: fetching the issue, validating the reproduction, writing a failing test and implementing the fix on a new branch.
The-OpenROAD-Project/OpenROAD
Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.
bgauryy/octocode
Researches code with evidence: traces callers, imports and cross-repo links, diagnoses failures and reports findings with exact file and line references and a confidence label.
akiojin/unity-cli
Create or update GitHub Pull Requests with the gh CLI, including deciding whether to create a new PR or only push based on existing PR merge status.
akiojin/unity-cli
Sync the gh- automation skills from the upstream skills repository into Codex and project skill directories.
akiojin/unity-cli
Build and verify a 2D sprite and Tilemap scene with unity-cli.
akiojin/unity-cli
Manage Unity Addressables groups and content with unity-cli.
akiojin/unity-cli
Manage Unity assets and import metadata with unity-cli. An agent skill from akiojin/unity-cli.
akiojin/unity-cli
Configure Unity audio with unity-cli. An agent skill from akiojin/unity-cli.
Works with
Categories
Analyze a GitHub Issue to extract error context, stack traces, file references, and cross-references. Gh Fix Issue is an agent skill from akiojin/unity-cli. Analyze a GitHub Issue to extract error context, stack traces, file references, and cross-references.
Gh Fix Issue fits situations like: tasks that involve Debugging.
Run `npx skills add akiojin/unity-cli --skill gh-fix-issue -a claude-code`. Or copy the skill folder (.agents/skills/gh-fix-issue in akiojin/unity-cli) into .claude/skills/gh-fix-issue in your project. Claude Code loads it when a task matches its description.
Run `npx skills add akiojin/unity-cli --skill gh-fix-issue -a codex`. Or copy the skill folder (.agents/skills/gh-fix-issue in akiojin/unity-cli) into .agents/skills/gh-fix-issue 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 akiojin/unity-cli --skill gh-fix-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gh-fix-issue, .gemini/skills/gh-fix-issue, .github/skills/gh-fix-issue and .opencode/skills/gh-fix-issue in your project.
Going by SKILL.md and its folder, Gh Fix Issue needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and gh). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Gh Fix Issue is published under the MIT 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.
Skills that share tags, products or a category with Gh Fix Issue: Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars), OpenCLI Adapter Autofix (jackwener/OpenCLI, 30k stars), Issue Fix (mono/SkiaSharp, 5.6k stars) and React Router Bug Fix Workflow (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
akiojin (a GitHub user) maintains it in akiojin/unity-cli, which has 107 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 5, 2026.
Source: akiojin/unity-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.