make_tables.py — concurrent-edit incident, 2026-11-03 ~20:00–20:10 ET (reported by Agent E)
Several writer agents appended generators to tables/make_tables.py at the same time by read–modify–write. Agent E's second
patch (20:06) searched for two anchor strings and replaced the slice between them; because another agent's block had been
inserted in the meantime, the slice crossed into tables_part07b() (Agent H) and removed (i) the last three security generators,
(ii) Agent E's own tables_part05() definition and (iii) the tables_part09() definition (21 tab_p9_*.tex tables).
Repair done by Agent E at ~20:10: tables_part07b() generators rebuilt from the generated .tex files (regenerated output is
byte-identical to the 20:05 output for all three tables); tables_part05() restored; tables_part09() was temporarily replaced by a
placeholder; the Part IX writer re-appended the real function at ~20:20 (82 tables generated at 20:2x), so TABLES.json is complete again. Broken version kept at
/tmp/wp44_tabs_before/make_tables.py.broken (laptop, volatile).
Rule proposed: append-only edits at the end of the file (insert before if __name__), never slice-replace by anchors.