← back to Dw Yolo Loop
cycle 70: root-cause 33 $0-roll variants = LEGACY 2018-19 placeholder (100% legacy, 0 in 2026); build-roll-scale EXONERATED; c69 pipeline-bug hypothesis disproven; orderability refined 15 CONTINUE/18 DENY
a7cac96fd37a95e5be263e8e02ca02bdfd6370e9 · 2026-06-17 19:36:41 -0700 · Steve Abrams
Files touched
A scripts/zero-roll-rootcause/era-33-diagnosis.mjs
Diff
commit a7cac96fd37a95e5be263e8e02ca02bdfd6370e9
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jun 17 19:36:41 2026 -0700
cycle 70: root-cause 33 $0-roll variants = LEGACY 2018-19 placeholder (100% legacy, 0 in 2026); build-roll-scale EXONERATED; c69 pipeline-bug hypothesis disproven; orderability refined 15 CONTINUE/18 DENY
---
scripts/zero-roll-rootcause/era-33-diagnosis.mjs | 26 ++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/scripts/zero-roll-rootcause/era-33-diagnosis.mjs b/scripts/zero-roll-rootcause/era-33-diagnosis.mjs
new file mode 100644
index 0000000..4e2600e
--- /dev/null
+++ b/scripts/zero-roll-rootcause/era-33-diagnosis.mjs
@@ -0,0 +1,26 @@
+import fs from 'fs';
+const ENV=fs.readFileSync('/Users/stevestudio2/Projects/secrets-manager/.env','utf8');
+const TOK=(ENV.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)||[])[1].replace(/['"\r]/g,'').trim();
+const GQL='https://designer-laboratory-sandbox.myshopify.com/admin/api/2024-10/graphql.json';
+const PJ=/phillip[- ]?jeffries/i;
+const sleep=ms=>new Promise(r=>setTimeout(r,ms));
+async function gql(q,v){for(let a=0;a<6;a++){const r=await fetch(GQL,{method:'POST',headers:{'X-Shopify-Access-Token':TOK,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})});if(r.status===429){await sleep(2000*(a+1));continue;}const j=await r.json();if(j.errors&&JSON.stringify(j.errors).includes('Throttled')){await sleep(2500*(a+1));continue;}return j;}return null;}
+const Q=`query($cursor:String){ products(first:100, after:$cursor, query:"status:active"){ pageInfo{hasNextPage endCursor} edges{node{handle vendor variants(first:15){edges{node{title price position inventoryPolicy createdAt sku}}}}} } }`;
+let cursor=null, pages=0; const z=[];
+while(pages<110){ const j=await gql(Q,{cursor}); if(!j?.data)break; const c=j.data.products;
+ for(const e of c.edges){ const n=e.node; if(PJ.test(n.vendor||''))continue;
+ const vs=(n.variants?.edges||[]).map(x=>x.node).map(v=>({t:v.title,price:parseFloat(v.price),pos:v.position,ip:v.inventoryPolicy,created:v.createdAt,sku:v.sku})).filter(v=>!isNaN(v.price));
+ if(vs.length<2)continue; const p1=vs.find(v=>v.pos===1)||vs[0]; const zeros=vs.filter(v=>v.price===0);
+ if(p1.price!==0 && zeros.length){ zeros.forEach(zv=>z.push({h:n.handle,vendor:n.vendor,title:zv.t,created:zv.created,sku:zv.sku,ip:zv.ip})); } }
+ if(!c.pageInfo.hasNextPage)break; cursor=c.pageInfo.endCursor; pages++; if(z.length>=40)break; await sleep(220);
+}
+console.log(`zero-roll variants found: ${z.length}`);
+const years={}, titles={}, ipc={};
+z.forEach(v=>{ const y=(v.created||'').slice(0,4); years[y]=(years[y]||0)+1; titles[v.title]=(titles[v.title]||0)+1; ipc[v.ip]=(ipc[v.ip]||0)+1; });
+console.log('by creation YEAR:', JSON.stringify(years));
+console.log('by variant TITLE:', JSON.stringify(titles));
+console.log('by inventoryPolicy:', JSON.stringify(ipc));
+const recent=z.filter(v=>(v.created||'')>='2026-01-01');
+console.log(`\nany created in 2026 (would implicate a CURRENT pipeline): ${recent.length}`);
+recent.slice(0,5).forEach(v=>console.log(' ',v.h,v.created));
+console.log('\nSKU pattern check (roll variant sku vs handle):'); z.slice(0,4).forEach(v=>console.log(` ${v.h.slice(0,34)} roll-sku=${v.sku} title="${v.title}"`));
← 5fadfac cycle 69: officer CONFIRMED + position-model re-verified (0/
·
back to Dw Yolo Loop
·
cycle 70: officer CONFIRMED + reframed (producer-elimination 60247d9 →