From d9ace7b6c8daed356cdaeb344bb0cd90108487aa Mon Sep 17 00:00:00 2001 From: Noah Lindner Date: Sun, 28 Jun 2026 19:30:56 -0400 Subject: [PATCH 1/4] site: hero heading -> "Clever code is a liability" Swap the hero h1 to lead with the thesis (clever code is the liability) and flag "liability" with a red wavy spellcheck-style underline, reusing the existing --flag token. Co-Authored-By: Claude Opus 4.8 --- site/src/pages/index.astro | 2 +- site/src/styles/global.css | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/site/src/pages/index.astro b/site/src/pages/index.astro index f40ceb3..a414b9f 100644 --- a/site/src/pages/index.astro +++ b/site/src/pages/index.astro @@ -89,7 +89,7 @@ const packs = [
-

Your taste,
not the model’s

+

Clever code
is a liability

AI agents are rats in a maze. They reach for what they know, and what they know is slop. diff --git a/site/src/styles/global.css b/site/src/styles/global.css index bda7729..768d883 100644 --- a/site/src/styles/global.css +++ b/site/src/styles/global.css @@ -88,6 +88,11 @@ section { padding: 6.5rem 0; border-top: 1px solid var(--line-soft); } font-size: clamp(2.8rem, 5.4vw, 4.5rem); font-weight: 400; line-height: 1.02; letter-spacing: -.025em; } +.hero h1 .squiggle { + text-decoration: underline wavy var(--flag); + text-decoration-thickness: 2px; + text-underline-offset: .12em; +} .hero .lede { margin-top: 1.6rem; max-width: 32rem; font-size: clamp(1.3rem, 1.9vw, 1.6rem); color: var(--ink); From 79a47594245eaa30d9e70dd62b40bf3080b86327 Mon Sep 17 00:00:00 2001 From: Noah Lindner Date: Thu, 2 Jul 2026 07:56:28 -0400 Subject: [PATCH 2/4] docs(rubric): flag regex/string-matching parsing of structured data as slop Co-Authored-By: Claude Fable 5 --- .review/RUBRIC.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.review/RUBRIC.md b/.review/RUBRIC.md index aa8aba0..c3c9b58 100644 --- a/.review/RUBRIC.md +++ b/.review/RUBRIC.md @@ -23,6 +23,9 @@ Edit it to match your team. Findings fall into two categories. - a defensive `?.` / `??` fallback on a value the type or schema already guarantees — e.g. `x?.foo ?? x.y.foo` when `x` is required (or should be). Drop the optional chain and the fallback (it's `x.foo`); if `x` is wrongly optional, fix the schema/type, don't paper over it at the call site + - regex or string matching (`match`, `split`, `indexOf`, `includes`) used to parse structured data — + JSON, HTML/JSX, code, URLs, file paths, SQL, semver — instead of the typed owner (`JSON.parse` + schema, + `URL`, `node:path`, an AST, the existing service). Regex is for genuinely flat text only - denormalized parallel constants or hardcoded membership lists (derive a Set/Record from ONE `as const` array) - speculative config seams / unused `mode` switches / injectable-override defaults nothing needs yet - additive churn on a cleanup; code that "looks productive" over the minimal change From b0821c341ada094dbdc2c0c126214719621c1c75 Mon Sep 17 00:00:00 2001 From: Noah Lindner Date: Thu, 2 Jul 2026 08:03:52 -0400 Subject: [PATCH 3/4] reword: regex is never the product mechanism Co-Authored-By: Claude Fable 5 --- .review/RUBRIC.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.review/RUBRIC.md b/.review/RUBRIC.md index c3c9b58..4089f71 100644 --- a/.review/RUBRIC.md +++ b/.review/RUBRIC.md @@ -23,9 +23,10 @@ Edit it to match your team. Findings fall into two categories. - a defensive `?.` / `??` fallback on a value the type or schema already guarantees — e.g. `x?.foo ?? x.y.foo` when `x` is required (or should be). Drop the optional chain and the fallback (it's `x.foo`); if `x` is wrongly optional, fix the schema/type, don't paper over it at the call site - - regex or string matching (`match`, `split`, `indexOf`, `includes`) used to parse structured data — - JSON, HTML/JSX, code, URLs, file paths, SQL, semver — instead of the typed owner (`JSON.parse` + schema, - `URL`, `node:path`, an AST, the existing service). Regex is for genuinely flat text only + - regex or string matching as the product mechanism — detecting, classifying, routing, or extracting + meaning by sniffing strings (`match`/`split`/`includes` heuristics). A fake owner: works on the examples + tried, silently breaks on the next input. **fix:** the structured field, schema, persisted state, real + parser, or model output that actually owns the answer. String matching is plumbing for flat text only - denormalized parallel constants or hardcoded membership lists (derive a Set/Record from ONE `as const` array) - speculative config seams / unused `mode` switches / injectable-override defaults nothing needs yet - additive churn on a cleanup; code that "looks productive" over the minimal change From 68c2c79bdafa16fa1355fe0484cb50418985bcb5 Mon Sep 17 00:00:00 2001 From: Noah Lindner Date: Fri, 3 Jul 2026 23:14:28 -0400 Subject: [PATCH 4/4] review: drop unrelated hero churn --- site/src/pages/index.astro | 2 +- site/src/styles/global.css | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/site/src/pages/index.astro b/site/src/pages/index.astro index a414b9f..f40ceb3 100644 --- a/site/src/pages/index.astro +++ b/site/src/pages/index.astro @@ -89,7 +89,7 @@ const packs = [

-

Clever code
is a liability

+

Your taste,
not the model’s

AI agents are rats in a maze. They reach for what they know, and what they know is slop. diff --git a/site/src/styles/global.css b/site/src/styles/global.css index 768d883..bda7729 100644 --- a/site/src/styles/global.css +++ b/site/src/styles/global.css @@ -88,11 +88,6 @@ section { padding: 6.5rem 0; border-top: 1px solid var(--line-soft); } font-size: clamp(2.8rem, 5.4vw, 4.5rem); font-weight: 400; line-height: 1.02; letter-spacing: -.025em; } -.hero h1 .squiggle { - text-decoration: underline wavy var(--flag); - text-decoration-thickness: 2px; - text-underline-offset: .12em; -} .hero .lede { margin-top: 1.6rem; max-width: 32rem; font-size: clamp(1.3rem, 1.9vw, 1.6rem); color: var(--ink);