The question
Should pr-status.sh speak GitLab too, or is the boundary stated in #250 the end state?
This needs a decision rather than a patch, which is why it is not folded into #250: the boundary there is closed and measured, and adding a second forge to this script is a different commitment.
What option 1 would mean
pr-status.sh detects the host and, for GitLab, reads merge_requests/<iid> — detailed_merge_status, which unlike GitHub's mergeStateStatus names the reason — plus /discussions for unresolved threads, and emits the same NEXT: vocabulary. The merge and rebase steps map to glab mr merge and glab mr rebase.
The argument for it: pr-status.sh is the only merge-gate and watch driver in the fleet, and half the fleet's work happens on git.netresearch.de. Every GitLab MR in the session that produced this issue was watched by a hand-rolled glab api poll loop written per task — exactly the shape the skill's own references/merge-gate-watcher.md warns against.
The argument against: two forges in one script means two gate vocabularies to keep in step, and netresearch-gitlab already owns GitLab conventions — the driver could live there instead and reuse this script's ladder rather than its code.
What would settle it
Whether GitLab MR cycles are meant to be driven by this skill at all, or by netresearch-gitlab. That is an ownership question about the two skills, not a technical one about the script.
Assisted by claude-code:claude-opus-5 — Session
The question
Should
pr-status.shspeak GitLab too, or is the boundary stated in #250 the end state?This needs a decision rather than a patch, which is why it is not folded into #250: the boundary there is closed and measured, and adding a second forge to this script is a different commitment.
What option 1 would mean
pr-status.shdetects the host and, for GitLab, readsmerge_requests/<iid>—detailed_merge_status, which unlike GitHub'smergeStateStatusnames the reason — plus/discussionsfor unresolved threads, and emits the sameNEXT:vocabulary. The merge and rebase steps map toglab mr mergeandglab mr rebase.The argument for it:
pr-status.shis the only merge-gate and watch driver in the fleet, and half the fleet's work happens ongit.netresearch.de. Every GitLab MR in the session that produced this issue was watched by a hand-rolledglab apipoll loop written per task — exactly the shape the skill's ownreferences/merge-gate-watcher.mdwarns against.The argument against: two forges in one script means two gate vocabularies to keep in step, and
netresearch-gitlabalready owns GitLab conventions — the driver could live there instead and reuse this script's ladder rather than its code.What would settle it
Whether GitLab MR cycles are meant to be driven by this skill at all, or by
netresearch-gitlab. That is an ownership question about the two skills, not a technical one about the script.Assisted by claude-code:claude-opus-5 — Session