[object Object]

← back to Ticket System

Keep yoloforever running until explicit stop

6994aa77cae169b9c49419e0f4a1461161fc461e · 2026-09-02 16:38:19 -0700 · Steve Abrams

Files touched

Diff

commit 6994aa77cae169b9c49419e0f4a1461161fc461e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 16:38:19 2026 -0700

    Keep yoloforever running until explicit stop
---
 scripts/codex-yoloforever-prompt.md                |  2 +-
 .../tk-11131-yoloforever-stop-policy-e2e.json      | 44 ++++++++++++++++++++++
 2 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/scripts/codex-yoloforever-prompt.md b/scripts/codex-yoloforever-prompt.md
index 2d349016..d71e3159 100644
--- a/scripts/codex-yoloforever-prompt.md
+++ b/scripts/codex-yoloforever-prompt.md
@@ -14,4 +14,4 @@ HARD GATES: never perform customer-facing, destructive/irreversible, spend/money
 
 The only carried approval is TK-10993 Tracks A/B/C/D/E exactly as previously scoped. It does not extend to any other ticket or action. Track C remains HOLD until a newly rebuilt canary has immutable 400/400 identity-bearing baseline proof. Track E may run only in its revised scoped form after A/B and a fresh preflight. Re-enumerate/dedupe Track D immediately before any approved execution. If these constraints are not satisfied, do not execute the corresponding external write.
 
-Pause safely rather than spin if two consecutive cycles have zero new verified progress and only gated work remains, or if a hard safety/cost/canary tripwire fires. Never send email or messages externally. Keep spend at $0 unless Steve separately and explicitly approves a named spend.
+Do not pause merely because two or more consecutive cycles have zero new verified progress or only gated work remains. Record the no-progress/gated-only result, perform read-only monitoring and backlog re-evaluation, then exit cleanly so launchd runs the next cycle. Continue every 10 minutes until Steve explicitly invokes the runner's `stop` action and creates the STOPPED sentinel. A hard safety/cost/canary tripwire blocks only the affected action; preserve evidence, draft or surface the gate, and continue monitoring other safe work. Never send email or messages externally. Keep spend at $0 unless Steve separately and explicitly approves a named spend.
diff --git a/verification/tk-11131-yoloforever-stop-policy-e2e.json b/verification/tk-11131-yoloforever-stop-policy-e2e.json
new file mode 100644
index 00000000..9c4acbdd
--- /dev/null
+++ b/verification/tk-11131-yoloforever-stop-policy-e2e.json
@@ -0,0 +1,44 @@
+{
+  "intent": "Keep the durable yoloforever runner cycling every 10 minutes until Steve explicitly stops it.",
+  "risk_tier": "R0",
+  "environment": "Mac2 LaunchAgent com.steve.codex-yoloforever",
+  "build_identity": "pre-commit",
+  "timestamp": "2026-09-02T23:37:53Z",
+  "baseline": "The durable cycle prompt paused after two no-progress gated-only cycles.",
+  "commands": [
+    "git diff --check",
+    "rg -n 'Do not pause|STOPPED sentinel|two or more consecutive' scripts/codex-yoloforever-prompt.md",
+    "/bin/zsh scripts/codex-yoloforever.sh status",
+    "launchctl print gui/501/com.steve.codex-yoloforever"
+  ],
+  "assertions": [
+    {
+      "boundary": "policy",
+      "result": "PASS",
+      "evidence": "Prompt now requires gated-only/no-progress cycles to record, monitor, and exit cleanly for the next launchd cycle instead of pausing."
+    },
+    {
+      "boundary": "explicit-stop",
+      "result": "PASS",
+      "evidence": "Prompt names the runner stop action and STOPPED sentinel as the termination mechanism."
+    },
+    {
+      "boundary": "cadence",
+      "result": "PASS",
+      "evidence": "LaunchAgent is loaded with run interval 600 seconds."
+    },
+    {
+      "boundary": "runtime",
+      "result": "PASS",
+      "evidence": "Runner status reports loaded=yes, running=lock-held, stopped=no, pid=11343; last exit=0."
+    },
+    {
+      "boundary": "safety-negative",
+      "result": "PASS",
+      "evidence": "Hard gates remain unchanged; a tripwire blocks only its affected action and does not authorize bypassing gates."
+    }
+  ],
+  "cleanup": "No test data or external side effect created; active bounded cycle retained.",
+  "rollback": "Revert the policy commit to restore the prior two-cycle pause clause.",
+  "verdict": "PASS"
+}

← 2600bc9e Update ticket bar focus proof  ·  back to Ticket System  ·  Run overnight yoloforever in approved dangerous mode 6e5fe695 →