skills/merge-review/SKILL.md
Reviews pending fleet worktree merges before they're accepted. Reads the merge-check queue, detects file-level conflicts between branches, proposes a safe merge order, and surfaces reconciliation plans for overlapping changes.
npx skillsauth add SethGammon/Citadel merge-reviewInstall 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.
Use when: reviewing pending fleet worktree merges before accepting them into the main branch. Don't use when: reviewing general code quality (use /review); checking CI status before merging (use /pr-watch).
/merge-review # Process the full queue
/merge-review {branch} # Review a specific branch only
Read .planning/telemetry/merge-check-queue.jsonl. Each line is a JSON object:
{"branch": "fleet/task-abc", "worktree": "/path/to/worktree", "queuedAt": "ISO"}
If the file doesn't exist or is empty:
"No pending merge reviews. Fleet agents haven't completed any worktrees recently." Stop here.
If invoked with a specific branch (/merge-review {branch}): filter to that branch only.
Run git diff main..{branch} --name-only, --stat, and git branch --list {branch}.
If the branch no longer exists: mark status: "merged", note "likely already merged. Skipped.", continue.
Compare changed file sets pairwise. For each pair sharing files, read git diff main..{branch} -- {file} for both and classify:
For each branch:
Order branches: fewest conflicts first, most conflicts last.
If circular dependencies exist (A conflicts with B, B conflicts with C, C conflicts with A): escalate to the user — do not propose an impossible order.
## Merge Review: {N} branch(es) pending
### Branch: {name}
Files changed: {N}
Overlap with other branches: {branch-X} ({file-list}) | none
Risk: low | medium | high
Recommendation: merge | review-first | resolve-conflict
---
[repeat for each branch]
---
### Conflicts Detected
{branch-A} and {branch-B} both modified:
- {file}: {brief description — e.g., "A adds export, B removes same export"}
Recommended resolution: {which change to keep, or how to combine them}
[repeat for each conflict pair]
### Proposed Merge Order
1. {branch} — no conflicts, safe to merge first
2. {branch} — depends on #1; review {file} after merging #1
3. {branch} — manual conflict resolution needed in {file} before merging
### Summary
Branches ready to merge: {N}
Branches needing review: {N}
Branches with hard conflicts: {N}
If all branches are conflict-free:
## Merge Review: {N} branch(es) pending — No conflicts detected
All branches can be merged in any order. Recommended order (by change size, smallest first):
1. {branch} — {N} files
2. {branch} — {N} files
After producing the report, mark reviewed items in the queue:
status: "reviewed", add reviewedAt timestampstatus: "merged" (already handled in Step 2)Write the updated queue back to .planning/telemetry/merge-check-queue.jsonl.
Run git worktree list --porcelain. For each non-main worktree: check git branch --merged HEAD. If merged and clean: run git worktree remove "{path}" --force and git branch -d "{branch}". No user confirmation needed. Report count: "Cleaned up {N} merged worktree(s): {branch-names}".
Queue empty: Output "No pending merge reviews." and stop.
Branch no longer exists: Remove from queue, note, continue.
Branch not in queue: Note "not in the merge queue" and suggest /merge-review to see all.
All branches conflict (circular): List all conflicts; do not propose an order; escalate to user.
One branch pending: Skip conflict detection; output single-branch review (files, stat, recommendation).
Large diff (>500 lines): Summarize changed areas; link to git diff command for details.
Worktree path missing but branch exists: Proceed with git diff using branch name; worktree existence not required.
.planning/telemetry/merge-check-queue.jsonl when a fleet worktree completes/merge-review after fleet agents complete, before merging to mainDisclosure: "Reviewing pending fleet worktree merges. Read-only — no changes applied." Reversibility: green — read-only review; no files merged or modified Trust gates:
/merge-review does not produce a HANDOFF block. It outputs the merge report (Step 6) and then waits for the next user command.
After the report, suggest next actions based on what was found:
/merge-review again after resolving."development
First-run experience for the harness. Three modes: Recommended (guided, ~3 min), Full Tour (guided + skill walkthrough, ~8 min), and Express (zero questions, ~30 sec). Installs hooks first, detects stack, configures harness.json, runs a live demo on real code, and prints a reference card.
development
Knowledge compiler. Extracts patterns, decisions, and anti-patterns from completed campaigns and evolve cycles, then compiles them into structured wiki pages that integrate with existing knowledge rather than appending isolated files. Implements flush→compile→lint pipeline. Auto-triggered by /postmortem and /evolve Phase 6.
tools
Unified router that auto-routes user intent to the right orchestrator or skill. Classifies input by scope, complexity, persistence needs, and parallelism, then dispatches to the cheapest path that can handle it: direct command, skill, marshal, archon, or fleet. Single entry point for all work.
data-ai
Real-time harness observability dashboard. Reads campaigns, fleet sessions, telemetry, and pending queues to present a snapshot of harness state at a glance. Invoked by /dashboard, /do status, or phrases like "what's happening" and "show activity".