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.

Merge request reports

Loading
Loading