Twinned from https://github.com/cfsh/ninefold/issues/820 by tools/beads/import_github.py's reconcile pass.
Suggestions from ninefold-reviewer's review of #815.
#815 builds the compare-and-swap verb; #811 declared *"making every existing tool call board.py instead of editing by hand"* out of scope — *"that's a followup once this exists and is trusted."* #815 closes #811, so this is the only surviving pointer to that followup. Until it lands, every caller still hand-rolls the race the verb exists to delete, and board.py has no production callers at all.
The callers, as they read today:
.claude/commands/triage.md:121,133 — /triage regenerates the board body and is instructed to *"Re-read the body immediately before writing it. gh issue edit --body …"*. The highest-value caller: it rewrites the whole Sessions table each round.notes/chunks.md:19 — the same instruction in the coder's own wrap-up docs.tools/pr/wrap_up.py:59-62,222 — deliberately does *not* write the board today (*"Every tool in this tier reports the row and leaves the edit to a human"*), printing board #398 row set to wrapped — edit the body, never comment instead. #811 names a session's own wrap-up as --delete-row's caller, so that decision is worth revisiting now that the atomic verb exists — but it is a design call, not a defect.gh issue edit --body is a whole-body replace, so a concurrent edit silently reverts a row"*). It is regenerated by /triage, so it follows whatever the command's text says.Smaller, same area:
tools/office/README.md — #815's new opening (*"board.py … is a dev session's own verb for editing its own board row"*) is accurate as intent and becomes literally true only once the above lands.--row-file CRLF: board.py's apply_set splits on "\n" without audit_sessions.parse_board's deliberate body.replace("\r\n", "\n"). Raised and consciously declined on #815 (#398's body is pure LF; the only live case is a caller writing a CRLF --row-file, where .strip("\n") leaves the \r and _validate_row then rejects a good row with a message about pipes). Recorded here so the reasoning survives the thread, not as a re-ask.None.
No comments.