Twinned from https://github.com/cfsh/ninefold/issues/841 by tools/beads/import_github.py's reconcile pass.
Suggestions from ninefold-reviewer's review of #838. Unclaimed, unlabelled — neither blocked that PR.
1 — poll.py's WRAP_UP kick lost the board line with no test pinning it
PR #838 removed the board row from four instruction surfaces and added a negative regression test to three of them:
tools/tests/test_reap.py::test_no_board_is_named_anywheretools/tests/test_wrap_up.py::test_the_deleted_board_row_is_not_still_asked_fortools/tests/test_spawn_dev.py::test_the_report_names_the_one_thing_only_a_human_can_doThe fourth — tools/pr/poll.py's emit_termination WRAP_UP block — got the edit and no test. Nothing now pins it: ChecklistSurfacesTest.MARKERS dropped board in the same PR, so no guard anywhere reads that block for the word.
The precedent is already in the file, one method up, at tools/tests/test_poll.py:196 — test_the_wrap_up_text_no_longer_asks_for_a_cron_that_is_gone, whose comment reads *"design 006 piece 11. The checklist used to end at DELETE the poll cron … which is now an instruction to go looking for something no session creates"*.
Same shape, same block, same failure mode: a stale instruction read at the one moment a session is trying to finish. WRAP_UP is also the surface with the history — #645 F5 and #687 F3 both landed on it because it was the copy that got missed. Two lines: assertNotIn("board", out.lower()) and assertNotIn("398", out).
2 — tools/office/README.md narrates the deleted board three times
DEV_PRINCIPLES C6 — *"Avoid history lessons in front-facing APIs or .md files — no previously this used X, no migration notes, no changelog prose. Git holds the history."*
At head the README carries all three of:
board.py, a dev session's own verb for editing its own row on board #398; #834 deleted the board and the verb with it.)"*active row on board #398 would have refused every legitimate reap … #834 deleted that board outright."*A reader standing in tools/office/ today needs none of the three to use the directory. notes/history.md took the REPEALED banner in the same PR and is where this belongs.
⚠ Scoped to the README deliberately. The equivalent past-tense notes in the reap.py, spawn_dev.py and wrap_up.py docstrings are load-bearing — each explains why a check or a refusal is shaped the way it is, which is the case C6 carves out for decisions git cannot show. This item is the front-facing .md only.
None.
No comments.