---
name: fix-issue
description: >
  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".
argument-hint: "<issue-number>"
---

# Fix Issue

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.

## 1. Triage

Invoke `/triage-issue $ARGUMENTS` to understand the issue and decide what
to do. This runs in a forked subagent and returns a verdict.

## 2. Act on the triage result

If triage says **close it** — comment with the reason and close:
```bash
gh issue close $ARGUMENTS --repo docker/docs \
  --comment "<one sentence explaining why>

Generated by <active coding agent name>"
```
Done.

If triage says **escalate upstream** — comment noting the repo and stop:
```bash
gh issue comment $ARGUMENTS --repo docker/docs \
  --body "This needs to be fixed in <upstream-repo>.

Generated by <active coding agent name>"
```
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 an accurate agent-disclosure footer that names
the active coding agent, for example `Generated by Codex` or `Generated by
Claude Code`.

If triage says **fix it** — proceed to step 3.

## 3. Research

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.

## 4. Write

Invoke `/write` to create a branch, make the change, format, self-review,
and commit.

## 5. Review

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.

## 6. Create PR

Invoke `/create-pr` to push the branch and open a pull request.

## 7. Return to main

```bash
git checkout main
```

## 8. Report

Summarize what happened: the issue number, what was done (closed, escalated,
fixed with a PR link), and why — in a sentence or two.
