docs(plans): record S22 rows 15, 17, 18 and 19
What this records
This MR fills four rows of the Status table in docs/plans/2026-08-04-s22-storage-accounting.md.
| Row | Step | MR |
|---|---|---|
| 15 | reconciliation trigger and candidate selection | !1803 (merged) |
| 17 | npm call sites | !1798 (merged) |
| 18 | OCI call sites | !1793 (merged) |
| 19 | Maven call sites | !1797 (merged) |
Each mapping comes from the step marker in that MR's own title. Rows 15, 17, 18 and 19 were the only empty ones, so every row of the table now names an MR.
Three of the four step MRs are drafts. Draft state is not an exemption, because the trigger is the moment the MR opens.
The second change: step 17's MR-extras line
This MR also corrects one line of the same plan file, so it makes two changes and not one.
Step 17's MR extras line named internal/datastore/npm_publish_committer.go as the file its ## Database Review Evidence covers.
The file is internal/datastore/repositories.go.
NpmPublishCommitter.MarkRepositoryLastUpdated holds no statement and delegates to the store.
The three-column UPDATE on repositories that narrows to one column is RepositoryStore.MarkRepositoryLastUpdated in internal/datastore/repositories.go.
!1798 (merged) is step 17's MR, and its own ## Database Review Evidence names internal/datastore/repositories.go as the one query-producing record.
That section hands this correction over together with step 17's Status row, which is row 17 above.
Why it is separate
This is a batch tracking MR, not a step MR.
The CLAUDE.md guardrail says a step MR does not edit the plan file.
The rows land in a batch docs(plans) MR instead, because parallel step MRs write adjacent lines of one table and collide there.
No step number goes in the title, because this MR implements no step.
This is a bot message