Every proxy the industry used for seniority ran through output, and an agent now produces output. So the ladder has to run through something the agent cannot supply. This one uses a single axis, applied five times: at each rung, name the thing where you are the final human check before it is real. Five rungs, each with behaviors you can watch, a tell for how the rung gets faked, and one artifact that settles the question.
They are different documents on purpose, and collapsing them ruins both.
The Comprehension Standard is explicit that its levels grade diffs and not people: a staff engineer merges an L1 dependency bump on Tuesday, a first-year engineer merges an L3 change to a pricing rule on Wednesday. Read as a career ladder, it becomes an insult and stops being usable as a merge bar.
But teams still need to answer the other question, because somebody has to decide who is trusted with what. Left unwritten, that decision gets made by tenure, by volume, or by who speaks confidently in meetings. This document exists so the second question has its own vocabulary and stops borrowing the first one's.
| The Comprehension Standard | This ladder | |
|---|---|---|
| Grades | A change, at merge time | A person, over a quarter |
| Asks | Is this change understood? | Who is trusted to be the last check? |
| Changes | Every pull request | Rarely, and in both directions |
| Lives in | The repo, enforced by the harness | A quarterly conversation, enforced by nobody |
| Confusing them | Reading "L3" as a seniority level. Makes the standard an insult and the ladder unfalsifiable. | |
The standard says what a check consists of. The ladder says who is trusted to be the last one. A team needs both, and neither substitutes for the other.
Not five skills. One question asked about five progressively larger things.
R1 EXPLAINS last check on · nothing yet
every change of theirs gets a second reader
R2 MERGES last check on · their own ordinary change
"ordinary" is whatever the charter says it is
R3 REVIEWS last check on · somebody else's change
the rung where approving becomes a decision
R4 CONSTRAINS last check on · the rules that check everyone
stops changing code, starts changing the system
R5 SCOPES last check on · whether the work should exist
the only rung whose main output is deletion
A single axis is a constraint worth defending. Most ladders are a list of adjectives, and a list of adjectives can be argued into any conclusion the room already wanted. "Last check on what" has the useful property of being answerable by looking at what actually happens when this person is on holiday.
The rungs are cumulative in trust but not in activity. An R4 still merges their own changes and still reviews other people's. What changed is that something new now stops with them.
Nobody skips. A person who has never held a correct finding under pushback is not going to author the team's constraints well, because authoring a rule is holding a position against everyone who finds it inconvenient, permanently, in writing.
Last check on nothing. Everything they produce has a second reader, and the work of this rung is becoming worth reading.
Complete fluency about what the change does, total silence about how it could be wrong. The description is excellent, the mechanism is understood, and the question "what would make this fail" produces a pause and then a guess. That is a person describing code, not a person who has examined it.
Two consecutive changes where all four claims land without prompting: what changed, why it is correct, what it could break, how you would know. Not written down anywhere special. Said out loud, to a person, twice running.
Someone sitting at R1 nine months in is almost never a talent problem. It is nearly always a team that never asked anybody to explain anything, and the fix is on the team's side of the table. The first ninety days exists mostly to keep this rung short.
Last check on their own ordinary change. Nobody reads it after them, which means the rung is defined by what they refuse rather than what they produce.
"Ordinary" is not a vibe. It is the exemption list already written in the charter: the changes the team has decided do not need the raised bar. Money, authorization, data integrity, and anything that cannot be cheaply rolled back stay off this rung no matter how good the person is, because that is a property of the change and not of them.
Throughput climbs and escaped defects climb with it. They are merging what passes rather than what is right, and green is doing the deciding. The quieter version of the same tell: six months of history with no record of ever turning down anything the agent proposed. Nobody is that well served by a model.
Sixty days of self-merged ordinary changes with no defect that a second reader would have caught, plus at least one change they voluntarily raised to the higher bar. The second half matters more: it shows the exemption list is being applied by a person and not skipped.
Last check on somebody else's change. The first rung where approving is a decision with a cost attached to their name.
Findings that are only ever stylistic: a way of participating in review without ever being accountable for the semantics. And its mirror, the review that never ends, where every approval is deferred behind one more question. Both are strategies for never being the person who said yes to the thing that broke.
One catch in production-bound code that a reasonable person would have missed. And, harder to obtain and more diagnostic, one approval that later broke, handled by naming what they would check next time rather than by relitigating whose change it was.
The weekly rep for this rung is reverse-review, which exists to produce these two artifacts on a schedule instead of by accident.
Last check on the rules that check everyone else. The first rung whose output is not code.
The charter only ever grows. Every incident adds a paragraph and nothing is ever removed, until it is long enough that nobody finishes reading it, at which point it has stopped applying to anything. The person producing that outcome usually feels the most responsible in the room, which is what makes this tell hard to raise.
One rule merged with the incident named in the pull request. One rule deleted with the reason named. The deletion is the discriminator: writing rules is a thing enthusiasm produces, and removing one requires knowing what the system is actually catching.
Last check on whether the work should exist. Measured mostly in things that never got built.
This rung got more valuable, not less, when generation got cheap. When building something took a quarter, the cost of a bad idea was visible and someone usually stopped it. When a plausible implementation appears in an afternoon, nothing external stops it, and the only remaining brake is a person willing to say the work should not exist while everyone is already excited about it.
The reflexive no, which is cheap, feels rigorous, and is indistinguishable from judgment for about a year. And the reflexive yes rebranded as enablement, which is the same abdication wearing a friendlier word. Both are ways of not deciding, and both scale badly.
A written record of scope calls, including at least one they got wrong and reversed in public. A ledger with no reversals in it is a ledger nobody was checking.
The ladder needs a new axis because the old signals were all downstream of typing speed, and typing is now free.
| Proxy | What it used to approximate | What it measures now |
|---|---|---|
| Changes merged per week | Capacity, roughly | Prompting speed |
| Time to first working version | Familiarity with the codebase | Model latency |
| Breadth of API recall | Years of exposure | Nothing at all |
| Lines of code | Very little, even then | Less |
| Rejection rate, with reasons | — | Whether judgment is being applied |
| Escape rate on self-merged work | — | Whether R2 is real |
| Do others' changes improve after this person touches them | — | Whether R3 is real |
| Does work get smaller when they scope it | — | Whether R5 is real |
Notice that every surviving signal is about subtraction: what got rejected, what did not escape, what got smaller. That is not an aesthetic preference. It is a consequence of the fact that production is the part that got automated, so the remaining human contribution shows up in the difference between what was produced and what shipped.
Quarterly, thirty minutes, two people who have actually seen the work. Not a committee.
Never calibrate a person against another person, only against the artifact list. And never run this in the same meeting as compensation, because the moment a rung is worth money the artifacts start being manufactured and the whole instrument goes blind.
A rung describes what someone is doing now. It is not a possession, and it moves down as well as up.
The common regressions are specific and recognisable. An R4 who has not deleted a rule in a year has drifted back to R3 with extra paperwork. An R2 who stopped rejecting agent output during a hard quarter is not R2 any more, whatever the tenure says. An R5 who has said yes to everything since the reorg is doing a different job now, and it may be a fine job, but the ladder should say so.
Say it plainly, early, and reversibly. A rung is not a title, does not appear in anyone's email signature, and does not move compensation on its own. That is what makes it safe to move it down, and being safe to move down is the entire reason it means anything when it moves up.
Ladders that only ratchet upward produce teams with six senior engineers and no last check, which is exactly the shape that agent-written code punishes fastest.
Four things it should never be used for, and one thing to keep if you rewrite it.
Fork it freely. Rename the rungs to match your vocabulary, cut R5 if your team has no scoping authority, add one if you have a layer this misses. The single thing worth keeping is the axis: one question, asked about progressively larger things, answerable by looking at what stops with this person. The moment a rung starts being described with adjectives instead, it has become unfalsifiable and it will drift.
Take one person and answer the single question honestly: what is the last thing that stops with them? Most teams find at least one person whose real rung and assumed rung are two apart, and the surprise is roughly as often upward as downward.