Fix a single GitHub issue end-to-end: triage, research, write the fix, review, and create a PR. Use when asked to fix an issue: "fix issue 1234", "resolve #500", "create a PR for issue 200".
Given GitHub issue $ARGUMENTS, decide what to do with it and either close it or fix it. This skill orchestrates the composable skills — it owns the decision tree, not the individual steps.
Invoke /triage-issue $ARGUMENTS to understand the issue and decide what
to do. This runs in a forked subagent and returns a verdict.
If triage says close it — comment with the reason and close:
gh issue close $ARGUMENTS --repo docker/docs \
--comment "<one sentence explaining why>
Generated by [Claude Code](https://claude.com/claude-code)"
Done.
If triage says escalate upstream — comment noting the repo and stop:
gh issue comment $ARGUMENTS --repo docker/docs \
--body "This needs to be fixed in <upstream-repo>.
Generated by [Claude Code](https://claude.com/claude-code)"
Done.
If triage says leave it open — comment explaining what was checked and what's unclear. Do not close. Done.
End every issue comment with a Generated by [Claude Code](https://claude.com/claude-code) footer.
If triage says fix it — proceed to step 3.
Invoke /research to locate affected files, verify facts, and identify
the fix. The issue context carries over from triage. This runs inline —
findings stay in conversation context for the write step.
If research reveals the issue is upstream or cannot be fixed (e.g. unverifiable URLs), comment on the issue and stop.
Invoke /write to create a branch, make the change, format, self-review,
and commit.
Invoke /review-changes to check the diff for correctness, coherence, and
mechanical compliance. This runs in a forked subagent with fresh context.
If issues are found, fix them and re-review until clean.
Invoke /create-pr to push the branch and open a pull request.
git checkout main
Summarize what happened: the issue number, what was done (closed, escalated, fixed with a PR link), and why — in a sentence or two.