# 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()` replaced by a **placeholder that only prints a warning** — the Part IX writer must re-append the real function (the existing `tab_p9_*.tex` files are untouched but are no longer listed in `TABLES.json` until then). 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.