Intent: after a landing, a builder is never sent to redo shipped work.
Today: a merge closes what the pull says it closes only when every - [ ] in the issue is ticked (src/actions/pulls.ts:450); otherwise it leaves the issue open with a "Left #N open: K unticked items" note on the pull alone. The picker then hands the open issue to a builder again, who finds the pull landed.
Done:
The picker (src/crew/autonomy.ts) skips an open issue that a merged pull closes (mergedPullClosing in src/core/pulls.ts) until a person comments, ticks or closes it.
The "left open" note is also written on the issue, naming the pull that landed and the unticked items, so the person reading the issue sees why it is open.
Tests: a merged pull closing an issue with an unticked box leaves it open, notes it on the issue, and the picker does not choose it; a person's comment after the merge makes it pickable again.
Files: src/actions/pulls.ts, src/crew/autonomy.ts, tests.
Risk: keep the structural-issue exemption (umbrellas, Later gate) as it is.
Intent: after a landing, a builder is never sent to redo shipped work.
Today: a merge closes what the pull says it closes only when every
- [ ]in the issue is ticked (src/actions/pulls.ts:450); otherwise it leaves the issue open with a "Left #N open: K unticked items" note on the pull alone. The picker then hands the open issue to a builder again, who finds the pull landed.Done:
mergedPullClosingin src/core/pulls.ts) until a person comments, ticks or closes it.Files: src/actions/pulls.ts, src/crew/autonomy.ts, tests. Risk: keep the structural-issue exemption (umbrellas, Later gate) as it is.