docs(plans): record the S31 step 4 and step 11 MRs
Records Step 4's two MRs in the S31 plan's Status table, which guardrail 4 keeps out of the step MRs themselves.
| Step | MRs recorded |
|---|---|
| 4, datastore reads for the upstream list and rules | !2164 (merged) (the ordered upstream list read, 1/2), !2165 (merged) (the batched rules read, 2/2) |
Both cells go in one row, comma-separated, the way step 2's row already carries !2066 (merged), !2067 (merged) and !2068 (merged). The row was empty, and an empty cell means "not yet recorded" rather than "not started", so anyone auditing the plan could not tell Step 4 apart from unstarted work.
Why this is a separate MR
Guardrail 4: parallel step MRs editing their own rows collide wherever the rows
are adjacent lines of the same file, and a parallel wave keeps consecutive steps
in flight together. The table gets a single writer instead. This MR's title also
does not quote the (S31 plan: <step>/<total>) marker, which is reserved for the
step MRs themselves so that a title search finds exactly one MR per step.
One observation for whoever plans the next step of this shape
Not acted on here, because it is a fact about the plan's estimate rather than about the plan's text, and the estimate was honest when written. Step 4 is sized at Source ~380 / Test ~820 / Total ~1,200 for both parts together. Realized, part 1 alone is 1,221 reviewable LOC and part 2 is 864 at its current head, so ~2,085 against ~1,200. Reviewable source is the number the plan applies its ceiling to, and that one holds: 254 for part 1, comfortably under 500. The overrun is test and sidecar prose, which is the cheaper half to review, but it is worth a planner knowing that a two-part datastore-read step of this shape ran roughly 1.7x its estimate.