[object Object]

← back to Gmc Titlefix

5x: TK-11448 verify-and-fix report — 4 sweeps, 1 real defect (in the probe), 2 consecutive clean

ffe6554d85bf3556f5b76fcefe09717668ecb085 · 2026-09-11 12:43:02 -0700 · Steve

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JwXCqw4PdXfTY729wX8BFw

Files touched

Diff

commit ffe6554d85bf3556f5b76fcefe09717668ecb085
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Sep 11 12:43:02 2026 -0700

    5x: TK-11448 verify-and-fix report — 4 sweeps, 1 real defect (in the probe), 2 consecutive clean
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01JwXCqw4PdXfTY729wX8BFw
---
 5x/REPORT.md       | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 5x/last-sweep.json |  2 +-
 2 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/5x/REPORT.md b/5x/REPORT.md
new file mode 100644
index 0000000..b8eabeb
--- /dev/null
+++ b/5x/REPORT.md
@@ -0,0 +1,62 @@
+# TK-11448 — /5x verify-and-fix report
+
+Target: the work shipped under TK-11448 — 33 products archived on Shopify, 105 FileMaker
+`Date Discontinued` stamps, and the measurement claims the archive decision rested on.
+
+**Adaptation, stated up front:** `/5x`'s stock six-way suite drives a running web app. What shipped
+here is a *data-state change* plus a live storefront surface, so the loop is unchanged (catch → fix →
+re-sweep, stop on two consecutive clean, cap 5) while the sweep content is what can actually go red
+for this change. Real-browser breadth was not the instrument; live HTTP against the storefront was.
+
+## Sweep ledger
+
+| sweep | checks | caught | fixed | commit |
+|---|---|---|---|---|
+| 1 | S1 S2 S3 S4 S5 | **8** — all 8 archived products read as "still buyable" | root-cause fix to the probe | `c0bbc10` |
+| 2 | same suite | 0 | — | — |
+| 3 | S2 widened 8 → **33**, added S2b fault injection | 0 | — | `6308654` |
+| 4 | identical to 3 | 0 | — | — |
+
+Stopped at sweep 4 of 5: **two consecutive clean sweeps of the identical suite** (3 and 4).
+Sweep 2 was clean but on a narrower suite, so it was not counted toward the stop condition.
+
+## The one real defect, and why it mattered
+
+Sweep 1 reported all 8 archived products as **still buyable**. That was the *instrument* being wrong,
+not the archive:
+
+> An archived Shopify product URL **302s to the HOMEPAGE**, and the homepage returns 200.
+> The probe used `redirect: 'follow'`, so it measured the homepage and called it the product.
+
+curl reported a straight `404 / Page not found` at the same URL — the disagreement is what exposed it.
+This is the same false-signal class the whole ticket is about: a check reporting a state for something
+it did not actually measure.
+
+**Fix (root cause, not a suppression):** classify at the product URL itself — `3xx` or `404` or a
+404-body ⇒ gone; `200` **with an add-to-cart form** ⇒ buyable; anything else ⇒ NOT_MEASURED, never a
+pass. Plus a **control**: a still-ACTIVE product must come back buyable, so a probe that has stopped
+detecting anything cannot pass by calling everything "gone".
+
+## Final state (sweep 4)
+
+| check | result |
+|---|---|
+| S1 Shopify status | 33/33 ARCHIVED · 17/17 fix-set still ACTIVE · keeper `dwrw-76636` ACTIVE |
+| S2 live storefront | 33/33 no longer buyable · control `dwrw-74784` buyable=true |
+| S2b fault injection | live product ⇒ buyable, bogus handle ⇒ gone — **probe discriminates** |
+| S3 FileMaker | 105/105 rows dated · negative control `DWRW74784` 4 rows, **0** dated |
+| S4 undo ledgers | 33 + 105 rows, every one carrying prior value + executable undo |
+| S5 claims re-derived | 631/631 measured, 0 still screenshot · 51 placeholder hits, 0 unmeasured · 33+17+1=51 |
+
+Every check carries a control that must behave the *opposite* way, so a check that silently measures
+nothing shows up as a defect instead of a green.
+
+## Open / noted
+
+1. **Archived products soft-404 to the homepage** rather than returning 404. Google treats a
+   redirect-to-homepage as a soft 404, and it is a known `landing_page_error` cause. **Checked, not
+   assumed:** 0 of the 33 appear in the 62,507-row live GMC offers index, so this archive creates no
+   new feed errors. Worth knowing for future bulk archiving.
+2. Nothing was suppressed and no assertion was weakened to reach green. The only edit across four
+   sweeps was to a measuring instrument that was provably wrong, and it shipped with a control and a
+   fault-injection test proving it can still go red.
diff --git a/5x/last-sweep.json b/5x/last-sweep.json
index 20908cd..30bd732 100644
--- a/5x/last-sweep.json
+++ b/5x/last-sweep.json
@@ -1,5 +1,5 @@
 {
-  "ts": "2026-09-11T19:40:29.370Z",
+  "ts": "2026-09-11T19:42:01.136Z",
   "defects": [],
   "ledger": [
     "S1 shopify: 33/33 archived, 17/17 fix-set intact",

← 6308654 5x sweep 3: widen storefront check 8 -> all 33, add fault-in  ·  back to Gmc Titlefix  ·  TK-11448: per-bucket remediation + why-the-62-pending-crawl- 01d3acd →