- Conformance checks show whether a pull request matches its approved plan.
- Approval forwarding posts plan approvals on the pull request as GitHub reviews.
How it works
- Link a PR to a plan. PRs that agents open from a plan are linked automatically. You can also paste the plan link into the PR description.
- Ref checks the PR against its plan.
Ref: plan approvedshows whether the plan is approved.Ref: plan conformanceshows whether each changed file is in the plan. Both update on every push. - Plan approvals are forwarded to the PR. When a teammate approves the plan with a review, Ref posts that approval on the PR from their GitHub account, if forwarding is on.
- Ref records each merge, and whether it had an approved plan. Find them in Settings > Change control, or get Slack alerts when something merges without one.
Ref: plan conformance check lists them. Add those changes to the plan and get it approved again, or move them to another PR.
Forwarding
By default, if the PR matches the plan, Ref posts an approval. If it has unplanned changes, Ref posts a comment that lists those files.Set it up
A team admin sets this up in Settings > Change control.- Add repositories. Install the Ref GitHub App on your GitHub organization, then pick your repositories. The App posts the checks. An org owner may need to approve it.
- Record every merge. This starts when you add a repository.
- Forward plan approvals to GitHub. Turn this on to post approvals on PRs.
- Require an approved plan to merge. Optional. Also mark
Ref: plan approvedas required in your GitHub ruleset.
Tips
- Start with recording. Turn on forwarding once your team is used to it.
- Write the plan first, especially for agent work.
- Protect sensitive code. List paths like auth or billing in
.ref/risk-paths.yml. Then turn on “Risky paths also need a pull request approval” in Approvals, so those files need a code review too. - Skip generated files. List them in
.ref/scope-exempt.ymlat the repository root so conformance ignores them. - Skip plans for small fixes. Turn on “A pull request approval also counts” in Approvals.