Primary finding
Skip rule for 'already triaged' labels prevents re-triage on new commits, contradicting (PR, headRefOid) re-triage promise
- skills/pr-triage/SKILL.md:70-78
- skills/pr-triage/SKILL.md:152-158
Step 3 says a PR is skipped if it already has any `triage:*` label, but step 9/Constraints state that a new push should re-triage and replace the prior label. After the first triage, every subsequent run will skip the PR because the `triage:*` label is still attached, regardless of whether the head SHA has changed. The two rules are mutually contradictory and the label-based skip wins (it's checked before the state-file check), so the (PR, headRefOid) re-triage behavior promised in Constraints will never fire.
Recommendation
Either remove the `triage:*` labels from the skip list (rely on the (PR, headRefOid) state-file check + comment-dedup check), or explicitly exempt `triage:*` labels from the skip rule and document that the label gets replaced on each re-triage.