← back to Dw Yolo Loop
cycle 80: runbook §3 updated — c78 now INSTALLABLE-NOW (ack-baseline coded+seeded); §1 copies ack-baseline.json; re-baseline-to-0-after-reprice steps + SELFTEST/ACK_SEED modes
fc4d261c31b4a3b4d471a1219ddf2df73d870f2d · 2026-06-18 02:31:11 -0700 · Steve Abrams
Files touched
M scripts/canary-install/INSTALL-RUNBOOK.md
Diff
commit fc4d261c31b4a3b4d471a1219ddf2df73d870f2d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jun 18 02:31:11 2026 -0700
cycle 80: runbook §3 updated — c78 now INSTALLABLE-NOW (ack-baseline coded+seeded); §1 copies ack-baseline.json; re-baseline-to-0-after-reprice steps + SELFTEST/ACK_SEED modes
---
scripts/canary-install/INSTALL-RUNBOOK.md | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/scripts/canary-install/INSTALL-RUNBOOK.md b/scripts/canary-install/INSTALL-RUNBOOK.md
index 948c22c..871f47a 100644
--- a/scripts/canary-install/INSTALL-RUNBOOK.md
+++ b/scripts/canary-install/INSTALL-RUNBOOK.md
@@ -19,8 +19,8 @@ mkdir -p ~/Projects/designerwallcoverings/scripts/sitemap-integrity-canary \
~/Projects/designerwallcoverings/scripts/canary-install
cp ~/Projects/dw-yolo-loop/scripts/sitemap-integrity-canary/{sitemap-integrity-canary.mjs,baseline.json} \
~/Projects/designerwallcoverings/scripts/sitemap-integrity-canary/
-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/zero-dollar-orderable-canary/{zero-dollar-orderable-canary.mjs,ack-baseline.json} \
+ ~/Projects/designerwallcoverings/scripts/zero-dollar-orderable-canary/ # ack-baseline.json = the 153 known-open tuples (c80)
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 \
@@ -54,11 +54,18 @@ launchctl kickstart -k gui/$(id -u)/com.steve.dw-sitemap-integrity # run-now t
- Alert wiring: on a crater/non-200/stale (exit 3) the wrapper POSTs a CNCP card; HEALTHY = silent.
- **Re-baseline only after an APPROVED large catalog change** (e.g. the Thibaut 122 unpublish): `rm baseline.json` then run once to re-seed, so a sanctioned change isn't a standing near-threshold alarm. (The canary already upward-ratchets on growth.)
-## §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, 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.)
+## §3 — c78 zero-dollar-orderable: INSTALLABLE NOW (the ack-baseline is coded + seeded — c80)
+- **The acknowledged-baseline is DONE (c80).** `ack-baseline.json` is seeded with the 153 known-open tuples (145 active + 8 draft), keyed `handle#position#status`. A normal run classifies hits by **set-difference**: acknowledged tuples are tracked quietly; it ALERTs (exit 3) ONLY on a **NEW** tuple (a regression / bad import / a draft→active escalation, since the status is in the key). So it no longer daily-alerts on the known-open set → **install now**, it guards against the 146th.
+- **Install (same mechanics as §2):**
+ ```sh
+ bash ~/Projects/dw-yolo-loop/scripts/promote-canary.sh dw-zero-dollar \
+ "$HOME/Projects/designerwallcoverings/scripts/canary-install/run-zero-dollar.sh" daily 6 20
+ # PlistBuddy-validate + launchctl bootstrap as in §2(c)(d); add the §5 hbAbs watchdog entry.
+ ```
+ Make sure `ack-baseline.json` is copied alongside the canary in §1 (it lives in the same dir).
+- **Re-baseline to 0 after the gated reprice:** once Steve clears the 145+8, `rm ack-baseline.json` (or re-run `ACK_SEED=1` → it'll seed 0) so the guard's "acknowledged" set is empty and ANY future $0-orderable fires. Verify the reprice via a manual run first.
+- **Modes:** `ACK_SEED=1 node …` (re-acknowledge the current set); `SELFTEST=1 node …` (instant logic check, no scan — proves NEW fires + acknowledged quiet + draft→active escalation fires).
+- **Prior fallback (if you'd rather not run with an ack-baseline):** reprice first, then install with `ack-baseline.json` deleted (absolute-gate mode: alerts on any hit). The ack-baseline path above is preferred — it protects during the gated-reprice window.
- Either way the install mechanics are identical to §2 (promote-canary.sh + wrapper + PlistBuddy + bootstrap).
- **Nuance (officer):** c78's coverage floor is `MIN_ACTIVE_SCAN=50000`. If the active catalog ever dips near that (e.g. *during* an archive event), c78 flips to INCONCLUSIVE (exit 2, posts a card) — that's the gate refusing to trust a shrunken scan, NOT the free-checkout failure it watches. Read an INCONCLUSIVE card as "scan was incomplete/small," and cross-check the c77 sitemap-integrity crater alarm (the actual population-collapse detector).
← 479ecde cycle 80: c78 set-difference acknowledged-baseline (c78/c79
·
back to Dw Yolo Loop
·
cycle 80: officer CONFIRMED + post-seed run VERIFIED HEALTHY 188b25f →