[object Object]

← back to Dw Yolo Loop

cycle 79: fix runbook promote-canary.sh invocation — add thin no-arg wrappers (run-sitemap-integrity.sh/run-zero-dollar.sh) since promote-canary runs $SCRIPT with no args + -f checks it; runbook schedules the bare wrappers

271895821139fad41bd7e085fe6ac8067b85689e · 2026-06-18 01:42:57 -0700 · Steve Abrams

Files touched

Diff

commit 271895821139fad41bd7e085fe6ac8067b85689e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jun 18 01:42:57 2026 -0700

    cycle 79: fix runbook promote-canary.sh invocation — add thin no-arg wrappers (run-sitemap-integrity.sh/run-zero-dollar.sh) since promote-canary runs $SCRIPT with no args + -f checks it; runbook schedules the bare wrappers
---
 scripts/canary-install/INSTALL-RUNBOOK.md       | 13 ++++++++-----
 scripts/canary-install/run-sitemap-integrity.sh |  5 +++++
 scripts/canary-install/run-zero-dollar.sh       |  5 +++++
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/scripts/canary-install/INSTALL-RUNBOOK.md b/scripts/canary-install/INSTALL-RUNBOOK.md
index 43d0fd3..b8273dd 100644
--- a/scripts/canary-install/INSTALL-RUNBOOK.md
+++ b/scripts/canary-install/INSTALL-RUNBOOK.md
@@ -22,20 +22,23 @@ cp ~/Projects/dw-yolo-loop/scripts/sitemap-integrity-canary/{sitemap-integrity-c
 cp ~/Projects/dw-yolo-loop/scripts/zero-dollar-orderable-canary/zero-dollar-orderable-canary.mjs \
    ~/Projects/designerwallcoverings/scripts/zero-dollar-orderable-canary/
 cp ~/Projects/dw-yolo-loop/scripts/canary-install/run-canary-with-cncp.sh \
+   ~/Projects/dw-yolo-loop/scripts/canary-install/run-sitemap-integrity.sh \
+   ~/Projects/dw-yolo-loop/scripts/canary-install/run-zero-dollar.sh \
    ~/Projects/designerwallcoverings/scripts/canary-install/
+chmod +x ~/Projects/designerwallcoverings/scripts/canary-install/*.sh
 ```
+> NOTE: `promote-canary.sh` runs its `$SCRIPT` arg **with no args** (and `[ -f ]`-checks it), so we schedule the **thin no-arg wrappers** (`run-sitemap-integrity.sh` / `run-zero-dollar.sh`) — each `exec`s the generic `run-canary-with-cncp.sh` with its fixed canary+json+label+urgency. Do NOT pass the generic wrapper + args as one string to promote-canary.sh (it would fail the file check).
 
 ## §2 — Install c77 sitemap-integrity (READY NOW — it's HEALTHY)
 ```sh
 # (a) sanity-run it once by hand (read-only; should print VERDICT: HEALTHY, exit 0)
 node ~/Projects/designerwallcoverings/scripts/sitemap-integrity-canary/sitemap-integrity-canary.mjs; echo "rc=$?"
 
-# (b) schedule the CNCP-wrapped canary daily at 06:10 via the existing harness
+# (b) schedule the THIN no-arg wrapper daily at 06:10 via the existing harness
 bash ~/Projects/dw-yolo-loop/scripts/promote-canary.sh dw-sitemap-integrity \
-  "$HOME/Projects/designerwallcoverings/scripts/canary-install/run-canary-with-cncp.sh \
-   $HOME/Projects/designerwallcoverings/scripts/sitemap-integrity-canary/sitemap-integrity-canary.mjs \
-   /tmp/sitemap-integrity-canary.json dw-sitemap-integrity P2" daily 6 10
+  "$HOME/Projects/designerwallcoverings/scripts/canary-install/run-sitemap-integrity.sh" daily 6 10
 #   ^ promote-canary.sh writes ~/Library/LaunchAgents/com.steve.dw-sitemap-integrity.plist + PRINTS the bootstrap cmd
+#     (the thin wrapper exec's run-canary-with-cncp.sh with the fixed canary+json+label+urgency)
 
 # (c) VALIDATE the plist with PlistBuddy (c56 lesson — NOT plutil-lint alone):
 P=~/Library/LaunchAgents/com.steve.dw-sitemap-integrity.plist
@@ -54,7 +57,7 @@ launchctl kickstart -k gui/$(id -u)/com.steve.dw-sitemap-integrity   # run-now t
 ## §3 — c78 zero-dollar-orderable: install AFTER the gated reprice (or after the ack-baseline is added)
 - **Why not now:** as built it ALERTs on the known-open 145 active + 8 draft (the P1 is genuinely open, gated). Installing daily now = daily-alert-on-a-known-gated-item (fatigue).
 - **Two clean paths (Steve's choice):**
-  1. **Reprice first, then install (simplest):** once the gated reprice clears the 145 + the 8 draft → the canary returns HEALTHY (0) → install it (same §2 steps, label `dw-zero-dollar`, `/tmp/zero-dollar-orderable-canary.json`, P1) → it now guards purely against NEW free-checkout regressions (a future bad import).
+  1. **Reprice first, then install (simplest):** once the gated reprice clears the 145 + the 8 draft → the canary returns HEALTHY (0) → install it (same §2 steps, but promote the `run-zero-dollar.sh` thin wrapper: `promote-canary.sh dw-zero-dollar "$HOME/Projects/designerwallcoverings/scripts/canary-install/run-zero-dollar.sh" daily 6 20`) → it now guards purely against NEW free-checkout regressions (a future bad import).
   2. **Add the set-difference acknowledged-baseline (one code change, a future cycle):** seed the known 145+8 as `{handle,position}` tuples; alert LOUD only on a tuple NOT in the acknowledged set (a NEW exposure) + quiet weekly reminder of the known count. Then it can install immediately and still surface regressions. (Per the c78 officer: must be set-difference, NOT count-delta — a count-delta could mask a new exposure that replaces an acknowledged one.)
 - Either way the install mechanics are identical to §2 (promote-canary.sh + wrapper + PlistBuddy + bootstrap).
 
diff --git a/scripts/canary-install/run-sitemap-integrity.sh b/scripts/canary-install/run-sitemap-integrity.sh
new file mode 100755
index 0000000..bed17c6
--- /dev/null
+++ b/scripts/canary-install/run-sitemap-integrity.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# thin no-arg wrapper so promote-canary.sh (which runs $SCRIPT with no args + does -f) can schedule it.
+exec /bin/bash "$HOME/Projects/designerwallcoverings/scripts/canary-install/run-canary-with-cncp.sh" \
+  "$HOME/Projects/designerwallcoverings/scripts/sitemap-integrity-canary/sitemap-integrity-canary.mjs" \
+  /tmp/sitemap-integrity-canary.json dw-sitemap-integrity P2
diff --git a/scripts/canary-install/run-zero-dollar.sh b/scripts/canary-install/run-zero-dollar.sh
new file mode 100755
index 0000000..3ad3386
--- /dev/null
+++ b/scripts/canary-install/run-zero-dollar.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# thin no-arg wrapper (install AFTER the gated reprice or after the ack-baseline is added — see runbook §3).
+exec /bin/bash "$HOME/Projects/designerwallcoverings/scripts/canary-install/run-canary-with-cncp.sh" \
+  "$HOME/Projects/designerwallcoverings/scripts/zero-dollar-orderable-canary/zero-dollar-orderable-canary.mjs" \
+  /tmp/zero-dollar-orderable-canary.json dw-zero-dollar P1

← c5b52c5 cycle 79: catalog-integrity guard INSTALL RUNBOOK + CNCP-ale  ·  back to Dw Yolo Loop  ·  cycle 79: officer REVISE — harden CNCP wrapper (node JSON.st 23c80c1 →