Starts work on a GitHub issue by creating a branch and planning the implementation.
Install
mkdir -p .claude/skills/work-hta218 && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17575" && unzip -o skill.zip -d .claude/skills/work-hta218 && rm skill.zipInstalls to .claude/skills/work-hta218
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Start working on a GitHub issue — fetch context, create branch, plan solution, and optionally open a PRKey capabilities
- →Fetch GitHub issue details
- →Suggest and create feature branches with type prefixes
- →Generate implementation plans following Spec-Driven Development
- →Commit and push spec files to remote
- →Create draft pull requests linking to the issue
- →Update issue status on project boards to 'In Progress'
How it works
The skill fetches GitHub issue details, creates a feature branch with a descriptive name, generates an implementation plan following Spec-Driven Development conventions, and optionally creates a draft pull request.
Inputs & outputs
When to use work
- →Starting work on a bug report
- →Picking up a new feature request
- →Automating developer workflow setup
About this skill
Pick up a GitHub issue and set up everything needed to start working on it: understand the issue, create a feature branch, generate a spec-driven plan, and optionally push and open a PR.
Usage
work- Interactive mode, lists recent issues to choose fromwork 42- Start working on issue #42work https://github.com/org/repo/issues/42- Start from a full issue URL
Process
Step 1: Identify the issue
If $ARGUMENTS is provided, parse it:
- Number only (e.g.,
42) - treat as issue number in the current repo - Full URL (e.g.,
https://github.com/org/repo/issues/42) - extract owner, repo, and number from the URL - Owner/repo#number (e.g.,
Weaverse/pilot#42) - extract owner, repo, and number
If $ARGUMENTS is empty or not provided, list recent open issues and let the user pick:
gh issue list --state open --limit 20 --json number,title,labels,assignees
Present the issues to the user and ask them to select one.
Step 2: Fetch and display issue details
gh issue view <number> --json title,body,labels,assignees,milestone,state,url
Display a concise summary of the issue so the user understands what they are about to work on:
- Title
- Body (truncated if very long)
- Labels, assignees, milestone
- URL
Step 3: Create a feature branch
Suggest a branch name derived from the issue using a type prefix:
Format: <type>/<kebab-case-description>
Determine the type from the issue's labels, title, or body:
| Type | When to use | Examples |
|---|---|---|
feat/ | New feature, new capability | feat/dark-mode-toggle, feat/user-onboarding-flow |
fix/ | Bug fix, error correction | fix/cart-total-calculation, fix/null-pointer-in-auth |
refactor/ | Code improvement, restructuring | refactor/extract-payment-utils, refactor/simplify-auth-flow |
docs/ | Documentation changes | docs/api-reference, docs/setup-guide |
chore/ | Maintenance, config, tooling | chore/upgrade-dependencies, chore/ci-pipeline |
Branch name rules:
- Lowercase the issue title
- Replace spaces and special characters with hyphens
- Strip non-alphanumeric characters (except hyphens and
/) - Collapse consecutive hyphens into one
- Truncate the description part to keep total branch name under ~60 chars
- No issue number in the branch name (the PR links to the issue instead)
If the type cannot be determined confidently, default to feat/ and let the user confirm.
Ask the user to confirm or customize the branch name.
Then ask which branch to check out from:
# Show available remote branches for context
git branch -r --list 'origin/*' --sort=-committerdate | head -10
Present common options (e.g., main, dev) plus the list above. Let the user pick or type a custom base branch.
git fetch origin <base-branch>
git checkout -b <new-branch> origin/<base-branch> --no-track
Step 4: Generate the implementation plan
This step follows Spec-Driven Development (SDD) conventions. The plan output goes into the .specs/ folder, NOT the .plans/ folder.
-
Create the spec folder:
.specs/{YYYY-MM-DD}--{kebab-case-title}/ -
Create
.specs/{folder}/README.mdwith the SDD template:# Feature: [Issue Title] | Field | Value | | ---------------- | ----------------------------------------- | | **Status** | in-progress | | **Owner** | @<current git user or assignee> | | **Created** | YYYY-MM-DD | | **Last Updated** | YYYY-MM-DD | ## Original Prompt > [Paste the exact issue body here. Do not edit or paraphrase.] ## Summary [2-3 sentences. What this feature does and why it exists.] -
Ask the user if they want to provide additional guidance or context for the planning phase (free text). This becomes extra input passed to the planning skill.
-
Invoke the
feature-planskill to generate.specs/{folder}/plan.md.- Pass the issue title, body, labels, and any user-provided guidance as the skill arguments
- The skill will explore the codebase, ask clarifying questions, suggest solutions, and produce the plan
- Override the skill's output path: the plan MUST be saved to
.specs/{folder}/plan.mdinstead of the skill's default.plans/directory - The plan MUST be under 500 lines and MUST include a section listing all files/folders the feature touches
Step 5: Commit and push the spec
After the plan is generated, ask the user:
"Spec and plan are ready. Should I commit and push them to remote?"
If yes:
git add .specs/<folder>/
git commit -m "Add spec and plan for #<issue-number>: <short-title>"
git push -u origin <new-branch>
If no, skip to Step 6 (the spec stays as uncommitted local files).
Step 6: Create a pull request (optional)
Ask the user:
"Should I create a draft PR targeting
<base-branch>?"
If yes:
gh pr create \
--base <base-branch> \
--head <new-branch> \
--title "<issue-title>" \
--body "$(cat <<'EOF'
## Summary
Spec and implementation plan for #<issue-number>.
See `.specs/<folder>/plan.md` for the full plan.
Closes #<issue-number>
EOF
)" \
--draft
- Use
Closes #<number>in the body to auto-link the PR to the issue. - Create as draft since no implementation code exists yet.
Step 7: Update issue status and assignee
First, assign the current user to the issue if not already assigned:
gh issue edit <number> --add-assignee @me
Then, if a PR was created, update the issue status on the project board (if the issue belongs to a project):
# Get project items for this issue
gh api graphql -f query='
{
repository(owner: "<owner>", name: "<repo>") {
issue(number: <number>) {
projectItems(first: 10) {
nodes {
id
project { id number title }
}
}
}
}
}'
For each project the issue belongs to, find the "Status" field and set it to "In Progress" (or the closest matching option):
gh project item-edit \
--id <ITEM_ID> \
--project-id <PROJECT_ID> \
--field-id <STATUS_FIELD_ID> \
--single-select-option-id <IN_PROGRESS_OPTION_ID>
If the issue is not on any project board, skip this step silently.
Step 8: Summary
Output a final summary of everything that was done:
Issue: #<number> - <title>
Branch: <new-branch> (from <base-branch>)
Spec: .specs/<folder>/
Plan: .specs/<folder>/plan.md
PR: <pr-url> (or "Not created")
Assignee: @<username> (assigned)
Status: Updated to "In Progress" (or "No project board found")
Error Handling
- If
ghCLI is not installed or not authenticated, inform the user and stop - If the issue number is invalid or not found, show the error and ask for a valid number
- If the branch name already exists, ask the user to pick a different name
- If
git checkoutfails (e.g., uncommitted changes), warn the user and suggest stashing or committing first - If the
feature-planskill is not available, fall back to creating a minimalplan.mdwith the issue details and a TODO outline - If push fails, show the error and let the user decide how to proceed
Important Notes
- Always follow the Spec-Driven Development conventions from the global rules for the
.specs/folder structure - The
feature-planskill output MUST go to.specs/<folder>/plan.md, not.plans/ - The
README.mdin the spec folder preserves the exact original issue body as the "Original Prompt" — do not paraphrase - The PR should be created as a draft since it only contains the spec, not implementation code
- Use
Closes #<number>in the PR body to link the PR to the issue for automatic closure on merge
When not to use it
- →When `gh` CLI is not installed or authenticated
- →When the issue number is invalid or not found
- →When `feature-plan` skill is unavailable and a detailed plan is required
Prerequisites
Limitations
- →Requires `gh` CLI to be installed and authenticated
- →Relies on the `feature-plan` skill for detailed plan generation
- →Does not auto-commit uncommitted changes
How it compares
This skill automates the entire setup process for working on a GitHub issue, including branch creation, spec generation, and PR drafting, ensuring consistency and adherence to SDD, unlike manual setup.
Compared to similar skills
work side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| work (this skill) | 0 | 1mo | Review | Intermediate |
| run-nx-generator | 5 | 2mo | Review | Intermediate |
| git-commit | 11 | 6mo | Review | Beginner |
| morph-search | 9 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by hta218
View all by hta218 →You might also like
run-nx-generator
nrwl
Run Nx generators with prioritization for workspace-plugin generators. Use this when generating code, scaffolding new features, or automating repetitive tasks in the monorepo.
git-commit
github
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
morph-search
parcadei
Fast codebase search via WarpGrep (20x faster than grep)
upgrading-expo
sickn33
Upgrade Expo SDK versions
continue-implementation
LibPDF-js
Continue implementing a spec from a previous session
fix-dependabot-prs
bannzai
dependabotから上がってきた複数のPRを一括で解決し、まとめPRを作成する。dependabotのPR対応を依頼された時に使用。