plugins/teamcraft/skills/merge-issue/SKILL.md
Finalize and merge an approved (or solo-flow) PR. Verifies approval and CI status, marks the work item as done on the branch, commits, then merges. This is the skill that actually completes the work. Use when the user says "merge this issue", "ship this", "PR is approved, merge it", "finalize this issue", or "the review is done, let's merge".
npx skillsauth add codingthefuturewithai/claude-code-primitives teamcraft:merge-issueInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The work item's status: done must be written on the branch before merge, not on main after merge. Once a PR merges, the branch is dead — nothing else can be committed to it. So the final commit on the branch updates the work item to done, and then we merge. Main inherits the correct state via the merge itself.
This is why merge-issue is the one skill that actually completes the work. validate-issue submits. address-review-issue iterates. merge-issue ships. No other skill marks a work item done.
Identify the work item (from $ARGUMENTS, or from .teamcraft/work/INDEX.md looking for an in-review item on the current branch) and the PR associated with the branch.
Check all of these before proceeding:
validate-issue, or confirms it now), approval is not required.main) has moved since this branch last updated, flag this so the developer can decide whether to rebase/merge before proceeding. Some teams require branches to be current; others don't.If any check fails, stop. Tell the developer exactly what's blocking the merge and why.
Before taking destructive action, confirm: "All checks pass. Ready to merge this to main? This will: update the work item to done, commit that change on the branch, and merge the PR." Wait for explicit confirmation.
If the developer isn't sure (e.g., wants to check one more thing), stop and let them run the skill again when ready.
On the current branch (NOT on main):
status: donecompleted: YYYY-MM-DD (today's date).teamcraft/work/INDEX.md:
donechore(feat-notification-prefs): mark work item as doneThis is the final commit on the branch before the merge. Main will inherit this state when the merge completes.
Before merging, consult the team's captured operating conventions for the prescribed merge strategy — squash, merge commit, or rebase. Locate the conventions via the repo's README or the standard documentation locations; don't assume a specific path. If no strategy is documented anywhere, ask the developer. If the conventions doc is found but lacks a Teamcraft certification stamp (see ../references/doc-provenance.md), treat the merge strategy it states as UNVERIFIED — confirm it with the developer before merging rather than silently following a possibly-inherited rule.
Execute the merge using the prescribed strategy. Confirm the merge succeeded by checking the PR status after the operation.
After the merge succeeds:
main) locally.The skill is complete when ALL of the following are true:
status: done and completed: YYYY-MM-DD on the branch.teamcraft/work/INDEX.md was updated to reflect the new statusMain now reflects the correct final state: the work item is done, the completed date is accurate, and the INDEX.md is current. No post-merge operations needed.
Report the outcome:
Do NOT start another work item here. The developer decides what's next — /pick-next-issue is their natural next move if they want to keep going.
development
Launch (or re-launch) the user's live, multi-project work board. The dashboard is a single HTML file copied to a stable user-side location at ~/.claude/teamcraft-board.html and opened in the user's default browser. It has two views via a header toggle — a drag-and-drop Kanban Board and a live Status tab with analytics (work by status, throughput, cycle time, aging, blocked chains, recomputed on every poll). Each project is added via a header dropdown; the dashboard polls each project's .teamcraft/work directly from the browser and updates in real time. Use when the user says 'show me the kanban', 'work board', 'open the board', 'board view', 'kanban view', 'live dashboard', 'visual dashboard', 'live status dashboard', 'status dashboard', 'project metrics', 'throughput/cycle-time view', 'HTML view of work items', 'drag-and-drop board', or asks to see/move/track work visually.
development
Run a retrospective — AI compiles evidence from recent work, facilitates human reflection, and captures process decisions back into living docs. Use when the user says 'run a retro', 'let's do a retrospective', 'run a retrospective on the last 2 weeks', 'let's reflect on how that feature went', or 'time for a retro'.
development
Re-evaluate what Claude needs to be told about this project as the codebase evolves. Some gotchas become obvious from the code (remove them). New gotchas emerge. Decisions change. Use when the user says 'refresh the rules', 'update Claude's context', 'are the rules still accurate', 'clean up claude rules', or after significant codebase changes.
development
Report project status from work items and git history — either as a quick, interpreted read here in the session, or by pointing the developer to the live Status dashboard (the work board's Status tab). Covers work by status, what's in flight, cycle times, throughput, backlog priorities, aging alerts, blocked chains, and how commit activity lines up with the board. Use when the user says 'project status', 'show me the project status', 'what's the status of the work items', 'how are we doing', 'generate a status report', or asks for a status dashboard.