The PR check
On every pull request in a verified repository (GitHub), ALIGN compares the change with your team's confirmed decisions. It runs when a pull request is opened, reopened, marked ready for review or pushed to, and when you press Re-run ALIGN on the check run (GitHub's own re-run button does not start a new check).
One comment
ALIGN posts one comment per pull request and edits it in place, and only when there is something to say:
- Conflict: the change contradicts a confirmed decision, with where, whether a check or a judgement found it, and how to resolve it.
- New decisions in this change, each with a checkbox: tick one to confirm it.
- Supersede suggested: a commit says it replaces a decision.
- The acceptance criteria covered, when the pull request is linked to a Linear issue (Slack and Linear).
- Open questions on the changed paths.
If a later push leaves nothing to say, the comment says there are no decision conflicts at that commit. Each section lists up to 20 items; the rest are in the console. The comment never quotes transcripts, Slack or Linear. On public repositories it shows links to decisions instead of their statements, unless an owner or admin chooses Decision statements under Comments on public repositories in Settings.
For very large changes (over 300 files) and pull requests from forks, only your decisions' deterministic checks run.
One check
The check run is called ALIGN decisions. It succeeds when there are no open conflicts. With open conflicts it is neutral by default, so it never blocks a merge; set Check result to Blocking (fails on a conflict) in Settings to make it fail instead. To require it, add it as a required status check in your repository's branch protection on GitHub. If a check cannot finish, it completes as neutral with "Could not check this change".
Commands
Write a command on the first line of a pull request comment. Success adds a 👍 reaction; a refusal gets one short reply.
| Command | Effect |
|---|---|
/align confirm AL-19 AL-20 | confirm up to 20 proposals, all or nothing |
/align reject AL-19 <reason> | reject a proposal |
/align supersede AL-12 with AL-19 | replace a decision with another entry |
/align supersede AL-12: <new decision> | replace a decision with a new one |
/align dismiss AL-12 <reason> | dismiss this pull request's conflict with it |
/align record: <decision> | record a confirmed decision |
/align check accept AL-12 | accept a decision's proposed checks |
/align mute | no more comments on this pull request (the check still runs) |
A statement is 12 to 280 characters and a reason 1 to 500. Commands and ticked boxes count only from a GitHub account that belongs to a member who can read the repository: sign in to ALIGN with GitHub once. Ticking a box confirms the wording that was shown; unticking a confirmed box changes nothing.
Commit trailers
Commits made in a session carry a Align-Session trailer. You can also write Decides: AL-19,
Supersedes: AL-12 or Refs: AL-7 in a commit message: a Supersedes: trailer produces a supersede
suggestion. Keep your repository's squash-merge setting to include the commit messages, or GitHub drops the trailers.
PR checks in the console
PR checks lists the checked pull requests of repositories you can read, with their findings and whether a comment was posted.