Skip to content

ci(permit): rubric denies on P0/P1 only; add severity discipline - #71

Draft
peycheff-com wants to merge 1 commit into
mainfrom
permit-p2-advisory-rubric
Draft

ci(permit): rubric denies on P0/P1 only; add severity discipline#71
peycheff-com wants to merge 1 commit into
mainfrom
permit-p2-advisory-rubric

Conversation

@peycheff-com

Copy link
Copy Markdown
Contributor

Draft on purpose. This is the reviewer half of a gate-policy change; the reducer half is helm-ai-kernel#701. Both are generation-3 candidates and neither should be merged under the generation they amend — see HELM-392.

Why

scripts/autonomous_release_permit.py tells both lanes "ALLOW only when you found no P0, P1, or P2 issue". Paired with a conjunctive quorum, that makes any substantial change unmergeable by iteration: each round of fixes closes the reported findings and the next review returns a fresh crop.

Measured across 36 evaluated permits and their review artifacts:

anthropic/claude-fable-5 openai/gpt-5.6-sol
deny rate 14% 64%
blocking findings raised 7 39
severities used P2, P3 P1, P2

19 of 24 denials were single-handed from one lane. Three kernel PRs carry permit round 9 in their history; a tenth round on #671/#672/#673 closed every reported finding and drew three new P1s with zero repeats.

What changes

Verdict rule. ALLOW when no P0 and no P1 exists. P2 and P3 are reported and still return ALLOW. DENY stays for P0/P1 or insufficient evidence on a safety-critical change.

Severity discipline, stated explicitly. Assign the severity the defect carries — do not inflate a P2 to force attention, do not deflate a real P1 because the change is large. And: a finding that asks for work outside the change's stated scope is at most P2. Scope is set by the change, not by what a complete implementation would eventually need; a phase-1 library change is not deficient for lacking an integration it does not claim. Several denials in the measured set were exactly that.

Sequencing

Without the reducer half, a reviewer told to DENY on P2 still denies through REVIEW_DENIED and this change accomplishes nothing. Without this half, the reducer stops counting P2 as blocking while the reviewer keeps voting DENY on it. They move in the same authority generation or not at all.

python3 -m pytest tests/test_autonomous_release_permit.py — 27 passed.

Pairs with helm-ai-kernel#701, which stops the reducer counting P2 as
blocking. The reviewer rubric has to move in the same authority generation:
until it does, a reviewer told to DENY on any P2 still denies through
REVIEW_DENIED and the reducer change accomplishes nothing.

Also states severity discipline explicitly. Observed across 36 permits: one
lane raised 39 blocking findings to the other's 7, and several were requests
for work outside a phase-1 library PR's stated scope. A finding that asks for
work the change does not claim to do is at most P2.

Not merge-ready: gate policy is promoted through the authority-generation
path, not an ordinary PR.
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.

2 participants