← ClaudeAtlas

pbi-mergelisted

SM-side merge orchestration for a single PBI. Triggered when the Developer notifies `[<pbi-id>] PBI_READY_TO_MERGE`. Drives `.scrum/scripts/merge-pbi.sh` and handles the failure / retry cycle through SendMessage to the assigned Developer.
sohei56/maul-team · ★ 17 · Code & Development · score 70
Install: claude install-skill sohei56/maul-team
## Inputs - `<pbi-id>` (from the notification line) - backlog.json `items[].status` for this PBI (must be `in_progress_merge`) - `.scrum/pbi/<pbi-id>/state.json` (head_sha, paths_touched, ready_at populated) - `.scrum/sprint.json.developers[]` (to find the Developer to message) - `.scrum/config.json` (optional) — `merge_regression.command` is a single shell string run via `bash -c` from the main repo root after the merge commit lands. Absent / empty / null → the regression gate is skipped with a WARN naming the unset `merge_regression.command` and pointing at `set-merge-regression-command.sh`; in `po_mode=agent`, `merge-pbi.sh` additionally appends a once-per-Sprint entry to `.scrum/po/attention.md` so the skipped gate cannot stay silent across an autonomous run (a target project merged a broken test suite to main repeatedly because the WARN had no reader). An explicit opt-out recorded via `set-merge-regression-command.sh --none` (`accepted_none`) suppresses both the WARN and the attention append — a single quiet note prints instead. Output (stdout+stderr) is captured to `.scrum/pbi/<pbi-id>/merge-regression.log` (overwritten per attempt). ## Outputs The wrapper's exit code is the routing SSOT (`0/1/2/3`; see § Steps step 3 and the `merge-pbi.sh` header). In particular a recorded merge failure is **exit 2** — a preflight refusal (**exit 1**) and a post-merge bookkeeping fault (**exit 3**) are *not* merge failures and leave `merge_failure` / `merge