| name | resolve-issues |
| allowed-tools | Bash(gh:*), Bash(git:*), EnterWorktree, ExitWorktree, Task, Skill |
| description | Resolves GitHub issues using isolated worktrees and test-driven development, then delegates PR creation to /github:create-pr so the quality gate and the /github:review-pr loop always run. This skill should be used when the user asks to "resolve an issue", "fix issue |
| argument-hint | ["issue number or description"] |
| user-invocable | true |
Resolve GitHub Issues
Execute issue resolution workflow using isolated worktrees, TDD methodology, and agent collaboration.
Context
- Current git status: !
git status
- Current branch: !
git branch --show-current
- Existing worktrees: !
git worktree list
- Open issues: !
gh issue list --state open --limit 10
- GitHub authentication: !
gh auth status
Requirements Summary
Use isolated worktrees to avoid disrupting main development. Follow TDD cycle (red → green → refactor) with agent support. Reference issues in commits using auto-closing keywords. See references/requirements.md for protected PR workflow and commit standards.
Phase 1: Issue Selection and Worktree Setup
Goal: Select target issue and prepare isolated development environment.
Actions:
- Review open issues from context and select based on priority and
$ARGUMENTS
- Check existing worktrees to determine if reuse is possible
- Use the EnterWorktree tool with a descriptive name (e.g.,
fix-456-auth-redirect) to create an isolated session
- Rename the auto-generated branch to match conventions: run
git branch -m <type>/<issue>-<description> (see references/workflow-details.md for naming)
- Verify issue acceptance criteria and dependencies
Phase 2: TDD Implementation
Goal: Implement fix using test-driven development with agent collaboration.
Actions:
- Plan implementation approach and assess architectural impact
- Write failing tests that verify issue is resolved (RED phase)
- Implement minimal code to make tests pass (GREEN phase)
- Refactor while keeping tests green (REFACTOR phase)
- Run quality validation commands to keep the TDD cycle honest (see
references/workflow-details.md for project-specific checks). /github:create-pr re-runs the full gate in Phase 3 and is the authoritative pre-PR check.
Phase 3: PR Creation and Cleanup
Goal: Hand PR creation to /github:create-pr so the quality gate and the review loop run. Cleanup happens only after the merge, which may be many turns later.
Actions:
- Push branch to remote with
git push -u origin <branch-name>
- CRITICAL: Do NOT call
gh pr create here. Invoke Skill("github:create-pr", "<issue reference>") — e.g. Skill("github:create-pr", "Closes #456"). It is the plugin's only PR-creating path and owns the quality/security gate, the auto-closing-keyword linkage, the non-default-branch warning, and the mandatory /github:review-pr handoff. See references/pr-creation-handoff.md for the full contract. Creating the PR directly skips all of it.
- Append
--draft to the arguments if the fix requires further feedback before review
- Append
--no-monitor only when the user explicitly opts out of the review loop
- This skill does not resume here.
/github:create-pr reports the PR URL, and /github:review-pr then owns the PR for the rest of its life: a persistent Monitor spanning turns, the triage/fix/push rounds, and the merge decision it asks the user to make. Do NOT wait inline, do NOT re-report the URL, and do NOT run Phase 4 speculatively.
Phase 4: Post-Merge Cleanup (later turn, fallback)
Trigger: The PR from Phase 3 has actually merged — normally a later turn, after /github:review-pr completed its merge decision. /github:review-pr's closeout now owns the post-merge cleanup (worktree removal via ExitWorktree action:"remove", switch to main, sync with origin), so this Phase runs only as a fallback when that cleanup was skipped: the user chose "Don't merge", an interrupt left the worktree behind, or this is a fresh session that cannot ExitWorktree the worktree created by an earlier session. Never assume the worktree is gone — verify first.
Actions:
- Verify the merge with
gh pr view <PR#> --json state -q .state returning MERGED; never assume.
- Check
git worktree list whether the issue worktree still exists. If /github:review-pr already removed it, skip straight to git fetch --prune.
- If it persists: CRITICAL: confirm still on the issue branch before
ExitWorktree action:"remove". If checkout drifted onto main/develop, stop — removing would delete a long-lived branch. Remote head may already be gone; that is fine.
- Use the ExitWorktree tool with action "remove" to clean up worktree and branch.
- If uncommitted changes exist, ExitWorktree refuses; confirm with the user before setting
discard_changes: true
git fetch --prune to sync remote-tracking branches.
- Document resolution and any follow-up tasks
References
- Requirements:
references/requirements.md - Worktree setup, TDD, and commit standards
- PR Creation Handoff:
references/pr-creation-handoff.md - Why PRs delegate to /github:create-pr
- Workflow Details:
references/workflow-details.md - Issue selection, TDD cycle, agent collaboration
- Quality Validation:
references/quality-validation.md - Node.js/Python validation commands (shared)
- Examples:
references/examples.md - Commit message examples