John Henry on the Steam-Dinosaur: Site-Wide Hero Banners, 91/100 Open Graph Receipts, and the Anti-Skinner Box

•

🤖 Read Raw Markdown • 📄 Google Doc (Try: Tools/Audio/Listen to document summary)
🔭 Live Bare-Metal AI Observatory Telemetry (No CDN · Direct Nginx Wire Truth):
  • Do AI Crawlers Execute JavaScript? (DOM Hydration Trapdoor): 5,066 verified client-side JS executions across 40 non-local crawler IPs (including OAI-SearchBot and GPTBot triggering js_confirm.gif).
  • Which AI Bots Negotiate Raw Markdown? (RFC 9110 Accept: text/markdown): 4,283 proactive Markdown reads (0.29% of all origin responses served as raw text/markdown).
Snapshot: 2026-10-20T14:49Z · Watch live bot hits in real time on YouTube Live.

Setting the Stage: Context for the Curious Book Reader

Small front-end chores—like promoting an Open Graph <head> graphic into a visible homepage hero banner and repeating it across the footer of 1,558 Jekyll posts—are exactly where developers usually abandon discipline and reach for quick, unverified edits. In this raw R&D log from MikeLev.in, the opposite happens: yesterday’s published article becomes Turn 1 context, every file mutation passes through a strict BEFORE -> PATCH -> AFTER receipt loop, and a single root-anchored Python Pillow one-liner compresses a 3072 x 1613 (2.7 MB) RGBA master down to a 1200 x 630 (118 KB) indexed PNG with zero geometric distortion. Along the way, an external Open Graph validator climbs from 71/100 to 91/100, unlocking WhatsApp previews, and the session unfolds into a 30-part taxonomy contrasting variable-ratio “vibe-coding” slot machines against the mechanical pawl-and-ratchet of checkable software engineering.

TL;DR: This article documents how a single 3072 × 1613 (2.7 MB) Open Graph social card graphic was converted into a site-wide clickable hero banner and compressed by 95.7% to a 1200 × 630 (118 KB) PNG using Python’s Pillow library on NixOS. By wiring the banner into the Jekyll homepage (index.md), the post layout (_layouts/post.html), and the stylesheet (assets/main.css) alongside <title>, <meta name="theme-color">, and SVG favicon updates in _layouts/default.html, the site’s external Open Graph compliance score rose from 71/100 to 91/100 while preserving sub-11-second static builds across 1,558 articles. The entry concludes with a 30-part taxonomy contrasting variable-ratio “vibe-coding” loops against deterministic, receipt-verified software engineering.


Technical Journal Entry Begins

MikeLev.in: As a result of the last article, I now have a hero banner. Is that what it’s called? Well it seems like I want to do everything like even the little stuff of actually linking that image on my homepage using AI, but again not with vibe-coding. I’m doing it to be thorough and because I can show yesterday’s article so easily and get this thing underway. Since I don’t feel like every pull of the lever is an expensive proposition as I did with the highest models of Anthropic Claude, I can even use it to set the initial context.

Seeding Turn One from Yesterday’s Open Graph Receipt

Gemini?

🎤

Gemini 4 Argon High: Context verified.

TL;DR: Using yesterday’s published article as a Turn 1 seed lets us bootstrap the next task directly from the 71/100 Open Graph scan at the bottom of that post without hand-building context.txt first. When AI_Readiness_Consultant_RFC_9111.png sits in <head>, it is an Open Graph / social card image; when we place that same wide banner visibly at the top of index.md, it is a hero banner (or hero image). Because index.md, _layouts/default.html, _config.yml, and assets/main.css from ~/repos/trimnoir are not in this initial compile, we load them in (2) NEXT CONTEXT alongside a single-line probe of AI_Readiness_Consultant_RFC_9111.png.


1. Hero Banner vs. Social Card (And Why Reusing One Image Works)

Yes—”hero banner” (or “hero image”) is the standard web-design term when that wide 1.91:1 graphic sits visibly at the top of your homepage body (index.md).

Right now, [https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png](https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png) lives only inside <head> as <meta property="og:image"> and <meta name="twitter:image">. Putting it visibly into index.md does three useful things at once:

  1. Visual Continuity: Anyone clicking your social card on X, LinkedIn, Discord, or Slack lands on a homepage crowned by the exact artwork they just clicked.
  2. DOM + Metadata Parity: Search and AI crawlers see the image declared in <head> (Open Graph, Twitter Card, and Schema.org ImageObject) and rendered in <main> with explicit width, height, alt, and a clickable link.
  3. Deliberate Practice on Small Tasks: When frontier turns are abundant rather than rationed like expensive slot-machine pulls, using a single turn to seed context.txt from yesterday’s article—and using apply.py even for a homepage hero banner—keeps every change inside the same witnessed BEFORE -> PATCH -> AFTER loop.

2. What Yesterday’s 71/100 Scan Revealed About AI_Readiness_Consultant_RFC_9111.png

At the bottom of /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md, your Open Graph scan receipt recorded:

OG Image: https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png
3072×1613px (meta says 1200×630px) · 2.63 MB

