| name | work |
| description | Work on a ready GitHub issue (implement, test, commit, PR) |
Work on Issue Command
Implement a ready-labeled GitHub issue: research, implement, review, commit, and open a PR.
Dynamic Context
Current git status:
!git status --short 2>/dev/null || echo "Not in a git repo"
Current branch:
!git branch --show-current 2>/dev/null || git rev-parse --short HEAD 2>/dev/null || echo "Unknown"
Recent commits:
!git log --oneline -20 2>/dev/null || echo "No git history found"
Prerequisites
Issues must have the ready label (groomed with clear description, acceptance criteria, out-of-scope section).
Arguments
Issue number: $ARGUMENTS
Instructions
Step 1: Select Issue
If an issue number was provided above, verify it has the ready label. If not, inform the user and suggest running /groom first.
If no issue number was provided:
- Fetch issues:
gh issue list --label ready --json number,title,labels,milestone --limit 20 (exclude any with in-progress label)
- If none found, inform the user and exit
- Present the issues and ask the user to select one
After selection, mark it in-progress: gh issue edit <number> --add-label in-progress
Step 2: Understand the Issue
- Fetch full details:
gh issue view <number> --json number,title,body,labels,milestone
- Parse: Description, Acceptance Criteria, Out of Scope
- Present a brief summary showing you understand the requirements
Step 3: Research Phase
-
Read conventions: Use Read tool on docs/ai/conventions.md
-
Explore codebase using the explore-issue agent:
- Spawn a Task with
subagent_type: explore-issue
- Find related files, existing patterns, similar implementations
- Identify files to create or modify
-
Identify approach: files to change, patterns to follow, technical decisions, change order
Step 4: Setup Branch
- Fetch latest:
git fetch origin main
- Create feature branch from
origin/main:
- Convention:
<type>/<issue-number>-<short-description> (types: feat/, fix/, refactor/, docs/, chore/)
- Example:
git checkout -b feat/42-user-authentication origin/main
- If branch exists, see
templates/edge-cases.md for resolution
Step 5: Implementation
Make changes following the approach from research:
- Edit existing files with Edit tool, create new files with Write tool
- Keep changes focused on acceptance criteria — avoid scope creep
Core loop — repeat until green:
pnpm check
Fix any failures before proceeding. For UI changes, also run:
pnpm -F web test:e2e:smoke
For specialized scenarios (DB migrations, CSS tokens, visual-compare), see templates/implementation-guide.md.
If implementation reveals out-of-scope work, note it for follow-up issues — stay focused on acceptance criteria.
Step 6: Verify Acceptance Criteria
Go through each acceptance criterion from the issue:
- Confirm each item is satisfied by the implementation
- Run relevant tests to verify
- If any criterion is not met, ask the user whether to address now or note for follow-up
Step 7: Self-Review (REQUIRED)
You MUST spawn 3 parallel review agents before committing. DO NOT skip this step or proceed directly to commit.
-
Get the diff of all changes:
git diff --name-only
git diff
-
Spawn 3 review agents in parallel using Task tool:
subagent_type: conventions-review — check against project conventions
subagent_type: code-quality-review — check for over-engineering and unnecessary complexity
subagent_type: reuse-review — check for code duplication and reuse opportunities
Pass each agent the changed files list and diff content.
-
Collect findings from all 3 agents.
-
If issues found, present them grouped by category and ask the user how to proceed:
- Fix all: Auto-fix all identified issues
- Fix selected: Let user pick which to fix
- Skip: Proceed without fixes (add note to PR)
-
Apply any approved fixes, then re-run pnpm check to verify.
-
If no issues found, proceed to Step 8.
Step 8: Commit Changes
GATE CHECK — Before proceeding, confirm Step 7 was completed:
- Did you spawn all 3 review agents (conventions, code-quality, reuse)?
- Did you collect and process their findings?
- Did you apply approved fixes or confirm no issues were found?
If ANY answer is NO, STOP and return to Step 7 now.
- Review changes:
git status and git diff
- Stage relevant files (avoid staging unrelated changes)
- Commit with issue reference:
git commit -m "<type>: <description> (#<issue-number>)"
- Push branch:
git push -u origin <branch-name>
Step 9: Create Pull Request
Create PR using the template from templates/pr-body.md:
gh pr create --title "<title>" --body "$(cat <<'EOF'
<fill in from templates/pr-body.md>
EOF
)"
Include Closes #<issue-number> in the body. Then remove the in-progress label:
gh issue edit <number> --remove-label in-progress
Step 10: Summary
Provide a summary including:
- Issue worked on (number and title)
- Branch name and PR link
- Key changes made and files modified
- Any follow-up items identified
Notes
- ALWAYS read the issue thoroughly before starting
- ALWAYS research the codebase to understand existing patterns
- NEVER skip self-review — always spawn review agents before committing
- Follow conventions in
docs/ai/conventions.md
- Keep commits focused and atomic; reference the issue number in commits and PR
- For edge cases (issue not ready, lint errors, branch conflicts, etc.), see
templates/edge-cases.md