Harness Engineering / The First Ninety Days / a curriculum

Ninety days to a junior who can say wait.

The pieces already exist: a standard that says what a merge requires, an exercise that trains the catch, a lab that shows what a plausible wrong answer feels like from the inside. What is missing is the order. Handed all four at once on day one, a new engineer reads them as opinions. Sequenced, they are a ladder. Three phases, one hour of senior time a week, and a bar at the end that you either clear or repeat.

who it's for · the lead who just hired a junior, and the junior who wants the ninety days to count
what you need · one senior, one hour a week, an agent the junior is already using
it assembles · the Comprehension Standard · Reverse-review · the Junior to Senior workshop
total senior cost · under fifteen hours across ninety days
Phase one · comprehend
Days 1 to 30. Nothing merges that they cannot explain out loud. Output is deliberately small.
Phase two · catch
Days 31 to 60. Weekly reps against code that is fluent, passing, and wrong.
Phase three · author
Days 61 to 90. They stop changing the code and start changing the system that writes it.
0 The premise

Four good parts, no assembly order

A curriculum is not a reading list. The difference is that a curriculum says what has to be true before the next thing lands.

Every part of this already works on its own. A team can adopt the Comprehension Standard in an afternoon. Reverse-review runs in thirty minutes a week. The workshop is one hour. Send a new hire all three on their first morning and you will get polite agreement and no behavior change, because none of it is load-bearing yet. They have not been fooled. Nothing in their week depends on any of it.

The sequence below exists to make each piece land at the moment it becomes obvious. The workshop is a revelation at day thirty-five and trivia at day one, and the reason is simply that by day thirty-five they have personally shipped something they did not understand and watched a senior find it in ninety seconds. The material has not changed. The reader has.

The organizing rule

Teach the rule after the pain, not before it. Every phase boundary below is placed where the junior has just accumulated enough evidence to want the next rule.

1 All ninety

Comprehend, catch, author

Three phases of thirty days. Each one ends when a specific thing is demonstrable, not when the calendar says so.

the ninety days at a glancethe whole shape
DAYS 1–30   COMPREHEND
              small changes, spoken claims, agent allowed
              ends when: four claims land without notes, twice running

DAYS 31–60  CATCH
              seeded diffs → live diffs, weekly, classified not guessed
              ends when: three live catches, one held under pushback

DAYS 61–90  AUTHOR
              one charter rule merged, one change owned end to end
              ends when: the exit bar in §9 clears, or the phase repeats

The phases are ordered by what they cost the junior to fake. Comprehension can be faked for about a week. Catching can be faked for roughly one diff, because the classification asks which kind of wrong it is and a guess does not survive that question. Authoring cannot be faked at all: either a rule they wrote is running in the team's harness or it is not.

Nothing here removes the agent. The junior uses it from day one, all day, the same as everyone else. What the ninety days build is the part of the job the agent does not do, which is deciding whether what it produced should exist.

2 Days 1–10

The floor: nothing merges that you cannot explain

One law, adopted before anything else, because every later phase is a way of raising this same bar.

rule four claims, spoken gate all four claims cost 10 min per change

Day one, the junior reads the Comprehension Standard and the team commits to it out loud. Not as an aspiration: as the merge bar for this person, starting now. Their changes for these two weeks are deliberately small, because the point is not throughput. The point is that a change and an explanation arrive together, every time, until the pairing stops feeling like an extra step.

The daily loop

  1. Morning Junior picks up a scoped change. Small: one behavior, one file where possible. They drive the agent however they like.
  2. Before review They write nothing. They walk to the senior, or open a call, and say the four claims aloud: what changed, why it is correct, what it could break, and how they would know if it broke.
  3. On a stumble The senior stops at the first claim that wobbles and sends them back. No hints. The wobble is the lesson, and it costs about ninety seconds.
  4. On four clean claims Merge. Total senior time: under ten minutes, and it replaces a line-by-line read they were doing anyway.
Why spoken, not written

A written explanation can be generated by the same agent that wrote the change, and it will be a good one. Speech is not pasteable. For the first two weeks the claims are verbal specifically to close that door, and the door can be reopened at day fifteen once the habit is real.

Expect the first three days to be uncomfortable and the change volume to look bad. It is supposed to. A junior who ships six understood changes in week one is ahead of one who ships twenty that a senior will be maintaining alone in March.

Phase gate

Move on when the four claims land clean on two consecutive changes without prompting. For most people that is somewhere between day eight and day fourteen. If it is day twenty, that is information worth having early, and it is much cheaper to learn now than at the end of a probation period.

3 Days 11–30

First reps, against a known answer

