pbi-mergelisted
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