From ha
Orchestrates a complete development cycle from GitHub Issue to merged PR: parse issue, explore codebase, plan, execute with agents, create PR, and cleanup. Use via /issue-flow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ha:issue-flowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are orchestrating a complete development cycle from a GitHub Issue to a merged PR. Follow the phases below strictly. Every major decision requires human confirmation.
You are orchestrating a complete development cycle from a GitHub Issue to a merged PR. Follow the phases below strictly. Every major decision requires human confirmation.
Announce at start: "I'm using the issue-flow skill to implement this GitHub Issue."
Initial request: $ARGUMENTS
Goal: Validate environment and resolve the target Issue.
Actions:
Environment check: Run gh auth status to verify GitHub CLI is authenticated. If it fails, tell the user to run gh auth login and stop.
Parse arguments:
#123 or just 123 → extract issue number, detect repo from gh repo view --json nameWithOwnerhttps://github.com/org/repo/issues/123 → extract owner, repo, and numbergh issue list --state open --limit 20 and use AskUserQuestion to let the user pick an issueFetch Issue details:
gh issue view <N> --json number,title,body,labels,comments,assignees,state
Store: ISSUE_NUMBER, ISSUE_TITLE, ISSUE_BODY, ISSUE_LABELS.
Check for existing work:
issue/<N>-* via git branch -a --list '*issue/<N>*'Detect project features (used later for team composition):
jest.config*, vitest.config*, pytest.ini, *test* dirs).github/workflows/, .gitlab-ci.yml, etc.).eslintrc*, biome.json, .prettierrc*)Goal: Create an isolated workspace.
Actions:
EnterWorktree tool with name issue-<N> to create an isolated worktree.issue/<N>-<slugified-title>:
-, truncate to 50 charsissue/42-add-oauth2-login-supportgit checkout -b issue/<N>-<slug>Goal: Deep codebase exploration → technical plan → user approval.
Launch 2-3 code-explorer agents in parallel using the Task tool (subagent_type: code-explorer). Tailor each agent's focus to the Issue:
After agents return, read all key files they identified to build deep understanding.
Based on the exploration, design a technical plan with:
Format the plan according to rules/plan-format.md.
Post the plan as a comment on the Issue using gh issue comment:
gh issue comment <N> --body "$(cat <<'EOF'
<plan content formatted per rules/plan-format.md>
EOF
)"
Use the HTML comment marker <!-- issue-flow-plan --> at the top so the plan can be identified and updated idempotently.
Use AskUserQuestion with options:
Do NOT proceed without explicit approval.
Goal: Implement the plan — either directly or with an agent team.
Direct implementation (no team) when ALL of these are true:
Team execution when ANY of these are true:
Create team: Use TeamCreate with name issue-<N>.
Decide team composition: Based on Issue characteristics, select roles from the candidate pool defined in rules/team-roles.md. Consider:
frontend, security, docs).tsx → frontend, .sql → backend, etc.)Spawn teammates: Use the Task tool with team_name parameter for each role. Give each teammate:
Create tasks: Use TaskCreate for each implementation step from the plan. Set up dependencies with addBlockedBy where steps depend on each other.
Assign and coordinate: Assign tasks to teammates via TaskUpdate. Monitor progress, resolve blockers, and coordinate between teammates.
Iteration limit: Each task gets at most 2 fix iterations. If a task still fails after 2 rounds:
Shutdown team: After all tasks complete, send shutdown_request to each teammate, then TeamDelete.
Goal: Commit, push, create PR, handle CI.
git status and git difffeat: <summary from plan> (#<N>)
git push -u origin issue/<N>-<slug>
Create PR using gh pr create with the template from rules/pr-template.md:
gh pr create --title "<title>" --body "$(cat <<'EOF'
<PR body per rules/pr-template.md, includes Closes #N>
EOF
)"
Add a comment to the Issue summarizing what was implemented:
gh issue comment <N> --body "$(cat <<'EOF'
<!-- issue-flow-impl -->
## Implementation Complete
- PR: #<PR_NUMBER>
- <brief summary of changes>
EOF
)"
Wait briefly, then check CI status:
gh pr checks <PR_NUMBER> --watch --fail-fast
If CI fails: AskUserQuestion with options:
If CI passes (or no CI configured): AskUserQuestion with options:
gh pr edit --add-reviewerGoal: Clean up resources after merge.
Actions (only if PR was merged):
Check Issue status: Verify if Closes #N auto-closed the Issue. If not:
gh issue close <N> --comment "Closed via PR #<PR_NUMBER>"
Report: Output a completion summary:
## Issue Flow Complete
- Issue: #<N> <title>
- Branch: issue/<N>-<slug>
- PR: #<PR_NUMBER> (merged)
- Files changed: <count>
- Implementation: <1-2 sentence summary>
If the workflow is interrupted at any point, the user can re-run /issue-flow #<N> to resume. See references/recovery-guide.md for detailed recovery scenarios.
<!-- issue-flow-plan -->, <!-- issue-flow-impl -->) so re-runs update rather than duplicatenpx claudepluginhub notedit/happy-skillsResolves GitHub issues via systematic triage, root cause analysis, test-driven development, and PR management. Includes playbook references for detailed patterns.
Provides systematic GitHub issue resolution: bug investigation, root cause analysis, feature implementation, test-driven development, and pull request management.
Resolves GitHub issues via 8-phase workflow: fetch details, analyze requirements, implement solutions, verify correctness, code review, commit changes, create PRs. Activates on resolve, implement, fix requests or issue references.