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>".
75
95%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Implement GitHub issue #$ARGUMENTS in homeassistant-ai/ha-mcp end-to-end.
Read the issue:
gh issue view "$ARGUMENTS" --repo homeassistant-ai/ha-mcp --json title,body,labels,comments,authorCreate a worktree from repo root:
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"AGENTS.md for patterns, naming, error handling)src/ha_mcp/tools/ need E2E testscd tests && uv run pytest src/e2e/ -n2 --dist loadscope -v --tb=shortPhilosophy: 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, create two mutually exclusive PRs (one per approach) and let the user choose.
git push -u origin "feature/issue-$ARGUMENTS"
PR_NUMBER=$(gh pr create --draft \
--repo homeassistant-ai/ha-mcp \
--title "<descriptive title>" \
--body "Closes #$ARGUMENTS
## What does this PR do?
[description]
" | grep -oE '[0-9]+$')Wait for CI:
gh pr checks "$PR_NUMBER" --repo homeassistant-ai/ha-mcp --watchBefore marking ready (gh pr ready), update the PR description to reflect all changes made.
Repeat until all checks green and no unresolved threads:
Check for issues:
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):
# 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:
gh pr checks "$PR_NUMBER" --repo homeassistant-ai/ha-mcp --watchOnce all checks pass and all threads resolved:
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.
## Future improvements without the user explicitly confirming the work is out of scope.01964cc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.