[object Object]

← back to Tk 10867 Gb Safe Plan

add Graham and Brown dry-run hold plan

ce9df48aff94edf11015c5325237380377f7fecf · 2026-08-30 14:29:18 -0700 · Steve Abrams

Files touched

Diff

commit ce9df48aff94edf11015c5325237380377f7fecf
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sun Aug 30 14:29:18 2026 -0700

    add Graham and Brown dry-run hold plan
---
 .gitignore                  |   8 +
 README.md                   |  16 ++
 build-plan.mjs              |  87 ++++++++++
 dry-run-plan.json           | 383 ++++++++++++++++++++++++++++++++++++++++++++
 test.mjs                    |  21 +++
 verification/e2e-proof.json |  22 +++
 6 files changed, 537 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..378c83f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+.env*
+node_modules/
+tmp/
+*.log
+.DS_Store
+dist/
+build/
+.next/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..bd1a98f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+# TK-10867 Graham & Brown safe plan
+
+Offline reconciliation only. The available snapshots prove 442 active products
+and 401 sample-only products, leaving 41 that require variant-level verification.
+They do **not** prove 41 products are missing samples: the active snapshot has no
+variant nodes, and a June log records 39 roll variants added before the sample-only
+snapshot was generated.
+
+The pricing evidence also fails closed. `gb.csv` covers 93 Laura Ashley SKUs at a
+new cost of $66 and a proposed retail of $110, while the ticket-mandated formula
+computes `$66 / .65 / .85 = $119.46`. Unit evidence (`Sold Per Roll — 20.5 in x
+33 ft`) is scoped to that historical Laura Ashley cohort, not every G&B product.
+
+Therefore all 41 rows are `HOLD_LIVE_VARIANT_VERIFY`, with zero executable
+mutations. The plan records the exact preconditions and restore-map contract a
+future approved executor must satisfy.
diff --git a/build-plan.mjs b/build-plan.mjs
new file mode 100644
index 0000000..ea05915
--- /dev/null
+++ b/build-plan.mjs
@@ -0,0 +1,87 @@
+#!/usr/bin/env node
+// TK-10867: offline, read-only Graham & Brown cohort reconciliation.
+import fs from 'node:fs';
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+
+const here = path.dirname(fileURLToPath(import.meta.url));
+const activePath = '/Users/macstudio3/Projects/_overnight/shopify-products-live.jsonl';
+const samplePath = '/Users/macstudio3/Projects/designerwallcoverings/today-viewer/data/sample-only-skus.json';
+const csvPath = '/Users/macstudio3/Projects/Designer-Wallcoverings/vendor-scrapers/gb.csv';
+const rollLogPath = '/Users/macstudio3/Projects/Designer-Wallcoverings/vendor-scrapers/gb-roll-complete.log';
+
+const active = fs.readFileSync(activePath, 'utf8').trim().split(/\n/).map(JSON.parse)
+  .filter(product => product.vendor === 'Graham & Brown' && String(product.status).toUpperCase() === 'ACTIVE');
+const sampleJson = JSON.parse(fs.readFileSync(samplePath, 'utf8'));
+const sampleOnly = (Array.isArray(sampleJson) ? sampleJson : sampleJson.products || sampleJson.items || [])
+  .filter(product => product.vendor === 'Graham & Brown');
+const sampleIds = new Set(sampleOnly.map(product => String(product.id)));
+const needsVariantVerification = active.filter(product => !sampleIds.has(String(product.id).split('/').pop()));
+
+const csv = fs.readFileSync(csvPath, 'utf8').trim().split(/\r?\n/).slice(1).map(line => {
+  const [sku, title, oldCost, oldRetail, newCost, newRetail] = line.split(',').map(value => value.trim());
+  return { sku, title, old_cost: Number(oldCost), old_retail: Number(oldRetail), new_cost: Number(newCost), csv_new_retail: Number(newRetail) };
+});
+const formulaRetail = cost => Math.round((cost / 0.65 / 0.85) * 100) / 100;
+const rollLog = fs.readFileSync(rollLogPath, 'utf8');
+const appliedMatches = [...rollLog.matchAll(/APPLIED:\s*(\d+),\s*skipped:\s*(\d+)/g)].map(match => ({ applied: Number(match[1]), skipped: Number(match[2]) }));
+
+const plan = {
+  ticket: 'TK-10867', generated_at: new Date().toISOString(), mode: 'OFFLINE_DRY_RUN_HOLD',
+  sources: [
+    { path: activePath, modified: '2026-05-30T09:53:46-07:00', role: 'active product identity only; no variants' },
+    { path: samplePath, modified: '2026-06-22T12:36:41-07:00', role: 'sample-only product identity' },
+    { path: csvPath, modified: '2026-06-09T17:57:39-07:00', role: '93-SKU Laura Ashley pricing sheet' },
+    { path: rollLogPath, modified: '2026-06-10T17:11:42-07:00', role: 'historical roll-add result' }
+  ],
+  cohort: {
+    active_snapshot: active.length,
+    sample_only_snapshot: sampleOnly.length,
+    not_in_sample_only_needs_variant_verification: needsVariantVerification.length,
+    candidates: needsVariantVerification.map(product => ({
+      product_id: String(product.id).split('/').pop(), handle: product.handle, title: product.title,
+      verdict: 'HOLD_LIVE_VARIANT_VERIFY',
+      reason: 'active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant'
+    }))
+  },
+  provenance: {
+    unit: {
+      value: 'Sold Per Roll — 20.5 in x 33 ft',
+      scope: 'historical Laura Ashley gb.csv cohort only',
+      source: 'gb-add-roll.js ROLL_TITLE and gb.csv titles',
+      verdict: 'HOLD_FOR_NON_LAURA_ASHLEY'
+    },
+    cost: {
+      rows: csv.length, uniform_new_cost: [...new Set(csv.map(row => row.new_cost))],
+      scope: 'exact gb.csv SKU matches only; candidate snapshot lacks SKU, so no exact join is possible offline',
+      verdict: 'HOLD_NO_EXACT_SKU_JOIN'
+    },
+    retail: {
+      csv_uniform_retail: [...new Set(csv.map(row => row.csv_new_retail))],
+      required_formula_at_66: formulaRetail(66),
+      formula: 'cost / 0.65 / 0.85',
+      verdict: formulaRetail(66) === 110 ? 'CONSISTENT' : 'CONFLICT_HOLD'
+    },
+    historical_roll_result: appliedMatches.at(-1) || null
+  },
+  dry_run: {
+    executable_mutations: 0,
+    required_before_any_future_sample_add: [
+      'current live product ACTIVE', 'no existing Sample variant', 'base SKU is unique and nonempty',
+      'capture product options and every variant id/title/sku/price as restore-map',
+      'unit provenance applies to exact SKU', 'cost provenance applies to exact SKU',
+      'formula retail independently recomputed', 'bounded canary approved'
+    ],
+    proposed_sample_shape_after_gates: { title: 'Sample', sku: '<BASE-SKU>-Sample', price: '4.25' },
+    rollback_contract: 'delete only the newly-created variant GID; restore any changed option/SKU fields from captured before-map'
+  },
+  blockers: [
+    'Current local mirror read remained blocked for 498.5 seconds and returned no cohort.',
+    'Available active snapshot has no variant nodes, so missing-Sample status cannot be inferred.',
+    'Historical $66->$110 CSV pricing conflicts with required $119.46 formula price.',
+    'Unit/cost evidence is Laura Ashley/CSV scoped and cannot be generalized to all 41 rows.'
+  ],
+  side_effects: { shopify_writes: 0, database_writes: 0, activation: 0, deploy: 0, sends: 0, spend: 0, schedule_changes: 0 }
+};
+fs.writeFileSync(path.join(here, 'dry-run-plan.json'), JSON.stringify(plan, null, 2) + '\n');
+console.log(JSON.stringify({ cohort: plan.cohort, provenance: plan.provenance, executable_mutations: 0, blockers: plan.blockers }, null, 2));
diff --git a/dry-run-plan.json b/dry-run-plan.json
new file mode 100644
index 0000000..d4831ed
--- /dev/null
+++ b/dry-run-plan.json
@@ -0,0 +1,383 @@
+{
+  "ticket": "TK-10867",
+  "generated_at": "2026-08-30T21:29:14.465Z",
+  "mode": "OFFLINE_DRY_RUN_HOLD",
+  "sources": [
+    {
+      "path": "/Users/macstudio3/Projects/_overnight/shopify-products-live.jsonl",
+      "modified": "2026-05-30T09:53:46-07:00",
+      "role": "active product identity only; no variants"
+    },
+    {
+      "path": "/Users/macstudio3/Projects/designerwallcoverings/today-viewer/data/sample-only-skus.json",
+      "modified": "2026-06-22T12:36:41-07:00",
+      "role": "sample-only product identity"
+    },
+    {
+      "path": "/Users/macstudio3/Projects/Designer-Wallcoverings/vendor-scrapers/gb.csv",
+      "modified": "2026-06-09T17:57:39-07:00",
+      "role": "93-SKU Laura Ashley pricing sheet"
+    },
+    {
+      "path": "/Users/macstudio3/Projects/Designer-Wallcoverings/vendor-scrapers/gb-roll-complete.log",
+      "modified": "2026-06-10T17:11:42-07:00",
+      "role": "historical roll-add result"
+    }
+  ],
+  "cohort": {
+    "active_snapshot": 442,
+    "sample_only_snapshot": 401,
+    "not_in_sample_only_needs_variant_verification": 41,
+    "candidates": [
+      {
+        "product_id": "6555449131059",
+        "handle": "dwgb-700337",
+        "title": "Yasuni Nude Wallcovering",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "6555454013491",
+        "handle": "dwgb-700441",
+        "title": "Lotus Plum Wallcovering",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7691117953075",
+        "handle": "boreas-midnight-wallpaper-wallcovering-graham-brown",
+        "title": "Boreas Midnight Architectural Wallcovering | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7693324222515",
+        "handle": "graphic-blush-wallpaper-wallcovering-grahambrown-1",
+        "title": "Graphic Blush Architectural Wallcovering Wallcovering | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7776866566195",
+        "handle": "gothic-damask-flock-grey-silver-wallpaper-graham-brown",
+        "title": "Gothic Damask Flock Grey & Silver Wallcovering | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7778843820083",
+        "handle": "yasuni-nude-wallcovering-graham-brown",
+        "title": "Yasuni Nude Wallcovering | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7778860171315",
+        "handle": "clarissa-hulse-gypsophila-midnight-copper-wallcovering-graham-brown",
+        "title": "Clarissa Hulse Gypsophila Midnight & Copper Wallcovering | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7778953232435",
+        "handle": "moments-teal-wall-graham-brown",
+        "title": "Moments Teal Wall | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7779664035891",
+        "handle": "teal-graham-brown-1",
+        "title": "Teal | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7780858921011",
+        "handle": "grey-graham-brown-1",
+        "title": "Grey | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7781580177459",
+        "handle": "navy-graham-brown-1",
+        "title": "Navy | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7781582078003",
+        "handle": "teal-graham-brown-2",
+        "title": "Teal | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7784938078259",
+        "handle": "multicolor-wall-graham-brown-1",
+        "title": "Multicolor Wall | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7784970780723",
+        "handle": "tree-sage-graham-brown-1",
+        "title": "Tree Sage | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7785754492979",
+        "handle": "natural-graham-brown-1",
+        "title": "Natural | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7785755082803",
+        "handle": "stone-graham-brown-2",
+        "title": "Stone | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7785755705395",
+        "handle": "copper-graham-brown-1",
+        "title": "Copper | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7785756950579",
+        "handle": "gold-graham-brown-1",
+        "title": "Gold | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786023583795",
+        "handle": "scenes-gray-wall-graham-brown-1",
+        "title": "Scenes Gray Wall | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786025484339",
+        "handle": "flower-blue-wall-graham-brown-1",
+        "title": "Flower Blue Wall | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786025648179",
+        "handle": "leaf-sage-graham-brown-1",
+        "title": "Leaf Sage | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786376036403",
+        "handle": "chocolate-graham-brown-1",
+        "title": "Chocolate | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786378362931",
+        "handle": "breathe-graham-brown-1",
+        "title": "Breathe | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786379116595",
+        "handle": "teal-graham-brown-3",
+        "title": "Teal | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786380001331",
+        "handle": "natural-graham-brown-2",
+        "title": "Natural | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786966384691",
+        "handle": "breathe-graham-brown-2",
+        "title": "Breathe | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786971103283",
+        "handle": "black-graham-brown-1",
+        "title": "Black | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7786971496499",
+        "handle": "weave-emerald-graham-brown-1",
+        "title": "Weave Emerald | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7787375394867",
+        "handle": "grey-graham-brown-2",
+        "title": "Grey | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7787375624243",
+        "handle": "hazel-graham-brown-1",
+        "title": "Hazel | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7787376640051",
+        "handle": "teal-graham-brown-4",
+        "title": "Teal | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7787376934963",
+        "handle": "silk-dawn-graham-brown-1",
+        "title": "Silk Dawn | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789361102899",
+        "handle": "gold-graham-brown-2",
+        "title": "Gold | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789361201203",
+        "handle": "grey-graham-brown-3",
+        "title": "Grey | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789362020403",
+        "handle": "garden-teal-graham-brown-1",
+        "title": "Garden Teal | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789362085939",
+        "handle": "pale-gold-graham-brown-1",
+        "title": "Pale Gold | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789362217011",
+        "handle": "natural-graham-brown-3",
+        "title": "Natural | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789597392947",
+        "handle": "weave-sage-graham-brown-1",
+        "title": "Weave Sage | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789597589555",
+        "handle": "stripe-sage-graham-brown-1",
+        "title": "Stripe Sage | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789598179379",
+        "handle": "navy-graham-brown-3",
+        "title": "Navy | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      },
+      {
+        "product_id": "7789598310451",
+        "handle": "duck-egg-graham-brown-1",
+        "title": "Duck Egg | Graham & Brown",
+        "verdict": "HOLD_LIVE_VARIANT_VERIFY",
+        "reason": "active snapshot has no variant data; absence from sample-only snapshot does not prove a missing Sample variant"
+      }
+    ]
+  },
+  "provenance": {
+    "unit": {
+      "value": "Sold Per Roll — 20.5 in x 33 ft",
+      "scope": "historical Laura Ashley gb.csv cohort only",
+      "source": "gb-add-roll.js ROLL_TITLE and gb.csv titles",
+      "verdict": "HOLD_FOR_NON_LAURA_ASHLEY"
+    },
+    "cost": {
+      "rows": 93,
+      "uniform_new_cost": [
+        66
+      ],
+      "scope": "exact gb.csv SKU matches only; candidate snapshot lacks SKU, so no exact join is possible offline",
+      "verdict": "HOLD_NO_EXACT_SKU_JOIN"
+    },
+    "retail": {
+      "csv_uniform_retail": [
+        110
+      ],
+      "required_formula_at_66": 119.46,
+      "formula": "cost / 0.65 / 0.85",
+      "verdict": "CONFLICT_HOLD"
+    },
+    "historical_roll_result": {
+      "applied": 39,
+      "skipped": 54
+    }
+  },
+  "dry_run": {
+    "executable_mutations": 0,
+    "required_before_any_future_sample_add": [
+      "current live product ACTIVE",
+      "no existing Sample variant",
+      "base SKU is unique and nonempty",
+      "capture product options and every variant id/title/sku/price as restore-map",
+      "unit provenance applies to exact SKU",
+      "cost provenance applies to exact SKU",
+      "formula retail independently recomputed",
+      "bounded canary approved"
+    ],
+    "proposed_sample_shape_after_gates": {
+      "title": "Sample",
+      "sku": "<BASE-SKU>-Sample",
+      "price": "4.25"
+    },
+    "rollback_contract": "delete only the newly-created variant GID; restore any changed option/SKU fields from captured before-map"
+  },
+  "blockers": [
+    "Current local mirror read remained blocked for 498.5 seconds and returned no cohort.",
+    "Available active snapshot has no variant nodes, so missing-Sample status cannot be inferred.",
+    "Historical $66->$110 CSV pricing conflicts with required $119.46 formula price.",
+    "Unit/cost evidence is Laura Ashley/CSV scoped and cannot be generalized to all 41 rows."
+  ],
+  "side_effects": {
+    "shopify_writes": 0,
+    "database_writes": 0,
+    "activation": 0,
+    "deploy": 0,
+    "sends": 0,
+    "spend": 0,
+    "schedule_changes": 0
+  }
+}
diff --git a/test.mjs b/test.mjs
new file mode 100644
index 0000000..5124398
--- /dev/null
+++ b/test.mjs
@@ -0,0 +1,21 @@
+#!/usr/bin/env node
+import assert from 'node:assert/strict';
+import fs from 'node:fs';
+
+const plan = JSON.parse(fs.readFileSync(new URL('./dry-run-plan.json', import.meta.url)));
+assert.equal(plan.ticket, 'TK-10867');
+assert.equal(plan.mode, 'OFFLINE_DRY_RUN_HOLD');
+assert.equal(plan.cohort.active_snapshot, 442);
+assert.equal(plan.cohort.sample_only_snapshot, 401);
+assert.equal(plan.cohort.not_in_sample_only_needs_variant_verification, 41);
+assert.equal(plan.cohort.candidates.length, 41);
+assert.ok(plan.cohort.candidates.every(row => row.verdict === 'HOLD_LIVE_VARIANT_VERIFY'));
+assert.equal(plan.provenance.cost.rows, 93);
+assert.deepEqual(plan.provenance.cost.uniform_new_cost, [66]);
+assert.deepEqual(plan.provenance.retail.csv_uniform_retail, [110]);
+assert.equal(plan.provenance.retail.required_formula_at_66, 119.46);
+assert.equal(plan.provenance.retail.verdict, 'CONFLICT_HOLD');
+assert.deepEqual(plan.provenance.historical_roll_result, { applied: 39, skipped: 54 });
+assert.equal(plan.dry_run.executable_mutations, 0);
+assert.ok(Object.values(plan.side_effects).every(value => value === 0));
+console.log('PASS: cohort bounds, stale-source holds, pricing conflict, rollback preconditions, and zero-side-effect plan');
diff --git a/verification/e2e-proof.json b/verification/e2e-proof.json
new file mode 100644
index 0000000..82f5ebd
--- /dev/null
+++ b/verification/e2e-proof.json
@@ -0,0 +1,22 @@
+{
+  "ticket": "TK-10867",
+  "intent": "Bound the active Graham & Brown missing-sample cohort and produce a reversible dry-run without catalog writes",
+  "risk_tier": "R1",
+  "environment": "offline local snapshots and historical local pricing/roll artifacts",
+  "timestamp": "2026-08-30T20:45:00Z",
+  "checks": [
+    {"name":"syntax","command":"node --check build-plan.mjs","verdict":"PASS"},
+    {"name":"offline plan generation","command":"node build-plan.mjs","verdict":"PASS"},
+    {"name":"artifact assertions","command":"node test.mjs","verdict":"PASS"},
+    {"name":"current mirror cohort","command":"read-only shopify_products query","verdict":"SKIP","reason":"blocked for 498.5 seconds; interrupted without a result"}
+  ],
+  "assertions": [
+    "442 active snapshot products", "401 sample-only snapshot products", "41 require live variant verification",
+    "historical roll log applied 39 and skipped 54", "93 pricing rows uniformly carry cost 66 and CSV retail 110",
+    "required formula price at cost 66 is 119.46, so pricing is held", "zero executable mutations"
+  ],
+  "side_effects": {"shopify_writes":0,"database_writes":0,"activation":0,"deploy":0,"sends":0,"spend":0,"schedule_changes":0},
+  "cleanup": "No external state created",
+  "verdict": "PARTIAL",
+  "blocker": "Current variant-level state and exact SKU joins remain unavailable until the local mirror responds or a separately authorized live read is performed"
+}

(oldest)  ·  back to Tk 10867 Gb Safe Plan  ·  TK-10867: read-only live missing-Sample enumerator + verifie e653247 →