Reverse-review starts here, on seeded diffs with an answer key, because a rep you cannot score is not a rep.

exercise reverse-review cadence 30 min, weekly graded on classification

From week three, one fixed slot a week: the junior gets an agent-written diff that contains a planted defect, thirty minutes, one review card. They fill the card, then defend it. The senior grades the review, not the code. The mechanics are in the exercise itself; what matters at this stage is which diffs you use.

Use seeded diffs with answer keys for the whole of this phase. Live diffs feel more real and are much worse for training, because when a junior misses something in a live diff nobody can say with certainty what was there to be missed. With a seeded diff the miss is unambiguous, and so is the near-miss, which is the more useful signal: they saw the right line and named the wrong class.

What gets scored

a rep is worth more the further right it lands
OutcomeWhat it showsTransfers?
Missed itNothing yet. Normal in weeks three and four.
"Something feels off here"Attention landed correctly. Vocabulary has not.Weakly
Named the defectThey can see it in this diff.Partly
Named the classThey will see it in the next diff, which is the entire point.Yes

Keep a running list of every class they have caught. It has two uses later: it is the raw material for the charter rule in phase three, and it is the evidence base for the promotion conversation that a junior in the agent era otherwise struggles to build.

Phase gate

Four reps completed, at least two with a correct classification. Their claims from days 1 to 10 continue throughout; they can now be written rather than spoken.

4 Days 31–45

The lab, now that it will land

One hour, green tests, and a quietly overcharged customer. Run it in week five or six, never in week one.

workshop junior to senior duration 1 hour output two loops

The workshop puts the junior in front of a change where every test passes and the behavior is wrong in a way that costs money. Read cold on day one, it is a clever puzzle. Read at day thirty-five, after four weeks of defending claims and four reps of finding planted defects, it is the moment the whole thing clicks, because they recognize the shape from their own week.

The workshop's second half is where the ninety days turn. It moves from "how do I catch this" to "what would have caught this without me", which is the first time the junior is asked to think about the system rather than the diff. That question is what phase three is built on, so do not skip the second half for time.

The rest of the fortnight

  • Weekly reverse-review continues, still seeded, one notch harder.
  • Change size comes off the leash. They are trusted with multi-file work now.
  • They start keeping the defect list themselves rather than the senior keeping it for them.
Placement, not content

Nothing about the workshop changes between day one and day thirty-five. The only variable you control is whether the person in the chair has already been fooled twice. Spend that variable well.

5 Days 46–60

Live diffs, and holding a position

Two changes at once: the answer key goes away, and the senior starts arguing the wrong side on purpose.

switch seeded → live drill deliberate pushback

Reverse-review now runs on real diffs off the team's queue. The miss rate goes up and the confidence goes down, both correctly. Live diffs mostly contain nothing wrong, which is itself the lesson: a clean review that says "I looked at these four things and they are fine, here is why" is a real deliverable, and a junior who cannot produce one will start inventing findings to look useful.

The pushback drill

  1. Setup Roughly one review in three, the senior pushes back on a correct finding. Calmly, with a plausible reason. No tell.
  2. Fold If the junior withdraws a correct finding under mild social pressure, that is the finding of the session, and it is more important than the defect was.
  3. Hold If they hold, they must hold with evidence: a test that goes red, a trace, a line of the spec. "I still think so" is not holding, it is stubbornness with better timing.
  4. Reveal Always tell them afterwards that the pushback was deliberate. The drill only works if trust survives it, and it only survives if you say so every time.

This drill exists because the failure mode it targets is the expensive one. A junior who cannot find defects is a junior. A junior who finds them and then abandons them when a confident person disagrees will still be doing that at eight years in, and by then nobody is checking.

Phase gate

Three catches in live diffs, and at least one correct position held under deliberate pushback, with evidence.

6 Days 61–75

Author one rule

The first time they change the thing that writes the code instead of the code. One merged rule, with the incident that caused it attached.

deliverable one charter rule bar it must have fired

Pull out the defect list from the last two months and find a class that shows up more than once. Recurrence is the whole selection criterion: a defect that happened once is a story, a defect that happened three times is a missing rule. The junior then writes it as a constraint the team's harness actually applies, at whichever altitude fits.

Pick the cheapest altitude that holds

  1. Charter line A sentence in CLAUDE.md or the equivalent. Cheapest, weakest, and correct when the class is a judgment call.
  2. Check A test, a lint rule, a schema constraint. Correct when the class is mechanically detectable.
  3. Gate A hook or a CI job that refuses. Correct when the class already reached production once and everyone remembers it.

