MCPInstall

issue-flow

AI-Native Issue-Driven development workflow. From GitHub Issue to merged PR: parse issue, explore codebase, design technical plan, execute with agent team, create PR, and cleanup. Use when a user wants to implement a GitHub Issue end-to-end: /issue-flow 123 or /issue-flow to pick from open issues.

Installs
41
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/notedit/happy-skills --skill issue-flow
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads issue-flow automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Issue Flow — AI-Native Issue-Driven Development

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


Phase 0: Preflight

Goal: Validate environment and resolve the target Issue.

Actions:

  1. 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.

  2. Parse arguments:

    • #123 or just 123 → extract issue number, detect repo from gh repo view --json nameWithOwner
    • https://github.com/org/repo/issues/123 → extract owner, repo, and number
    • Empty → run gh issue list --state open --limit 20 and use AskUserQuestion to let the user pick an issue
  3. Fetch Issue details:

    gh issue view <N> --json number,title,body,labels,comments,assignees,state
    

    Store: ISSUE_NUMBER, ISSUE_TITLE, ISSUE_BODY, ISSUE_LABELS.

  4. Check for existing work:

    • Search for branch issue/<N>-* via git branch -a --list '*issue/<N>*'
    • If found, AskUserQuestion: resume existing branch / start fresh / cancel
  5. Detect project features (used later for team composition):

    • Has test framework? (check for jest.config*, vitest.config*, pytest.ini, *test* dirs)
    • Has CI? (check .github/workflows/, .gitlab-ci.yml, etc.)
    • Has linter? (check .eslintrc*, biome.json, .prettierrc*)
    • Primary language(s) from file extensions

Phase 1: Worktree Setup

Goal: Create an isolated workspace.

Actions:

  1. Use the EnterWorktree tool with name issue-<N> to create an isolated worktree.
  2. Create and switch to branch issue/<N>-<slugified-title>:
    • Slugify: lowercase, replace spaces/special chars with -, truncate to 50 chars
    • Example: Issue #42 "Add OAuth2 Login Support" → issue/42-add-oauth2-login-support
    • Run: git checkout -b issue/<N>-<slug>

Phase 2: Technical Planning

Goal: Deep codebase exploration → technical plan → user approval.

Step 2a: Codebase Exploration

Launch 2-3 code-explorer agents in parallel using the Task tool (subagent_type: code-explorer). Tailor each agent's focus to the Issue:

  • Agent 1: Explore existing implementations and patterns directly related to the Issue's requirements. Return a list of 5-10 key files.
  • Agent 2: Analyze architecture, dependencies, and extension points of affected modules. Return a list of 5-10 key files.
  • Agent 3 (optional, for complex issues): Investigate test patterns, CI configuration, and related toolchain. Return a list of 5-10 key files.

After agents return, read all key files they identified to build deep understanding.

Step 2b: Design Technical Plan

Based on the exploration, design a technical plan with:

  1. Summary: 2-3 sentence overview of the approach
  2. Files to modify/create: List with brief description of changes
  3. Implementation steps: Ordered, concrete steps (each step = one logical unit of work)
  4. Test strategy: What to test, how to test
  5. Risk assessment: Potential issues and mitigations

Format the plan according to rules/plan-format.md.

Step 2c: Publish Plan to Issue

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.

Step 2d: User Confirmation

Use AskUserQuestion with options:

  • Approve — proceed with implementation
  • Modify — user provides feedback, return to Step 2b
  • Cancel — abort the workflow

Do NOT proceed without explicit approval.


Phase 3: Team Execution

Goal: Implement the plan — either directly or with an agent team.

Decision: Direct vs Team

Direct implementation (no team) when ALL of these are true:

  • Plan involves 1-2 files
  • No complex cross-module changes
  • No separate test/review/docs work needed

Team execution when ANY of these are true:

  • Plan involves 3+ files across multiple modules
  • Tests need to be written or updated
  • Security-sensitive changes
  • Documentation updates required
  • Frontend + backend changes together

Path A: Direct Implementation

  1. Implement changes following the plan step by step
  2. Run existing tests if available
  3. Skip to Phase 4

