Test the verdict parser against the reviews that broke it - #20
Conversation
Closes #19. Every defect in the merge gate was found after it shipped: four by Qodo reviewing pull request 14, and a fifth by hand, when it turned out Qodo edits its verdict into an existing comment so the merge step had never once run. Four rounds of review examined what the gate does when it runs. None established that it runs. The parser is the part where a bug merges unreviewed code, and it was an inline heredoc inside the workflow, so it could not be run without opening a pull request. It moves to .github/scripts/qodo_verdict.py and gets fixtures captured from real comments in this repository. The important fixture is Qodo's own four-bug review of the gate, which contains the words "no issues found" twice inside its findings while reporting four bugs: the first version matched that phrase anywhere in the body and would have merged the pull request that broke it. That review no longer exists through the API, because Qodo edited the comment in place once the findings were fixed, so it is preserved here from a copy taken while it was live. A second fixture came from getting the first one wrong. Selecting comments that matched "Bugs (4)" captured a human reply that quoted the phrase in prose, which is the same free-text mistake one layer up, so that comment is now a test case too. The workflow checks out the default branch to get the parser rather than the pull request's copy, so a pull request cannot edit the rules that decide whether it merges. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-Authored-By: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com> Claude-Session: https://claude.ai/code/session_01EqKPWQMhP7XrA3THHV1hkM
PR Summary by QodoAdd regression coverage for Qodo verdict parsing
AI Description
Diagram
High-Level Assessment
Files changed (10)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can group findings by type and pick your Finding display, from Minimal to Full |
Closes #19.
Why
Every defect in the merge gate was found after it shipped — four by Qodo reviewing #14, and a fifth by hand, when it turned out Qodo edits its verdict into an existing comment so the merge step had never once run.
Four rounds of review examined what the gate does when it runs. None established that it runs.
The parser is the part where a bug merges unreviewed code, and it was an inline heredoc inside the workflow — impossible to run without opening a PR.
What
Moves it to
.github/scripts/qodo_verdict.pywith fixtures captured from real comments in this repo:Bugs (4)in prose/commit/<sha>markerThe important one is Qodo's own 4-bug review: it contains the words "no issues found" twice, inside its findings, while reporting four bugs. The first version of the parser matched that phrase anywhere in the body and would have merged the PR that broke it.
That review no longer exists through the API — Qodo edited the comment in place once the findings were fixed — so it's preserved here from a copy taken while it was live.
The human-comment fixture came from getting the first one wrong: selecting comments matching
Bugs (4)captured my own reply quoting the phrase in prose. Same free-text mistake, one layer up. So it's a test case now.Also
bun-ci.ymlruns the parser tests, so a future Qodo wording change fails a test rather than a merge.🤖 Generated with Claude Code
https://claude.ai/code/session_01EqKPWQMhP7XrA3THHV1hkM