ci: judge the pull-request description against the disclosure policy - #413
Merged
Conversation
The pattern-based checks match strings. Whether a description explains why the change was wanted, or recounts how a rule came about rather than stating what changed and how it works, is a judgment. This step asks a model over GitHub Models with the built-in token - no key, no external service - and fails the check on a clear verdict. It prints no part of the text it flagged, fails open on infrastructure and closed on a verdict, and a pull request labelled policy:reviewed skips it: a model's judgment must not be able to hold a merge hostage. Deterministic rules have no such hatch. Rubric and examples are public and every example in it is invented.
transitrix
approved these changes
Jul 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a check that judges the pull-request title and body against this repository's disclosure policy — the part of it that is not a pattern.
public-surface-hygienematches strings. Whether a description explains why a change was wanted, or recounts how a rule came about instead of stating what changed and how it works, is a judgment rather than a match. This step asks a model over GitHub Models using the built-in token, so no key and no external service are involved.Three properties, all deliberate:
policy:reviewedskips it. A model's judgment must not be able to hold a merge hostage. Deterministic rules have no such hatch and should not.The rubric is public and every example in it is invented.
Test plan
Run locally against the live endpoint and against a stub:
true→ exit 1; verdictfalse→ exit 0node --checkon the script; workflow parses as YAML