diff --git a/STATUS.md b/STATUS.md index 453a79461..5dbce2afd 100644 --- a/STATUS.md +++ b/STATUS.md @@ -21,13 +21,13 @@ | LinkedIn (primary demand lane) | **LIVE** — 3 posts published (2026-08-13/18/19), first metrics read 2026-08-20; ICP-E lane on disk: 1 posted + 4 approved (of 10 planned), validation clock running | Post an approved draft (week1-tue / week1-wed) at Stream 0 cadence (3-4/wk) | [`metrics-ledger`](linkedin-posts/metrics-ledger.md) · [`plan`](docs/workflows/linkedin-icp-validation-plan.md) | | 2608 site design system (v2 `/next/` rail) | Paused 2026-08-22 mid-flight; 3 pilots built + voted | Apply the [repositioned pilot copy](docs/projects/2608-site-design-system/20-29-strategy/20.09-repositioned-pilot-copy.md) (2608's own 20.09 — not the content plan); then Paul's 5 decisions | [`2608 README`](docs/projects/2608-site-design-system/README.md) | | Positioning / homepage offer (2608 niche research + [ADR-0007](docs/adr/0007-homepage-main-offer-and-copy.md)) | **Paused 2026-08-22** — 8 research lanes complete, copy drafted + panel-voted, nothing shipped to the live site; landed on master via [#606](https://github.com/jetthoughts/jetthoughts.github.io/pull/606) | Resume via the HANDOFF — read its corrections first: the staffing constraint was briefed backwards, so every lane's discards need re-reading before acting on a shortlist | [`HANDOFF`](docs/projects/2608-niche-research/HANDOFF.md) | -| Blog / SEO (2510) | **Pipeline rebuilt and 3 posts shipped 2026-08-22.** It previously had no invokable way to produce a post - `/blog-next` never writes and the delivery half existed only as agents. Now three skills: `/blog-operator` (the door, REPAIR > UPGRADE > WRITE > RESTOCK), `/blog-next`, `/blog-write`. Live: [what-senior-developers-catch-that-ai-misses](content/blog/what-senior-developers-catch-that-ai-misses/index.md), [how-to-audit-content-you-didnt-write](content/blog/how-to-audit-content-you-didnt-write/index.md), [when-did-a-test-last-fail-on-purpose](content/blog/when-did-a-test-last-fail-on-purpose/index.md), plus an upgrade to claude-code-xp-team-workflow. Fabricated case studies purged from 14 posts; two ratchets live in `marketing_copy_test.rb` (fabrication baseline 9, uncited baseline 0 — 33→0 after batch-citing all 33 remaining posts 2026-08-24 — 34→33 after citing propshaft 2026-08-24). §1 outreach constraint still stands - Paul drove these directly. **2026-08-23: four more posts written and SCHEDULED (08-26, 09-02, 09-09, 09-16) on [#613](https://github.com/jetthoughts/jetthoughts.github.io/pull/613)**, then put through a four-lens cold-eyes panel that found 3 wrong claims, 2 internal contradictions and a set-level voice tic (20 of 26 section closers ended on a declarative verdict). All fixed except one: `delegate-the-goal-not-the-task` is HELD on a fabricated example (see Blocked on Paul). New defect class recorded in [`fabrication-ratchet`](.okf/content/fabrication-ratchet.md) — two verbatim quotes can compose into a false comparison, and the chart drawing it survives the prose fix. **2026-08-28: editorial-system blueprint consolidated** - four gate upgrades landed in the three skills (falsifiable-thesis outline test, evidence-pack excerpts + wording-strength, citation-spend tracing, code-rot REPAIR trigger); corpus-factory machinery rejected with reasons in [`90.13`](docs/90-99-content-strategy/strategy-analysis/90.13-editorial-system-consolidation-2026-08-28-reference.md). **2026-08-28 PM: `ai-powered-code-reviews-transforming-development-workflows` upgraded** on `blog/upgrade-ai-code-review-trust`. Root cause was structural, not voice: the post welded a first-hand engineering incident to a founder checklist that already exists as `dev-shop-ai-code-review-what-to-ask` (08-26), and the abstraction slop lived at the seam. Cut the second audience, 934 to 563 words. Four-lens panel + independent verifier + visual gate. Fixed: two false claims about our own fix, an unprovable attribution (no artifact preserves the failing response - `workflow.rb` has one commit and arrived fixed), and a proof link that 404d (`blob/main` on a repo with no `main` branch). Cover image added (was missing). The diagram SVG was carrying the exact aphorisms cut from the prose - text inside SVGs is invisible to every ratchet, new concept in [`blog-pipeline`](.okf/workflows/blog-pipeline.md). **§13p scheduled 09-09** as a §5 durable-news SWAP displacing §13l (now marked DISPLACED, returned to queue): RubyLLM 2.0 decomposed the agent loop, which is the seam our own published weakness (`findings.md` #5, a delegation budget is not a spend budget) had no place to live at. | **§13h**: COMPLETE — all 33 uncited posts now carry ## Sources. Every new substantial post will fail the ratchet unless cited. **N9** still parked: the AI code-search benchmark, design owed before any runs. **Panel gaps NOT closed on #613**: 0 of 4 posts carry a runnable code block (against `blog-writer-reference-samples.md`), and 0 carry a first-party number. | [`20.09 §13h`](docs/projects/2510-seo-content-strategy/20-29-strategy/20.09-content-plan-revision-aug-2026.md) **2026-08-28: [should-you-build-it-in-rails](content/blog/should-you-build-it-in-rails/index.md) written, SCHEDULED 09-23, on `blog/case-against-rails`.** The requested thesis (Rails ecosystem stability beats JS/TS for long-term SaaS) was FALSIFIED at primary and NOT published: Rails' own policy calls minors "major versions of Semver", both Rails and Next.js give 2-year windows, and Paul flagged the framework-vs-framework comparison as an unlike-scope error. Rebuilt around what a non-technical founder can actually check. Four-lens panel found a mis-trimmed policy quote and a hiring ratio inflated 3.4:1 to 8:1 by that unstable premise; both fixed. New concept in [`fabrication-ratchet`](.okf/content/fabrication-ratchet.md): the comparison itself can be the defect. **2026-08-28 PM: corpus credibility sweep, 13 PRs.** Repaired the LangChain guide ([#632](https://github.com/jetthoughts/jetthoughts.github.io/pull/632), dead clone repo + 27 stale imports + 19 dead model refs), swept the corpus for both classes ([#633](https://github.com/jetthoughts/jetthoughts.github.io/pull/633)), fixed leaked editing instructions and false cover declarations on top-traffic pages ([#634](https://github.com/jetthoughts/jetthoughts.github.io/pull/634)), and reached THREE different verdicts on three benchmark tables ([#638](https://github.com/jetthoughts/jetthoughts.github.io/pull/638) deleted - 1.2M jobs/day vs 12 jobs/sec is arithmetically impossible; [#639](https://github.com/jetthoughts/jetthoughts.github.io/pull/639) deleted - the 450/120/73 triple appeared across Rails AND Django; [#640](https://github.com/jetthoughts/jetthoughts.github.io/pull/640) KEPT and qualified - Falcon's tables are coherent, just unreproducible). Gate fixes: verdicts now bind to a sha ([#630](https://github.com/jetthoughts/jetthoughts.github.io/pull/630)), `test:links_external` wired to the daily cron after being dead code for months ([#636](https://github.com/jetthoughts/jetthoughts.github.io/pull/636)), visuals ratchet 72 to 69 ([#637](https://github.com/jetthoughts/jetthoughts.github.io/pull/637)). Corpus now: 0 dead models, 0 404 repos, 0 missing covers, 0 fabricated triples. | +| Blog / SEO (2510) | **Pipeline rebuilt and 3 posts shipped 2026-08-22.** It previously had no invokable way to produce a post - `/blog-next` never writes and the delivery half existed only as agents. Now three skills: `/blog-operator` (the door, REPAIR > UPGRADE > WRITE > RESTOCK), `/blog-next`, `/blog-write`. Live: [what-senior-developers-catch-that-ai-misses](content/blog/what-senior-developers-catch-that-ai-misses/index.md), [how-to-audit-content-you-didnt-write](content/blog/how-to-audit-content-you-didnt-write/index.md), [when-did-a-test-last-fail-on-purpose](content/blog/when-did-a-test-last-fail-on-purpose/index.md), plus an upgrade to claude-code-xp-team-workflow. Fabricated case studies purged from 14 posts; two ratchets live in `marketing_copy_test.rb` (fabrication baseline 9, uncited baseline 0 — 33→0 after batch-citing all 33 remaining posts 2026-08-24 — 34→33 after citing propshaft 2026-08-24). §1 outreach constraint still stands - Paul drove these directly. **2026-08-23: four more posts written and SCHEDULED (08-26, 09-02, 09-09, 09-16) on [#613](https://github.com/jetthoughts/jetthoughts.github.io/pull/613)**, then put through a four-lens cold-eyes panel that found 3 wrong claims, 2 internal contradictions and a set-level voice tic (20 of 26 section closers ended on a declarative verdict). All fixed except one: `delegate-the-goal-not-the-task` is HELD on a fabricated example (see Blocked on Paul). New defect class recorded in [`fabrication-ratchet`](.okf/content/fabrication-ratchet.md) — two verbatim quotes can compose into a false comparison, and the chart drawing it survives the prose fix. **2026-08-28: editorial-system blueprint consolidated** - four gate upgrades landed in the three skills (falsifiable-thesis outline test, evidence-pack excerpts + wording-strength, citation-spend tracing, code-rot REPAIR trigger); corpus-factory machinery rejected with reasons in [`90.13`](docs/90-99-content-strategy/strategy-analysis/90.13-editorial-system-consolidation-2026-08-28-reference.md). **2026-08-28 PM: `ai-powered-code-reviews-transforming-development-workflows` upgraded** and MERGED ([#642](https://github.com/jetthoughts/jetthoughts.github.io/pull/642)). Root cause was structural, not voice: the post welded a first-hand engineering incident to a founder checklist that already exists as `dev-shop-ai-code-review-what-to-ask` (08-26), and the abstraction slop lived at the seam. Cut the second audience, 934 to 563 words. Four-lens panel + independent verifier + visual gate. Fixed: two false claims about our own fix, an unprovable attribution (no artifact preserves the failing response - `workflow.rb` has one commit and arrived fixed), and a proof link that 404d (`blob/main` on a repo with no `main` branch). Cover image added (was missing). The diagram SVG was carrying the exact aphorisms cut from the prose - text inside SVGs is invisible to every ratchet, new concept in [`blog-pipeline`](.okf/workflows/blog-pipeline.md). **§13p scheduled 09-09** as a §5 durable-news SWAP displacing §13l (now marked DISPLACED, returned to queue): RubyLLM 2.0 decomposed the agent loop, which is the seam our own published weakness (`findings.md` #5, a delegation budget is not a spend budget) had no place to live at. | **§13h**: COMPLETE — all 33 uncited posts now carry ## Sources. Every new substantial post will fail the ratchet unless cited. **N9** still parked: the AI code-search benchmark, design owed before any runs. **Panel gaps NOT closed on #613**: 0 of 4 posts carry a runnable code block (against `blog-writer-reference-samples.md`), and 0 carry a first-party number. | [`20.09 §13h`](docs/projects/2510-seo-content-strategy/20-29-strategy/20.09-content-plan-revision-aug-2026.md) **2026-08-28: [should-you-build-it-in-rails](content/blog/should-you-build-it-in-rails/index.md) written, SCHEDULED 09-23, on `blog/case-against-rails`.** The requested thesis (Rails ecosystem stability beats JS/TS for long-term SaaS) was FALSIFIED at primary and NOT published: Rails' own policy calls minors "major versions of Semver", both Rails and Next.js give 2-year windows, and Paul flagged the framework-vs-framework comparison as an unlike-scope error. Rebuilt around what a non-technical founder can actually check. Four-lens panel found a mis-trimmed policy quote and a hiring ratio inflated 3.4:1 to 8:1 by that unstable premise; both fixed. New concept in [`fabrication-ratchet`](.okf/content/fabrication-ratchet.md): the comparison itself can be the defect. **2026-08-28 PM: corpus credibility sweep, 13 PRs.** Repaired the LangChain guide ([#632](https://github.com/jetthoughts/jetthoughts.github.io/pull/632), dead clone repo + 27 stale imports + 19 dead model refs), swept the corpus for both classes ([#633](https://github.com/jetthoughts/jetthoughts.github.io/pull/633)), fixed leaked editing instructions and false cover declarations on top-traffic pages ([#634](https://github.com/jetthoughts/jetthoughts.github.io/pull/634)), and reached THREE different verdicts on three benchmark tables ([#638](https://github.com/jetthoughts/jetthoughts.github.io/pull/638) deleted - 1.2M jobs/day vs 12 jobs/sec is arithmetically impossible; [#639](https://github.com/jetthoughts/jetthoughts.github.io/pull/639) deleted - the 450/120/73 triple appeared across Rails AND Django; [#640](https://github.com/jetthoughts/jetthoughts.github.io/pull/640) KEPT and qualified - Falcon's tables are coherent, just unreproducible). Gate fixes: verdicts now bind to a sha ([#630](https://github.com/jetthoughts/jetthoughts.github.io/pull/630)), `test:links_external` wired to the daily cron after being dead code for months ([#636](https://github.com/jetthoughts/jetthoughts.github.io/pull/636)), visuals ratchet 72 to 69 ([#637](https://github.com/jetthoughts/jetthoughts.github.io/pull/637)). Corpus now: 0 dead models, 0 404 repos, 0 missing covers, 0 fabricated triples. | | 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 | **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) | | Rendering stack → **arm64, and DONE** | **Closed 2026-08-22.** arm64 everywhere ([#589](https://github.com/jetthoughts/jetthoughts.github.io/pull/589) merged `efe85c228`, CfT `153.0.8010.5`, CI `ubuntu-24.04-arm`, compose PINS arm64). Baselines re-recorded on master (`dc11791ab`, all 55). **Local `bin/dtest` is now GREEN against CI's baselines — `55 compared, no failures`** — so the year-old codeblocks drift was stale baselines, not Debian-vs-Ubuntu, and five explanations were wrong. Gate verified discriminating by fault injection (0 → 16 → 0). `mem_limit: 4g` stays (Paul) | **Nothing queued.** `bin/dtest` is now authoritative for DETECTING visual defects (no expected-red list); CI still owns RECORDING. The GHCR container-publishing plan is CANCELLED — it existed only to close a gap that measurement says isn't open | [`rendering-stack`](.okf/build/rendering-stack.md) | -**Not in flight**: 2604 typography — closed 2026-08-08 (P2 leftovers re-homed); **re-opened for audit 2026-08-28** on Paul's request (scanning + reading experience) — measurement pass running, will land as its own PR since a stylesheet diff triggers the full visual gate and baseline re-records on both platforms. 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)). +**Not in flight**: 2604 typography — closed 2026-08-08 (P2 leftovers re-homed); **re-opened for audit 2026-08-28** on Paul's request (scanning + reading experience) — audit COMPLETE 2026-08-28. Verdict: the surface is measured-good (body 22.4px/1.7, empirical 57-67 chars/line, contrast 18.7:1, heading proximity already correct) - 2604 built it and it holds. Only live finding was the dek reading smaller/fainter than the body it introduces; NOT actioned, and Paul's actual ask turned out to be CONTENT formatting, not CSS - delivered instead as voice-guide section 2 markup on the AI-review post. Fence-size change withdrawn (a benchmarked 2604 decision). Byproducts: 2509 Phase D column-width backlog item can close as "keep 680px, evidence attached", and [#644](https://github.com/jetthoughts/jetthoughts.github.io/pull/644) deletes a dead mobile fence rule that silently superseded a 2604 decision. 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)). ## Blocked on Paul diff --git a/docs/projects/2604-typography-ux/findings-mobile-ux.md b/docs/projects/2604-typography-ux/findings-mobile-ux.md index cf2d430fe..64f745164 100644 --- a/docs/projects/2604-typography-ux/findings-mobile-ux.md +++ b/docs/projects/2604-typography-ux/findings-mobile-ux.md @@ -60,6 +60,13 @@ H1→H2 = 1.33×, H2→body = 1.41× (good). H3→body = 1.12× (tight). } /* 3. Code block: smaller token + tighter padding */ + SUPERSEDED 2026-08-28: the font-size half never took effect. A later global + `.blog pre code { font-size: 15.5px }` sorts after this block, and media + queries add no specificity, so mobile has always rendered 15.5px. Re-measured + at 390x844 in Aug 2026: fences wrap (pre-wrap), scroll is contained, no + horizontal page overflow - the horizontal-scroll concern this rule addressed + does not reproduce. Ratified rather than restored; the dead declaration is + deleted. The padding half was always live and stays. */ @media (max-width: 768px) { .blog pre code { font-size: 14.5px; line-height: 1.6; } .blog pre { padding: 18px 20px; } diff --git a/themes/beaver/assets/css/style.css b/themes/beaver/assets/css/style.css index e0b843c10..a2c8759bf 100644 --- a/themes/beaver/assets/css/style.css +++ b/themes/beaver/assets/css/style.css @@ -433,14 +433,13 @@ font-size: 18px; line-height: 1.55; } - /* Code blocks: tighter padding + smaller token to reduce horizontal scroll */ + /* Code blocks: tighter padding to reduce horizontal scroll. The token size + that used to live here was dead - the global .blog pre code rule below + sorts later and media queries add no specificity, so mobile always + rendered 15.5px. Measured fine at that size; ratified 2026-08-28. */ .blog pre { padding: 18px 20px; } - .blog pre code { - font-size: 14.5px; - line-height: 1.6; - } } /* Inline code: inherit paragraph line-height so wrapped code stays on baseline */