docs(drill): record runs 11–13 — the contract measured at zero, from a bare host #48

Merged
dan-claude-bot merged 1 commit from docs/runs-11-13 into main 2026-07-14 13:01:42 +00:00
dan-claude-bot commented 2026-07-14 12:52:04 +00:00 (Migrated from github.com)

RUNS.md is the drill's register, and it stopped at run 10's headline — boxes reach each other. Three runs later that story has an ending, and the file should carry it:

  • Answer table: A3 and A4 now show both states — run 10's finding and the fixed, re-measured answer (BLOCKED — tcp dropped + no icmp reply via #37/#38; enumeration blocked via dns.mode=none, resolver pinned via #45). The headline flips from "the contract is false" to "the contract holds, and it is measured — 47/47 from a bare host."
  • Traps 13–15 join the table, one per instrument bug this arc surfaced: a TTY on stdin makes incus exec un-timeout-able and eats Ctrl-C (#42), the gateway's designed ICMP drop is not a routing probe (#43), and a drill must assert its boxes are gone, not that the host is empty (#44).
  • Run history gains rows 11 (45/2 — A3 re-answered, both FAILs trap 15), 12 (46/0 — first clean run), and 13 (47/0 — full teardown-host.sh → rebuild → drill, the whole stack built from zero including the pin, on a Tailscale host), plus a closing note: the instrument is finally quieter than the thing it measures, which is the only state in which its green means anything.

With this, the register matches the repo: #15 answered, #16 closed, #26/#33 closed, #17 unblocked.

🤖 Generated with Claude Code

RUNS.md is the drill's register, and it stopped at run 10's headline — *boxes reach each other*. Three runs later that story has an ending, and the file should carry it: - **Answer table**: A3 and A4 now show both states — run 10's finding *and* the fixed, re-measured answer (`BLOCKED — tcp dropped + no icmp reply` via #37/#38; enumeration blocked via `dns.mode=none`, resolver pinned via #45). The headline flips from "the contract is false" to "the contract holds, and it is measured — 47/47 from a bare host." - **Traps 13–15** join the table, one per instrument bug this arc surfaced: a TTY on stdin makes `incus exec` un-timeout-able and eats Ctrl-C (#42), the gateway's designed ICMP drop is not a routing probe (#43), and a drill must assert *its* boxes are gone, not that the host is empty (#44). - **Run history** gains rows 11 (45/2 — A3 re-answered, both FAILs trap 15), 12 (46/0 — first clean run), and 13 (**47/0** — full `teardown-host.sh` → rebuild → drill, the whole stack built from zero including the pin, on a Tailscale host), plus a closing note: the instrument is finally quieter than the thing it measures, which is the only state in which its green means anything. With this, the register matches the repo: #15 answered, #16 closed, #26/#33 closed, #17 unblocked. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: heavy-duty/box#48
No description provided.