morningman opened a new pull request, #12:
URL: https://github.com/apache/doris-skills/pull/12
## Why
The 2026-09-13 local review of apache/doris#67900 (head `5181cba`) found
that the refactor had dropped the per-attempt reset of the Flight
result-location flag, wrote it up correctly (F-02), and rated it **Minor**
because the trigger was narrow ("Flight + replan + a failing retry") and the
fix was one line. The verdict stayed APPROVE, a PASS receipt was posted with
that regression as its first note, and the fix threshold downstream ("only
Blocker/Major") dropped it. The next reviewer sent the same issue back on head
`d60a614` as a must-fix.
The finding was not missed — its severity was, and the pipeline had no rule
that made the mis-classification impossible. This PR adds that rule and
enforces it mechanically.
## What changes
- **Mandatory regression flag per finding.** Every finding now carries `-
**Regression**: yes | no` (ZH `- **回归**:是 | 否`) right after its severity: does
HEAD behave differently from the base in a way the PR body does not declare as
intended? `verify-review-docs.py` rejects a finding without the line, rejects
EN/ZH documents whose flags disagree, and reports `regressions` in its JSON
result.
- **Severity floor.** A regression in a correctness / concurrency /
lifecycle / compatibility / config / data category is at least `Major`; the
verifier rejects a regression rated `Minor` or `Nit`. For a PR presented as
behaviour-preserving (`[refactor]`, "Behavior changed: No", …) every undeclared
differing cell of the D1 differential table is such a regression. Severity is
the consequence when it triggers, never its probability or the size of the fix
(`references/doc-templates.md`, new "Regression flag and severity floors"
section).
- **Downgrades need a rationale and a challenge.** Rating a candidate below
what a subagent proposed, or dismissing a correctness / lifecycle candidate,
now requires a written *Severity rationale* and one severity-challenge subagent
(`references/prompts.md` section E) before it is final (`SKILL.md` step 6). The
ledger skeletons written by `prepare-review-context.sh` carry the new fields.
- **Poster gate.** `post-pass-comment.sh` additionally refuses to post when
the verified result carries any regression finding, so a PASS receipt can never
sit on top of a known behaviour change even if the two scripts ever disagree.
The `doris-repo-review/v1` comment schema is unchanged.
- **Tests.** `verify/repo-review` covers the new rules: 9 new contract tests
(regression rated Minor/Nit rejected, count reported, parenthetical notes
accepted, missing line rejected, EN/ZH disagreement rejected, unparseable value
rejected, poster refusals). Full suite: 47 PASS.
```
./verify/repo-review/run.sh
```
Also validated against real review documents (apache/doris#67916): docs with
`Regression: no` verify as before; flipping one Minor finding to `Regression:
yes` is rejected with `finding F-01 is marked as a regression but rated Minor;
a regression against the base is at least Major`.
## Compatibility
Documents produced by the previous template fail verification until the
`Regression` line is added to each finding — that is intended: the line is the
judgment this change forces the reviewer to make explicitly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]