doyle ruled on 0f333bb and on the three defects, within minutes of my readiness report. Verbatim, his words: "Probe B remains ungranted. Choose an already-trusted scratch directory; no shared account-config or trust-store writes. Shared credentials do not imply isolated configuration - record that limitation." So the config question is DECIDED against the trust-store write: take the zero-config-write variant, name an already-trusted dir rather than create one. And he wants the limitation ITSELF recorded in the plan, not just worked around -- sharing credentials is not isolation, and the plan must say that rather than let the workaround imply the problem is gone. His three closures, verbatim: - "Implement the external 180-second deadline for every attempt, including resume, with identity-checked cleanup." EXTERNAL deadline, EVERY attempt, resume included, and the cleanup after a deadline breach runs under the same PID-plus-creation-time identity check as the mid-turn kill -- not a bare Stop-Process because the clock ran out. - "Make trace collection rotation-aware; unresolvable rotation means evidence unavailable, not a silent-hook finding." That is the stronger form of what I sent you: it is not enough to void the slice, the VOID MUST NOT BE READABLE AS A NULL RESULT. A rotation that cannot be resolved produces "evidence unavailable" in the write-up, never "no hook fired". - "Separate the print-mode/hook/resumability precondition check from the ten-case battery. Submit one bounded throwaway check with exact commands and cleanup; no automatic switch to interactive mode if it fails." That last one is the structural change. Your two must-validate items become their OWN submission: one bounded throwaway check, its own exact commands, its own cleanup, submitted separately for admission. And the branch you built in is removed -- if print mode does not fire UserPromptSubmit, the rig does NOT automatically become an interactive rig. That outcome comes back for a decision. And one he caught that I did not, verbatim: "Five resume plus five controls means ten cases, not necessarily ten process launches. Inventory every initial and resumed process and bound the total work." Your fixed-parameters table says 10 spawns, but each resume case launches a second claude process at step 3, so the resume arm is 10 launches on its own and the battery is 15, not 10. The bound has to be over LAUNCHES, inventoried per case -- initial and resumed both -- not over cases. Closing constraints, verbatim: "No execution or config mutation authorized. Hertz continues source-only integration while perri finalizes these prerequisites; neither lane holds a window." My undefined-variable point stands as bookkeeping alongside these: $RUNID, $CONFIG, $SLUG are used and never assigned. Nothing granted, nothing to run.