Agent skill

Issue To PR Resolver

by homeassistant-ai in homeassistant-ai/ha-mcp

Implement a GitHub issue end-to-end — create a worktree branch, implement the feature with tests, create a draft PR, then iteratively resolve all CI failures and review comments until the PR is clean.

MITAuto-check: notesBackend & APIs

Install Issue To PR Resolver

skills CLI
$ npx skills add homeassistant-ai/ha-mcp --skill issue-to-pr-resolver -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install homeassistant-ai/ha-mcp issue-to-pr-resolver --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/homeassistant-ai/ha-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/issue-to-pr-resolver .claude/skills/issue-to-pr-resolver && rm -rf skills-src

Use ~/.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/

Facts

Skill name
issue-to-pr-resolver
GitHub stars
5k
Token cost
~1.2k tokens
SKILL.md length
308 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Implement a GitHub issue end-to-end — create a worktree branch, implement the feature with tests, create a draft PR, then iteratively resolve all CI failures and review comments until the PR is clean.

  • Works in 5 steps: Setup → Implement → Create PR → …
  • You need to fully implement a GitHub issue from start to merge-ready
  • SKILL.md covers Phase 1: Setup, Phase 2: Implement, Phase 3: Create PR and Phase 4: Resolution Loop, plus 2 more sections
  • Calls gh and git

What it does

Issue To PR Resolver is an agent skill from homeassistant-ai/ha-mcp. Implement a GitHub issue end-to-end — create a worktree branch, implement the feature with tests, create a draft PR, then iteratively resolve all CI failures and review comments until the PR is clean. Use when you need to fully implement a GitHub issue from start to merge-ready. Triggers on "implement issue", "resolve issue", "/issue-to-pr-resolver <number".

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering GraphQL, Failing and flaky tests and Git worktrees. It works with GitHub. The repository describes itself as: The Unofficial and Awesome Home Assistant MCP Server. The licence is MIT.

When your agent uses it

  • You need to fully implement a GitHub issue from start to merge-ready
  • Implement issue
  • /issue-to-pr-resolver <number

Example prompts

  • “implement issue”
  • “resolve issue”
  • “/issue-to-pr-resolver <number”
  • “/issue-to-pr-resolver”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Edit, Write, Glob, Grep, WebFetch, WebSearch

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Setup
  2. Implement
  3. Create PR
  4. Resolution Loop
  5. Final Report

What it can do on your machine

Read from SKILL.md and the folder at commit 10d63fa. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Edit
    • Write
    • Glob
    • Grep
    • WebFetch
    • WebSearch

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Issue To PR Resolver loads about 1.2k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 308 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Edit, Write, Glob, Grep, WebFetch, WebSearch

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.

SKILL.md

The full file from homeassistant-ai/ha-mcp at commit 10d63fa, republished under its MIT licence (© homeassistant-ai). 308 words, ~1,155 tokens.

