From 8ffe26083ce96055fd99a2ceea3fca57d1347f2e Mon Sep 17 00:00:00 2001 From: igneum-josh <337424239+igneum-josh@users.noreply.github.com> Date: Wed, 7 Oct 2026 08:07:00 +0100 Subject: [PATCH] CLAUDE.md: shared-scratchpad ownership, own-marker waits, presence checks, and the lock rule (standing rules from the night of 6 to 7 October) Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 352fb5bf3..8f2163ac7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -118,6 +118,12 @@ Josh's ruling after the DAA 198,000 incident (a fixed-height activation crossed - Standing fleet (Josh, 6 October 2026, 20:0x UK: "cant we keep rented cards up longer"): 16 live-devnet boxes and 6 Devnet 2 boxes are kept up permanently and re-rented on host death; only benchmark and wave boxes are one-shot; a standing box never leaves the live devnet for an experiment (the class v4 rehearsal took the 15 prover boxes and paused live finality at 18:42Z; experiments use wave boxes only). The Mac runs nothing the network depends on: node 1 and the observer move to igneum-build-1 as systemd units (docs/plans/hands-on-build-1.md). - Secrets on igneum-build-1: none that sign releases, move funds or reach the hands. Exception recorded 6 October 2026: Discord webhook URLs at /srv/discord-hooks/env (mode 600, rotatable in one click) for tools/community/discord-hooks.mjs. +## Shared scratchpad and lane ownership (standing rules, 7 October 2026, 08:2x UK) + +- A lane never removes a directory under the shared scratchpad; it removes only files it wrote inside one. Each lane keeps its scratch under its own prefix (`bs-` for the build-server lane, `r03xx-ship` for the shipper, and so on). At 07:23 and 07:56 UK the build-server lane removed `r0317` and `r0318` as superseded and the shipper's running 0.3.18 chain lost its log and staging copy mid-build. +- Every wait keys on its own run's marker, never on a generic line in a shared log (the ten-member pool window mis-fired at 07:44 UK on the 0.3.17 cases' end marker). A presence check never shares a shell with the command it checks (the fleet's installer answered "already running" to its own command line and left pool-1's node down seven minutes). +- A supervised node restart read back by a new lock line from the hub is not a weight removal under the 10 percent rule; a key that stops voting is. The fleet's table gate reads the folded certificate weight over the frozen table (mean of the last five checkpoints), not the lock-moment share. + ## CI red is stop-the-line (standing rule, 6 October 2026, 22:0x UK) - Whoever's merge turns master or a release-* branch red owns the fix inside 15 minutes or reverts the merge; the red watcher posts every failed run to the hidden updates channel and to /srv/ci-red/red.jsonl on the box (tools/ci/red-watch.mjs); the box's own red builds land in the same file with a class (remote-run.sh pre-flight, kept run logs) and the 09:00 UK digest counts them per class with each class's guard. - The pre-push gate is the same script CI runs: `tools/ci/pre-push.sh` (installed by `tools/ci/install-hooks.sh`; `--hook` before a push to master or release-*, `--ci` in the workflow). A check is added there, never only in ci.yml.