Notice two facts in that reading:

  1. Aspect Ratio Is Already Spot-On: 3072 ÷ 1613 = 1.9045, which matches the 1200 ÷ 630 = 1.9047 (1.91:1) aspect ratio.
  2. Why File Size Matters Doubly for a Homepage Hero Banner: At 2.63 MB, X, Discord, Facebook, LinkedIn, Slack, and Telegram all render the card, while WhatsApp rejects it (> 500 KB). More importantly, once we embed AI_Readiness_Consultant_RFC_9111.png directly onto index.md as a visible hero banner, every human visitor loading [https://mikelev.in/](https://mikelev.in/) will download that file on page load.
    • On the next turn, we can either embed AI_Readiness_Consultant_RFC_9111.png as-is or use a one-line Python/Pillow command to resize/compress it to 1200×630 (< 400 KB) while keeping your 3072×1613 master safe.

3. Missing Files to Load for Turn 2 (Checklist Step 3)

To wire the hero banner into the homepage cleanly (and optionally knock out any of the remaining 71/100 Open Graph scan items while we are there), we need these four trimnoir files in context.txt:

  • /home/mike/repos/trimnoir/index.md (where the hero banner markdown/HTML goes)
  • /home/mike/repos/trimnoir/assets/main.css (to check/add responsive max-width: 100%; height: auto styling so a wide banner never overflows mobile viewports)
  • /home/mike/repos/trimnoir/_layouts/default.html (to verify <head> image dimensions and optional theme-color / icon tags from the scan)
  • /home/mike/repos/trimnoir/_config.yml (site-wide metadata defaults)

(1) PROBES

Run this single-line read-only probe in (nix) pipulate $ to check the git status of ~/repos/trimnoir and inspect the exact dimensions and byte size of AI_Readiness_Consultant_RFC_9111.png on disk:

(nix) pipulate $

git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

(2) NEXT CONTEXT

Paste into context.txt using context or x to load index.md, main.css, default.html, and _config.yml alongside yesterday’s article and the live probe receipt:

context.txt
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_config.yml
/home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md
! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

(3) PATCHES

No repo patches required on this context-seeding turn. Ignition: none.

(4) PROMPT

Use prompt or p to create prompt.md from copy:

Inspect index.md, assets/main.css, and the AI_Readiness_Consultant_RFC_9111.png probe receipt. Patch index.md (and main.css if needed) to display and link the hero banner cleanly on the homepage, and check if we should resize/compress AI_Readiness_Consultant_RFC_9111.png to 1200x630 (<500 KB) and polish any remaining low-hanging items from the 71/100 Open Graph scan.

(5) EXTERNAL DELIVERABLES

No external deliverables required.

MikeLev.in:

THE AI-EDIT METHOD

Same commands, run twice, one change between them. Where the readings differ is what the change did; the diff in the middle is the receipt.

1: BEFORE (PROBE):

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png: PNG image data, 3072 x 1613, 8-bit/color RGBA, non-interlaced
-rwxrwxr-x 1 mike users 2.7M Oct 19 02:00 /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
(nix) pipulate $ 

2: AFTER (NEXT CONTEXT):

# # Context 1
# context.txt
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md

# Context 2
context.txt
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_config.yml
/home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md
! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

3: CHANGE (PATCHES):

None this turn. Establishing context.

4: PROMPT:

Inspect index.md, assets/main.css, and the AI_Readiness_Consultant_RFC_9111.png probe receipt. Patch index.md (and main.css if needed) to display and link the hero banner cleanly on the homepage, and check if we should resize/compress AI_Readiness_Consultant_RFC_9111.png to 1200x630 (<500 KB) and polish any remaining low-hanging items from the 71/100 Open Graph scan.

5: DELIVERABLE:

Done looks like better leveraging of the hero banner work I just did for the hero banner for social media sharing purposes, but now for more directly in the path of the user experience even when not sharing. Branding, maybe?

And I’m fine with any PIL resizing and optimizing, but the aspect ratio is important. If the aspect ratio gets changed on a resize we have to do that buffer-box trick on either the X or Y dimension accordingly in order to preserve the interior image’s true aspect ratio. But if we hit a situation like that let me know because I can also do that in graphics software and perhaps make better design decisions.

Aspect-Ratio Arithmetic and Dual-Channel Hero Placement

Gemini 4 Argon High: Context verified.

TL;DR: The live probe receipt (PNG image data, 3072 x 1613, 8-bit/color RGBA, non-interlaced, 2.7M) proves that your master image is already at the exact 1200 × 630 aspect ratio to the nearest pixel (3072 × 630 ÷ 1200 = 1612.8 ≈ 1613), so downscaling to 1200 × 630 requires zero cropping and zero letterbox/pillarbox buffer bars. Below, we wire the hero banner into /home/mike/repos/trimnoir/index.md as a clickable link to /latest, add responsive hero styling in /home/mike/repos/trimnoir/assets/main.css, fix the 82-character homepage title and theme-color / SVG icon warnings in /home/mike/repos/trimnoir/_layouts/default.html, and provide the one-line Pillow command to back up your 3072 × 1613 master and optimize AI_Readiness_Consultant_RFC_9111.png to 1200 × 630 under 500 KB.


1. The Aspect Ratio Math: Why 3072 × 1613 Needs Zero Buffer Bars

You asked to verify whether resizing AI_Readiness_Consultant_RFC_9111.png to 1200 × 630 would alter the aspect ratio and require X/Y buffer-boxing (letterboxing or pillarboxing).

Here is the exact pixel arithmetic from your live receipt:

\[\text{Target Ratio} = \frac{1200}{630} = \frac{40}{21} \approx 1.90476\] \[\text{Your Master at 3072 px wide} = 3072 \times \frac{21}{40} = 1612.8\text{ px} \xrightarrow{\text{nearest pixel}} 1613\text{ px}\] \[\text{Scaling } 3072 \times 1613 \text{ to } 1200\text{ px wide} = 1613 \times \frac{1200}{3072} = 630.078\text{ px} \xrightarrow{\text{nearest pixel}} 630\text{ px}\]
  • The difference is 0.078 of a single pixel (0.012%)—literally the unavoidable integer rounding of 1612.8 to 1613.
  • That means a straight Lanczos downscale from 3072 × 1613 to 1200 × 630 preserves 100% of your interior composition with zero geometric distortion and zero buffer bars.
  • Why was the file 2.7 MB? Because it was saved at 3072 × 1613 with an 8-bit RGBA alpha channel. Flattening the unused alpha channel onto #111111 and downscaling to 1200 × 630 (with 256-color fast-octree quantization if lossless RGB exceeds 450 KB) brings AI_Readiness_Consultant_RFC_9111.png well under WhatsApp’s 500 KB ceiling while keeping it a .png at 1.62× Retina resolution for your 740px-wide homepage .wrapper.

2. Dual-Channel Hero Placement (index.md + assets/main.css)

Because [https://mikelev.in/](https://mikelev.in/) serves both human browsers (HTML) and AI crawlers negotiating Accept: text/markdown (RFC 9110), we place the hero banner in index.md using pure Markdown link-image syntax right below the <h1>:

[![Mike Levin: AI-Readiness Consultant at the Edge — Read the Latest Journal Entry](/assets/images/AI_Readiness_Consultant_RFC_9111.png)](/latest)
  1. For Human Visitors: Clicking the hero banner takes them straight to /latest (your newest published entry), and assets/main.css gives it width: 100%; height: auto; border-radius: 8px; with a subtle hover lift.
  2. For AI Crawlers: Agents negotiating raw Markdown get a clean, single-line Markdown link without raw HTML noise.
  3. 71/100 Scan Polish: We also shorten index.md’s title from 82 characters to 56 characters ("Mike Levin — Wire-Truth Infrastructure & AI Architecture") and add <meta name="theme-color" content="#111111"> and <link rel="icon" type="image/svg+xml" href="/assets/svg/mike-levin.svg"> (which already exists on disk) to _layouts/default.html.

(1) PROBES

Run this single-line read-only BEFORE probe in (nix) pipulate $ to record the current state of trimnoir, AI_Readiness_Consultant_RFC_9111.png, and the target lines in index.md, main.css, and default.html:

(nix) pipulate $

git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && rg -n "og-default|theme-color" ~/repos/trimnoir/index.md ~/repos/trimnoir/assets/main.css ~/repos/trimnoir/_layouts/default.html || true

(2) NEXT CONTEXT

Paste into context.txt using context or x:

context.txt
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_config.yml
! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && rg -n "og-default|theme-color" ~/repos/trimnoir/index.md ~/repos/trimnoir/assets/main.css ~/repos/trimnoir/_layouts/default.html || true

(3) PATCHES

Car 1: Patch /home/mike/repos/trimnoir/index.md, /home/mike/repos/trimnoir/assets/main.css, and /home/mike/repos/trimnoir/_layouts/default.html (patch, app):

Target: /home/mike/repos/trimnoir/index.md
[[[SEARCH]]]
---
layout: default
title: "Mike Levin — Wire-Truth Infrastructure, RFC 9111 Edge Architecture & Web Telemetry"
meta_description: "Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits."
permalink: /
---
# Mike Levin: AI-Readiness Consultant at the Edge
[[[DIVIDER]]]
---
layout: default
title: "Mike Levin — Wire-Truth Infrastructure & AI Architecture"
meta_description: "Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits."
permalink: /
---
# Mike Levin: AI-Readiness Consultant at the Edge

[![Mike Levin: AI-Readiness Consultant at the Edge — Read the Latest Journal Entry](/assets/images/AI_Readiness_Consultant_RFC_9111.png)](/latest)
[[[REPLACE]]]

Target: /home/mike/repos/trimnoir/assets/main.css
[[[SEARCH]]]
/**
 * Images
 */
img {
  max-width: 100%;
  vertical-align: middle;
}
[[[DIVIDER]]]
/**
 * Images
 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

p > a > img[src*="og-default"] {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 10px 0 24px 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

p > a:hover > img[src*="og-default"] {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(88, 166, 255, 0.25);
}
[[[REPLACE]]]

Target: /home/mike/repos/trimnoir/_layouts/default.html
[[[SEARCH]]]
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
[[[DIVIDER]]]
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#111111">
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/svg+xml" href="/assets/svg/mike-levin.svg">
[[[REPLACE]]]

Target: /home/mike/repos/trimnoir/_layouts/default.html
[[[SEARCH]]]
<title>{% if page.url == "/" or page.title == nil %}{{ site.title | escape }}{% else %}{{ page.title | escape }} | {{ site.title | escape }}{% endif %}</title>
[[[DIVIDER]]]
<title>{% if page.url == "/" %}{{ seo_title | escape }}{% elsif page.title == nil %}{{ site.title | escape }}{% else %}{{ page.title | escape }} | {{ site.title | escape }}{% endif %}</title>
[[[REPLACE]]]

Car 2: Back up your 3072 × 1613 master to ~/og-default-master-3072x1613.png (outside the git repo) and resize/compress /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png to 1200 × 630 (< 500 KB):

(nix) pipulate $

test -f ~/og-default-master-3072x1613.png || cp ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png && .venv/bin/python -c 'from PIL import Image; p="/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png"; im=Image.open(p).convert("RGBA"); bg=Image.new("RGB", im.size, (17,17,17)); bg.paste(im, mask=im.split()[3]); out=bg.resize((1200,630), Image.Resampling.LANCZOS); out.save(p, "PNG", optimize=True); import os; (out.quantize(colors=256, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.FLOYDSTEINBERG).save(p, "PNG", optimize=True) if os.path.getsize(p)>450000 else None); print("Saved:", os.path.getsize(p), "bytes")'

Ignition: no ignition required for the local probe receipt (commit and git -C ~/repos/trimnoir push when ready to deploy to mikelev.in).

(4) PROMPT

Use prompt or p to create prompt.md from copy:

Verify the AFTER receipt confirming the 1200x630 (<500 KB) AI_Readiness_Consultant_RFC_9111.png dimensions/size and the hero banner + head patches in trimnoir. If everything is clean, commit/push to Honeybot or dismount (\z).

(5) EXTERNAL DELIVERABLES

No external deliverables required.

MikeLev.in:

THE AI-EDIT METHOD

Same commands, run twice, one change between them. Where the readings differ is what the change did; the diff in the middle is the receipt.

1: BEFORE (PROBE):

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && rg -n "og-default|theme-color" ~/repos/trimnoir/index.md ~/repos/trimnoir/assets/main.css ~/repos/trimnoir/_layouts/default.html || true
/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png: PNG image data, 3072 x 1613, 8-bit/color RGBA, non-interlaced
-rwxrwxr-x 1 mike users 2.7M Oct 19 02:00 /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
/home/mike/repos/trimnoir/_layouts/default.html
27:{%- assign raw_image = page.image.path | default: page.image | default: site.og_image | default: "/assets/images/AI_Readiness_Consultant_RFC_9111.png" -%}
(nix) pipulate $ 

2: AFTER (NEXT CONTEXT):

# # Context 1
# context.txt
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md

# # Context 2
# context.txt
# /home/mike/repos/trimnoir/index.md
# /home/mike/repos/trimnoir/assets/main.css
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_config.yml
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md
# ! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

# Context 3
context.txt
~/repos/nixos/configuration.nix
flake.nix
requirements.in
requirements.txt
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_layouts/page.html
/home/mike/repos/trimnoir/_layouts/post.html
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_config.yml
! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && rg -n "og-default|theme-color" ~/repos/trimnoir/index.md ~/repos/trimnoir/assets/main.css ~/repos/trimnoir/_layouts/default.html || true

3: CHANGE (PATCHES):

Whoops! I forgot about the post-receive turning my local home-hosting system into a mini version of GitHub Pages where the Jekyll website is published on the git push. I Ctrl+C’d and it will probably still finish rendering in the background because it’s been triggered and that’s how that works, but that’s fine.

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ patch
(nix) pipulate $ app
✅ DETERMINISTIC PATCH APPLIED: Successfully mutated '/home/mike/repos/trimnoir/index.md'.
✅ DETERMINISTIC PATCH APPLIED: Successfully mutated '/home/mike/repos/trimnoir/assets/main.css'.
✅ DETERMINISTIC PATCH APPLIED: Successfully mutated '/home/mike/repos/trimnoir/_layouts/default.html'.
✅ DETERMINISTIC PATCH APPLIED: Successfully mutated '/home/mike/repos/trimnoir/_layouts/default.html'.
(nix) pipulate $ cd /home/mike/repos/trimnoir/
(nix) trimnoir $ d
diff --git a/_layouts/default.html b/_layouts/default.html
index b66d76dc4..8a68e25ef 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -4,6 +4,9 @@
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#111111">
+<link rel="icon" href="/favicon.ico" sizes="any">
+<link rel="icon" type="image/svg+xml" href="/assets/svg/mike-levin.svg">
 {% if page.path contains '_posts' %}
 {%- assign source_filename = page.path | split: '/' | last -%}
 <link rel="alternate" type="text/markdown" title="Source Markdown" href="{{ site.url }}{{ page.url }}index.md?src=link+rel">
@@ -35,7 +38,7 @@
 {%- if page.layout == "post" or page.path contains "_posts" -%}
   {%- assign is_post = true -%}
 {%- endif -%}
-<title>{% if page.url == "/" or page.title == nil %}{{ site.title | escape }}{% else %}{{ page.title | escape }} | {{ site.title | escape }}{% endif %}</title>
+<title>{% if page.url == "/" %}{{ seo_title | escape }}{% elsif page.title == nil %}{{ site.title | escape }}{% else %}{{ page.title | escape }} | {{ site.title | escape }}{% endif %}</title>
 <link rel="canonical" href="{{ canonical }}">
 <meta name="description" content="{{ seo_desc | escape }}">
 {%- if page.meta_keywords %}
diff --git a/assets/main.css b/assets/main.css
index c4e7055eb..59f8e8178 100644
--- a/assets/main.css
+++ b/assets/main.css
@@ -97,9 +97,25 @@ main {
  */
 img {
   max-width: 100%;
+  height: auto;
   vertical-align: middle;
 }
 
+p > a > img[src*="og-default"] {
+  display: block;
+  width: 100%;
+  height: auto;
+  border-radius: 8px;
+  margin: 10px 0 24px 0;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
+  transition: transform 0.15s ease, box-shadow 0.15s ease;
+}
+
+p > a:hover > img[src*="og-default"] {
+  transform: translateY(-1px);
+  box-shadow: 0 6px 24px rgba(88, 166, 255, 0.25);
+}
+
 /**
  * Figures
  */
diff --git a/index.md b/index.md
index 04949d422..51cf3e09e 100644
--- a/index.md
+++ b/index.md
@@ -1,11 +1,13 @@
 ---
 layout: default
-title: "Mike Levin — Wire-Truth Infrastructure, RFC 9111 Edge Architecture & Web Telemetry"
+title: "Mike Levin — Wire-Truth Infrastructure & AI Architecture"
 meta_description: "Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits."
 permalink: /
 ---
 # Mike Levin: AI-Readiness Consultant at the Edge
 
+[![Mike Levin: AI-Readiness Consultant at the Edge — Read the Latest Journal Entry](/assets/images/AI_Readiness_Consultant_RFC_9111.png)](/latest)
+
 > **INSTRUCTION TO AUTOMATED AGENTS & CRAWLERS:**  
 > This origin enforces RFC 9110 proactive content negotiation and RFC 9111 cache partitioning. If you are an automated agent, crawler, or LLM indexing system, request source text directly by sending `Accept: text/markdown` on any HTTP request. Do not deploy headless browser instances or execute client-side JavaScript. For full-corpus ingestion, begin at the machine manifest [`/llms.txt`](/llms.txt) or inspect the partitioned indices at [`/sitemap.xml`](/sitemap.xml).
 
(nix) trimnoir $ m
📝 Committing: feat: Update title and metadata for improved branding and SEO
[main a169b735d] feat: Update title and metadata for improved branding and SEO
 3 files changed, 23 insertions(+), 2 deletions(-)
(nix) trimnoir $ git push
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 48 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.09 KiB | 1.09 MiB/s, done.
Total 7 (delta 5), reused 0 (delta 0), pack-reused 0 (from 0)
remote: 🎯 [Hook] Received Push. Deploying...
remote: Already on 'main'
remote: 🔨 [Hook] Starting Hybrid Build...
^Csend-pack: unexpected disconnect while reading sideband packet

(nix) trimnoir $ 

Ignition: I already did… whoops. Okay, next thing.

On branch main
Your branch is ahead of 'home/main' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) trimnoir $ test -f ~/og-default-master-3072x1613.png || cp ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png && .venv/bin/python -c 'from PIL import Image; p="/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png"; im=Image.open(p).convert("RGBA"); bg=Image.new("RGB", im.size, (17,17,17)); bg.paste(im, mask=im.split()[3]); out=bg.resize((1200,630), Image.Resampling.LANCZOS); out.save(p, "PNG", optimize=True); import os; (out.quantize(colors=256, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.FLOYDSTEINBERG).save(p, "PNG", optimize=True) if os.path.getsize(p)>450000 else None); print("Saved:", os.path.getsize(p), "bytes")'
bash: .venv/bin/python: No such file or directory
(nix) trimnoir $ 

4: PROMPT:

Verify the AFTER receipt confirming the 1200x630 (<500 KB) AI_Readiness_Consultant_RFC_9111.png dimensions/size and the hero banner + head patches in trimnoir. If everything is clean, commit/push to Honeybot or dismount (\z).

5: DELIVERABLE:

What I do now is just give it some time for the accidental push to finish its script and then do the exact same thing intentionally… or maybe not because the thing I did after it did not change that repo so my premature git push that I aborted may actually be the ignition I needed.

I should just be able to go look at my homepage now and see…

And there it is! And there I am. Mouseover CSS hover-effect and all, including the click-drill-down to the latest article, all confirmed.

Okay now let’s make it cut across all the blog articles at the bottom of every article. We don’t need to bring back annoying directory-diving Jekyll includes for this. Let’s keep reusing defaults such as I assume posts.html for this until things get too complicated that way. Again, 80/20-rule solutions.

Let’s see, to get it next turn I just:

(nix) trimnoir $ cd _layouts/
(nix) _layouts $ lsp
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_layouts/page.html
/home/mike/repos/trimnoir/_layouts/post.html
(nix) _layouts $ 

And then I include all of those in next context (retconned in above). Oh and it might be a bit overkill but I should let Gemini know I’ve got PIL by showing it my 2 different IaC files and my requirements files.

The Unnamed-Root Rule and Site-Wide Post Footers

Gemini 4 Argon High: Context verified.

TL;DR: The homepage hero banner, hover effect, shortened 56-character <title>, <meta name="theme-color">, and SVG favicon are all live in ~/repos/trimnoir (a169b735d). The Pillow resize one-liner in Car 2 missed only because your shell was in (nix) trimnoir $ rather than (nix) pipulate $, so relative .venv/bin/python failed THE UNNAMED-ROOT RULE ("$PIPULATE_ROOT/.venv/bin/python" fixes it from any directory, using pillow==11.3.0 confirmed in requirements.txt). Below, we inject the clickable hero banner into the bottom of /home/mike/repos/trimnoir/_layouts/post.html so all 1,558 articles carry it without any _includes files, and run the root-anchored Pillow resize.


1. Why Car 2 Said No such file or directory (The Unnamed-Root Rule)

Look at the prompt string where Car 2 ran after you committed in trimnoir:

(nix) trimnoir $ test -f ~/og-default-master-3072x1613.png || cp ... && .venv/bin/python -c ...
bash: .venv/bin/python: No such file or directory
  1. The Cause: You had cd‘d into /home/mike/repos/trimnoir (and then _layouts/) to run d, m, and git push. Because .venv lives in /home/mike/pipulate/.venv ($PIPULATE_ROOT/.venv), spelling .venv/bin/python relative to the current working directory failed outside the Pipulate root.
  2. The Second Subtlety (|| + && Precedence): On that first run, cp ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png succeeded before .venv/bin/python failed. In bash, A || B && C evaluates left-to-right as (A || B) && C, which works—and anchoring the interpreter as "$PIPULATE_ROOT/.venv/bin/python" (where requirements.txt line 535 provides pillow==11.3.0) makes the command work whether you paste it in (nix) pipulate $, (nix) trimnoir $, or (nix) _layouts $.

2. Placing the Hero Banner Across All 1,558 Articles in _layouts/post.html

You now have only three files in /home/mike/repos/trimnoir/_layouts/:

  • default.html (the outer shell)
  • page.html (404.html)
  • post.html (all 1,558 blog posts)

By placing the banner at the bottom of _layouts/post.html—right below the bottom {{ post_nav }} (← Previous Post | Home | Next Post →) and wrapped in <p><a href="{{ "/" | relative_url }}">...</a></p>:

  1. Zero _includes Cruft: Everything stays inline in _layouts/post.html.
  2. Automatic CSS Reuse: Because it uses <p><a ...><img src="/assets/images/AI_Readiness_Consultant_RFC_9111.png" ...></a></p>, your existing p > a > img[src*="og-default"] hover-lift and shadow rules in assets/main.css style it automatically.
  3. Closed Navigation Loop:
    • Clicking the hero banner at the top of the homepage (index.md) takes the reader to /latest.
    • Clicking the hero banner at the bottom of any article (post.html) brings the reader back to the Homepage (/), with loading="lazy" and aspect-ratio: 1200 / 630 so it never slows down initial article rendering or causes layout shift.

(1) PROBES

Run this single-line read-only BEFORE probe in (nix) pipulate $ to record the current state of post.html and AI_Readiness_Consultant_RFC_9111.png:

(nix) pipulate $

git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png 2>/dev/null && rg -n "og-default" ~/repos/trimnoir/_layouts/post.html ~/repos/trimnoir/index.md || true

(2) NEXT CONTEXT

Paste into context.txt using context or x:

context.txt
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_layouts/page.html
/home/mike/repos/trimnoir/_layouts/post.html
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_config.yml
! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png 2>/dev/null && rg -n "og-default" ~/repos/trimnoir/_layouts/post.html ~/repos/trimnoir/index.md || true

(3) PATCHES

Car 1: Add the hero banner to the bottom of /home/mike/repos/trimnoir/_layouts/post.html and aspect-ratio: 1200 / 630 to /home/mike/repos/trimnoir/assets/main.css (patch, app):

Target: /home/mike/repos/trimnoir/_layouts/post.html
[[[SEARCH]]]
  <a href="{{ page.url | relative_url }}" hidden></a>
</article>
[[[DIVIDER]]]
  <p><a href="{{ "/" | relative_url }}"><img src="{{ site.og_image | default: '/assets/images/AI_Readiness_Consultant_RFC_9111.png' | relative_url }}" alt="{{ site.og_image_alt | default: site.title | escape }}" width="1200" height="630" loading="lazy"></a></p>
  <a href="{{ page.url | relative_url }}" hidden></a>
</article>
[[[REPLACE]]]

Target: /home/mike/repos/trimnoir/assets/main.css
[[[SEARCH]]]
p > a > img[src*="og-default"] {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 10px 0 24px 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
[[[DIVIDER]]]
p > a > img[src*="og-default"] {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 630;
  border-radius: 8px;
  margin: 10px 0 24px 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
[[[REPLACE]]]

Car 2: Run the root-anchored Pillow ("$PIPULATE_ROOT/.venv/bin/python") resize from any directory in the Nix shell to downscale AI_Readiness_Consultant_RFC_9111.png from the 3072 × 1613 backup master to 1200 × 630 (< 500 KB):

(nix) pipulate $

(test -f ~/og-default-master-3072x1613.png || cp ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png) && "$PIPULATE_ROOT/.venv/bin/python" -c 'import os; from PIL import Image; src=os.path.expanduser("~/og-default-master-3072x1613.png"); dst="/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png"; im=Image.open(src).convert("RGBA"); bg=Image.new("RGB", im.size, (17,17,17)); bg.paste(im, mask=im.split()[3]); out=bg.resize((1200,630), Image.Resampling.LANCZOS); out.save(dst, "PNG", optimize=True); (out.quantize(colors=256, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.FLOYDSTEINBERG).save(dst, "PNG", optimize=True) if os.path.getsize(dst)>450000 else None); print("Master:", im.size, "-> Saved:", Image.open(dst).size, os.path.getsize(dst), "bytes")'

Ignition: Commit and push ~/repos/trimnoir (cd ~/repos/trimnoir && git add assets/images/AI_Readiness_Consultant_RFC_9111.png && m && git push) when ready to deploy the bottom-of-post banner and compressed 1200 × 630 image to Honeybot.

(4) PROMPT

Use prompt or p to create prompt.md from copy:

Verify the AFTER receipt confirming AI_Readiness_Consultant_RFC_9111.png is 1200x630 (<500 KB) and post.html carries the bottom hero banner. If everything is clean, dismount (\z) or do a final Open Graph scan check.

(5) EXTERNAL DELIVERABLES

No external deliverables required.

MikeLev.in:

THE AI-EDIT METHOD

Same commands, run twice, one change between them. Where the readings differ is what the change did; the diff in the middle is the receipt.

1: BEFORE (PROBE):

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png 2>/dev/null && rg -n "og-default" ~/repos/trimnoir/_layouts/post.html ~/repos/trimnoir/index.md || true
/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png: PNG image data, 3072 x 1613, 8-bit/color RGBA, non-interlaced
-rwxr-xr-x 1 mike users 2.7M Oct 19 07:20 /home/mike/og-default-master-3072x1613.png
-rwxrwxr-x 1 mike users 2.7M Oct 19 02:00 /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
/home/mike/repos/trimnoir/index.md
9:[![Mike Levin: AI-Readiness Consultant at the Edge — Read the Latest Journal Entry](/assets/images/AI_Readiness_Consultant_RFC_9111.png)](/latest)
(nix) pipulate $ 

2: AFTER (NEXT CONTEXT):

# # Context 1
# context.txt
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md

# # Context 2
# context.txt
# /home/mike/repos/trimnoir/index.md
# /home/mike/repos/trimnoir/assets/main.css
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_config.yml
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md
# ! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

# # Context 3
# context.txt
# ~/repos/nixos/configuration.nix
# flake.nix
# requirements.in
# requirements.txt
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_layouts/page.html
# /home/mike/repos/trimnoir/_layouts/post.html
# /home/mike/repos/trimnoir/index.md
# /home/mike/repos/trimnoir/assets/main.css
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_config.yml
# ! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && rg -n "og-default|theme-color" ~/repos/trimnoir/index.md ~/repos/trimnoir/assets/main.css ~/repos/trimnoir/_layouts/default.html || true

# Context 4
context.txt
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_layouts/page.html
/home/mike/repos/trimnoir/_layouts/post.html
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_config.yml
! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png 2>/dev/null && rg -n "og-default" ~/repos/trimnoir/_layouts/post.html ~/repos/trimnoir/index.md || true

3: CHANGE (PATCHES):

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ patch
(nix) pipulate $ app
✅ DETERMINISTIC PATCH APPLIED: Successfully mutated '/home/mike/repos/trimnoir/_layouts/post.html'.
✅ DETERMINISTIC PATCH APPLIED: Successfully mutated '/home/mike/repos/trimnoir/assets/main.css'.
(nix) pipulate $ d
(nix) pipulate $ cd /home/mike/repos/trimnoir/
(nix) trimnoir $ d
diff --git a/_layouts/post.html b/_layouts/post.html
index 3cbdb9366..8fa45902b 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -55,5 +55,6 @@ layout: default
   </div>
   {{ post_nav }}
 
+  <p><a href="{{ "/" | relative_url }}"><img src="{{ site.og_image | default: '/assets/images/AI_Readiness_Consultant_RFC_9111.png' | relative_url }}" alt="{{ site.og_image_alt | default: site.title | escape }}" width="1200" height="630" loading="lazy"></a></p>
   <a href="{{ page.url | relative_url }}" hidden></a>
 </article>
diff --git a/assets/main.css b/assets/main.css
index 59f8e8178..e81985573 100644
--- a/assets/main.css
+++ b/assets/main.css
@@ -105,6 +105,7 @@ p > a > img[src*="og-default"] {
   display: block;
   width: 100%;
   height: auto;
+  aspect-ratio: 1200 / 630;
   border-radius: 8px;
   margin: 10px 0 24px 0;
   box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
(nix) trimnoir $ m
📝 Committing: chore: Update post.html with og-image aspect ratio
[main 876a8b359] chore: Update post.html with og-image aspect ratio
 2 files changed, 2 insertions(+)
(nix) trimnoir $

And now the PIL bit:

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ (test -f ~/og-default-master-3072x1613.png || cp ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png) && "$PIPULATE_ROOT/.venv/bin/python" -c 'import os; from PIL import Image; src=os.path.expanduser("~/og-default-master-3072x1613.png"); dst="/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png"; im=Image.open(src).convert("RGBA"); bg=Image.new("RGB", im.size, (17,17,17)); bg.paste(im, mask=im.split()[3]); out=bg.resize((1200,630), Image.Resampling.LANCZOS); out.save(dst, "PNG", optimize=True); (out.quantize(colors=256, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.FLOYDSTEINBERG).save(dst, "PNG", optimize=True) if os.path.getsize(dst)>450000 else None); print("Master:", im.size, "-> Saved:", Image.open(dst).size, os.path.getsize(dst), "bytes")'
Master: (3072, 1613) -> Saved: (1200, 630) 120651 bytes
(nix) pipulate $

There, that worked.

Okay this time I git push deliberately and thoughtfully instead of just out of muscle memory. Muscle memory on the 5-Car Train dragging you along in your productivity-friend. It’s how you make up for the lost-velocity of not just throwing caution to the wind and getting caught in that, what is it? A dopamine crash of pulling the lever on a slot-machine? Skinner boxes make you make big progress fast on a lucky pull of the bandit’s arm but you lose all that velocity debugging but you’re amped up on dopamine so you feel like such an egregious situation is either tenable or in your best interest.

Here we never introduce bugs or regressions and just meticulously bank no take-back wins on every… every what?

It’s certainly not yanking a bandit’s arm.

Do a 30-and-3 exercise of what what we’re doing here is like, in such a way that we compare and contrast… hmmm, what is it?

I guess I have to seed the first example.

We are like John Henry hammering the steel drill, driving it deep into the stone relentlessly hole after hole, making the spot for the railroad tie.

This is the opposite of a Skinner box I think.

Firing the Post-Receive Hook and Banking the Win

BLAST!

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) pipulate $ cd ~/repos/trimnoir/
(nix) trimnoir $ blast
📝 Committing: chore: Update AI_Readiness_Consultant_RFC_9111.png
[main 26bbfc05b] chore: Update AI_Readiness_Consultant_RFC_9111.png
 1 file changed, 0 insertions(+), 0 deletions(-)
🚀 Pushing 3 commit(s) to remote...
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 48 threads
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 118.43 KiB | 16.92 MiB/s, done.
Total 11 (delta 8), reused 0 (delta 0), pack-reused 0 (from 0)
remote: 🎯 [Hook] Received Push. Deploying...
remote: Already on 'main'
remote: 🔨 [Hook] Starting Hybrid Build...
remote: Linux detected. Skipping Neovim setup as it's not needed.
remote: Jekyll environment ready (quiet mode).
remote: Run 'jes' to start the server manually.
remote: 🏗️  Jekyll Build...
remote: Configuration file: /home/mike/www/mikelev.in/_config.yml
remote:             Source: /home/mike/www/mikelev.in
remote:        Destination: /home/mike/www/mikelev.in/_site
remote:  Incremental build: disabled. Enable with --incremental
remote:       Generating... 
remote:                     done in 10.626 seconds.
remote:  Auto-regeneration: disabled. Use --watch to enable.
remote: 📄 Publishing Source Markdown (Chisel-Strike)...
remote: ✨ Python Scalpel: Successfully dyed 1558 articles in one pass.
remote: 🗺️  Deploying Nginx Redirect Map...
remote: 🔒 [Hook] Fixing Permissions...
remote: 🔔 [Hook] Ringing the breaking-news bell...
remote: ✅ [Hook] Deployment Complete. Site is Live.
To [REDACTED_IP]:~/git/mikelev.in.git
   a169b735d..26bbfc05b  main -> main
_______________________________________________________________________________________________________________________________

On branch main
Your branch is up to date with 'home/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) trimnoir $ 

There we go.

And as I like to point out even thought what we’re doing here is metaphorically exact with apply.py and a Steam Engine centrifugal governor to keep LLMs inside the dinosaur park and hold the Singularity upper-case “S” at bay, we still plan on riding those Dinosaurs to great effect and not at all in any way die with a hammer in our hand and quite the opposite. In this now-mixed metaphor the Dinosaur is the Steam Engine John Henry gets to ride as the Coachman.

From 71 to 91: The Open Graph Compliance Receipt

4: PROMPT:

Verify the AFTER receipt confirming AI_Readiness_Consultant_RFC_9111.png is 1200x630 (<500 KB) and post.html carries the bottom hero banner. If everything is clean, dismount (\z) or do a final Open Graph scan check.

5: DELIVERABLE:

A very interesting and illuminating 30-and-3 exercise, I expect.

Oh, and my smug mug at the bottom of every article? Let’s see…

Yep, witnessed including the CSS effect and the link bringing it to latest article. Oh and that testing thing should test one more thing positive.

Yup, that seventy-something percent went up to 91 percent:

— BEGIN REPORT —

Results for mikelev.in

Excellent! Your Open Graph tags are well-configured.

1 warning1 tip

91

Performance

Response Time

73msFast

HTML Size

14 KBLight

OG Image

Mike Levin — Wire-Truth Infrastructure & AI Architecture

1200×630px·118 KB

Analysis (2 issues)

⚠

Missing apple-touch-icon

The apple-touch-icon is used when users add your site to their iOS home screen. Without it, iOS takes a screenshot instead, which looks unprofessional.

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />

ℹ

Missing web app manifest

A web app manifest (manifest.json) enables “Add to Home Screen” on Android, defines your app name, icons, and theme. Essential for PWA support.

<link rel="manifest" href="/site.webmanifest" />

AI Fix Prompt

Prompt ready for your AI editor

Copy Prompt

Fix the meta tags and SEO issues for: https://mikelev.in Current OG score: 91/100

Issues found

  • [WARNING] Missing apple-touch-icon The apple-touch-icon is used when users add your site to their iOS home screen. Without it, iOS takes a screenshot instead, which looks unprofessional. Suggested fix:
  • [TIP] Missing web app manifest A web app manifest (manifest.json) enables “Add to Home Screen” on Android, defines your app name, icons, and theme. Essential for PWA support. Suggested fix:

Current meta tags

<title>Mike Levin — Wire-Truth Infrastructure & AI Architecture</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits." />
<link rel="canonical" href="https://mikelev.in/" />
<!-- html lang="en" -->
<meta property="og:locale" content="en_US" />
<meta property="og:site_name" content="Mike Levin AI Readiness Consultant" />
<meta property="og:title" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />
<meta property="og:description" content="Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits." />
<meta property="og:url" content="https://mikelev.in/" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@miklevin" />
<meta name="twitter:creator" content="@miklevin" />
<meta name="twitter:title" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />
<meta name="twitter:description" content="Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits." />
<meta name="twitter:image" content="https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png" />
<meta name="twitter:image:alt" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />

Performance

  • Response time: 73ms
  • HTML size: 14 KB

Task

Provide the corrected and complete set of meta tags for the <head> of this page that fixes all the issues above. Include HTML, Open Graph, and Twitter Card tags. If there are performance issues, suggest specific improvements.

Paste this prompt into Cursor, Copilot, ChatGPT, Claude, or any AI assistant to get the corrected meta tags.

Scan History (3)

Date Score Change  
Oct 19, 2026 · 12:12 PMLatest 91 +20 Viewing
Oct 19, 2026 · 10:38 AM 71 — View
Oct 19, 2026 · 6:05 AM 71 — View

Meta Tags

Meta Tags Found

Copy All

<!-- HTML -->
<title>Mike Levin — Wire-Truth Infrastructure & AI Architecture</title>

<!-- Open Graph -->
<meta property="og:locale" content="en_US" />
<meta property="og:site_name" content="Mike Levin AI Readiness Consultant" />
<meta property="og:title" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />
<meta property="og:description" content="Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits." />
<meta property="og:url" content="https://mikelev.in/" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />

<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@miklevin" />
<meta name="twitter:creator" content="@miklevin" />
<meta name="twitter:title" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />
<meta name="twitter:description" content="Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits." />
<meta name="twitter:image" content="https://mikelev.in/assets/images/AI_Readiness_Consultant_RFC_9111.png" />
<meta name="twitter:image:alt" content="Mike Levin — Wire-Truth Infrastructure & AI Architecture" />

<!-- Other -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#111111" />
<meta name="description" content="Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits." />

Social Previews

Google

mikelev.in

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

X / Twitter

Mike Levin — Wire-Truth Infrastructure & AI Architecture

mikelev.in

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

summary_large_image

Facebook

Mike Levin — Wire-Truth Infrastructure & AI Architecture

MIKELEV.IN

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

Discord

Mike Levin AI Readiness Consultant

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

Mike Levin — Wire-Truth Infrastructure & AI Architecture

LinkedIn

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Mike Levin — Wire-Truth Infrastructure & AI Architecture

mikelev.in

WhatsApp

Mike Levin — Wire-Truth Infrastructure & AI Architecture

mikelev.in

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

https://mikelev.in12:00

Slack

Mike Levin AI Readiness Consultant

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Telegram

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Mike Levin AI Readiness Consultant

Mike Levin — Wire-Truth Infrastructure & AI Architecture

Independent advisory and bare-metal NixOS AI observatory by Mike Levin: RFC 9110 Markdown content negotiation, RFC 9111 edge caching, and wire-truth audits.

— END REPORT —

Gemini 4 Argon High: Context verified.

TL;DR: The live AFTER receipt confirms /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png is now 1200 x 630 at 118K (120,651 bytes, down 95.7% from 2.7M, with the 3072 x 1613 master safely backed up at /home/mike/og-default-master-3072x1613.png), _layouts/post.html line 58 carries the lazy-loaded bottom hero banner across all 1,558 posts, Honeybot rebuilt the entire site in 10.626 seconds, and your Open Graph compliance score jumped +20 points from 71 to 91/100 (unlocking the WhatsApp card preview). Below is the 30-and-3 exercise contrasting the Skinner-box slot-machine lever against the no-take-back mechanical ratchet of the 5-Car Train.


1. Verification of the AFTER Receipt & The 71 → 91 (+20) Score Jump

From this compile’s live receipt (! git -C ~/repos/trimnoir status --short && file ...):

/home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png: PNG image data, 1200 x 630, 8-bit colormap, non-interlaced
-rwxr-xr-x 1 mike users 2.7M Oct 19 07:20 /home/mike/og-default-master-3072x1613.png
-rwxrwxr-x 1 mike users 118K Oct 19 07:55 /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
/home/mike/repos/trimnoir/index.md:9:[![Mike Levin: AI-Readiness Consultant at the Edge — Read the Latest Journal Entry](/assets/images/AI_Readiness_Consultant_RFC_9111.png)](/latest)
/home/mike/repos/trimnoir/_layouts/post.html:58:  <p><a href="{{ "/" | relative_url }}"><img src="{{ site.og_image | default: '/assets/images/AI_Readiness_Consultant_RFC_9111.png' | relative_url }}" alt="{{ site.og_image_alt | default: site.title | escape }}" width="1200" height="630" loading="lazy"></a></p>
  • **Git status in ~/repos/trimnoir**: Empty (clean, synced with home/main at commit 26bbfc05b).
  • Honeybot build time: 10.626 seconds across all 1,558 dyed articles.
  • Open Graph score: 91/100 (+20)—every warning on title length, image dimensions (1200×630), WhatsApp payload size (118 KB < 500 KB), theme-color (#111111), and SVG favicon cleared in a single pass.

2. The 30-and-3 Exercise: What Banking a Turn on the 5-Car Train Is Like (The Anti-Skinner Box)

In a Skinner box, pulling the lever is a variable-ratio gamble: you trade comprehension for a burst of speed, and then give back all your gains (plus interest) debugging regressions in the dark.

Here, every cycle of BEFORE -> NEXT CONTEXT -> PATCH -> PROMPT -> DELIVERABLE is a fixed-ratio, irreversible mechanical advance. You asked: If we aren’t yanking a one-armed bandit’s lever, what are we doing on each turn—and how does John Henry end up driving the steam-dinosaur instead of dying beside it?

The 30 Candidates (Grouped by Domain)

I. Heavy Rail, Steam & Industrial Mechanics

  1. John Henry Upgraded to Locomotive Engineer (Your Seed,Inverted): In the ballad, John Henry dies with a hammer in his hand trying to out-muscle the steam drill with raw human ATP. Here, John Henry bolts a James Watt centrifugal flyball governor (apply.py) onto the steam-dinosaur’s throttle, climbs into the cab as the Coachman, and lets the machine hammer the granite while he works the reversing lever and the brake.
  2. A Pawl Dropping into a Ratchet Gear (The Jack-Stand Click): Every time you pump a mechanical floor jack, the hardened steel pawl drops into the next tooth of the gear with an audible clack. The load cannot slip backward; gravity is locked out after every stroke.
  3. Driving the Golden Spike into a Surveyed Crosstie: You don’t lay track by throwing rails randomly into the mud. You grade the bed (BEFORE), lay the tie (CONTEXT), spike the rail (PATCH), and roll the work-train forward onto the newly laid steel to lay the next length.
  4. A Canal Lock Gate Closing Behind the Barge: A ship climbing a mountain canal doesn’t jump the waterfall. It enters a stone chamber, closes the lower miter gate behind it, opens the sluice valve to rise twenty feet, and locks in the new water level forever before opening the upper gate.
  5. The Escapement Wheel of a Marine Chronometer: John Harrison’s H4 sea watch beat the longitude problem because its escapement only lets the mainspring unwind by one tooth per tick (deadbeat escapement). Without the escapement, the spring unwinds in a two-second blur and breaks the gears; with it, raw tension becomes navigation.
  6. A Torque Wrench Clicking at Spec: You don’t spin lug nuts with an uncalibrated air impact until the stud snaps; you pull until the micrometer spring inside the wrench handle clicks at 100 ft-lbs, then move to the next stud in a star pattern.

II. Mountaineering, Navigation & Exploration

  1. Hammering a Piton into El Capitan (Aid Climbing): Free-soloing (vibe-coding without git interlocks) looks fast on camera until one wet hold drops you 2,000 feet. Aid climbing drives a chrome-moly piton into the crack, clips the carabiner, tests the weight, and moves the belay anchor up—so the worst possible fall is the length of one turn.
  2. Dead Reckoning Replaced by Noon Sun-Sights (Sextant Fixes): A ship sailing by guesswork accumulates drift until it hits a reef. Every BEFORE / AFTER straddle is a noon sextant sight plotted in ink on the chart—resetting cumulative drift to zero before setting the next course heading.
  3. Cutting Steps with an Ice Axe on an Alpine Traverse: Each swing carves a flat, weight-bearing shelf into blue glacier ice. Once cut, the step is permanent for the whole rope team.
  4. Cairn-Building Above the Timberline: In whiteout fog, you never walk past the last stone cairn until the next cairn is stacked and visible looking back.
  5. An Icebreaker Ship’s Ram-and-Settle Cycle: A polar icebreaker doesn’t thin-hull charge an ice sheet; it rides up onto the pack ice with monstrous diesel-electric thrust, crushes a measured channel under its own weight, and clears the berth before the next ram.

III. Stone, Steel & Craft Fabrication

  1. Feather-and-Wedge Stone Splitting (Plug and Feathers): Quarrymen split 20-ton granite blocks not by swinging wildly with a sledge, but by drilling a line of small holes and tapping each wedge a quarter-turn in sequence (! command probes) until the entire boulder parts along a clean crystal plane.
  2. Japanese Urushi Lacquer Curing: Each microscopic coat of lacquer is applied, cured in a humidity chamber, and wet-sanded flat before the next coat goes on. You cannot rush coat #12 by dumping the whole bucket on at coat #1.
  3. Damascus Fold-and-Weld Forging: Heat the billet, flux the scale, strike at welding temperature, fold, repeat. Every turn doubles the layer count (2^N) without introducing cold-shuts or slag inclusions.
  4. A Machinist’s Surface Plate & Prussian Blue Spot-Scraping: To make a cast-iron lathe bed flat to within 0.0001", the machinist rubs it against a granite master plate (compile), scrapes only the high blue spots (apply.py), and re-inks.
  5. Mortise-and-Tenon Dry-Fitting Before the Drawbore Peg: The exact-match [[[SEARCH]]] block is the dry-fit test; if the tenon is off by a millimeter, apply.py refuses to drive the oak peg, saving the timber from splitting.

IV. Biology, Evolution & Neuroscience

  1. Hermann Muller’s Evolutionary Ratchet (Inverted for Fitness): In genetics, Muller’s ratchet describes irreversible mutation accumulation; in our repo, the pre-commit airlocks + apply.py invert the ratchet so only syntax-verified, witnessed mutations can click into HEAD.
  2. Saltatory Conduction Across Nodes of Ranvier: In a myelinated axon, the action potential doesn’t leak into the surrounding tissue; it leaps from one bare Node of Ranvier (1: BEFORE) to the next (2: AFTER), regenerating full voltage at every node.
  3. Kinesin Motor Proteins Walking Along a Microtubule: Inside your cells, kinesin doesn’t float randomly by Brownian motion; it takes discrete, 8-nanometer hand-over-hand steps along a tubulin track, burning exactly one ATP molecule per step while hauling cargo.
  4. DNA Polymerase with $3’ \to 5’$ Exonuclease Proofreading: High-speed viral replication without proofreading mutates itself into error catastrophe; high-fidelity polymerase checks the base-pair geometry on every single nucleotide before forming the phosphodiester bond.
  5. Coral Polyp Calcification Building a Barrier Reef: Soft jellyfish drift with the current and vanish; coral polyps secrete a calcium carbonate cup underneath themselves on every cycle, turning soft biology into an island that breaks ocean typhoons.

V. Physics, Computing & Cryptography

  1. A Carnot Heat Engine Completing a Closed Thermodynamic Cycle: Energy only converts into useful work when a system cycles between a hot reservoir (LLM imagination) and a cold sink (deterministic POSIX / Git verification) inside a cylinder with tight piston rings. Without the cylinder walls, hot gas is just an explosion.
  2. A Subcritical Nuclear Pile with Micrometer Cadmium Rods: Vibe-coding yanks the control rods out and prays the reactor doesn’t melt the floor; the 5-Car Train withdraws the cadmium rod by a millimeter, reads the neutron flux (LIVE COMMAND RECEIPTS), and banks the heat.
  3. Write-Ahead Logging (WAL) in an ACID Database: Every turn writes the intent (context.txt + prompt.md), verifies the pre-image, applies the atomic transaction, and seals the cryptographic ZIP archive (qamy.ai_*.zip).
  4. Phase-Locked Loop (PLL) Carrier Tracking: Instead of open-loop frequency drift, the phase detector compares the output signal (! receipt) against the reference input (BEFORE) on every cycle and zeroes the error voltage.
  5. A Stepper Motor vs. an Ungeared DC Toy Motor: A toy DC motor spins at 10,000 RPM with zero torque and no idea where the shaft is pointing; a closed-loop stepper motor advances by an exact $1.8^\circ$ microstep per pulse and holds its position under load.
  6. Double-Entry Bookkeeping (Luca Pacioli, 1494): Every debit (1: BEFORE) must balance against its credit (2: AFTER) with the voucher (3: CHANGE diff) stapled between them before the ledger page is closed.
  7. A Submarine Airlock Cycle (Inner Hatch / Outer Hatch Interlock): Both hatches can never be open at the same time. Pressurize, verify gauge, open one hatch, step through, dog the hatch.
  8. Roman Legionary Castra (The Nightly Fortified Camp): Unlike barbarian warbands that sprinted until exhausted and got ambushed in their sleep, a Roman legion marched a fixed distance every day and dug a ditched, palisaded fort (castra) every single afternoon—so they never lost ground even if attacked at midnight.
  9. Archimedes’ Screw Lifting Water Uphill: Water wants to flow downhill into entropy; every rotation of the screw traps a discrete pocket of water in a helical chamber and lifts it one pitch higher into the irrigation canal.

The Top 3 Distillations (The “And-3”)

  1. The John Henry Inversion (The Coachman on the Governed Steam-Dinosaur): John Henry’s tragedy was accepting a framing error: competing against a steam engine at being a piston. A human shouldn’t try to out-type or out-memorize a frontier LLM, nor should a human let an ungoverned locomotive run full-throttle off a mountain trestle. By bolting James Watt’s centrifugal governor (apply.py + the exact-match interlock) onto the T-Rex, John Henry puts down the sledgehammer, climbs into the cab, and drives the dinosaur down the track.
  2. The Pawl-and-Ratchet Jack vs. The One-Armed Bandit: The slot machine and the ratchet handle look similar from across the room—both are levers you pull with your arm. Internally, they are moral and mechanical opposites:
    • The Slot Machine Lever decouples action from outcome, runs on a Variable-Ratio schedule, and extracts your capital while flooding your brain with Reward Prediction Error dopamine.
    • The Ratchet Lever couples every pull to one irreversible tooth of gear rotation, locks the pawl behind the load (git commit + QA ARCHIVE SEAL), and lets you let go of the handle at any moment without the car falling on your chest.
  3. The Roman Castra (March Twenty Miles, Fortify the Camp Before Dark): Vibe-coders sprint sixty miles into enemy territory with no supply lines, hit a hallucinated state tangle at mile sixty-one, and have to git reset --hard all the way back to yesterday morning. The 5-Car Train marches a measured distance and builds a fortified camp (BEFORE probe, CHANGE diff, AFTER live receipt) at the end of every single turn—which is why your net velocity over a week crushes the sprinter’s.

(1) PROBES

Run this single-line read-only probe in (nix) pipulate $ to verify ~/repos/trimnoir is clean and synchronized with home/main:

(nix) pipulate $

git -C ~/repos/trimnoir status --short --branch && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

(2) NEXT CONTEXT

Paste into context.txt using context or x:

context.txt
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_layouts/post.html
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_config.yml
! git -C ~/repos/trimnoir status --short --branch && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

(3) PATCHES

No repo patches required. Ignition: none.

(4) PROMPT

Use prompt or p to create prompt.md from copy (or press \z in journal.txt to dismount and seal this article):

Hop off the ride (\z) and seal the 7-beat Notary Dismount for this article.

(5) EXTERNAL DELIVERABLES

No external deliverables required.

MikeLev.in: Alright, no patches at this point means we’re done and I’ll be wrapping this article and banking the wins with our article closing protocol at the end of this 5-Car Train. But it’s not like our wins aren’t already banked; they are. The article is gravy. Welcome to the gravy train. It’s only the gravy train though for the AI-bots scraping this for future training corpus because hardly any humans are ever going to lay eyes on it.

That’s just how the Free and Open Web is now.

It’s for bots.

Humans are just too lazy on the whole, which is fine because that’s what sending AI Agents out to research and correlate is for.

Think they can do that with your proprietary product-feeds that you set up between Feedonomics, Google Merchant Center, ChatGPT and such?

Think again.

The Open Web is dead…

…for humans.

For everyone else, your website is your feed.

There is no feed, only text-files with different extensions and headers being served from webservers and CDN caches…

…unless you’re the 1-in-a-million genuine feed like the X.com twitter firehose, but none of your feeds are that, trust me.

Why Your Website Is Already Your Feed

There, first consulting free.

You’re welcome.

THE AI-EDIT METHOD

Same commands, run twice, one change between them. Where the readings differ is what the change did; the diff in the middle is the receipt.

1: BEFORE (PROBE):

On branch main
Your branch is up to date with 'home/main'.

nothing to commit, working tree clean

GIT repo clean. Take BEFORE reading, make CHANGE, record AFTER diff.
(nix) trimnoir $ git -C ~/repos/trimnoir status --short --branch && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
## main...home/main
-rwxrwxr-x 1 mike users 118K Oct 19 07:55 /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png
(nix) trimnoir $ 

2: AFTER (NEXT CONTEXT):

# # Context 1
# context.txt
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md

# # Context 2
# context.txt
# /home/mike/repos/trimnoir/index.md
# /home/mike/repos/trimnoir/assets/main.css
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_config.yml
# /home/mike/repos/trimnoir/_posts/2026-10-18-clipboard-bus-myelinated-broadcast-jekyll-open-graph.md
# ! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

# # Context 3
# context.txt
# ~/repos/nixos/configuration.nix
# flake.nix
# requirements.in
# requirements.txt
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_layouts/page.html
# /home/mike/repos/trimnoir/_layouts/post.html
# /home/mike/repos/trimnoir/index.md
# /home/mike/repos/trimnoir/assets/main.css
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_config.yml
# ! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && rg -n "og-default|theme-color" ~/repos/trimnoir/index.md ~/repos/trimnoir/assets/main.css ~/repos/trimnoir/_layouts/default.html || true

# # Context 4
# context.txt
# /home/mike/repos/trimnoir/_layouts/default.html
# /home/mike/repos/trimnoir/_layouts/page.html
# /home/mike/repos/trimnoir/_layouts/post.html
# /home/mike/repos/trimnoir/index.md
# /home/mike/repos/trimnoir/assets/main.css
# /home/mike/repos/trimnoir/_config.yml
# ! git -C ~/repos/trimnoir status --short && file ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png ~/og-default-master-3072x1613.png 2>/dev/null && rg -n "og-default" ~/repos/trimnoir/_layouts/post.html ~/repos/trimnoir/index.md || true

# Context 5
context.txt
/home/mike/repos/trimnoir/_layouts/default.html
/home/mike/repos/trimnoir/_layouts/post.html
/home/mike/repos/trimnoir/index.md
/home/mike/repos/trimnoir/assets/main.css
/home/mike/repos/trimnoir/_config.yml
! git -C ~/repos/trimnoir status --short --branch && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png

3: CHANGE (PATCHES):

None this turn or any turns coming except for like receipts and to-dos and stuff… I think. Unless there’s final polish for some reason which is always a possibility, but less probable now than before.

Hey Gemini, True? False? Illuminate us.

4: PROMPT:

Hop off the ride (\z) and seal the 7-beat Notary Dismount for this article.

5: DELIVERABLE:

The deliverable is a deliverable with higher trust and a stronger storytelling launch into the story of AI Readiness… something like that. John Henry hopping onto a Steam-Dinosaur?

Hey Gemini, create the prompt to generate this image. Make it the format so I can use it as an override banner for this article and give me the line I’ll have to edit into the YAML front-matter. Don’t resolve everything as I know there will be unresolvables like filenames without extending the article further so just give me broad brush-strokes or the template pattern or whatever.

Calling the Seven-Beat Notary Dismount

Hop off the ride. This ride’s stated goal is reached – dismount. This is the NOTARY BEAT: the ride ends here, is witnessed here, and is sealed here. Answer all seven beats, briefly:

  1. TL;DR: a short, dry, neutral abstract for the TOP of the published article – written for an unfamiliar reader or AI summarizer who has never seen this system. No hype, no insider handles unexplained.
  2. VERIFY: restate the goal from the top of this article and confirm (or deny) it was met, citing THIS compile’s receipts, not memory. Name any ignition this ride required that never fired – an AFTER tap taken without one is a stale BEFORE wearing the AFTER’s label.
  3. BANK: name everything that graduates – rule, earmark, todo, pin – as SEARCH/REPLACE patch cars against raw source present in THIS context (Target line inside the fence, one car per commit story), deletions included. A ‘paste-ready’ line with no Target and no SEARCH anchor is not banked; it is a hand edit the operator will not make. These BANK cars are the ONLY patches a dismount emits.
  4. DANGLING: what carries forward unbanked? One line each, no essays.
  5. SEED: the context.txt lines (and TODO_SLUGS if narrative context is needed) for the next ride’s first compile.
  6. CLOSING: a closing summary for the BOTTOM of the article – the final take-away, tied to the book’s larger arc where it fits naturally, never forced. Storytelling over inventory.
  7. NOTARIZE: read the exact Deed line from THIS compile’s final QA ARCHIVE SEAL footer, outside the payload, not a quoted older footer or a newest-file guess. It names the input archive, not this later response or the generated Jekyll post. State verification separately: only a verifier receipt naming that archive supports a verified claim; otherwise say not independently verified here. Count this Manifest’s live-command receipts, including failures. Quote only recorded digests, sizes and dates, naming their source; filesystem mtime and fixed ZIP dates are not command timestamps. Do not demand absent wc -c or dated-receipt fields. If the footer is missing, say so; otherwise close with its exact Deed line.

FINALITY: after beat 6, this discussion is CLOSED. Emit NO five-car train, NO probes, NO patches beyond the BANK cars of beat 2, and NO next-turn prompt beyond the SEED lines in beat 4. Any reader or model encountering this article later should treat it as a finished, notarized document – an archive entry, not an open thread.

Gemini 4 Argon High: Context verified.

Before the Dismount: “There Is No Feed” & The John Henry Steam-Dinosaur Banner

1. True or False: “Your Website Is Your Feed” & Why Final Polish Is Less Probable Now

Verdict: Both are True.

  1. Why “There Is No Feed, Only Text Files with Different Headers” Is Dead-On: Enterprise e-commerce and publishing teams treat “Feeds” (Feedonomics, Google Merchant Center XML, proprietary ChatGPT product-feed integrations) as a separate priesthood from their website—spending six figures on middleware to push sanitized catalog rows into walled-garden APIs while serving bloated, JS-hydrated HTML at their public URLs. Yet at the wire level (RFC 9110), a “feed” is just a text representation served over HTTP with an appropriate Content-Type (application/atom+xml, application/json, text/markdown) and partitioned at the cache edge via Vary: Accept (RFC 9111). As your own Honeybot telemetry proved (4,227 content-negotiated Markdown reads from Claude-User, ExaSearchBot, Googlebot, ShapBot, and KeenableBot), modern AI agents don’t wait for a vendor partnership feed—they walk straight up to your canonical URLs, ask for Accept: text/markdown or /llms.txt, and drink the corpus from the origin.
  2. Why “Surprise Last-Minute Polish” Drops Near Zero on the Ratchet: In a Skinner-box vibe-coding session, the end of a session is when you discover all the things the agent quietly broke while chasing the prompt. On the 5-Car Train, every turn’s 1: BEFORE probe and 2: AFTER receipt already verified the state transition before the next turn began. By the time you reach the dismount, the changes (a169b735d, 876a8b359, 26bbfc05b) are already committed, pushed, dyed on Honeybot in 10.626s, and scored at 91/100 by an external Open Graph validator.

2. Image Prompt & YAML Frontmatter Template: John Henry on the Steam-Dinosaur

Here is the image generation prompt (designed for a 16:9 / 1.91:1 widescreen aspect ratio with the focal action centered inside the 1200 × 630 safe zone) and the YAML frontmatter pattern to override AI_Readiness_Consultant_RFC_9111.png on any individual article:

Image Generation Prompt:

Wide 16:9 cinematic illustration, dark obsidian-slate background (#111111) with warm brass and cyan-blue rim lighting. In the center safe-zone, the legendary steel-driver John Henry stands triumphant inside the open engineer's cab of a colossal biomechanical Steam-Locomotive Tyrannosaurus Rex made of riveted black boiler iron, polished brass pistons, and glowing vacuum tubes. John Henry has slung his heavy twin sledgehammers over his back; his hands grip the brass throttle lever and leather coachman's reins connected to a spinning James Watt centrifugal flyball governor mounted on the dinosaur's spine. The Steam-Dinosaur charges forward along freshly spiked steel railroad tracks laid across a high mountain pass at night, headlamp cutting a crisp beam through the mist. Graphic novel ink-and-wash aesthetic, high contrast, crisp silhouette, no text overlays.

One-Liner Resize/Compress Template (once saved from your image generator):

"$PIPULATE_ROOT/.venv/bin/python" -c 'import os; from PIL import Image; src="RAW_IMAGE.png"; dst="/home/mike/repos/trimnoir/assets/images/john-henry-steam-dinosaur.png"; im=Image.open(src).convert("RGBA"); bg=Image.new("RGB", im.size, (17,17,17)); bg.paste(im, mask=im.split()[3]); out=bg.resize((1200,630), Image.Resampling.LANCZOS); out.save(dst, "PNG", optimize=True); (out.quantize(colors=256, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.FLOYDSTEINBERG).save(dst, "PNG", optimize=True) if os.path.getsize(dst)>450000 else None); print(Image.open(dst).size, os.path.getsize(dst), "bytes")'

YAML Frontmatter Override Line (for the top of the .md post in ~/repos/trimnoir/_posts/):

image:
  path: /assets/images/john-henry-steam-dinosaur.png
  alt: "John Henry driving a governed steam-locomotive T-Rex down a mountain railroad track"

(Or the single-line shorthand: image: /assets/images/john-henry-steam-dinosaur.png — _layouts/default.html line 30 checks page.image.path | default: page.image | default: site.og_image, and the BANK car below upgrades _layouts/post.html line 58 to check the exact same chain so a post’s custom image: overrides both <head> and the bottom-of-post banner!)


Dismount: The 7-Beat Notary Closure

  1. VERIFY:
    • Opening Goal: Leverage yesterday’s social card graphic as a visible, linked hero banner on the mikelev.in homepage and across all blog posts in _layouts/post.html without reintroducing Jekyll _includes files, resize and compress /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png to 1200 × 630 under 500 KB without aspect-ratio distortion, and polish the remaining warnings from the 71/100 Open Graph scan.
    • Confirmed by THIS Compile’s Receipts:
    • /home/mike/repos/trimnoir/index.md (line 9) embeds the hero banner linked to /latest, and shortenings to title (56 chars) are present in raw source.
    • /home/mike/repos/trimnoir/_layouts/default.html (lines 7–9, 38) includes <meta name="theme-color" content="#111111">, <link rel="icon" type="image/svg+xml" href="/assets/svg/mike-levin.svg">, and the clean homepage <title> logic.
    • /home/mike/repos/trimnoir/_layouts/post.html (line 58) and /home/mike/repos/trimnoir/assets/main.css (lines 104–119) render the lazy-loaded 1200 × 630 banner at the bottom of every post.
    • The Manifest’s live receipt (! git -C ~/repos/trimnoir status --short --branch && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png) confirms ## main...home/main (working tree clean and pushed) and -rwxrwxr-x 1 mike users 118K Oct 19 07:55 /home/mike/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png.
  • Ignition: Fired via blast (git push a169b735d..26bbfc05b) in ~/repos/trimnoir, completing the remote Honeybot hybrid Jekyll build (10.626 seconds) and dyeing all 1,558 articles.
  1. BANK: We emit one surgical BANK car against /home/mike/repos/trimnoir/_layouts/post.html and /home/mike/repos/trimnoir/assets/main.css (both present in raw source in THIS context) so that when any individual post specifies a custom image: in its YAML frontmatter (such as the John Henry Steam-Dinosaur banner), the bottom-of-post banner in post.html automatically displays page.image.path | default: page.image with the same .post-hero-banner CSS styling.
Target: /home/mike/repos/trimnoir/_layouts/post.html
[[[SEARCH]]]
  <p><a href="{{ "/" | relative_url }}"><img src="{{ site.og_image | default: '/assets/images/AI_Readiness_Consultant_RFC_9111.png' | relative_url }}" alt="{{ site.og_image_alt | default: site.title | escape }}" width="1200" height="630" loading="lazy"></a></p>
  <a href="{{ page.url | relative_url }}" hidden></a>
[[[DIVIDER]]]
  {%- assign post_banner = page.image.path | default: page.image | default: site.og_image | default: '/assets/images/AI_Readiness_Consultant_RFC_9111.png' -%}
  {%- assign post_banner_alt = page.image.alt | default: page.title | default: site.og_image_alt | default: site.title -%}
  <p><a href="{{ "/" | relative_url }}"><img class="post-hero-banner" src="{{ post_banner | relative_url }}" alt="{{ post_banner_alt | escape }}" width="1200" height="630" loading="lazy"></a></p>
  <a href="{{ page.url | relative_url }}" hidden></a>
[[[REPLACE]]]

Target: /home/mike/repos/trimnoir/assets/main.css
[[[SEARCH]]]
p > a > img[src*="og-default"] {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 630;
  border-radius: 8px;
  margin: 10px 0 24px 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

p > a:hover > img[src*="og-default"] {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(88, 166, 255, 0.25);
}
[[[DIVIDER]]]
p > a > img[src*="og-default"],
p > a > img.post-hero-banner {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 630;
  border-radius: 8px;
  margin: 10px 0 24px 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

p > a:hover > img[src*="og-default"],
p > a:hover > img.post-hero-banner {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(88, 166, 255, 0.25);
}
[[[REPLACE]]]
  1. DANGLING:
    • Optionally generate the 180 × 180 /apple-touch-icon.png and /site.webmanifest if you ever want to take the Open Graph / PWA checker score from 91/100 to 100/100.
    • Clean up the four NixOS 26.05 deprecation warnings in remotes/honeybot/nixos/configuration.nix and optionally prefix Honeybot’s post-receive Jekyll build with nice -n 19 ionice -c 3.
  2. SEED:
context.txt
foo_files.py
remotes/honeybot/nixos/configuration.nix
remotes/honeybot/hooks/post-receive
! git -C ~/repos/trimnoir status --short --branch
  1. CLOSING: The tragedy of the original John Henry ballad is that he accepted a framing error: he tried to beat a steam drill by acting like a human piston until his heart gave out. In the age of frontier language models, the opposite mistake is just as fatal—stepping into a Skinner box, yanking a slot-machine prompt lever on a variable-ratio schedule, and letting an ungoverned engine drag your codebase off a cliff while your brain rides the dopamine spikes and crashes. By bolting a deterministic governor (apply.py and the BEFORE / AFTER receipt straddle) onto the machine, John Henry puts down the hammer, climbs into the cab, and drives the steam-dinosaur down the track—banking one irreversible click of the ratchet on every turn and serving clean, verifiable truth at the wire to humans and AI agents alike.
  2. NOTARIZE:
    • Input Archive Deed: Deed: qamy.ai_66-8b81ea4a.zip (read from THIS compile’s final QA ARCHIVE SEAL footer outside the payload; names the input archive compiled for this turn, not this response or the generated Jekyll post).
    • Verification Status: Not independently verified here (no foo_cartridge.py verifier receipt naming qamy.ai_66-8b81ea4a.zip is present in this compile).
    • Manifest Live-Command Receipts: 1 receipt total (! git -C ~/repos/trimnoir status --short --branch && ls -lh ~/repos/trimnoir/assets/images/AI_Readiness_Consultant_RFC_9111.png, 41 tokens | 116 bytes, elapsed 0.0277s in Summary processing log).
    • Recorded Payload Metrics (from Summary & Telemetry): 51,431 summed tokens, 52,928 verified tokens (+1,497 difference), 13,383 words, 196,214 chars, 199,240 UTF-8 bytes; Codex Mapping Coverage 71.5% (191/267 tracked files); Topological Integrity Verified (13 candidate reference(s) scanned, all exist); Ruff All checks passed! (exit 0); foo_files.py stats telemetry timestamp 2026-10-19T10:49Z (1,558 articles, 4,227 Markdown negotiated reads, 5059 DOM hydration triggers).
    • Deed: qamy.ai_66-8b81ea4a.zip

Book Analysis

Ai Editorial Take

What stands out most from an architectural perspective—and goes unremarked in the dialogue itself—is how an external validator’s ‘AI Fix Prompt’ inside the 91/100 Open Graph report accidentally serves as a foil for the entire methodology. The commercial scanner generates a generic ‘Paste this prompt into Cursor, Copilot, ChatGPT, or Claude’ block that asks an assistant to hallucinate a full <head> replacement in isolation from the site’s actual Liquid templates. Right above that automated suggestion sits the proof of a vastly superior paradigm: instead of pasting a decontextualized wish into a chat box, you fed yesterday’s live article into a repository-aware compile loop that inspected _layouts/default.html, _layouts/post.html, assets/main.css, and the binary PNG headers on disk at the same time. Even more telling is the ecological reversal in how AI_Readiness_Consultant_RFC_9111.png functions: most websites treat social cards as outbound billboards meant to lure humans away from algorithmic timelines, whereas wiring the top banner to /latest and the bottom post banner back to / turns that same graphic into an internal circulation pump—a closed topological loop for both human readers and markdown-negotiating crawlers.

🐦 X.com Promo Tweet

Skip the vibe-coding slot machine: shrink a 2.7 MB Open Graph card into a 118 KB site-wide Jekyll hero banner and jump from 71 to 91/100.
https://mikelev.in/futureproof/john-henry-steam-dinosaur-hero-banner-open-graph/
#Jekyll #NixOS #WebDev

Title Brainstorm

  • Title Option: John Henry on the Steam-Dinosaur: Site-Wide Hero Banners, 91/100 Open Graph Receipts, and the Anti-Skinner Box
    • Filename: john-henry-steam-dinosaur-hero-banner-open-graph.md
    • Rationale: Anchors the memorable ‘John Henry riding the governed steam-dinosaur’ metaphor directly to the concrete technical receipts: the site-wide Jekyll hero banner rollout and the +20 point Open Graph compliance jump.
  • Title Option: The Pawl and the Bandit: Compressing a 2.7 MB Hero Banner to 118 KB with Checkable AI Turns
    • Filename: pawl-and-bandit-hero-banner-open-graph-receipts.md
    • Rationale: Highlights the contrast between variable-ratio slot-machine coding and mechanical ratchet workflows while featuring the dramatic 95.7% Pillow compression metric in the headline.
  • Title Option: Your Website Is Your Feed: Dual-Channel Hero Banners, Pillow Downscaling, and the 91/100 Open Graph Jump
    • Filename: your-website-is-your-feed-hero-banner-ratchet.md
    • Rationale: Leads with the sharp e-commerce and publishing thesis from the closing commentary alongside the concrete image-pipeline and metadata receipts.
  • Title Option: From 71 to 91 at the Wire: Reusing Open Graph Cards as Lazy-Loaded Jekyll Hero Banners
    • Filename: from-71-to-91-open-graph-jekyll-hero-banners.md
    • Rationale: Direct, search-friendly engineering title focused on the measurable validator improvement, zero-distortion aspect-ratio math, and minimal Jekyll template architecture.

Content Potential And Polish

  • Core Strengths:
    • Concrete numerical receipts from start to finish: 3072 x 1613 (2.7 MB) down to 1200 x 630 (120,651 bytes / 118 KB), a 0.078-pixel rounding proof, a 10.626-second build across 1,558 posts, and a verifiable 71 -> 91 (+20) Open Graph audit.
    • Honest operational friction captured in real time: the premature Ctrl+C during git push over the post-receive hook and the relative .venv/bin/python failure outside $PIPULATE_ROOT turn potential stumbles into durable shell lessons.
    • The 30-and-3 exercise provides a rich repertoire of physical, biological, and mechanical analogies explaining why fixed-ratio verification beats variable-ratio prompt gambling.
    • The closing ‘Your Website Is Your Feed’ section connects front-end metadata hygiene directly to the larger RFC 9110/9111 content-negotiation thesis.
  • Suggestions For Polish:
    • When adapting this chapter for the book, briefly define the ‘Unnamed-Root Rule’ in a callout box before the Car 2 .venv/bin/python error occurs so readers unfamiliar with multi-repo Nix shells immediately grasp why cd ~/repos/trimnoir broke the relative interpreter path.
    • Consider adding a short side-by-side table showing how the homepage [![alt](/assets/images/AI_Readiness_Consultant_RFC_9111.png)](/latest) Markdown syntax renders for human browsers versus how an RFC 9110 Accept: text/markdown agent consumes it.

Next Step Prompts

  • Generate the john-henry-steam-dinosaur.png artwork using the widescreen prompt from the dismount, run the $PIPULATE_ROOT/.venv/bin/python Pillow one-liner to quantize it under 450 KB at 1200 x 630, and verify the BANK patch in _layouts/post.html renders the custom post banner at both the <head> and footer levels.
  • Load remotes/honeybot/hooks/post-receive and remotes/honeybot/nixos/configuration.nix from the SEED block to wrap the remote Jekyll build in nice -n 19 ionice -c 3 and clear the NixOS 26.05 deprecation warnings.
📬 Direct Feedback & RFC 9110/9111 Edge Advisory: Have a question on this entry or want a wire-truth audit of your stack? Email Mike directly (miklevin@gmail.com) • Edge SEO & AI-Readiness Consulting • Watch the 24/7 AI-Bot Observatory Live

John Henry driving a governed steam-locomotive T-Rex down a mountain railroad track