From b1b9b3d03f03863fe982ad158acd5a6ea95aa150 Mon Sep 17 00:00:00 2001 From: Paul Keen <125715+pftg@users.noreply.github.com> Date: Sat, 22 Aug 2026 13:39:06 +0200 Subject: [PATCH] Status: gates rebuilt, one known red resolved, one arch decision opened STATUS.md's Test/CI row still said "one known red (stale linux baseline)". That key was a real content difference and is fixed - re-recorded on master, where recorder and tester see the same tree, verified green by CI run 32565008850 with zero failing keys. What replaced it is genuinely open and needs Paul: on an ARM Mac dtest now legitimately fails 8 codeblocks screenshots, because the container renders arm64 while the committed linux baselines come from CI on amd64. That was invisible until #578 fixed dtest comparing nothing at all from a worktree, so it is pre-existing rather than a regression. Three options recorded with their trade-off, plus the contradiction to reconcile first: .dev/compose.yml declares platform linux/amd64 on the `t` service while bin/dc exports DOCKER_DEFAULT_PLATFORM=linux/arm64/v8. Also refreshed the 2608 sprint summary, which still claimed "#560-#567" and "CI Linux red went from 22 keys to 1" - it is 0 now, and the range runs to #578. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_011SP5gaqXEgUie8pdFrmbeJ --- STATUS.md | 3 +- .../2608-site-design-system/README.md | 57 ++++++++++++++----- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/STATUS.md b/STATUS.md index 78fce6085..7d3fe9f72 100644 --- a/STATUS.md +++ b/STATUS.md @@ -23,7 +23,7 @@ | Blog / SEO (2510) | Constrained by 20.09 §1 (outreach first). R-queue empty/retired; replacement queue is §13 (restocked 2026-08-21) | Per §1: LinkedIn cadence + sourcing outrank a new post; when drafting, take §13 N-queue | [`20.09 §13`](docs/projects/2510-seo-content-strategy/20-29-strategy/20.09-content-plan-revision-aug-2026.md) | | 2605 course | v2 live; measuring. Diagnosis: **arrival, not content**; course SEO/AEO **closed** (Paul 2026-08-21) | LinkedIn arrival-test cards **LI-0…LI-D** in [`content-plan`](linkedin-posts/content-plan.md); no new funnel posts on the unproven bridge | [`TASK-TRACKER`](docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md) | | 2607 campaign tasks | Cold-public-sourcing premise tested and **failed** (3 sweeps, 4 venues, 0 verified-fresh rows; Reddit still un-openable) | Sept-restart Paul decision: retire the cold lane or buy Reddit API access (backlog §c) | [`2607 backlog`](docs/projects/2607-vibe-code-rescue/backlog.md) | -| Test/CI hygiene | One known red (stale linux baseline) | Diff record-vs-test build paths before re-recording | [`2608 README §Known red`](docs/projects/2608-site-design-system/README.md) | +| Test/CI hygiene | **Gates rebuilt 2026-08-22.** Fault-injecting 8 realistic defects caught **3**; now catches **8** ([#576](https://github.com/jetthoughts/jetthoughts.github.io/pull/576), audit in [`20.11`](docs/20-29-testing-qa/20.11-gate-fault-injection-2026-08-22-reference.md)). Link job was excluding 90% of links — 114,050 checked now vs 15,642, and it found 5 real site defects ([#574](https://github.com/jetthoughts/jetthoughts.github.io/pull/574)). `bin/dtest` was comparing **nothing** from a worktree ([#578](https://github.com/jetthoughts/jetthoughts.github.io/pull/578)). CI Linux screenshot job green (run 32565008850) | **Paul decides the dtest arch policy** (below); otherwise nothing queued | [`test-gates`](.okf/build/test-gates.md) | **Not in flight**: 2604 typography — closed 2026-08-08 (P2 leftovers re-homed). 2509 CSS migration — **project complete 2026-07-19** (tracker in maintenance mode; the dormant remainder is the Phase-E groomed backlog + trigger-conditioned items); the 2608 clean-slate rail is the live CSS strategy ([ADR-0006](docs/adr/0006-clean-slate-dual-run.md)). @@ -32,6 +32,7 @@ | What | Where the full ask lives | |---|---| | Five 2608 decisions (register pick, 3 claims, first page, legacy CTO sweep, Sept measurement gate) | [`2608 README`](docs/projects/2608-site-design-system/README.md) | +| **dtest arch policy**: on an ARM Mac dtest now legitimately fails 8 codeblocks screenshots (arm64 container vs amd64 CI baselines) — screen those keys / pin the container to amd64 / let CI own the Linux leg | [`2608 README §Known red`](docs/projects/2608-site-design-system/README.md) | | **Joy Adamson override** (1 min; Paul's one override candidate from outreach batch 1, still publicly unanswered) | [`20.09 §1`](docs/projects/2510-seo-content-strategy/20-29-strategy/20.09-content-plan-revision-aug-2026.md) desk table + 2607 backlog card #12 | | Three 2605 fabricated-fact findings (five-tech-words client claim, $78K/$400 story, SVG chart stats) | [`2605 TASK-TRACKER`](docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md) §Aug-20 sweep | | 2607 T3 (Gmail warm-source consent) + T10 (split strategy docs, [#449](https://github.com/jetthoughts/jetthoughts.github.io/issues/449)) | [`2607 backlog`](docs/projects/2607-vibe-code-rescue/backlog.md) | diff --git a/docs/projects/2608-site-design-system/README.md b/docs/projects/2608-site-design-system/README.md index f6e4ca28c..ec4fcb11a 100644 --- a/docs/projects/2608-site-design-system/README.md +++ b/docs/projects/2608-site-design-system/README.md @@ -53,17 +53,46 @@ three offers (one a banned title claim), and its audit exhibit is presented as ## Known red, do not re-record blindly -`linux/mobile/blog/index/_pagination` fails at difference_level -`0.03960763888888889`, **identical across two runs** - which by this repo's own -rule means a stale committed baseline, not flake. It survived the #566 -re-record. Diff the `workflow_dispatch` record path against the `pull_request` -test path before touching it; the suspicion is they build the page differently -and blog-index pagination is driven by the post count. Details in `.okf/log.md`. - -## What the sprint shipped (PRs #560-#567, 2026-08-21) - -Visual gate un-blinded (#560) and 127 baselines re-recorded with the tolerance -shield deleted on a measurement (#566) - the macOS suite is green for the first -time since #540, and CI Linux red went from 22 keys to 1. Three register pilots -(#561-#563) with a cross-pilot specificity fix (#564), the demo board (#565), -and the session's working papers (#567). +**RESOLVED 2026-08-22.** `linux/mobile/blog/index/_pagination` was a real +content difference (0.0425, max_delta 238), fixed by an `update-baselines` +dispatch **on master**, where the recorder and the tester see the same tree - +recording on a feature branch is what had produced a baseline the PR run never +matched. Verified green: CI screenshot run 32565008850, zero failing keys. + +**The open one is different.** `bin/dtest` on an ARM Mac now fails 8 +`mobile/blog/special/codeblocks/*` screenshots at ~0.055-0.063, because the +container renders arm64 while the committed `linux/` baselines come from CI on +amd64. This only became visible once #578 fixed dtest comparing nothing at all +from a worktree - it is pre-existing, not a regression. Three options, none +free, and the choice is a speed-versus-fidelity call: + +1. screen those keys as known-arch and keep dtest fast, +2. pin the container to `linux/amd64` so local matches CI (correct, slower + under emulation - note `.dev/compose.yml` already declares + `platform: linux/amd64` on the `t` service while `bin/dc` exports + `DOCKER_DEFAULT_PLATFORM=linux/arm64/v8`; reconcile those before deciding), +3. let CI own the Linux leg entirely. + +Do not re-record them from a Mac either way: an arm64 candidate must never +overwrite the amd64 set (`.okf/build/test-gates.md`). + +## What the sprint shipped (PRs #560-#578, 2026-08-21/22) + +**The redesign**: three register pilots on the `/next/` rail (#561-#563) with a +cross-pilot specificity fix (#564), the demo board and panel vote (#565), and +the working papers (#567). + +**The instrument, which turned out to need more work than the redesign**: the +visual gate was blind by 50x and green runs restored old baselines over fresh +captures (#560); 127 baselines re-recorded with every diff classified and the +tolerance shield deleted on a measurement (#566); the noise floor is per-page, +so the hand-pinned `0.03` tolerances are load-bearing rather than padding +(#570); fault-injecting 8 realistic defects caught only **3** (#572), which +un-blinded the link checker - 114,050 links checked against 15,642, finding +five real site defects including a self-canonical pointing at a 404 and a +promised download that never existed (#574) - and then closed the gaps to +**8 of 8** (#576); and `bin/dtest` was found to be comparing **nothing** from a +git worktree, with five-worktree parallelism added alongside the fix (#578). + +The rule that came out of it, now blocking in `CLAUDE.md`: a new test is not +done until you have broken the code and watched it fail.