Risk-Aware Commit Notation
A log full of "fix stuff" and "WIP" makes every reviewer re-derive what the author already knew. Risk-Aware Commit Notation packs that knowledge into the first three characters of the commit summary, so history reads at a glance.
Overview
Arlo Belshee’s notation prefixes every commit summary with a risk marker and an intent letter: <risk> <intent> <summary>. Two characters answer the two questions a reviewer asks of every commit: how dangerous is this, and what was it trying to do?
| Marker | Risk | What the author attests |
|---|---|---|
. | Proven safe | A tool made the change, or it cannot reach users |
^ | Validated | Tests cover the change and the surrounding behavior |
! | Risky | It works, but known risks stay unverified |
@ | Broken | No attestation. A savepoint. |
| Letter | Intent | Behaviors changed |
|---|---|---|
F | Feature | Extends one behavior |
B | Bugfix | Repairs one behavior |
r | Refactoring | Zero. Implementation only |
d | Documentation | Zero. Communicates to the team |
Casing carries the meaning: uppercase intends to change exactly one behavior, lowercase intends zero. That is why refactorings and documentation ship lowercase, and why a log reads as a risk profile:
. r Rename PriceQuote to Quote (IDE rename)
^ B Reject empty email addresses on signup
! F Add the contact CTA to the workshop pages
@ F Savepoint: checkout flow half-wired
The reviewer skims the . and ^ lines and spends their attention on the !. M. Scott Ford calls the safe end of the scale “provable commits”: a . r provably changes nothing, so even a change review board can wave it through. And because the prefix is only honest when the commit does one thing, the notation forces small commits as a side effect. Review effort finally lands where the risk lives.
That property compounds with agents. An agent that must attest risk on every commit is pushed into small, provable steps, the discipline worth encoding as Engineering Skills. Each intent letter is also a payment against intent debt: the reasoning travels with the change instead of evaporating when the session ends. We run the notation on the repo behind this site, with a hook that rejects any commit whose summary lacks a valid prefix. This page landed as ! F Add the Risk-Aware Commit Notation tool page. The hook checks structure, not honesty. Honesty stays with the author, human or not.
Resources
- Arlo Belshee, “Risk-Aware Commit Notation” (RefactoringCombos on GitHub)
- M. Scott Ford, “Provable Commits and Arlo Belshee’s Commit Notation” (Corgibytes, 2019) — the article that describes an earlier, letter-based version of the notation
- Pair Programming — the other way to make review cheap: do it continuously, in the room
- Engineering Skills — encode disciplines like this one so agents load them on demand
Nerdy