Path B: Team Execution

  1. Create team: Use TeamCreate with name issue-<N>.

  2. Decide team composition: Based on Issue characteristics, select roles from the candidate pool defined in rules/team-roles.md. Consider:

    • Issue labels (e.g., frontend, security, docs)
    • File types in the plan (.tsx → frontend, .sql → backend, etc.)
    • Whether tests exist and need updating
    • Risk level of the changes
  3. Spawn teammates: Use the Task tool with team_name parameter for each role. Give each teammate:

    • The technical plan
    • Their specific tasks
    • Context about the codebase patterns discovered in Phase 2
  4. Create tasks: Use TaskCreate for each implementation step from the plan. Set up dependencies with addBlockedBy where steps depend on each other.

  5. Assign and coordinate: Assign tasks to teammates via TaskUpdate. Monitor progress, resolve blockers, and coordinate between teammates.

  6. Iteration limit: Each task gets at most 2 fix iterations. If a task still fails after 2 rounds:

    • Log the issue
    • AskUserQuestion: fix manually / skip / abort
  7. Shutdown team: After all tasks complete, send shutdown_request to each teammate, then TeamDelete.


Phase 4: PR & CI

Goal: Commit, push, create PR, handle CI.

Step 4a: Commit & Push

  1. Stage all changes: review with git status and git diff
  2. Commit with a descriptive message referencing the Issue:
    feat: <summary from plan> (#<N>)
    
  3. Push the branch:
    git push -u origin issue/<N>-<slug>
    

Step 4b: Create PR

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
)"

Step 4c: Post Implementation Summary to Issue

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
)"

Step 4d: CI Check

  1. Wait briefly, then check CI status:

    gh pr checks <PR_NUMBER> --watch --fail-fast
    
  2. If CI fails: AskUserQuestion with options:

    • Auto-fix — attempt to diagnose and fix CI failures (max 2 iterations)
    • Manual — user will fix manually
    • Abort — close the PR
  3. If CI passes (or no CI configured): AskUserQuestion with options:

    • Merge — merge the PR now
    • Keep open — leave PR open for human review
    • Request review — assign reviewer via gh pr edit --add-reviewer

Phase 5: Cleanup

Goal: Clean up resources after merge.

Actions (only if PR was merged):

  1. Check Issue status: Verify if Closes #N auto-closed the Issue. If not:

    gh issue close <N> --comment "Closed via PR #<PR_NUMBER>"
    
  2. 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>
    

Error Recovery

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.

Key Principles

  • Human-in-the-loop: Every major decision (plan approval, merge, CI failure handling) requires explicit user confirmation
  • Idempotent comments: Issue comments use HTML markers (<!-- issue-flow-plan -->, <!-- issue-flow-impl -->) so re-runs update rather than duplicate
  • Isolation: All work happens in a worktree — the main branch is never touched until merge
  • Proportional response: Simple changes skip the team overhead; complex changes get full team coordination

FAQ

What does the issue-flow skill do?

AI-Native Issue-Driven development workflow. From GitHub Issue to merged PR: parse issue, explore codebase, design technical plan, execute with agent team, create PR, and cleanup. Use when a user wants to implement a GitHub Issue end-to-end: /issue-flow 123 or /issue-flow to pick from open issues.

How do I install issue-flow?

Run npx skills add https://github.com/notedit/happy-skills --skill issue-flow in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/issue-flow/ (personal) or .claude/skills/issue-flow/ (project).

Which AI agents can use issue-flow?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is issue-flow safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains issue-flow?

It is published by notedit in notedit/happy-skills. It has 41 recorded installs.

More from notedit/happy-skills

View all →

feature-dev

notedit/happy-skills

Guided feature development with codebase understanding and architecture focus. Use for implementing features systematically: explore → clarify → design → implement → test → review.

gsap-animation

notedit/happy-skills

GSAP + Remotion integration for professional motion graphics video production. Timeline orchestration, text splitting, SVG morphing, advanced easing, and reusable effect presets.

Frontend & Design314 installs

screenshot-analyzer

notedit/happy-skills

Analyze product screenshots to extract feature lists and generate development task checklists. Use when: (1) Analyzing competitor product screenshots for feature extraction, (2) Generating PRD/task lists from UI designs, (3) Batch analyzing multiple app screens, (4) Conducting competitive analysis from visual references.

react-animation

notedit/happy-skills

ReactBits animations for Remotion - curated for aesthetic excellence in video production

Frontend & Design180 installs

video-producer

notedit/happy-skills

End-to-end Remotion video production from natural language briefs. Orchestrates narrative structure, scene animation, visual style, and rendering to produce complete promotional videos. Use when a user wants to create a complete video (product promo, typographic piece, social media animation) — not just individual animation effects. Coordinates gsap-animation, spring-animation, and react-animation skills as building blocks.

Media & Creative149 installs

feature-analyzer

notedit/happy-skills

Turn ideas into fully formed designs and specs through natural collaborative dialogue. Use when planning new features, designing architecture, or making significant changes to the codebase.

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.