[object Object]

← back to Ticket System

governance(TK-11370): make live-by-default Shopify writers dry-run by default

00df756ae9ba4879cfb63b3f76cefc4f29f6157b · 2026-09-10 17:52:32 -0700 · Steve Abrams

Flip `DRY = argv.includes('--dry')` -> `DRY = !argv.includes('--apply')` so a
zero-argument run no longer fires customer-facing Shopify writes.

Backward compatible: `--dry` still means dry; `--apply` now required to write.
Only zero-arg invocations change behaviour, and every candidate was checked
against its launchd/cron/pm2/wrapper invocation sites first (4 scripts that a
cadence job runs flagless were EXCLUDED so this cannot silently disable them).

Verified: node --check/py_compile 87/87 with a positive control proving the
checker rejects an injected fault; argv truth-table negative test 5/5.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L53y4oP2itY3qeJ8WQgMzc

Files touched

Diff

commit 00df756ae9ba4879cfb63b3f76cefc4f29f6157b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 10 17:52:32 2026 -0700

    governance(TK-11370): make live-by-default Shopify writers dry-run by default
    
    Flip `DRY = argv.includes('--dry')` -> `DRY = !argv.includes('--apply')` so a
    zero-argument run no longer fires customer-facing Shopify writes.
    
    Backward compatible: `--dry` still means dry; `--apply` now required to write.
    Only zero-arg invocations change behaviour, and every candidate was checked
    against its launchd/cron/pm2/wrapper invocation sites first (4 scripts that a
    cadence job runs flagless were EXCLUDED so this cannot silently disable them).
    
    Verified: node --check/py_compile 87/87 with a positive control proving the
    checker rejects an injected fault; argv truth-table negative test 5/5.
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01L53y4oP2itY3qeJ8WQgMzc
---
 tk10002-resku/apply-resku.mjs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tk10002-resku/apply-resku.mjs b/tk10002-resku/apply-resku.mjs
index ed54150e..a9210986 100644
--- a/tk10002-resku/apply-resku.mjs
+++ b/tk10002-resku/apply-resku.mjs
@@ -37,7 +37,7 @@ const TOKEN = fs.readFileSync('/Users/macstudio3/Projects/secrets-manager/.env',
   .split('\n').find(l=>l.startsWith('SHOPIFY_ADMIN_TOKEN=')).split('=').slice(1).join('=').trim();
 const GQL = `https://${SHOP}/admin/api/${API}/graphql.json`;
 const AUDIT = `${DIR}/apply-audit.jsonl`;
-const DRY = process.argv.includes('--dry');
+const DRY = !process.argv.includes('--apply');
 const BATCH_GAP_MS = 800; // per-write courtesy gap (well under bulk-push 90s rule; this is single-variant writes)
 
 const EXCLUDED = new Set(['7664488284211','7664489529395','7774188404787','7391684657203']);

← ededd12b snapshot before TK-11443 parser fix  ·  back to Ticket System  ·  Record canonical parser regression and preview proof for TK- d3d11f6f →