issue-worker

schmug's avatarfrom schmug

Spawn a Claude worker to handle a GitHub issue. Fetches issue details, creates a feature branch, and works autonomously. Use when you want to delegate an issue to a worker.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 3, 2026

When & Why to Use This Skill

This Claude skill automates the end-to-end process of resolving GitHub issues by spawning an autonomous worker. It streamlines software development workflows by fetching issue context, creating isolated worktrees, implementing code changes, and automatically generating pull requests with comprehensive summaries, significantly reducing manual developer overhead.

Use Cases

  • Automated Bug Fixing: Quickly resolve reported bugs by delegating the investigation and fix implementation to an autonomous agent using just the issue number.
  • Feature Development: Accelerate the delivery of new features by providing an issue description and letting the worker handle the initial implementation, testing, and PR creation.
  • Technical Debt Reduction: Efficiently address refactoring tasks and minor improvements tracked in GitHub issues without manual context switching.
  • Streamlined PR Management: Automatically generate descriptive pull requests that link to issues and enable auto-merge for faster CI/CD cycles.
nameissue-worker
descriptionSpawn a Claude worker to handle a GitHub issue. Fetches issue details, creates a feature branch, and works autonomously. Use when you want to delegate an issue to a worker.
allowed-toolsBash, Read, Write, Edit, Glob, Grep

Issue Worker Skill

Spawn a Claude worker to handle a GitHub issue.

Usage

/issue-worker <issue-number>

Examples

/issue-worker 42
/issue-worker 123

Instructions

When the user invokes /issue-worker, follow these steps:

1. Fetch Issue Details

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

2. Generate Branch Name

Create a descriptive branch name from the issue:

  • Format: feat/issue-<number>-<short-description>
  • Example: Issue #42 "Add retry logic" → feat/issue-42-add-retry-logic

For bug issues, use fix/ prefix instead of feat/.

3. Create Worktree

BRANCH="feat/issue-<number>-<slug>"
WORKTREE_PATH="../artemis-issue-<number>"
git worktree add "$WORKTREE_PATH" -b "$BRANCH"

4. Build Task Prompt

Construct a comprehensive prompt for the worker:

You are working on GitHub Issue #<number>: <title>

## Issue Description
<body>

## Labels
<labels>

## Comments
<comments if any>

## Your Task
1. Understand the issue requirements
2. Implement the necessary changes
3. Write tests if applicable
4. Commit your changes with message referencing the issue (e.g., "feat: add retry logic (fixes #42)")
5. Push your branch and create a PR

## Guidelines
- Follow existing code patterns in the repository
- Keep changes focused on the issue scope
- Add comments only where logic isn't self-evident

5. Spawn Worker

cd "$WORKTREE_PATH" && claude --print --dangerously-skip-permissions "$PROMPT"

6. Push and Create PR

After the worker completes successfully and has made commits:

# Push the branch to origin
git push -u origin "$BRANCH"

# Create PR linking to the issue
gh pr create --title "<issue title>" --body "$(cat <<'EOF'
## Summary
<brief description of changes>

Closes #<issue-number>

## Changes
<list of key changes made>

---
🤖 Generated by Claude worker
EOF
)"

# Enable auto-merge (will merge automatically when CI passes)
gh pr merge --auto --squash

7. Report Results

After completion:

  1. Show worker output summary
  2. Show commits made: git log $BRANCH --oneline -5
  3. Show files changed: git diff main...$BRANCH --stat
  4. Show the PR URL
  5. Offer next steps:
    • Review the PR
    • Continue working on it
    • Clean up if failed

8. Track Worker

Add to .claude/workers.json:

{
  "type": "issue",
  "issue": 42,
  "branch": "feat/issue-42-add-retry-logic",
  "worktree": "../artemis-issue-42",
  "created": "2024-01-15T10:30:00Z",
  "status": "completed",
  "pr": "<pr-url>"
}

Tip: Run karkinos watch in another terminal to monitor worker progress, or use karkinos watch --spawn to open it automatically.