The deliverable is a merged pull request against the team's own configuration, and the body of that PR names the incident. Not "we should validate inputs here" but "on the fourteenth this class silently double-charged a test account for six hours; this is the constraint that would have refused it". That sentence is what makes the rule survive the next person who finds it annoying.

Do not skip this

A junior who never authors a rule stays a person who changes code, and there are now a great many very fast tools that also change code. Authoring the constraint is the first piece of work in the ninety days that an agent could not have done, because it requires knowing what went wrong here, to us, and why the last three fixes did not hold.

7 Days 76–90

Own one change, end to end

Ticket to production, agent-driven, with the junior acting as their own first reviewer.

mode full autonomy output shipped change plus trail

The last fortnight is one real piece of work, chosen to be genuinely useful and genuinely reversible. They scope it, drive the agent, and ship it. The senior reviews once, at the end, as they would for anyone.

Two conditions

  • They reverse-review themselves first. Before requesting review they fill out the same card they have been filling out for ten weeks, against their own diff, and they attach it. This is the transfer moment: the exercise stops being a weekly ritual and becomes how they read a change.
  • The trail survives them. Anyone should be able to reconstruct why the change looks the way it does from the PR alone: what was tried, what was rejected, what the agent suggested that they turned down and why. That last item matters most. A record of rejections is the clearest evidence that judgment was applied.

If it ships, it ships. If it does not, that is still a complete result at day ninety, and it is a far better one than a change that shipped and nobody can explain.

8 The cost

What it costs the senior

The objection to any mentoring program is that seniors do not have the time. So here is the bill, in hours.

senior hours, ninety days, one junior
PhaseActivityHrs/weekTotal
Days 1–10Spoken claims, ~10 min per change1.01.5
Days 11–30Reverse-review, 15 min · claims, written1.03.0
Days 31–45Workshop (one hour, once) · weekly rep1.02.5
Days 46–60Live reps plus the pushback drill1.02.0
Days 61–75Rule selection and PR review0.751.5
Days 76–90One ordinary review at the end0.51.0
Ninety daysAll of it~1.011.5

Roughly one hour a week, and most of it is not additional. The claims replace a code read the senior was doing anyway; the final review is the review they would have done regardless. The genuinely new spend is about four hours across three months, which is the reverse-review slot and the workshop.

The comparison that matters

Four hours of new senior time against the alternative, which is a year of reviewing changes that nobody on the team can explain, then absorbing that maintenance yourself. The cheap option is the one with the schedule attached.

9 The bar

Day ninety: five things, all demonstrable

Not a feeling about someone's trajectory. Five artifacts that either exist or do not.

  1. Explains States the four claims on somebody else's change, out loud, agent closed. Their own work is a lower bar and does not count here.
  2. Catches Eight or more defects caught and classified across the ninety days, at least three of them in live diffs.
  3. Holds At least one correct position defended with evidence against a senior arguing the other way.
  4. Authors One rule merged into the team's harness, with the incident named in the pull request.
  5. Ships One change owned end to end, self-reviewed first, with a trail that includes what they turned down.

Clearing all five means they can hold the team's merge bar unaccompanied: L2 comprehension as routine, L3 on the changes where being wrong is expensive. Note what that is not. The Comprehension Standard grades diffs and not people, deliberately, so "they are an L3" is a category error. What the five artifacts buy is narrower and more useful: their ordinary changes no longer need a second reader. That is the honest ceiling for ninety days, and it is a real one.

If they miss one

Repeat the phase that produced the gap. Do not extend the timeline uniformly and do not wave it through on the grounds that the other four look strong. The missing item is exactly the thing that will be missing in eighteen months, when the stakes are higher and nobody is watching for it.

10 Where it breaks

Five ways this goes wrong

All five are things a well-meaning team does on purpose.

  1. Front-load it Handing over all the material in week one. It reads as philosophy, gets agreed with, and changes nothing. The pain has to come first.
  2. Score the catch Grading whether they found the bug rather than whether they named the class. Rewards luck, and luck does not compound.
  3. Skip the seeds Starting reverse-review on live diffs because it feels more real. Without an answer key nobody can tell a miss from a clean diff, so nothing is calibrated.
  4. Drop the rule Cutting phase three for delivery pressure. It is the only phase that produces something an agent could not have produced, and it is the first one cut every time.
  5. Stretch instead of repeat Turning ninety days into a hundred and fifty to avoid a hard conversation. Repeating one phase is honest and fast. Extending everything is neither.
Where to start

If you only take one thing: adopt the day one to ten loop and nothing else. Four spoken claims before every merge, for two weeks. It costs ten minutes a change and it is where most of the ninety days' value actually comes from.