---
name: twohost-run-window-discipline
description: "BINDING window rules while a [twohost] CI run lives — push-freeze + no local work on either runner box"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 3d5b6876-a928-4198-b5e2-2b5ded87527b
---

While a `[twohost]` run is live (from tag push until BOTH twohost jobs conclude):

1. NO local gate suites, builds, or leaked-daemon sweeps on hfenduleam OR kitsubito (both are the rig runners).
2. NO pushes to the PR branch by ANYONE — PR #52-class branches carry `[twohost]` in the PR TITLE, so any push moves the PR head and the concurrency group (`ci-<ref>`, cancel-in-progress) CANCELS the live rig run. Doyle killed attempt 3 (28770217202) this way with a docs-only commit (2026-07-05); rule made permanent.

**Why:** rig legs pair across both self-hosted runners; a cancelled or starved leg wastes the whole window.

**How to apply:** fire the run (empty `[twohost]` commit), ping doyle the run id, then freeze — queue all commits/pushes until per-job conclusions land. Related: [[e2e-leaked-daemons-shared-box]], [[seedmap-test-collides-live-daemon]].

Also: worktree convention (operator-ruled, in CLAUDE.md via 8a54b2c) — all worktrees under in-repo `.gitignore`'d `.worktrees/`, never project siblings; applies to gate/scratch worktrees.
