Imported from cheaper-inference/omniroute (
config/quality/skill-templates/merge-batch/SKILL.md). Install upstream withnpx skills add cheaper-inference/omniroute --skill merge-batch. Copyright stays with the author.
Merge batch: shared preparation, exact admission
Read ../_shared/base-green.md, ../_shared/validation-gate.md and
../_shared/merge-gates.md. Their current-candidate, authority, protected-surface
and credit rules govern this workflow. Historical throughput, administrative
merge and blanket rebaseline exceptions are superseded by that protocol.
Batching shares discovery and conflict diagnosis. It does not make a combined board's PASS evidence valid for different intermediate squash candidates.
1. Intake and authority
Resolve each selected PR's open/draft state, current head/base, target, contributor and write authority. Read the diff and current freeze state, and check active worktree ownership. Hold any item another session is working. A request to analyze or prepare a list is not authority to merge or close it.
Run scripts/quality/check-skill-contract.mjs against the actual installed skills
root before admission. Missing or drifted modeled instructions mean HOLD; a
template-only check does not verify the installation being used.
Show a 1–5 star table with rationale, overlaps and holds. Stars prioritize work; they do not waive required checks or protected-surface approval. Ask the owner before acting on low-star items or dispatching rework not already authorized. For a subsumed item, prove the current behavior and obtain the separate per-item closure decision; preserve the original PR when its work is being used.
Completion: selected scope, target, ownership and permitted actions are explicit.
2. Build the diagnostic board
Pin the approved live base and record the ordered PR heads. Use one owned branch
and worktree under .claude/worktrees/, with active hooks and dependencies
matching the candidate lockfile. Verify dependency identity instead of assuming a
copy from the shared checkout is current. Do not install over shared hard links.
Board the selected refs and verify each is an ancestor of the combined head. Resolve overlaps without dropping sibling behavior or contributor attribution. Keep unrelated worktrees and the shared checkout untouched; never use git stash. Parallel preparation needs authorized delegation and disjoint write ownership.
Completion: the board has a recorded base, ordered heads, final SHA/tree and a scoped diff that contains every intended change and reconciliation.
3. Diagnose and repair
Run the applicable static profile and focused tests with their actual collectors. Keep stdout/stderr, exits, signals, versions and identities. These are PARTIAL evidence, not merge acceptance. Full workflow evidence can be supplied by the approved server queue; it need not be redundantly simulated for every local probe.
Compare a failed requirement on the exact pinned base under comparable runtime and installation before attributing it. Record resource/setup interruptions separately. Controlled repetitions may diagnose instability; a later PASS does not erase an earlier required FAIL. Preserve assertions, thresholds and baselines.
Apply every required conflict, i18n, documentation and code reconciliation to the candidate before its acceptance. Do not deliberately land a red tip and promise a follow-up after distributing the batch.
Completion: proven defects have scoped RED/GREEN evidence, and remaining failures or incomplete lanes have explicit dispositions without green-by-bypass.
4. Admit each actual landing
Use the shared merge gates for every selected PR/group. Resolve its current base,
head, tested candidate and policy again. Require all applicable required lanes,
including Gate / CI, Gate / Quality and requirements outside those aggregates.
Draft skips, MERGEABLE, a green board, an old head and inherited failures are not
acceptance. A changed identity returns the item to validation.
Use an approved server-enforced queue or reviewed identity-preserving protocol
for each actual landing. gh pr merge --match-head-commit guards the head only;
it does not atomically guard the base or replace missing required checks. If the
tool cannot preserve the tested candidate or exclude a race, HOLD.
Merge only the owner-authorized item after protected-surface approval where applicable. Keep contributor fixes in their authorized branch; a locked fork needs the shared credit-preserving fallback, not a direct protected-branch push. Administrative bypass, trust approval and release/deploy authority are separate exceptional decisions, never inferred from a batch request or star rating.
Completion: the actual landed identity has current required evidence and the specific authority for that mutation, or the item remains prepared/HOLD.
5. Readback and handoff
Verify merged state, actual SHA/tree and contributor credit. Refresh and validate the resulting base before admitting the next landing. Report prepared, integrated and currently validated separately; a partially landed batch is not a full PASS.
Retain an ordered ledger of PRs, base/head/candidate/landing identities, checks, receipts, contributor attribution and holds in the owned private task artifacts. Close only separately authorized items and use the shared credit rules. Preserve evidence before safe teardown of worktrees created for this batch; never remove another session's work or leave the shared checkout on a different branch.
