fix-github-issues
Verify, triage, fix, and close review-bot GitHub issues one finding at a time.
Skill by leek
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leek-fix-github-issues
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fix-github-issues
Tools it pre-approves 9
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash(ghissueview*)listcommentcloseapirepos/{owner}/{repo}/issues/*)
What's inside
- Skill name
fix-github-issues- Description
- Verify, triage, fix, and close review-bot GitHub issues one finding at a time.
- License
- MIT
- Allowed tools
- Bash(gh, issue, view, *), Bash(gh, issue, list, *), Bash(gh, issue, comment, *), Bash(gh, issue, close, *), Bash(gh, api, repos/{owner}/{repo}/issues/*)
- Instructions
- 157 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (3)
- SKILL.md
- openai.yaml · agents/
- mechanics.md · references/
SKILL.md (first lines)
# Fix GitHub Issues
Work the open issues that a review bot filed. Each issue is a **container of findings**:
some are legit, some stale, some wrong. Every finding earns its own verdict from the
code on the default branch, never from the issue's headline. An issue closes only when
no legit finding is left in it, and a fix counts only once it reaches the default branch.
**Project context.** Read `.agents/github-review.md` when the repo has one. Its
sections `## Review bots` (with the bot's issue label), `## Auto-dismiss`,
`## Never dismiss`, and `## Stack facts` (what the bots get wrong) hold this repo's
facts; a missing section means the default here. Then follow the repo's `AGENTS.md` /
`CLAUDE.md` rules for tests, lint, cache clears, and a dirty tree.
## 1. Build the working set
Find the default branch (written `<default>` below), run `git fetch origin`, and
verify everything against `origin/<default>`, not a local branch. List every open issue
with the bot label (or the ones the user named), newest first. The calls, and the
check that the list is not cut off at its limit, are in [`references/mechanics.md`](references/mechanics.md).
Walk order is newest to oldest, but let evidence reorder it. A newer diff that
introduced a defect an older issue already flagged makes the older finding LEGIT, and
you fix both in one commit chain. A newer commit that fixed an older finding makes that
finding STALE: cite the sha.
Completion criterion: every open issue in scope is listed, newest first, with fewer
issues than the limit.
## 2. Classify every finding
For each issue, read its body and every comment (note any "fixed in <sha>" or "false
positive" from earlier runs). Read the commits it reviewed. Then write one line per
finding:
```
Finding N: [STALE | AUTO-DISMISS | HALLUCINATION | LEGIT] — <one-line evidence>
```
- `Finding 1: STALE — fixed in bf707fde3, see app/Foo.php:42`
- `Finding 3: HALLUCINATION — rg 'BarPolicy::class' returns 0; symbol does not exist`
- `Finding 4: LEGIT — app/Auth.php:88 still uses < instead of <=, exploitable on token boundary`
Verification rules:
- For a "class, method, or permission missing" claim, `rg` the symbol where the finding
says it is missing (that file, call site, or test). If it is there, the finding is
HALLUCINATION. That it exists somewhere else does not refute a missing check.
- For an "X may break Y" claim, trace the real call sites. If nothing calls it, the
finding is STALE or HALLUCINATION.
- A finding whose file:line does not exist at the reviewed commit, or does not hold the
code it describes, is HALLUCINATION. A finding on a file the commit did not touch
stands when the change reaches it (a changed caller that breaks an unchanged callee);
only when nothing in the commit leads there is it HALLUCINATION.
- A documented design choice in the commit body that contradicts the finding is
AUTO-DISMISS.
- A finding whose body retracts itself ("this technically works", "disregard") is
AUTO-DISMISS.
**Delegate the legwork on a large set.** With more than 5 findings, hand the first pass
to read-only workers in batches of about 10. Each brief carries the batch (id, author,
reviewed commit, file:line, body), the ref `origin/<default>`, the line format above,
and the verification rules. In Claude Code with this plugin installed, dispatch
`subagent_type=leek-skills:finding-verifier` for each batch in parallel; it keeps the
bots' recurring false premises in project memory, under this repo's `.claude/`.
Elsewhere, use any read-only sub-agent on a cheaper model, or classify inline when the
harness has none. Then re-verify yourself every line that came back LEGIT or UNSURE.
You read that code for the fix anyway.
**Second pass.** Re-read every LEGIT against the project's auto-dismiss list and
downgrade any match. A category on the project's never-dismiss list stays LEGIT. Do this
before writing any code.
Completion criterion: every finding in the working set has a line, and the second pass is done.
## 3. Fix the legit ones
Work on a new branch `fix/issues-<run>` from `origin/<default>`, always in a worktree
([Branch or worktree](references/mechanics.md#branch-or-worktree)). The main checkout
stays on the branch the run found it on, including when that tree is clean.
Per LEGIT finding: make the minimal change, with no drive-by refactors. Add a test for
logic, auth, or data changes and run that test file green. A user message to stop the
tests ends test commands for the rest of the run: the last focused result stands, and
the commits continue. Commit each fix on its own (Conventional
Commits, explicit staging). Put `fixes #NNN` **only** on the commit that resolves the
issue's last legit finding, so the issue closes at the right moment.
Run that test file against the repo's configured test database when you can. A run that needs
its own database names and registers it by [Scratch databases](references/mechanics.md#scratch-databases).
A LEGIT finding you cannot fix (a secret rotation, infra, a human decision) keeps the
issue OPEN; step 5 names the blocker.
Completion criterion: every fixable LEGIT finding has a commit on `fix/issues-<run>`,
with a green test where it needs one, and every unfixable one is named.
## 4. Land the fixes
An issue closes only when its `fixes #NNN` commit reaches `<default>`, so a local
commit fixes nothing yet. Show the user the commits and the issues each one closes, say
where they will go, and land them without asking: push to `<default>` by default; open a
pull request instead when branch protection or the repo's rules forbid direct pushes. A
user instruction in the input or the conversation ("open a PR", "keep them local")
overrides both. The commands are in [Land](references/mechanics.md#land).
Once they are landed, the main checkout is still the branch recorded at the start
([The checkout stays](references/mechanics.md#the-checkout-stays)). The fix branch
stays in its worktree. Do the same check if the run stops early.
Completion criterion: the commits are on `<default>`, in an open pull request, or kept
local by the user's instruction, and `git branch --show-current` in the main checkout
is still the starting branch.
## 5. Post a disposition
Post one comment per issue in the working set, with one bullet per finding
(calls in [Disposition and close](references/mechanics.md#disposition-and-close)):
```From leek/agent-skills, MIT.
More from leek/agent-skills
- 0.614score
code-smells-audit
leek
Audit a codebase, path, or branch diff for classic code smells against the 56-smell Luzkan catalog (PHP/Laravel and TS/React heuristics).
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
codebase-design
leek
Shared vocabulary for designing deep modules in any codebase.
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
domain-modeling
leek
Build and sharpen a project's domain model: challenge terms against the glossary, resolve fuzzy language, stress-test concepts with concrete scenarios, and…
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
closeout
leek
Check whether this session is safe to close: unsaved work, running jobs, open PRs, unanswered questions, and steps still to run.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
browser-test
leek
Test a web app from a start URL and a plain-language prompt.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
autopilot
leek
Drive an existing wayfinder map, spec, or set of tickets to completion through fresh top-level Claude Code, Codex, or Grok sessions.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
chatter-scout
leek
Sweep the web for new chatter on a topic, skip what earlier runs already saw, verify what is left, and write one ranked, cited findings file to feed a blog…
SkillAFreshness: A★ 4Claude Code - 0.611score
fix-posthog-issues
leek
Triage active PostHog error-tracking issues by root cause, fix the legit ones, and resolve or suppress the rest with evidence.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
grilling
leek
Interview the user one decision at a time until reaching shared understanding, resolving each branch of the decision tree with recommended options and…
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
fix-nightwatch-issues
leek
Triage open Laravel Nightwatch production issues by root cause, fix the legit ones, and resolve them with evidence.
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
commit
leek
Commit the work done in this session, skipping files a parallel session also touched.
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
fix-ci-failures
leek
Read a branch's latest failed CI runs, triage each failure from its existing logs, and fix the real ones.
SkillAFreshness: A★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (8 days ago)
- Last release
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/leek/agent-skills
- Website
- skills.sh/leek/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from leek
- 0.614score
codebase-design
leek
Shared vocabulary for designing deep modules in any codebase.
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
code-smells-audit
leek
Audit a codebase, path, or branch diff for classic code smells against the 56-smell Luzkan catalog (PHP/Laravel and TS/React heuristics).
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
domain-modeling
leek
Build and sharpen a project's domain model: challenge terms against the glossary, resolve fuzzy language, stress-test concepts with concrete scenarios, and…
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
chatter-scout
leek
Sweep the web for new chatter on a topic, skip what earlier runs already saw, verify what is left, and write one ranked, cited findings file to feed a blog…
SkillAFreshness: A★ 4Claude Code - 0.611score
closeout
leek
Check whether this session is safe to close: unsaved work, running jobs, open PRs, unanswered questions, and steps still to run.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
autopilot
leek
Drive an existing wayfinder map, spec, or set of tickets to completion through fresh top-level Claude Code, Codex, or Grok sessions.
SkillAFreshness: A★ 4Claude Code +9
Cite this page
fix-github-issues skill. Agent Mart. https://agentmart.dev/skills/leek-fix-github-issues (last updated 2026-10-24)