[object Object]

← back to Designerwallcoverings

stout-onboard: fix stale docs — double-roll (not single), Gemini 2.5 model/cost, live collection-rule reality note

16717b2284ccae318ff53a3ee043c41c78b7e5b3 · 2026-07-26 19:27:56 -0700 · Steve Abrams

Files touched

Diff

commit 16717b2284ccae318ff53a3ee043c41c78b7e5b3
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sun Jul 26 19:27:56 2026 -0700

    stout-onboard: fix stale docs — double-roll (not single), Gemini 2.5 model/cost, live collection-rule reality note
---
 scripts/stout-onboard/build-payloads.mjs  | 13 ++++++++-----
 scripts/stout-onboard/go-live.mjs         |  5 ++++-
 scripts/stout-onboard/settlement-gate.mjs |  4 ++--
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/scripts/stout-onboard/build-payloads.mjs b/scripts/stout-onboard/build-payloads.mjs
index b7f1e5f..cd8a05d 100644
--- a/scripts/stout-onboard/build-payloads.mjs
+++ b/scripts/stout-onboard/build-payloads.mjs
@@ -2,12 +2,15 @@
 /**
  * Build Stout Textiles DRAFT payloads from dw_unified.stout_catalog → out/payloads.jsonl.
  * Mirrors maharam-onboard/build-payloads.mjs, but Stout Textiles is a PRICED line (real
- * price_retail per single roll / mural set), so each product carries TWO variants — a
- * sellable "Priced Per Single Roll" variant at price_retail AND a {DW_SKU}-Sample $4.25
- * memo — exactly matching the 6 Wave-1 products already live on the store.
+ * price_retail per DOUBLE ROLL — the vendor prices "Wholesale: $X / DOUBLE ROLL"), so each
+ * product carries TWO variants — a sellable "Double Roll" variant at price_retail AND a
+ * {DW_SKU}-Sample $4.25 memo. unit_of_measure metafield = "Priced Per Double Roll".
  *
- * vendor='Stout Textiles' drives the SMART collection `stout-wallcoverings` (rule vendor EQUALS
- * Stout Textiles), so activation alone auto-populates the (currently empty) collection.
+ * vendor='Stout Textiles' auto-populates whichever SMART collection carries the rule
+ * vendor EQUALS 'Stout Textiles'. LIVE STATE (2026-07-26): that is the `stout-wallpaper`
+ * collection; the clean-handle `stout-wallcoverings` currently carries rule vendor='Stout'
+ * (matches nothing) — a consolidation to a single collection is drafted for Steve in
+ * ~/.claude/yolo-queue/pending-approval/ (both collections are empty today, zero-risk).
  *
  * Eligible pool = NOT discontinued AND price_retail IS NOT NULL AND ≥1 image AND not
  * already pushed (shopify_product_id IS NULL). Dedup is by mfr_sku. Every emitted title
diff --git a/scripts/stout-onboard/go-live.mjs b/scripts/stout-onboard/go-live.mjs
index ff69e86..5506553 100644
--- a/scripts/stout-onboard/go-live.mjs
+++ b/scripts/stout-onboard/go-live.mjs
@@ -9,7 +9,10 @@
  *      (roll + $4.25 sample) so the memo AND the mural are orderable.
  *   4. Publish to the 12 DW sales channels — Google & YouTube EXCLUDED (per Steve's rule +
  *      GMC $4.25-leak protection; the sample variant would otherwise disapprove).
- *   5. status = ACTIVE. vendor='Stout Textiles' → SMART collection `stout-wallcoverings` auto-fills.
+ *   5. status = ACTIVE. vendor='Stout Textiles' auto-fills the SMART collection whose rule is
+ *      vendor EQUALS 'Stout Textiles' — LIVE that is `stout-wallpaper` (the clean-handle
+ *      `stout-wallcoverings` has rule vendor='Stout' and stays empty until the pending
+ *      consolidation lands; see ~/.claude/yolo-queue/pending-approval/).
  *   6. PG-first write-back: shopify_product_id + on_shopify on stout_catalog, and flip
  *      dw_sku_registry → active.
  * Idempotent: skips products already ACTIVE or already in golive-done.jsonl.
diff --git a/scripts/stout-onboard/settlement-gate.mjs b/scripts/stout-onboard/settlement-gate.mjs
index de7e7be..2b58744 100644
--- a/scripts/stout-onboard/settlement-gate.mjs
+++ b/scripts/stout-onboard/settlement-gate.mjs
@@ -1,7 +1,7 @@
 #!/usr/bin/env node
 /**
  * Wave-2 settlement image-vision gate for Stout Textiles.
- * Runs the settlement post-gen-vision check (Gemini 2.0 Flash) over each payload's
+ * Runs the settlement post-gen-vision check (Gemini 2.5 Flash) over each payload's
  * primary image and writes out/settlement-verdicts.jsonl: { sku, verdict, a1..b, reason }.
  *
  * Binding combinator (settlement-verdict, defendant-favorable, fail-closed):
@@ -10,7 +10,7 @@
  * A BLOCK never gets a Shopify row (create-drafts skips it); OK is eligible for go-live.
  *
  * Idempotent: skips any sku already in settlement-verdicts.jsonl.
- * Metered: ~$0.0006 / image (Gemini 2.0 Flash vision). Cost printed per-batch.
+ * Metered: ~$0.0011 / image (Gemini 2.5 Flash vision, MODEL below). Cost printed per-batch.
  *
  *   node settlement-gate.mjs                 # DRY: show how many need a verdict
  *   node settlement-gate.mjs --apply         # gate all ungated payloads

← eb3b887 Stroheim onboard: read-only price/coverage canary (auto-resu  ·  back to Designerwallcoverings  ·  recover wiped scripts/ tree: restore 325 untracked source fi 999aac3 →