Repository navigation
[finding] plugins/uberdev/skills/merge-pipeline/SKILL.md — 4 findings #799
Description
@TheFJK — /uberdev:premerge flagged a blocker finding on PR #793.
Origin: b91a1efddcf3a7d76231e72c66146acb27f308a2
Agent: premerge.review.code_review
File: plugins/uberdev/skills/merge-pipeline/SKILL.md:519
Severity: blocker (Phase premerge)
Disposition: DEFERRED (premerge-repair-budget-exhausted)
Tier: BLOCKER
Blocks: #793
Findings (4)
1. plugins/uberdev/skills/merge-pipeline/SKILL.md:519 — blocker / BLOCKER / DEFERRED (premerge-repair-budget-exhausted) — Label membership is tested by space-padded glob over a space-joined string, so a label name containing spaces can contri
Lenses: premerge.review.code_review
PR_LABEL_LIST joins label names with a single space and pads the result, then membership is a glob over that string. GitHub label names may contain spaces, so a repo label literally named 'needs premerge-approved review' contributes the premerge instrument to the resolved set. The same defect exists in the duplicated copy inside the b.5 fence. Testing membership on the array with jq -e index() rather than on a space-joined string removes the class.
2. plugins/uberdev/skills/merge-pipeline/SKILL.md:547 — blocker / BLOCKER / DEFERRED (premerge-repair-budget-exhausted) — Sub-condition (b)'s normative sentence still quotes the review-pr-only regex, so a controller applying it literally refu
Lenses: premerge.review.code_review
(b) reads 'contains a trailer matching ^Reviewed-by: uberdev/review-pr@([a-f0-9]{40})$ ... else gate_fail with trust_trail_trailer_missing'. A premerge trailer matches neither the instrument segment nor the dollar anchor, and the reconciliation saying a premerge trailer satisfies (b) on the same terms arrives three sentences later. This file is executed by a model reading prose, so a controller applying (b) as written refuses every premerge trail before (b.5) ever runs. Quoting TRUST_TRAILER_REGEX in (b) instead of the review-pr instantiation closes it.
3. plugins/uberdev/skills/merge-pipeline/SKILL.md:682 — suggestion / SUGGESTION / DEFERRED (premerge-repair-budget-exhausted) — The label-to-instrument snippet now exists in two copies held together only by prose, and only one of them is executed b
Lenses: premerge.review.code_review
The snippet is duplicated verbatim in sub-condition (a) and inside merge-base-identity-fence-v1, with the prose 'Keep this snippet byte-identical to (a)'s' as the only link. They are byte-identical today, but only the fence copy is extracted and executed by tests/trust-trail-base-identity.test.sh; (a)'s copy is never executed and no test compares the two. This is the one-contract-N-uncompared-copies class the repo already tracks under #370 and #371 - an edit to (a) that widens or narrows the label set drifts silently while every grep stays green. Note this copy was introduced by the attempt-1 repair itself.
4. plugins/uberdev/skills/merge-pipeline/SKILL.md:683 — suggestion / SUGGESTION / DEFERRED (premerge-repair-budget-exhausted) — The label-to-instrument snippet is still two verbatim copies held together only by prose, and nothing executes or compar
Lenses: premerge.review.code_review
The snippet appears at both (a) and inside merge-base-identity-fence-v1, linked only by the sentence telling the editor to keep them byte-identical. Nothing executes or compares the two. Adding a member to TRUST_LABEL_ENUM in one copy only yields either a vacuous admission at (a) or a blanket refusal of that instrument at (b.5) - the same silent-failure class the comment block directly above it documents. They are byte-identical today, so this is a drift risk rather than a live defect.
To resolve: address the findings above in code and close this issue. Closing resolves exactly the findings listed in this body and the findings added by a later comment on it — one index records both, and closing resolves that recorded set and nothing else. A finding in this file that this issue never recorded is filed as a NEW issue rather than suppressed, so closing never mutes the file. Before closing, apply finding:true-positive if it was a real defect or finding:false-positive if it was not — that label is the eval ground truth (RFC 0018).
Activity