bf277f72026-06-21fill-descriptions: deterministic body_html for the 178 description-violators the backfill missed (title/vendor-derived, no metered LLM, additive)
ff2a7c12026-06-21tag-needs-width: add Needs-Width tag to width-violators still missing width (live-check skip, additive Shopify tag only, idempotent/resumable) — HOLD follow-through per DTD-A + vp-dw-commerce ratify
900b1402026-06-21material-default-widths: Steve-approved material→width defaults for clear-material width-violators (grasscloth/cork/silk/textile/metallic=36in, vinyl=54in); skips ambiguous standard+murals; additive, never overwrites
5722e552026-06-21width-from-catalog: DB-lookup width fill from per-vendor *_catalog tables (live mfr_sku match, cleaned width, no scrape/no images per Cowtan rule)
98e02b62026-06-21width-from-sibling: safe additive width inheritance from same-pattern siblings (no guessing); dry-run shows ~4% yield — rest need scrape-or-demote
bc29a262026-06-20Max-It live verification: 474 mirror-imageless → 436 truly imageless on live (38 were stale-mirror false positives), incl. 2 ACTIVE-without-image violations + 434 draft backlog (TWIL 190, Fentucci ~187 dominate)
f31b3a22026-06-20Add republish memo + AF gap diagnosis (Thibaut not Cowtan; 23 dead-upstream but already live-imaged)
46a3e7c2026-06-20imageless-rescue: live-state diagnosis (37 already fixed, 1 attached, 11 need crawl) + status tables
Authors
Steve14
Agents used
vp-dw-commerce1
Skills used
/cron1
/pm21
/wrapper1
/claude1
/code1
/vendor-derived1
/resumable1
/cork1
/silk1
/textile1
/metallic1
/placeholder1
/material1
/repeat1
/uom1
Creative ideas + design notes
Commits with substantial prose (≥120 chars) — the rationale behind each move.
bdc5884 · 2026-09-10 · 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
1c6e8a6 · 2026-06-20 · Live ACTIVE-catalog gate audit + SAFE remediation of 2 image violators
Audit (read-only bulk export, 75,019 ACTIVE products): 19,735 have >=1 gate
violation — 19,463 missing width metafield, 296 missing/placeholder description,
2 missing image. The 2 image violators (China Seas dwcw-764021, Tres Tintas
pipelines-brick) REMEDIATED IN PLACE per DTD 3/3 verdict A: attached exact-match
vendor image + width/material/repeat/uom metafields + deterministic spec-driven
description; both verified GATE-ok and still ACTIVE (0 demotions). The 19k width
+ 296 desc backlog is pre-existing and bulk-scale -> gated memo.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
File tree
20 files tracked. Click any to browse the source at HEAD.