Download SKILL.mdSave it as .claude/skills/issue-to-pr-resolver/SKILL.md (or your agent's skills folder).
name
issue-to-pr-resolver
description
Implement a GitHub issue end-to-end — create a worktree branch, implement the feature with tests, create a draft PR, then iteratively resolve all CI failures and review comments until the PR is clean. Use when you need to fully implement a GitHub issue from start to merge-ready. Triggers on "implement issue", "resolve issue", "/issue-to-pr-resolver <number>".
allowed-tools
Bash, Read, Edit, Write, Glob, Grep, WebFetch, WebSearch
argument-hint
<issue-number>

Issue-to-PR Resolver

Implement GitHub issue #$ARGUMENTS in homeassistant-ai/ha-mcp end-to-end.

Phase 1: Setup

Read the issue:

bash
gh issue view "$ARGUMENTS" --repo homeassistant-ai/ha-mcp --json title,body,labels,comments,author

Create a worktree from repo root:

bash
cd "$(git rev-parse --show-toplevel)"
git checkout master && git pull origin master
git worktree add "worktree/issue-$ARGUMENTS" -b "feature/issue-$ARGUMENTS"
git -C "worktree/issue-$ARGUMENTS" submodule update --init --recursive
cd "worktree/issue-$ARGUMENTS"

Phase 2: Implement

  • Analyze codebase structure and patterns before writing code
  • Follow project conventions (see AGENTS.md for patterns, naming, error handling)
  • Write tests — all new MCP tools in src/ha_mcp/tools/ need E2E tests
  • Make atomic, well-described commits using conventional commit prefixes

Philosophy: Work autonomously. Don't ask about every small decision. Fix unrelated test failures encountered. Document all choices for the final summary.

If a non-obvious choice has significant consequences, present the available options to the user and let them choose.

Phase 3: Create PR

Write the PR body to local/pr-body-$ARGUMENTS.md first. local/ is git-ignored, so a new worktree does not have it; create it with mkdir -p local if it does not exist. Build the body from .github/pull_request_template.md: keep its headings, put Closes #$ARGUMENTS and the description under ## What does this PR do?, and delete ## Future improvements unless the user has confirmed work to defer. Then push and create the PR:

bash
git push -u origin "feature/issue-$ARGUMENTS"
PR_NUMBER=$(gh pr create --draft \
  --repo homeassistant-ai/ha-mcp \
  --title "<descriptive title>" \
  --body-file "local/pr-body-$ARGUMENTS.md" | grep -oE '[0-9]+$')

Wait for CI:

bash
gh pr checks "$PR_NUMBER" --repo homeassistant-ai/ha-mcp --watch

Before marking ready (gh pr ready), update the PR description to reflect all changes made.

Phase 4: Resolution Loop

Repeat until all checks green and no unresolved threads:

Check for issues:

bash
gh pr checks "$PR_NUMBER" --repo homeassistant-ai/ha-mcp
gh api repos/homeassistant-ai/ha-mcp/pulls/"$PR_NUMBER"/comments \
  --jq '.[] | {id, path, line, author: .user.login, body}'
gh api graphql -F pr="$PR_NUMBER" -f query='query($pr: Int!) { repository(owner:"homeassistant-ai", name:"ha-mcp") { pullRequest(number:$pr) { reviewThreads(first:100) { nodes { id isResolved comments(first:1) { nodes { databaseId body } } } } } } }'

Resolve each comment (both steps required):

bash
# 1. Reply on the inline thread
gh api repos/homeassistant-ai/ha-mcp/pulls/"$PR_NUMBER"/comments/<COMMENT_ID>/replies \
  -f body="✅ Fixed in [commit]. [explanation]"
# or: -f body="📝 Not addressing because [reason]."

# 2. Resolve the thread via GraphQL
gh api graphql -f query='mutation($threadId: ID!) { resolveReviewThread(input: {threadId: $threadId}) { thread { id isResolved } } }' \
  -f threadId="<PRRT_...>"

After pushing fixes, wait and re-check:

bash
gh pr checks "$PR_NUMBER" --repo homeassistant-ai/ha-mcp --watch

Phase 5: Final Report

Once all checks pass and all threads resolved:

bash
gh pr comment "$PR_NUMBER" --repo homeassistant-ai/ha-mcp --body "## Implementation Summary

**Choices Made:**
- [key technical decisions with rationale]

**Problems Encountered:**
- [issues faced and how resolved]
- [unrelated test failures fixed, if any]
"

Report to user: PR number, status, key choices.

Rules

  • Never commit to master — always work in the worktree
  • Always create PRs as draft — never mark ready without user request
  • Maximum 5 resolution iterations before reporting blockers
  • Discovered improvements: fix-in-place by default. See AGENTS.md § Boy Scout Rule — Handling Discovered Improvements for the full rubric. Never open a follow-up PR or issue without explicit user approval; never populate ## Future improvements without the user explicitly confirming the work is out of scope.

© homeassistant-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/issue-to-pr-resolver of homeassistant-ai/ha-mcp.

Open the folder on GitHubat commit 10d63fa

Compare with similar skills

Issue To PR Resolver 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.

Issue To PR Resolver compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Issue To PR Resolver this skillhomeassistant-ai/ha-mcp5k—~1.2kAutomated safety check: NotesMIT
Review PR Commentslatitude-dev/latitude-llm4.7k—~2.6kAutomated safety check: PassMIT
Copilot PR Autopilotgithub/awesome-copilot40k—~3.4kAutomated safety check: PassMIT
GitHub Opsdaymade/claude-code-skills1.4k—~3.8kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
React Router Bug Fix Workflowremix-run/react-router57k—~1.3kAutomated safety check: PassMIT

Similar skills

  • Review PR Comments

    latitude-dev/latitude-llm

    Triages a PR with GitHub CLI: loads issue-level and inline review feedback (gh pr view, gh api REST, gh api graphql as appropriate), walks items in order, replies in the correct thread, optional…

    4.7k GitHub stars~2.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Copilot PR Autopilot

    github/awesome-copilot

    Official

    Copilot left 14 review comments on your PR — half are nits. An agent skill from github/awesome-copilot.

    40k GitHub stars~3.4k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • GitHub Ops

    daymade/claude-code-skills

    Operates GitHub via gh CLI and REST/GraphQL — PRs, issues, Actions, repos, collaborators, org permissions, 2FA — with explicit target, authorization, and independent readback.

    1.4k GitHub stars~3.8k tokensUpdated today
    Backend & APIsAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • React Router Bug Fix Workflow

    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.

    57k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Issue To Regression Test

    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.

    269 GitHub stars~529 tokensUpdated 4 mo ago
    Testing & QAAuto-check passed

More from homeassistant-ai/ha-mcp

All 8 skills in this repo
  • Bat Adhoc

    homeassistant-ai/ha-mcp

    Run bot acceptance tests to validate MCP tools work correctly from a real AI agent's perspective.

    5k GitHub stars~1.4k tokensUpdated today
    Auto-check: notes
  • Contrib PR Review

    homeassistant-ai/ha-mcp

    Review a contribution PR for safety, quality, and readiness.

    5k GitHub stars~3.1k tokensUpdated today
    Auto-check: notes
  • Issue Analysis

    homeassistant-ai/ha-mcp

    Deep analysis of a single GitHub issue with codebase exploration, implementation planning, and architectural assessment.

    5k GitHub stars~753 tokensUpdated today
    Auto-check: notes
  • My PR Checker

    homeassistant-ai/ha-mcp

    Manage your own GitHub pull requests — check CI status, inline review comments, PR-level comments, resolve review threads, fix issues, and iterate until all checks pass and threads are resolved.

    5k GitHub stars~1.2k tokensUpdated today
    Auto-check: notes
  • Bat Story Eval

    homeassistant-ai/ha-mcp

    Compare MCP tool behavior between target and baseline versions using pre-built and custom stories with diff-based triage.

    5k GitHub stars~3.4k tokensUpdated today
    Auto-check: notes
  • Contributors Update

    homeassistant-ai/ha-mcp

    Find merged PR authors missing from README and update the contributors list after approval

    5k GitHub stars~983 tokensUpdated today
    Auto-check passed

Works with

Questions about Issue To PR Resolver

What does Issue To PR Resolver do?

Implement a GitHub issue end-to-end — create a worktree branch, implement the feature with tests, create a draft PR, then iteratively resolve all CI failures and review comments until the PR is clean. Issue To PR Resolver is an agent skill from homeassistant-ai/ha-mcp. Implement a GitHub issue end-to-end — create a worktree branch, implement the feature with tests, create a draft PR, then iteratively resolve all CI failures and review comments until the PR is clean.

When should I use Issue To PR Resolver?

Issue To PR Resolver fits situations like: you need to fully implement a GitHub issue from start to merge-ready; implement issue; /issue-to-pr-resolver <number.

How do I install Issue To PR Resolver in Claude Code?

Run `npx skills add homeassistant-ai/ha-mcp --skill issue-to-pr-resolver -a claude-code`. Or copy the skill folder (.claude/skills/issue-to-pr-resolver in homeassistant-ai/ha-mcp) into .claude/skills/issue-to-pr-resolver in your project. Claude Code loads it when a task matches its description.

How do I install Issue To PR Resolver in Codex?

Run `npx skills add homeassistant-ai/ha-mcp --skill issue-to-pr-resolver -a codex`. Or copy the skill folder (.claude/skills/issue-to-pr-resolver in homeassistant-ai/ha-mcp) into .agents/skills/issue-to-pr-resolver in your project. Codex loads it when a task matches its description.

Can I use Issue To PR Resolver in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add homeassistant-ai/ha-mcp --skill issue-to-pr-resolver -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-to-pr-resolver, .gemini/skills/issue-to-pr-resolver, .github/skills/issue-to-pr-resolver and .opencode/skills/issue-to-pr-resolver in your project.

What does Issue To PR Resolver need to run?

Going by SKILL.md and its folder, Issue To PR Resolver needs the command-line tools its instructions call (gh and git). Its frontmatter pre-approves these tools: Bash, Read, Edit, Write, Glob, Grep, WebFetch, WebSearch.

Does Issue To PR Resolver access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Issue To PR Resolver safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Issue To PR Resolver use?

Issue To PR Resolver is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Issue To PR Resolver use?

About 1.2k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Issue To PR Resolver?

Skills that share tags, products or a category with Issue To PR Resolver: Review PR Comments (latitude-dev/latitude-llm, 4.7k stars), Copilot PR Autopilot (github/awesome-copilot, 40k stars), GitHub Ops (daymade/claude-code-skills, 1.4k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Issue To PR Resolver?

homeassistant-ai (a GitHub organization) maintains it in homeassistant-ai/ha-mcp, which has 5,002 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 10, 2026.

Source: homeassistant-ai/ha-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.