From process
Implements an issue's checklist by creating a worktree, working through tasks, ticking checkboxes, and syncing to GitHub. Triggers on: 'work on issue N', 'implement issue N', 'execute issue N'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/process:executeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Announce at start:** "I'm using the execute skill to implement issue #N."
Announce at start: "I'm using the execute skill to implement issue #N."
Core principle: Sync to GitHub after every completed checklist item. If the session crashes, progress is preserved.
Before doing any work, run these checks in order:
detect_repo to set repo context. If the tool is not available, stop with: "The gh plugin is required. Install it from the backalley marketplace."issue_pull with the .issues/ directory path to sync all issues locally..issues/issue-{N}.md) and check its labels.in-progress label is NOT present, stop with: "Issue #{N} doesn't have the in-progress label. [If needs-spec: Run brainstorm first. If has-spec: Run plan first.]"- [ ] and - [x]). If there are no checklist items, stop with: "Issue #{N} has no checklist. Run plan to create one."- [x]), stop with: "All checklist items are complete. Run review to create a PR."Proceed only after all six checks pass.
After parsing the checklist, use AskUserQuestion to present the execution mode choice. Put the recommended option first with "(Recommended)" in its label:
Options:
If the user doesn't have a preference or says "just go": default to direct execution for small checklists (1-2 items) and subagent-driven for larger ones.
Parse the checklist: identify unchecked (- [ ]) items as remaining work. Note which items are already checked (- [x]) — those are done.
Create native Claude Code tasks via TaskCreate for each unchecked item. These provide session-level progress tracking.
Set up the worktree:
git worktree list to check if a worktree already exists at ../worktree-issue-{number}.issue-{number} already exists (git branch --list issue-{number}).
git worktree add ../worktree-issue-{number} issue-{number}git worktree add ../worktree-issue-{number} -b issue-{number}For each unchecked item, execute using the chosen mode (see Direct Execution or Subagent-Driven Execution below).
After all items are checked, run the Final Quality Review (see below).
When all items are checked and the quality review passes, tell the user: "All tasks complete for issue #N. Run review to create a PR."
For each unchecked item in order:
in_progress.process:tdd — write failing test first, then implement.completed.- [ ] to - [x] for this item.issue_push with the .issues/ directory to sync all issues to GitHub.Fresh subagent per task + two-stage review (spec compliance then code quality). This prevents context pollution between tasks and catches issues early.
For each unchecked item in order:
Mark the native task as in_progress, then dispatch a subagent using the template in implementer-prompt.md. Provide:
The implementer reports one of four statuses:
DONE: Proceed to spec compliance review.
DONE_WITH_CONCERNS: Read the concerns. If about correctness or scope, address before review. If observational (e.g., "file is getting large"), note and proceed to review.
NEEDS_CONTEXT: Provide the missing information and re-dispatch.
BLOCKED: Assess the blocker:
Never force the same subagent to retry without changes.
Dispatch a spec compliance reviewer using spec-reviewer-prompt.md. This verifies the implementer built what was requested — nothing more, nothing less.
Only after spec compliance passes. Dispatch a code quality reviewer using code-quality-reviewer-prompt.md.
completed.- [ ] to - [x] for this item.issue_push with the .issues/ directory to sync all issues to GitHub.Then proceed to the next unchecked item.
After all checklist items are checked, before telling the user to run review:
Run tests. Look for test scripts in package.json (scripts.test), a Makefile (make test), or other common test runners. If tests fail, fix them and commit. Use process:verify — run the command, read the output, then claim the result.
Run linter if one exists (check package.json for a lint script, Makefile for a lint target, or common config files like .eslintrc, ruff.toml, biome.json). Fix any issues and commit.
Dispatch a final code-review subagent (using the process:code-reviewer agent) to review the full diff between the issue-{number} branch and main. This catches cross-task issues that per-task reviews miss: duplicated logic across tasks, inconsistent patterns, missing integration tests.
If the subagent returns findings: fix each issue, commit the fixes, and re-run (max 3 iterations).
After the review passes, call issue_push with the .issues/ directory to sync all issues.
../worktree-issue-{number} — a sibling to the main repo checkoutissue-{number}git checkout or git switch in the main worktree. Multiple Claude Code sessions share the same checkout — switching branches in the main worktree will break every other running session. All branch operations (checkout, merge, rebase) must happen inside an isolated worktree.The sibling layout keeps the worktree easy to find and avoids nested worktrees. Example: if the repo lives at ~/git/my-project, the worktree is at ~/git/worktree-issue-42.
For checklists with independent tasks that touch non-overlapping files, you can offer parallel execution using multiple worktrees. This is an optimization — default to single-worktree sequential execution unless the user opts in.
When to offer: After parsing the checklist in step 1, analyze the tasks for file-path independence. Two tasks are independent if they modify entirely different sets of files (no shared file paths). If 2 or more consecutive tasks are independent, offer multi-worktree to the user: "Tasks N and M appear independent (no overlapping files). I can work them in parallel using separate worktrees. Want to try that?"
How it works:
issue-{number}-task-{N} (temporary)../worktree-issue-{number}-task-{N}issue-{number} (the main feature branch)issue-{number}:
cd ../worktree-issue-{number} (main worktree)git merge issue-{number}-task-{N}git worktree remove ../worktree-issue-{number}-task-{N}git branch -d issue-{number}-task-{N}issue_push with the .issues/ directory.Conflict handling: If merge conflicts occur, resolve them in the main worktree, commit, and continue. If conflicts are complex, fall back to sequential execution for remaining tasks.
Do not use multi-worktree when:
If a previous session was interrupted mid-checklist:
- [x]). These are complete — skip them.- [ ]).git worktree list to confirm, then resume from that directory.This is the crash-recovery model: GitHub is the persistent state. What's checked is done; what's unchecked is pending.
Avoid:
issue_push with the .issues/ directory after each item so a crash doesn't lose progressprocess:verify; "should pass" is not evidencePrefer:
process:tdd)Requires: gh plugin (detect_repo, issue_pull, issue_push), git worktrees
Uses skills:
process:tdd — Red-Green-Refactor cycle during implementationprocess:verify — Evidence before completion claimsprocess:debugging — When tests fail or unexpected behavior occursUses agents:
process:code-reviewer — Final quality review and per-task code quality reviewUses prompt templates (in this directory):
implementer-prompt.md — Subagent dispatch for implementationspec-reviewer-prompt.md — Subagent dispatch for spec compliancecode-quality-reviewer-prompt.md — Subagent dispatch for code qualityPrevious skill: plan (created the checklist in the issue body)
Next skill: review (creates PR and merges)
No label transition — issue stays in-progress while checklist items are ticked
npx claudepluginhub n0k0/claude-plugins-backalley --plugin processGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.