Proof rules are rolling out to organizations in the Proof private beta.
.blacksmith/PROOF.md file in your repository gives that decision your own rules: skip infrastructure changes, never run on dependency bumps, always run on billing code.
How automatic Proof decides
With Proof set to Drafts and ready PRs or Ready PRs only, [code]smith makes a decision when a pull request opens, when it is marked ready for review, and when new commits are pushed. Ready PRs only skips draft pull requests before any decision is made. Once Proof has run on a pull request, a later push that only rebases, reformats, or changes generated files since that run is skipped before your rules are read. Without aPROOF.md, [code]smith’s default policy applies.
Add a PROOF.md
Create.blacksmith/PROOF.md at the root of your repository and merge it into the branch your pull requests target:
.blacksmith/PROOF.md
Examples
What a rule can refer to
Rules work best when they point at something visible on the pull request. For example:- Paths: “Never run Proof for changes under
infra/**.” - Labels: “Skip any pull request labeled
no-proof.” - Branches: “Skip pull requests from branches starting with
renovate/.” - Target branch: “Only run Proof on pull requests that target
main.” - Drafts: “Do not run Proof on draft pull requests.”
- Titles: “Skip pull requests whose title starts with
chore:.”
PROOF.md is not a strict pattern matcher. A model reads your rules alongside the pull request and decides. Clear, specific rules give consistent results:
- Name exact paths, branch prefixes, and labels:
`infra/**`,`renovate/`,`no-proof`. - Write one rule per line or list item.
- Say what should happen: “Never run Proof” or “Always run Proof”.
- When rules overlap, state which wins.
Defaults and limits
Requesting Proof yourself includes commenting
@codesmith prove it on a pull request, clicking Prove this works in the pull request footer, and asking [code]smith to prove a pull request in a session.
When a rule decides the skip, the session thread usually labels it “ruled out by .blacksmith/PROOF.md”. The label is the main reason the model gives, so a skip a rule caused can occasionally show another reason, such as “docs-only change”.