← back to Dw Material Filter
governance(TK-11370): make live-by-default Shopify writers dry-run by default
b4e9e00c528dedc9a0ce7b4d3be266c6f18d470e · 2026-09-10 17:52:29 -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 b4e9e00c528dedc9a0ce7b4d3be266c6f18d470e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 10 17:52:29 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
---
write-material.mjs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/write-material.mjs b/write-material.mjs
index 2fc6d2a..1c1e291 100644
--- a/write-material.mjs
+++ b/write-material.mjs
@@ -14,7 +14,7 @@ const TOKEN = (env.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m) || [, ''])[1].trim();
if (!TOKEN) { console.error('SHOPIFY_ADMIN_TOKEN not found in .env'); process.exit(1); }
const STORE = 'designer-laboratory-sandbox.myshopify.com', API = '2024-10';
const args = process.argv.slice(2);
-const DRY = args.includes('--dry');
+const DRY = !args.includes('--apply');
function gql(query, variables) {
const body = JSON.stringify({ query, variables });
← 5fc4e0d chore: lint (token guard), refactor (tighten glass-bead rege
·
back to Dw Material Filter
·
(newest)