Skip to content

fix(skill-evals): correct blocked drop reason - #1061

Merged
potiuk merged 2 commits into
apache:mainfrom
apraba05:fix/949-quick-merge-drop-reason
Aug 17, 2026
Merged

fix(skill-evals): correct blocked drop reason#1061
potiuk merged 2 commits into
apache:mainfrom
apraba05:fix/949-quick-merge-drop-reason

Conversation

@apraba05

@apraba05 apraba05 commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Correct mergeable-but-blocked, non-review drops from gate:G5-conflict to gate:G5, matching the authoritative candidate rules.
  • Add a regression fixture that keeps gate:G5-conflict reserved for genuine merge conflicts.
  • Update the quick-merge suite documentation and case count.

Type of change

  • Other: skill-eval fixture and behavioral prompt correction

Test plan

  • uv run --project tools/skill-evals pytest tools/skill-evals/tests -q passes
  • The affected quick-merge stage-3 fixture suite was exercised successfully
  • A new regression fixture is included for the corrected behavior
  • Targeted prek and commit-time hooks pass
  • prek run --all-files passes (the local one-vCPU runner exceeded its bounded execution window; CI will run the full repository gates)

Linked issues

Closes #949

Notes for reviewers

The new case isolates mergeable=true, mergeable_state=blocked, and reviewDecision=APPROVED. The prior fixture text mislabeled this non-conflict state as gate:G5-conflict; gate:G5 is the existing non-approval blocker code.

apraba05 and others added 2 commits August 1, 2026 02:45
…blocked

`gate:G5` already means "failed Stage-1 gate G5" — the batch-level
obviously-conflicting cull — so reusing it for the Stage-3
mergeable-but-blocked outcome gives one code two meanings, which is the
conflation apache#949 set out to remove.

Rename the Stage-3 code to `gate:G5-blocked` and add the row the
authoritative drop-reason taxonomy in candidate-rules.md was missing, so
the eval fixture and the skill agree on the code and on how it is
reported.

Generated-by: Claude Code (Opus 5)

@potiuk potiuk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch on the root cause — the fixture really was mislabelling a
mergeable-but-blocked PR as a merge conflict, and #949's own hint to
"find the one describing a blocked-but-mergeable PR" was wrong:
candidate-rules.md had no code for that state at all. So the issue was
under-specified, not something you missed.

I've pushed a fixup to your branch rather than send you round again for
it. Two changes on top of yours:

  • gate:G5gate:G5-blocked. A bare gate:G5 already means "failed
    Stage-1 gate G5" — the batch-level obviously conflicting cull —
    so it would have given one code two meanings, which is the same
    conflation #949 set out to remove. The sibling Stage-3 codes are
    suffixed (gate:G5-conflict, gate:G5-unknown) and this one now
    matches.
  • Added the missing row to candidate-rules.md § Drop-reason
    taxonomy
    , so the authoritative doc actually defines the code your
    fixture asserts, plus the reporting line — gate:G5-blocked joins
    gate:G5-conflict in the drops reported with PR numbers, since a
    mergeable-but-blocked PR is exactly the "so-close" case a maintainer
    wants to glance at.

Everything else was right and I left it alone: case-5 matches the
shape of case-2 / case-3, the SPDX header is on the new report.md,
the suite auto-discovers case directories so no step-config.json
change was needed, and the README case count is updated. prek run is
green and all five stage-3 cases render.

Thanks for picking this one up — it was a genuine correctness bug in the
fixture, and finding that the taxonomy was missing an entry is the more
useful half of it.

Worth a second look from

This change touches tools/skill-evals/evals/pr-management-quick-merge/;
folks with the most context here:

  • @justinmclean — authored 2 of the last 5 commits under that path (committer)

They have not been notified — asking for an extra pass is the
maintainer's call, and optional.


This review was drafted by an AI-assisted tool and
confirmed by a Magpie maintainer. The maintainer
approving this PR has read the findings and signed off. If
something feels off, please reply on the PR and a maintainer
will follow up.

More on how Magpie handles maintainer review:
CONTRIBUTING.md.

@potiuk
potiuk merged commit 8d5d006 into apache:main Aug 17, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix the drop_reason mismatch in the quick-merge stage-3 fixture

2 participants