← back to Groundworks Activation

data/RECONCILE-2026-07-26.md

39 lines

# Groundworks 304-row onboarding — reconcile & close-out (2026-07-26)

Ticket: **TK-00041**. Agent: groundworks-onboard-agent. Cost: **$0 (local dw_unified only, zero Shopify writes)**.

## What the "onboard 304 staging rows" task actually resolved to
Read-only recon of `dw_unified.groundworks_catalog` (304 rows) vs Shopify (`shopify_products` mirror + `dw_sku_registry`):

| Segment | Count | Disposition |
|---|---:|---|
| Already onboarded (`shopify_product_id` set) | 237 | flagged `on_shopify=true` |
| Dedup-dupes — `mfr_sku` already live under old vendor | 26 | linked to existing product |
| Net-new — all Discontinued(39)/Limited(2), **zero Active** | 41 | **skipped** (Steve, 2026-07-26) |

**Key dedup finding:** the 7 rows that read "Active" in staging (Laryo Paper ×6, Signal Paper ×1)
were already on Shopify under **Lee Jofa** (ARCHIVED) / **Phillipe Romano** (ACTIVE). Creating new
Groundworks products for them would have duplicated live catalog. Dedup rule caught all 26.

## Writes performed (mirror-only, reversible)
Added columns `on_shopify boolean`, `onboard_note text` to `groundworks_catalog`. Then:
- (A) 237 pre-linked rows → `on_shopify=true`.
- (B) 26 dedup rows → `shopify_product_id` = existing product's NUMERIC id (prefer ACTIVE over
  ARCHIVED), `on_shopify=true`, note records source vendor/status. Breakdown: 14 Lee Jofa/ARCHIVED,
  10 Lee Jofa/ACTIVE, 2 Phillipe Romano/ACTIVE.
- (C) 41 net-new → `on_shopify=false`, note `skip: net-new <status>, not onboarded (Steve 2026-07-26)`.

Result: 263 `on_shopify=true`, 41 `on_shopify=false`. **No product created, updated, activated, or
published on Shopify.** No `com.steve.groundworks-onboard-resume` plist is installed (no auto-trickle).

## Reversibility
Pre-change snapshot of all 304 rows (`id, mfr_sku, dw_sku, status, shopify_product_id`):
`data/reconcile-backup-2026-07-26.json`. To revert the 26 links:
`UPDATE groundworks_catalog SET shopify_product_id=NULL WHERE onboard_note LIKE 'dedup-linked%';`

## If the 41 discontinued are ever wanted as DRAFTs
Build a `create-drafts.js` on the **knoll** model (`~/Projects/designerwallcoverings/scripts/knoll-onboard/out/payloads.jsonl`) —
DRAFT status, `custom.manufacturer_sku`+`dwc.manufacturer_sku`+`global.width/Brand/unit_of_measure`
metafields, `{DW_SKU}-Sample` $4.25 variant, all channels **except Google**, live-Shopify dedup recheck
per row. The Jul-22 `publish.js` is the WRONG template (flips ACTIVE + publishes to Google).