[object Object]

← back to Groundworks Activation

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

9ebe6f861229303cfaa4b5039c480e1579433932 · 2026-09-10 17:52:31 -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 9ebe6f861229303cfaa4b5039c480e1579433932
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 10 17:52:31 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
---
 scripts/publish-bucket2.js | 2 +-
 scripts/publish-bucket3.js | 2 +-
 scripts/publish.js         | 2 +-
 scripts/rebrand.js         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/scripts/publish-bucket2.js b/scripts/publish-bucket2.js
index a167649..473ba9d 100644
--- a/scripts/publish-bucket2.js
+++ b/scripts/publish-bucket2.js
@@ -15,7 +15,7 @@
 const { Client } = require('pg');
 const fs = require('fs');
 
-const DRY = process.argv.includes('--dry');
+const DRY = !process.argv.includes('--apply');
 const limIdx = process.argv.indexOf('--limit');
 const LIMIT = limIdx >= 0 ? parseInt(process.argv[limIdx + 1], 10) : 0;
 
diff --git a/scripts/publish-bucket3.js b/scripts/publish-bucket3.js
index eb668fd..758ac7f 100644
--- a/scripts/publish-bucket3.js
+++ b/scripts/publish-bucket3.js
@@ -10,7 +10,7 @@
 const { Client } = require('pg');
 const fs = require('fs');
 
-const DRY = process.argv.includes('--dry');
+const DRY = !process.argv.includes('--apply');
 const DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
 const API = '2024-10';
 const TOKEN = (fs.readFileSync(process.env.HOME + '/Projects/secrets-manager/.env', 'utf8')
diff --git a/scripts/publish.js b/scripts/publish.js
index db00968..19943e0 100644
--- a/scripts/publish.js
+++ b/scripts/publish.js
@@ -10,7 +10,7 @@
 const { Client } = require('pg');
 const fs = require('fs');
 
-const DRY = process.argv.includes('--dry');
+const DRY = !process.argv.includes('--apply');
 const limIdx = process.argv.indexOf('--limit');
 const LIMIT = limIdx >= 0 ? parseInt(process.argv[limIdx + 1], 10) : 0;
 
diff --git a/scripts/rebrand.js b/scripts/rebrand.js
index 5019caf..c2ee684 100644
--- a/scripts/rebrand.js
+++ b/scripts/rebrand.js
@@ -19,7 +19,7 @@
 const { Client } = require('pg');
 const fs = require('fs');
 
-const DRY = process.argv.includes('--dry');
+const DRY = !process.argv.includes('--apply');
 const limIdx = process.argv.indexOf('--limit');
 const LIMIT = limIdx >= 0 ? parseInt(process.argv[limIdx + 1], 10) : 0;
 

← 3b432db Groundworks 304 reconcile: flag 237 on_shopify, dedup-link 2  ·  back to Groundworks Activation  ·  (newest)