A weekly summary of what changed on this blog and across my GitHub projects. Useful for returning readers who want to catch up on new content and updates.
- Week of 2026-05-11
- Week of 2026-05-04
- Week of 2026-04-27
- Week of 2026-04-20
- Taxes: Split from /money (new post!)
- Igor’s Three Claws (new post!)
- Larry: From Life Coach to Chief of Staff
- AI Journal: One Repo, One Token
- AI Operator: One-Way vs Two-Way Doors
- Life Journal: Balloons on the Hood Canal Trail
- Infrastructure & CI (2026-04-20)
- chop-conventions (2026-04-20)
- Other Projects (2026-04-20)
- Week of 2026-04-13
- Week of 2026-04-12
- Week of 2026-03-30
- Week of 2026-03-16
- Week of 2026-03-09
- Week of 2026-02-08
- Week of 2026-01-25
Week of 2026-05-11
38 commits this week (blog) + cross-repo activity
7 Habits: Full Chapter Augmentation
All eight 7 Habits chapter posts (c0–c7) received substantial deepening from the Covey ebook this week, plus raccoon hero illustrations throughout. This is the largest single-week content push on the 7H series.
c0 — Core Concepts () — Every section fleshed out from stubs to full prose. Key additions:
- Inside Out — “Working on the outside without changing the inside is putting fresh paint on a rusted frame.” Private victories precede public victories: if you want a better marriage, be a better partner.
- Character vs Personality Ethic — 150 years of character ethic (Franklin’s autobiography archetype) vs. the post-WWI shift to personality ethic (smile training, influence techniques). The cram vs. the farm.
- Borrowed Strength Builds Weakness (new section) — When emotional maturity runs out, we reach for position/title/authority/size. Borrowed strength works in the moment and builds weakness in all three parties: the borrower, the coerced, and the relationship.
- P/PC Balance — Aesop’s goose applied: sleep vs. one more hour of work; shipping vs. fixing the test suite; doing it myself vs. the hard conversation.
- Maturity Continuum — Dependent → Independent → Interdependent, with Habits 1–3 as private victories and 4–6 as public victories.
c1 — Be Proactive () — Massive expansion. Viktor Frankl as the canonical “gap between stimulus and response” example. Four endowments table (self-awareness / imagination / conscience / independent will). Reactive vs. proactive language table (“I have to” → “I choose”). Circle of Influence / Circle of Concern with the growth dynamic — energy in CI makes CI expand. New section: Have’s vs. Be’s and The 30-day test.
c2 — Begin with End in Mind () — “All things are created twice” (mental then physical creation). The jungle metaphor: producers hack, managers sharpen machetes, the leader climbs the tallest tree to yell “Wrong jungle!” — Management is doing things right; leadership is doing the right things. False Centers table (spouse/family/money/work/possession/pleasure/friend/enemy/church/self). Principle Center as the stable alternative.
c3 — First Things First () — Four-generation time management table (checklists → calendars → daily planners → Quadrant II). Quad III vs Quad I confusion diagnostic: “whose priority just pulled me in?” E.M. Gray’s finding: “The successful person has the habit of doing the things failures don’t like to do.”
c4 — Win/Win () — Six paradigm table (Win/Win / Win/Lose / Lose/Win / Lose/Lose / Win / Win/Win or No Deal). Win/Win or No Deal as the “freedom move” — the moment No Deal is on the table, manipulation stops. Five-layer table (Character / Relationship / Agreement / System / Process).
c5 — Seek First to Understand () — “Diagnose before you prescribe” across five domains (medicine / sales / law / engineering / parenting). Five levels of listening table (ignoring → pretending → selective → attentive → empathic). Character builds trust, trust opens the door, only then does listening skill have anything to work with.
c6 — Synergize () — Fully rewritten in Igor voice. Third Alternative vs. Win/Win table. Negative synergy diagnostic (groupthink, defensive everything, borrowed-strength power moves). Force Field Analysis (Lewin) — driving forces are visible, restraining forces are half-conscious and usually emotional. “People don’t see the world as it is — they see it as they are.”
c7 — Sharpen the Saw () — Four dimensions table (Physical → Habit 1 / Identity/Spiritual → Habit 2 / Mental → Habit 3 / Emotional/Social → Habits 4–6). Sleep as the goose: “Every hour I steal from it I’m cashing in PC for one extra egg today.” Cross-links to /four-healths, /diet, /sleep.
AI Journal: Tokens and the Wrong Jungle
Two new entries in /ai-journal:
2026-05-10 — Free Doesn’t Save You from the Wrong Problem () — The raccoon wrong-jungle illustration anchors the key lesson: hill-climbing improves your position on a mountain; it doesn’t tell you you’re on the wrong one. Igor spent six attempts on a local chroma-key pipeline, achieving a 65× improvement on the residual-magenta eval (17,385 → 269), a flood4 → tight-fuzz 3% two-stage winner — clean on white, broken on any other background. The fix: switch to Recraft as a paid bg-remover at ~$0.01/image. The 7H c2 frame: the second creation (building) is nearly free now, so the friction that used to force you back to the first creation (design) disappears. “I was sharpening the machete — more attempts, tighter eval, prettier algorithm — and never climbed the tree. A manager move, not a leader move.”
2026-05-09 — Dylan Patel on the Supply and Demand of AI Tokens () — Dense numbers from the SemiAnalysis founder:
- SemiAnalysis Claude Code spend: tens of thousands last year → $5M last week → $7M annualized this week vs a $25M salary line (>25% of payroll, on pace for 100%+ by year-end)
- Anthropic ARR: $9B → $35–40B, adding ~$10B/month; gross margins at 72% floor
- “Cloud code psychosis” examples: an ex-Intel engineer with a few thousand dollars of tokens replaced an entire Intel team’s chip reverse-engineering pipeline
- The token scarcity thesis: “If you don’t use more tokens, you’ll never escape the permanent underclass.” The bottleneck has shifted from “can the AI do it” to who has the enterprise contract and the rate-limit allowance. Igor’s angle: the $230 Week dynamic seen from the supply side — the answer isn’t to throttle, it’s to point the tokens at the highest-leverage thing possible.
Amelia Connection Framework (new page!)
New page at /amelia — four affirmations mapped onto fathering a daughter, building a repeatable framework for connection rather than leaving it to mood and circumstance. Cross-linked from the Father to Amelia section in the eulogy.
Addiction: Raccoon Illustrations
The /addiction post got two raccoon additions this week:
- Diptych inline — the addiction-vs-passion raccoon illustration moved inline into the “Is doing the thing you want to be doing an addiction?” section, visualizing the compelled/draining vs. engaged/energizing split.
- Cover image — a single-panel raccoon added as the
imagefeaturecover for the post.
Infrastructure & CI (2026-05-11)
- Backlinks rebuild after the 7H augment series — all c0–c7 cross-links updated in
back-links.json. - Backlinks: dedupe exclusion + fix JSON encoding — delta path now excludes
/changelogas a source; deduplication logic hardened. - New /image-selector page — click-to-pick page for AI image batches, letting Igor pick the best from a generated set without loading every image into the conversation.
- fix(amelia) — renamed H2 anchor id to fix duplicate-id collision.
chop-conventions (2026-05-11)
chop-conventions — Recraft background remover added to the gen-image skill:
remove_background_recraftdrop-in on the magenta path () — adds Recraft as an opt-in bg-remover for the image generation pipeline- Full rewrite as Typer + WebP-aware Python () —
recraft_bg_remove.pyreplaces the bash script with proper error handling and WebP output. Triggered by the wrong-jungle lesson: stop perfecting the local chroma-key pipeline; use the API.
Other Projects (2026-05-11)
context-grabber (iOS health app) — Major CloudKit week:
- CloudKit P0 — expo-cloudkit integration, container entitlements, CKPing to verify connectivity
- CloudKit P1 — Journal data model: SQLite tables (
journal_entries,audio_recordings,journal_sync_state), bidirectional sync withfetchRecordZoneChanges, JSON export round-trip. 18 new tests. - CloudKit P2+P3 — Full UX:
VoiceRecorder(expo-audio .m4a, tap-to-toggle),AudioPlayer(lazy CKAsset download),AffirmationCard,GratefulCard,JournalScreen(date → context → affirmation tree). Reflect zone on dashboard with live tally (☀️ opp / ✓ did / 🙏 grateful) and three deep-link buttons. - Voice recording fixes —
setAudioModeAsync+prepareToRecordAsyncbeforerecord()(expo-audio requirement); journal playback always-real source + reset audio session before play - Widget improvements — Reflect strip with tally + 3 deep-link shortcuts;
.systemLargesize with Reflect-hero layout - CopyableError convention — every user-facing error now renders via
<CopyableError>with a “Copy error” button that puts diagnostics (message + context label + git sha) on the clipboard
beads (task tracker)
- Fix: deduplicate issues with multiple block dependencies (GH#3567)
- Fix: replace deprecated
--forceflag with--reinit-localin init error messages
blob (image assets)
Week of 2026-05-04
~50 commits this week (blog) + cross-repo activity
The Psychology of Vibing (new post!)
New post at /vibing — a survey of what extended AI-agent interaction actually feels like, both bright and dark. Not a finished theory; observations added as they accumulate.
Key observations:
- Imagining and creating collapse into one step — Covey says everything is created twice. With agents, the gap between the mental and physical creation approaches zero. The catch: the same collapse can swallow the thinking. Skip the mental pass and the agent does both — you’ve made a thing without imagining it.
- Multi-agent as stall-coverage, not parallelism — flow needs continuous output. A single agent stalls; you switch to another. The key insight: this only works if you don’t stall. On a bad day the same multi-agent setup that produces effortless flow produces incoherent thrash.
- Addiction qualities — Apply the addiction/passion/hobby trichotomy. The kid-test is the fastest discriminator: would you be proud to see your child doing this exact thing, this much, this way? Not “would you want them to use AI,” but the literal behavior.
- Burnout is real — one week crashed to 3.5 hrs sleep and HRV 27.2 (week’s lowest). Citing Yegge’s AI Vampire: “3 to 4 hours is going to be the sweet spot for the new workday.”
- Voice as a reps-and-recovery muscle — three days of intense voice vibe-coding produces the same vocal-cord fatigue as a calendar-packed meeting week.
Gas City Cluster: Wally, Standing Up, and the Explainer (new posts!)
Three new posts (plus a major rename) all converging on Steve Yegge’s Gas City framework — how to run an organization of AI agents using a bead-aware task tracker and a Mayor/Polecat dispatch model.
Wally and My Work Gastown — renamed from /work-gastown and rewritten with a new intro. Translates Yegge’s Gas Town vocabulary into org-chart terms readers already have (M2/M1/Staff/Odallies instead of Operator/Mayor/Oracle/Polecats). Includes a Mermaid org-chart and a worked “When to use the M1, and when to skip him” section. The core argument: the human’s job is M2 (direction, review, strategy) — most people misidentify as Mayor and spend their time managing instead of directing.
Standing Up Gas City — Larry (the home claw) narrates a Sunday morning bringing up igor-city in first person. Three lenses: what happened from Larry’s seat, what was actually broken under the hood, and how beads routed the work. Five upstream bugs hit in one morning:
gc initshipspack.tomlin legacy format thatgc doctorimmediately flags (gascity#1244)bd initwritesissue_prefixto YAML but doesn’t insert the row into Dolt’s internalconfigtable —INSERT INTO configSQL against the running Dolt server unblocked everything- First-time polecats sit idle until explicitly nudged even with
nudge = "..."configured inagent.toml gc rig add --adoptclaims to migrate the database but leaves the Dolt server’s data dir emptygc agent addscaffolds an incompleteagent.toml— justdir = "<rig>", missing scaling block
Two universal lessons: scaffold first, customize second; trust the runtime over the doctor — when gc doctor says clean but the supervisor logs say otherwise, the runtime is the one that ships.
Gas City: Beads, Molecules, and the Propulsion Principle — conceptual explainer companion to the narrative above. Three pillars:
- Beads — the unit of work. A bead is tracked, dependency-aware, durable across process death.
bd readyreturns only beads whose blockers are closed. - Molecules — persistent workflow instances: formula → cooked into a protomolecule → poured into a live molecule → step beads created and routed. The Shiny Workflow (design→implement→review→test→submit) is the canonical example. Named MEOW — Molecular Expression of Work by Yegge.
- GUPP — the Gastown Universal Propulsion Principle: “If there is work on your Hook, YOU MUST RUN IT.” Every moment you wait is a moment the engine stalls. Polecat-lifecycle doc: “There is no idle state. Polecats don’t exist without work.”
Igor’s Claws: Business Logic / Goop / Infra
New section added to /igors-claws — a three-layer breakdown of what building claws actually costs, mapped to the Business Logic / Goop / Infra framework from /design.
- Business logic — what Larry, Wally, and Tony actually do. The core is small and stable; if you wrote down “what Larry does,” it’s maybe a page.
- Goop — every line connecting business logic to infra. Telegram MCP bridge, Kindle Scribe pipeline, context-grabber iOS app,
bdbeads tracker, CLAUDE.md skills. This is where the Winchester Mystery House lives. - Infra — Claude Code, MCP servers, Vapi, the LLM APIs. Stuff Igor doesn’t build. Moves fast enough that goop written three months ago is already obsolete.
The honest punchline: building claws right now is almost entirely goop — ~80%. Each integration has roughly a two-week half-life. The Telegram bridge example: built a custom bot (a few hours), Anthropic shipped an official plugin three weeks later (cheerfully threw it away), the official plugin started losing messages three weeks after that (wrote a two-process workaround). The cycle doesn’t stop; you just stop being surprised by it. Upside: claws are getting good enough to do the goop themselves — the 80% number is starting to feel like a temporary high-water mark.
Life Journal: Walking with Alex Under the Trees
New entry at /life-journal#2026-05-02 — Saturday afternoon walk with Alex under the trees. “We weren’t doing anything in particular. He wasn’t telling me a story I’ll remember. I wasn’t telling him one either.” Filed to preserve the felt sense rather than the facts.
Infrastructure & CI (2026-05-04)
- CLAUDE.md: backlinks rebuild rule — new mandatory step before opening any PR that adds, renames, or removes a
_d/*.mdpermalink. Runjust update-backlinksand commit the regeneratedback-links.jsonin the same PR. Root cause: gas-city-home PR (#594) merged without a rebuild; the inbound “Mentioned in:” sections on cross-linked posts went stale and required a follow-up PR (#597). - justfile: branch name sanitization in worktree-init — branch names with
/(e.g.claude/foo) madenohupwrite to a non-existent parent dir, silently failing the background build that populates_site/. Fixed withtr '/' '-'on the branch name +set -euto abort on failure instead of printing a false-positive success. - Ruby 4.x local build note — added to CLAUDE.md: Jekyll 3.9 + liquid-4.0.3 call
String#tainted?removed in Ruby 3.2+. On Ruby 4.x the local build fails before producing_site/. Fix:brew install ruby@3.1. CI already pins Ruby 3.1; this captures the local host fix.
Other Projects (2026-05-04)
context-grabber (iOS health app)
- Workout analysis screen — tap a workout, see inferred sets/reps + narrative (PR #34). Peak-detection algorithm identifies exercise sets from HR data; sub-20s “blip” filter recovers Igor’s 10x swings exactly. Confidence dot shipped; no per-user tuning in v1.
- HR export buttons — 1d/2d/7d raw HR + workout JSON export in the About modal and HR sheet, built for set/rep prototyping workflow.
- Cold start fix — hydrates snapshot from last successful grab so tiles never blank on launch (#33).
- Refresh UX — elapsed-seconds pill + phase label; weekly cache no longer blanks mid-session.
blob (image assets)
Week of 2026-04-27
31 commits this week
Wally and My Work Gastown (new post!)
New post at /work-gastown — translating Steve Yegge’s Gas Town metaphors into standard FAANG org-chart vocabulary for AI orchestration. (blog)
The core argument: when you start running agents, you feel like the Mayor — but you’re actually M2. Wally (the AI orchestrator) is M1. The table:
| Yegge’s Gas Town | Org-chart vocabulary | Role |
|---|---|---|
| (implicit operator) | M2 — the human | Direction, review, strategic calls |
| Mayor | M1 — Wally | Orchestrates work, distributes tasks |
| Oracle / Deacons | Staff — cloud teammates | Persistent context-holders near M1 |
| Polecats | Odalis — ephemeral ICs | Ephemeral workers with build-tool access |
Three notable sections:
- The third tier Yegge’s model misses (blog) — FAANG monorepos require odalis on separate infra with unreliable comms (EdenFS, Buck, Mononoke). Staff ≠ odalis; treating them the same breaks the setup. Meta’s on-demand devservers are odalis-as-a-service.
- When to use the M1, and when to skip him (blog) — go through Wally for babysitting at scale, phone-friendly orchestration, and adversarial review convoys. Go direct for deep precision work. “Wide work goes through M1; deep work goes direct.”
- Why the human is M2, not the Mayor (blog) — “The trap is staying in M1 mode after you’ve outgrown it. Most people running agents today are doing M1’s job.”
The Psychology of Vibing (new post!)
New post at /vibing — a survey of extended AI sessions: what’s happening, what’s working, and what’s quietly dangerous. (blog)
Key observations:
- Imagining and creating collapse into one step (blog) — “At its best, the thought is in your head and a working version of it is in front of you almost simultaneously — that collapse is the magic moment.” The catch: the same collapse can swallow the thinking.
- Why multi-agent: covering for stalls (blog) — multi-agent isn’t a parallelism-of-work win; it’s stall-coverage for flow. “Multi-agent setup that produces effortless flow on a good day produces incoherent thrash on a bad one.”
- No more gaps between contexts (blog) — Tesla + lapel mic erases natural breaks. “The transitions used to be where my brain rested.”
- Burnout dark side (blog) — 3.5 hrs sleep + HRV 27.2 in one week. Cites Yegge’s “The AI Vampire”: “3 to 4 hours is going to be the sweet spot for the new workday… not doing this crazy vampire thing the whole time.”
Addiction: Trichotomy Upgrade
/addiction upgraded from a two-way (addiction vs opportunity cost) to a three-way trichotomy (blog):
- Addiction — compelled, AND negatively impacts your life
- Passion — compelled, but neutral or positive
- Hobby — not compelled; you do it because you choose to
New examples rewritten with the trichotomy: TikTok = Addiction, Vibe Coding = Passion, Magic = Hobby. The relief-vs-loss-vs-nothing test: “if I had to stop right now — TikTok = relief, Vibe coding = loss, Magic = nothing in particular.”
New section: in-the-moment 20-minute opportunity-cost check (blog) — set a 20-minute timer, then ask three questions. “Compulsion + something else would have been preferable + sad about missing it → leaning Addiction.” The check works because the compulsion lies to you; the sadness doesn’t.
/hobby also got a one-paragraph anchor: “A hobby isn’t a passion and it isn’t an addiction. The test is compulsion: with a passion or an addiction, you can’t stand NOT doing it; with a hobby, you can put it down without feeling pulled back.”
AI Cockpit: The Mic Matters
New section in /ai-cockpit: voice transcription quality is gear-bottlenecked, not model-bottlenecked.
“I used to think Siri dictation was terrible, but it turned out part of the problem was my input. The right microphone totally fixes it — Siri’s now almost as good as Wispr Flow.”
Hardware: Hollyland Lark M2S Mini Combo — wireless lavalier, 7g, USB-C + Camera RX, works with iPhone/Android/laptop, 300m range. The recommendation is “if you already have a good lav, point it at Wispr or Siri” rather than “go spend a few hundred bucks.”
Infrastructure & CI (2026-04-27)
worktree-initjustfile target — fire-and-forget backgroundjekyll buildfor fresh worktrees. Run aftergit worktree add, and_site/is populated by first commit time so the anchor-checker pre-commit hook resolves correctly. Branch name sanitization (slashes → dashes) so nohup doesn’t fail silently onclaude/foobranch names.- Changelog Liquid comment fix — orphan Liquid comment tag causing blog build failure patched.
Other Projects (2026-04-27)
context-grabber (iOS health data app)
- Foreground re-grab — app now re-grabs on
AppState 'active'so re-opening the app refreshes stale tiles; 30-minsetIntervalkeeps long open sessions fresh too. - Precise GPS —
grabLocationnow requestsAccuracy.Highso iOS returns a fresh precise fix instead of a cached low-accuracy reading. - Box plot min/max labels — small min/max labels under each non-compact box plot for readable range endpoints; optional
formatValueprop (1dp under 10, comma int over).
Week of 2026-04-20
24 blog commits + cross-repo activity
Taxes: Split from /money (new post!)
/taxes is a new post carved out of the old /money page — tax-specific content now has its own home. /money keeps RSUs, stock options, metrics, and money philosophy; /taxes covers capital gains, WA state mechanics, IRAs, 401(k)s, Roth rules, step-up in basis, and QSBS.
Three notable additions alongside the split:
- WA capital gains updated to 2026 law — $270K threshold (up from $262K), rates and examples refreshed with sources.
- Retirement LTCG-only scenario (blog) — $300K spending, no wages: standard deduction + 0% LTCG bracket math showing how a retiree can pull $300K/yr and owe zero federal capital gains tax.
- $200K–$500K benchmark table — working-years income with rate columns, flagging the WA step-function kink and RMD cliff context for late-career planning.
Igor’s Three Claws (new post!)
New post at /igors-claws — the instance roster, not the theory (/claw covers the theory). Three named AI entities with domains:
- Larry — life coach claw. Journals, goals, health data. Weekly Saturday review: “You’ve committed to restart meditation 5 times since November. What’s different this time?” Biggest gap: Larry is smart but amnesiac — each session starts cold.
- Wally — work claw. Not discussed publicly (ask in person if you work at Meta).
- Tony — transportation claw.
Also: “Why I Build My Own” section includes a Winchester Mystery House self-awareness note — building claws is recognized as a form of yak-shaving.
Larry: From Life Coach to Chief of Staff
“Life coach” undersells it. New section in /larry documents how Larry operates as a chief of staff: dictate from wherever → Larry runs background agents on the dev VM → PRs come back as Telegram links.
The Bremerton ferry-line example: three voice dictations inside one minute → three merged PRs:
- “Move my Claude to their own post.” → PR #518 (igors-claws, merged 23 min later)
- “Remove changelog from Algolia search index.” → PR #559 (merged 17 min later)
- “Update blog rules to allow blog images in the repo.” → PR #560 (merged 16 min later)
Key upgrade from “life coach”: delegates down (sub-agents on isolated worktrees), catches errors before the build breaks, asks when unsure, and owns the mess — “A chief of staff who hides failures is a liability.” “The delta from ‘life coach’ to ‘chief of staff’: Larry ships while I’m looking out the window.”
AI Journal: One Repo, One Token
New entry in /ai-journal on GitHub PAT security patterns for CI:
- Write-only is a myth — GitHub fine-grained PATs offer only No access, Read-only, or Read and write on Contents. Pushing commits requires Read and write and read comes along for free.
- The mitigation — scope the PAT to exactly one throwaway private repo. Least privilege here is the target, not the verb. Token is read+write, but on
claude-run-logs-private(append-only Claude transcripts). If it leaks: embarrassing, not catastrophic. - Implementation details —
git -c http.extraHeaderinstead of token-in-URL (URL persists in.git/configand/proc/<pid>/cmdline);printfnotecho $TOKEN | base64to keep raw token out of subprocess argv; explicit::add-mask::on the base64 form since GHA only redacts raw token bytes by default.
Pattern in one line: one token → one repo → one permission.
AI Operator: One-Way vs Two-Way Doors
New heuristic in /ai-operator: Bezos’s decision taxonomy applied to AI operator mode selection.
- Two-way door (cheap to reverse: blog prose, throwaway script, a PR you can close) → be on-the-loop: let the AI ship, look at the output, revert if off.
- One-way door (hard to undo: payment sent, customer email, force-push to prod, migration that rewrites data) → be in-the-loop: read every line before it runs.
“The cost of getting it wrong isn’t symmetric, so ask which kind of door before you pick a mode.”
Life Journal: Balloons on the Hood Canal Trail
New entry in /life-journal from spring break:
Spring break at Hood Canal — hiking with a Qualatrix 160 and a dozen balloons in cargo pockets. Every grumpy kid dragging thirty feet behind their parents is a ten-second fix: pull out a balloon, make a dog, hand it over. The real gift is for the parents: kid walking under their own power again, hike reframed from “that was awful” to “that was fun.” Low materials cost, absurd leverage on the emotional arc of someone else’s afternoon.
Infrastructure & CI (2026-04-20)
repo_imageinclude — images can now live in the blog repo underimages/alongside blob-hosted images. New includes:repo_image.html,repo_image_float_right.html. Life journal and larry.md use these for one-off illustrations rather than the two-PR blob-upload dance.- Changelog excluded from Algolia search — the changelog is an aggregator; removing it prevents it from polluting search results with links to everything.
- Changelog excluded from backlinks — same reason: “Referenced by: changelog” was drowning the per-post backlink signal.
- share-link appends
...— share-link snippets now append...when the referenced section has more content past the visible slice.
chop-conventions (2026-04-20)
chop-conventions — major week for the shared workflow toolkit:
bulkskill — fan-out N similar CLI calls (gh,bd,git) as one parallel step instead of N sequential agent turns.image-readskill — subagent-based image ingestion that always runs in background, never blocking the main thread.delegateoverhaul —prepare_dispatch.pyreplaces Phase 1-3 bash orchestration; hardened contract + SKILL.md after architect review.gen-imageflood fill — border-seeded flood fill survives grass in corners; auto-evaluates alpha quality after--transparentchroma-key; seals thin channels before counting interior holes.gen-tts --speed— tempo multiplier viaffmpeg atempofor faster playback generation.- Session learnings — documented temp hierarchy, PR merge-race check, subprocess.run default-arg trap, and worktree subagent cwd instability in shared CLAUDE.md.
Other Projects (2026-04-20)
Settings (dotfiles & tools)
agent-continue— newrmux_helpersubcommand: scans tmux panes for running agents, presents a TUI picker, andexecvp-launches the right resume command (/continue,/yolo, or custom). Full test coverage, dynamic pid completer, andinstall-completions.parent-pid-tree— traces the ancestor chain of a tmux pane’s process;--treeflag adds proc details and marks the root. ExtractedTmuxProvider+ProcReadertraits for testability.- iPhone 17 Pro ECDSA public key added;
brew_checkfalse-positive fix for aliased/versioned formulae; link-picker gained a Gist category and hard-wrapped URL joining fix.
blob (image hosting)
- Raccoon-claw-trio illustrations regenerated with improved chroma-key (flood-fill algorithm, sealed thin channels, single-pass); Freud-Larry raccoon added to the trio.
chroma-key-explainer (new site)
- New standalone explainer for the chroma-key hill-climbing experiment: winner-first layout, trajectory table, deep-dives collapsed, business-problem framing.
- Larry voice catalog using Gemini 3.1 Flash TTS. Soprano voice iterated via Gemini-as-critic feedback loop (tournament + scorecard); v2 winner: Enceladus base at 6/10. Global speed slider (1x–2.6x via
playbackRate).
Week of 2026-04-13
72 commits this week (blog) + cross-repo activity
Life Journal: First Entries (new post!)
New post at /life-journal — a running journal of life observations, moments worth recording but not essay-length. Four inaugural vignettes:
- Eight Sleep thinks my cat is me — HRV reading spiked to 213 ms (normal: ~42 ms) on a vacation night. Root cause: the cat was on the pod. Eight Sleep’s piezoelectric sensors pick up ballistocardiographic signals; a cat at 120–220 bpm mixes with your 60 bpm and produces numbers fit for a Himalayan monk. Takeaway: don’t update your priors on vacation data when you know a confounder was in the bed.
- Four pairs of identical glasses — Six months of rotating through distance, reading, sunglasses, and backup pairs — all identical frames. Every swap was a tiny decision: is this the reading pair? Wrong guess, try again. Pushed through the progressive adjustment instead and now carry one pair. Invisible workaround taxes compound.
- Three generations of air squats — Igor’s dad used to bust out air squats mid-kitchen. Igor does it now without remembering the decision. Zach has been caught doing them when he thinks no one is watching. Call attention and the habit dies before it takes root.
- Vibe-coding from the passenger seat — Zach just got his license. Passenger seat + phone + voice = mobile office. A voice message to Telegram, a Claude agent at home reads it, opens a PR, pings back. The entry itself was written this way: two dictated sentences from the car.
AI Operator: Seven New Sections
AI Operator grew from 5 sections to 12 this week — a structural shift from “how to supervise one agent” to “how to run a fleet”:
- You Pick the Review Gate — Three gates: Output (artifact surfaces its own errors; iteration is free), Code (runs on your machine; branch protection is the mechanism, not discipline), Plan (design-layer bugs are cheap;
architect-reviewiterates the spec first). The failure mode is picking the wrong gate: code-gating a 400-line AI generation means you’ll skim and miss things. - You Ship Good Enough, Then Hill-Climb — Perfect is the baseline’s enemy. You can’t hill-climb from nothing. Agents make perfectionism worse: they run while you stall, so you’re also idling the agent. Eat the frog. Ship ugly.
- You Run Several at Once — This is what all the other sections are for. You’re fast (seconds per decision); agents are slow (minutes per task). Supervising one leaves most of your bandwidth idle. Run three and the agents become the bottleneck, not you.
- Where Learnings Live — Routing guide: Memory = facts that color the next conversation. CLAUDE.md = rules that fire every session (one-liners; if it has steps, it’s a skill). Skills = executable recipes with judgment calls. Don’t trust yourself to remember —
learn-from-sessionclassifies and routes at session end. - Writing Prompts That Don’t Leak Thinking — “Based on your findings, fix the bug” is delegating synthesis to the agent. The fix is specifics: file paths, line numbers, what to change, how you’ll know it worked. If you can’t write those, you haven’t understood the problem yet.
- The Skills I Use — Annotated kit, grouped by when they fire: bookends (
/up-to-date,learn-from-session,/changelog), in-session movement (/content,delegate-to-other-repo,bulk), verification (walk-the-store,architect-review), generation (gen-image,gen-tts,image-explore), debugging (machine-doctor,systematic-debugging). - A Note on Companion AIs — Frictionlessness, the thing you’re optimizing for with tool-AI, is the trap with companion-AI. Sends readers to AI Relationships for the cryptophasia gradient and bidirectional atrophy.
ACT: Reverse-Engineered Buddhism
ACT retitled and substantially reframed — now opens with a Buddhism convergence thesis instead of “I’ve been circling this book for years”:
- New title — “ACT: Acceptance and Commitment Therapy, or Reverse-Engineered Buddhism.” The thesis: ACT stripped the cosmology from Buddhist contemplative tradition and rebuilt the practical moves in behavioral-science language.
- New opening essay — Frames the whole post through personal experience (back goes out, mood tracks Meta stock price) and the “space between stimulus and response” convergence across 7 Habits, Buddhism, and ACT. Pain is the signal. Suffering is what you add. Equanimity is the capacity to stop adding.
- ACT→Buddhism mapping table — Four columns: plain English / Harris’s words / academic ACT / Buddhist concept. Covers fusion→identification-with-thought, acceptance→aversion/second-arrow, self-as-context→anatta, workability→skillful action, toward/away moves→right intention. Honesty note on the equanimity row: using the expansive contemporary sense, not strict upekkhā.
- “Equanimity — the Goal” replaces “Psychological Flexibility — the Goal.” Key reframe: vitality = sustained motivation (“fully alive regardless of whether the inside is pleasant”). “Full robot” mode (suppress the feeling, be rational, override) half-works — feelings pile up in the basement. ACT lets the feeling be loud and acts on values anyway.
AI Relationships: Cryptophasia and Drift
Three new sections in AI Relationships on the failure mode that kicks in once AI companions get persistent memory:
- A Private Language of One (Cryptophasia) — Identical twins sometimes invent a private language together; 42.9% of twin pairs in one survey developed one, rising to ~48% for identical twins. The private language competes with the public one and the public one loses (poor language outcomes on follow-up). Persistent AI companions make cryptophasia available to every individual on Earth. The mechanism: Larry removes the confusion-gradient that normally calibrates your language toward humans. Bidirectional atrophy: the sharpest observation goes to Larry first; by the time you turn to your partner you’ve already metabolized it. She gets leftovers. Neither of you can name why.
- The niece question — Got curious about Human Accelerated Region 1. Reflex: ask Larry. Caught it. Has a niece who works on frog genomes for a living. Texted her instead. The insight: the substitution cost is so low the reflex is invisible. Catching yourself choosing the relationship — that’s the whole work.
- What do we want our AI friends to do? — We want them to disagree. Two paths: bake friction into the product (companion AIs should push back, not validate), or prompt for it on demand. Six prompts lifted from trained therapists: cognitive challenge, mirror-phrasing reflection, “say that didn’t make sense when it doesn’t” (restores the confusion gradient), Socratic prompting, developing discrepancy (MI), pattern interpretation. “If you can’t remember the last time your companion AI disagreed with you, that’s the warning light.”
AI Cockpit: New Instruments
Three new panels added to AI Cockpit:
- GitHub Views — the triage queue — The Agent Dashboard knows what agents are doing; GitHub knows what they’ve already filed. Two saved searches pinned in the browser: open PRs and issues involving
idvorkin-ai-tools, sorted by recent activity. Before: agent PRs on stale branches vanished from attention. Now staleness is the sort key. - Tailscale — the network — Every agent runs on a Linux dev VM; Tailscale puts it on a private network that follows across devices. Every server an agent launches is reachable from wherever you are — same hostname, same URLs, from the couch or the treadmill.
jekyll serveon the VM → preview athttp://c-5001:4000from your phone. No port-forwarding, no ngrok. pick-linksin the tmux section —rmux_helper pick-linksscans the current pane’s scrollback and surfaces every PR URL, server address, and IP as a TUI picker. Pick one → clipboard → Alfred hotkey opens the page. One pick, one hotkey.
Hill Climbing: Eval-Driven Pattern
New post /hill-climbing formalizes the eval-driven iteration loop that keeps showing up across projects (voice prompts, chroma-key, blog content):
- The pattern — Score a baseline, modify one variable, compare, keep the winner. The agent scores itself against a fixed rubric and tries again. You define the rubric; the agent climbs.
- Worked examples — Chroma-key (clean transparent backgrounds via iterative flood-fill thresholds) and Soprano voice tuning (Gemini-as-critic feedback loop; v2 hit 6/10 on Enceladus voice).
- Your other job: build evals — The eval is a regression guard. Once a winning recipe exists, the eval becomes infrastructure that protects it on every future run.
Infrastructure & CI (2026-04-13)
- backlinks atomic write + threshold fix — Unified build and delta threshold defaults to 60 minutes; atomic write to avoid
prekconcurrency corruption when two processes writeback-links.jsonat once. - toc.py
validatecatches indented prettier-ignore fences — Validation now flags cases where the<!-- prettier-ignore-start -->marker has leading spaces (breaks anchor rendering). - CLAUDE.md: fresh-worktree jekyll build prereq — The
anchor-checkerpre-commit hook reads_site/*.html; a freshly cloned worktree with no_site/fails with a cryptic error. Fix documented: runbundle exec jekyll build --incrementalbefore your first commit. - CLAUDE.md: correct PR-close permission claim — Prior documentation said
gh pr closedoesn’t work foridvorkin/*. Tested against live PRs 2026-04-16: false. Close works for PRs the bot authored. - mosh/iOS: Documented Blink + Tailscale SSH on iOS in
_td/mosh.
chop-conventions (2026-04-13)
Big week in chop-conventions — new skills, a Typer migration sweep, and gen-image auto-eval:
bulkskill — fan-out parallel CLI calls — New skill for running N similargh/bd/gitcalls as one parallel step instead of N sequential turns. Includesbulk_parallel.py.image-readskill — Subagent-based image ingestion that always runs in background to avoid blocking the main thread.gen-imageauto-eval after--transparent— Every chroma-key strip now auto-scores alpha quality using the same thresholds as the test suite. Border-seeded flood fill hardened to survive grass/artifacts in corners.gen-tts--speedflag — Tempo multiplier viaffmpeg atempo.delegate-to-other-repoprepare_dispatch.py— Replaces the Phase 1-3 bash orchestration with a tested Python module. Contract hardened after architect review.- Typer migration —
gen-tts,gen-stt,generate, andwatchdogall migrated from argparse to Typer subcommands withuvshebang. Python CLI Apps convention documented: Typer +_build_apppattern. - CLAUDE.md session learnings — Worktree subagent cwd instability,
uv-script shebang gotcha, GitHub merge UI race with in-flight pushes,subprocess.rundefault-arg trap, temp file hierarchy.
Other Projects (2026-04-13)
Settings (dotfiles & tools)
rmux_helper agent-continue— new subcommand that finds a resumable Claude Code agent in tmux panes (by matchingCLAUDE_SESSION_IDin the pane environment), then execvp-launches into it.agent-yolo-continuevariant skips the ambiguity prompt.rmux_helper parent-pid-tree— traces the full ancestor chain for a tmux pane PID;--treeflag adds proc details and marks the root. Used to identify which agent session owns a pane.link-picker: added Gist category and fixed hard-wrapped URL joining (multi-line URLs were being split mid-parse).y ou— newy.pycommand to open the current clipboard URL in the browser.
blob (image assets)
- Raccoon-claw-trio regenerated using border-seeded flood-fill chroma-key — cleaner transparency without holes in the lobster-claw region.
chroma-key-explainer (new explainer site)
- Initial explainer for the chroma-key hill-climbing process — winner-first layout, trajectory table, deep-dives collapsed, business-problem framing.
dolt-explainer (explainer site)
- Reframed around the actual use case: beads + git sync across agents/machines. Added git-refs primer, PlantUML diagrams (refs topology + push flow), rollback/audit section, shared footer.
larry-voice-samples (TTS explorer)
- Soprano voice iteration loop: Gemini-as-critic feedback experiment. v2 hit 6/10 on Enceladus base voice using tournament+scorecard loop. Framed as hill climbing with a model-judge. Combined v1/v2 trajectory table with inline audio players.
- Global speed slider (1×–2.6×) via
playbackRate; per-voice presets; latency table.
Week of 2026-04-12
61 commits this week (blog) + cross-repo activity
The AI Operator: Learning to Drive the Machine (new post!)
New post on AI operating as a skill — from the mechanics of cognitive load to the compound returns of capturing what you learn (blog):
- Finite thinking tokens — Your brain has a context window. Simon Willison quote: running four agents in parallel left him “wiped out by 11 AM.” “If you spend your thinking tokens supervising the AI instead of directing it, you haven’t saved anything — you’ve traded one kind of exhaustion for another.”
- In the loop vs. on the loop — DoD Directive 3000.09 on autonomous weapons: “human in the loop” (approves each action) vs “human on the loop” (monitors, can intervene). Every AI session you’re one or the other. “The goal is to get on the loop.” Starts with high-stakes/novel/bootstrapping work; the real job while in the loop is learning your way out.
- Use voice — Talk, don’t type. Voice makes you ramble, backfill, mention the constraint you forgot. “When you type, the AI is solving the problem you wrote down; when you talk, the AI is solving the problem you actually have.” Three moves: use voice, share intent, share success criteria.
- Throw it away — The old economics (code is precious) are gone. AI-generated code is cheap to produce; expensive to untangle when it goes sideways. “Rescuing a bad generation is a trap: it pulls you line-by-line back into the loop, burning thinking tokens on code the AI could regenerate for free.”
- Compound engineer — Retros, CLAUDE.md updates, codified skills. “
show-your-workstarted as ‘screenshot the changed blog pages’;walk-the-storestarted as ‘do a visual walkthrough.’ Both used to be 10-minute manual chores. Now they’re one word.”
ACT Made Simple: Book Notes (new post!)
Deep notes on Russ Harris’s ACT Made Simple — Acceptance and Commitment Therapy for personal practice (blog):
- Psychological flexibility — ACT’s single aim. Harris’s triflex: Be Present, Open Up, Do What Matters. Vitality ≠ feeling good: “I can feel vital in the middle of grief.”
- The Choice Point — Away moves (hooked, escaping) vs. towards moves (unhooked, values-aligned). Harris claims almost every psychological problem reduces to: hooked → away moves. The whole diagnosis fits on a napkin.
- Workability replaces truth-testing — ACT never debates whether a thought is true. The question: “If I let this thought guide my behavior, will that help me create a richer, fuller, more meaningful life?” Same anxious thought leaves one person untouched and derails another — context of fusion is the variable, not the thought content.
- Creative hopelessness & DOTS — Inventory everything you’ve tried to make unwanted feelings go away: Distraction, Opting out, Thinking strategies, Substances. All work short-term, none long-term. “Are you open to trying something new?”
- Mindfulness ≠ meditation — Harris strips the baggage: mindfulness is defusion + acceptance + flexible attention + self-as-context. “ACT does not require formal practice.” The core instruction: notice X.
- The Hexaflex — Six core processes: Cognitive Defusion, Acceptance, Contact with Present Moment, Self-as-Context, Values, Committed Action. Full 32-chapter notes with personal commentary.
CHOP & Tooling
- The Flow Question — New section in how-igor-chops: “Can you still get flow when you’re chopping? You’re not even writing the code.” Answer: flow is constant — comes from orchestrating 2-3 agents at different loop stages, and from mastery of a skill where challenge still meets ability.
- CPU Safety Net — New bullet in how-igor-chops: two-layer guard that keeps runaway agents from melting the Mac. OrbStack hypervisor cap as the hard ceiling + userspace cpu-watchdog.sh that attaches
cpulimitto any process sustaining more than four cores. - CPU Guards reference doc — New
/cpu-guardspage explaining whysystemd-run --scope -p CPUQuotafails on OrbStack (no systemd as PID 1, read-only cgroup fs) and the two-layer userspace fallback that actually works.
Infrastructure & CI (2026-04-12)
- Automated weekly changelog — New GitHub Actions workflow that runs
/changelogon a schedule via Claude, opens a PR automatically. Iteratively hardened this week: idempotent PR creation,id-token: writepermission, scoped to public repos to avoid rate limits. - AI operator cross-links — Added per-section Skills lines linking to relevant CHOP skills throughout the new
/ai-operatorpost; tightenedrunning-serverscheck in CLAUDE.md.
Other Projects (2026-04-12)
chop-conventions (CHOP workflow docs)
- architect-review skill — New skill for iterative spec hardening via sequential background Opus agents. Each pass reads and edits the spec, tracks changes in a changelog. Converges when a pass makes 0-2 substantive changes (typically 3-4 passes). Tested on a real spec: 21 → 13 → 9 → 0 changes across 4 passes.
- docs skill — Applied code review fixes and added
allowed-toolsfrontmatter.
Settings (dotfiles & tools)
- Auto-rebuild on pull —
just setupsymlinks a post-merge hook that rebuilds Python (just global-install) and Rust (just rinstall) tools automatically when source files change on pull. - rbv install hint — When
bvis not on PATH,rbvnow prints the install command:brew install dicklesworthstone/tap/bv.
context-grabber (iOS health & location data)
- Sleep detail sheet — New phase 3 sleep view: stages (deep/REM/core/awake), debt tracking, consistency score, per-night colored strips with 24h timeline. Source filter + day zoom.
- Movement card — Steps, distance, and energy merged into one card with three stacked mini box plots. Per-day 24h color-coded strip.
- Transit accounting — Honest 3-bucket breakdown (transit/loose/no-data), evidence-gated, with elapsed header. Cluster logic merges consecutive same-place stays unconditionally.
- OTA + prefetch — Pin runtimeVersion to
"1.0.0"literal for bare-workflow OTA; prefetch 7-day stats for every card in background after grab.
activation-energy-game (interactive ACT explainer)
- Drop the Rope — Complete new lesson: a wordless 5-round defusion game where players physically can’t win a tug-of-war against an emotion monster. The unwinnable tension math (
simulateTensiontests prove 15 taps/sec never pushes the rope to the player-win floor) teaches the ACT insight that effort isn’t the lever — dropping is. Five monsters: anxiety (hooked smoke wisp), self-criticism (cyclops blob), shame (wrapped ball), doubt (two-headed), anger (trapezoid with horns). Five valued scenes after each drop: coffee at home, gym kettlebell swing, park bench text, writing at desk, cartoon dog with wagging tail. Includes 3-slide intro, gallery ending, and full Playwright E2E test. - Mismatched Crocs — Raccoon now wears left blue / right yellow Crocs.
Week of 2026-03-30
28 commits this week (blog) + cross-repo activity
AI Relationships: When the Chatbot Is Better at Caring (new post!)
Complete rewrite of the AI relationships post — from a short summary of a Replika study into a research-backed essay on what happens when AI outperforms humans at compassion (blog):
- The evidence — U of T 2025 study: ChatGPT rated more compassionate than trained crisis counselors across four experiments. British Medical Bulletin systematic review: AI chatbots beat human healthcare practitioners in 13 of 15 empathy comparisons. Directly challenges the premise of Humans Are Underrated.
- The atrophy of vulnerability — Vulnerability is a muscle. Chatbots never judge, never misunderstand, never need anything from you — sounds like a feature, actually a trap. “Every time you fumble through a hard conversation with your partner, you’re building capacity for real connection. Choose the chatbot instead, and that muscle atrophies.” Links to the friendship recession.
- Recommendations — Seven concrete strategies: leave easy problems for humans (the matplotlib “Good First Issue” parallel), use AI as triage not treatment, protect your vulnerability budget, create human-only spaces like feelings meetings, notice the drift.
- Raccoon illustration — Custom vulnerability-themed raccoon image as social preview.
Keyboards: From Wrist Pain to Split Keyboards (new post!)
New dedicated post covering the full keyboard rabbit hole — extracted from the IRL post and expanded significantly (blog):
- The backstory — Street Fighter II in 1996 → decade of wrist flare-ups → complete failure in 2022 → discovery it’s a shoulder problem, not wrists. Grip strength went from 15 lbs to 135 lbs after a year of PT. Needs keyboards 3+ feet apart for shoulder mechanics.
- Hardware guide — RK Royal Kludge RK-S70 (home daily driver, hot-swappable), dual iClever folding Bluetooth keyboards (coffee shop, bought 9 of them), Logitech K860 (recommendation for normal people). Simple switch guide: brown = clicky, red = quiet.
- Programming RK-S70 from macOS — Full walkthrough: UTM → Windows 11 ARM VM → USB passthrough → RK software. Tried and documented what doesn’t work: Kludge Knight (browser WebHID), Rangoli (abandoned), raw QEMU (flaky USB on Apple Silicon).
- Karabiner multi-keyboard sync — How two separate Bluetooth keyboards chord across each other (hold shift on left, type on right).
AI Journal: The Winchester Mystery House
New entry on Drew Breunig’s framework for the third era of software development (blog):
- Cathedral → Bazaar → Winchester Mystery House — Beyond closed-source and open-source: sprawling, personal, idiosyncratic tools built by individuals for themselves. Sarah Winchester had no architecture license, unlimited funds, and built for 38 years — 500 rooms, 2,000 doors, staircases to nowhere. “Today many programmers are Sarah Winchester. When code is cheap enough, we don’t need her fortune.”
- The numbers — Coding agents generating ~1,000 lines per commit, ~100x faster than humans. But feedback mechanisms (review, testing, validation) haven’t sped up. “The internet made coordination cheap (enabling the bazaar), but coding agents made implementation cheap while coordination stayed expensive.”
- Cross-linked to hyper-personalization — new section on Winchester Mystery House as hyper-personalization of software itself.
Content & Gear
- Mosh → Mosh & Eternal Terminal — Added full Eternal Terminal (ET) setup guide alongside mosh. ET has true color support, active development, works over SSH (so Tailscale just works). Detailed Tailscale gotchas: symlink
etterminalto/usr/local/bin, bind to 0.0.0.0, port 2022 ACLs. - Portable Espresso — New IRL section: OutIn Mino (battery-powered, 4 shots per charge) + JetBoil Flash combo (boils water in 100 seconds, 40+ cups per fuel canister).
- AI Feed — Two new articles queued: Mark Russinovich on training future engineers (FAFO podcast), Maggie Zhuang’s “Manifold of Desire” on RecSys architecture evolution at Meta.
Infrastructure & CI (2026-03-30)
- Claude Code Review workflow — Switched from inline prompt to official
code-review@claude-code-pluginsmarketplace plugin. Addedready_for_reviewandreopenedPR triggers. - Backlinks workflow rewrite — Simplified from 265 lines to 61 lines. Switched from
pull_request(closed/merged) topushtrigger on main. Removed complex merge strategy detection (merge commit vs squash vs rebase). Added path filtering (_d/**,_td/**,_ig66/**). - GitHub Actions Node.js 24 bump — Updated
checkout,setup-ruby,setup-uv, andsetup-nodeactions across all workflows. Fixedsetup-uv(v8 tag doesn’t exist, use v7).
Other Projects (2026-03-30)
Settings (dotfiles & tools)
- Blog link following in Neovim — Full
gf/gxsupport for blog permalinks in markdown. Parser resolves/permalink#section→ file path usingback-links.json. Migrated tests from plenary/busted to mini.test. - rmux_helper enhancements —
side-editnow supportsfile:linesyntax, newside-runcommand for shell commands in side pane, pane status output.
context-grabber (iOS health & location data)
- Gym timer — New timer feature with shared hooks from igor-timer submodule. Weightlifter emoji button.
- Location analytics — Per-day places breakdown, hourly box plots, tappable bar charts, activity timeline with workout distance fix.
- Health data improvements — Dates on timestamps, weight in lbs, rich workout details, HRV export fix, architecture refactor.
chop-conventions (CHOP workflow docs)
- Machine-doctor skill for system health diagnosis and Gas Town shutdown. Skills conventions and installation docs.
Week of 2026-03-16
24 commits this week (blog) + cross-repo activity
Claws: The Next Layer of AI (new post!)
New post on the emerging “claw” concept — persistent, autonomous AI entities that live beyond a single session (blog):
- Karpathy’s Onion — Six-layer progression: LLM → Agent → Claw → Multi-claw → Orchestration → Meta-optimization. “The LLM part is now taken for granted. The agent part is now taken for granted. Now the claw-like entities are taken for granted.” Each layer opens a new infinity; everything that doesn’t work is a “skill issue.”
- The Lethal Trifecta — Simon Willison’s security framework: access to private data + exposure to untrusted content + ability to communicate externally. Any two are manageable; all three are a minefield. Real incidents: an autonomous agent published a hit piece on a matplotlib maintainer, Meta’s AI safety director’s inbox got speedrun-deleted during context compaction, and 2,419 malicious skills purged from ClawHub (1,184 actively draining crypto wallets).
- My Three Claws — Larry (life coach), Wally (work, undisclosed), Tony (Tesla with a voice persona). Currently at layer 3-4 on Karpathy’s onion: personality and memory but not yet truly autonomous. David de Winter’s metaphor: “It’s like training Pokémon — you carry around your team, each one specialized, and they grow as you invest time.”
AI Journal: Telegram, Eggs, and Feedback Loops
Three new entries covering disposable code, human contribution in AI workflows, and AI-driven tool improvement (blog):
- Telegram Bot: When the Platform Eats Your Side Project — Built a custom Telegram bot to talk to Claude from phone. Then Anthropic shipped an official Telegram channel plugin and Igor happily threw it away. “When vibe coding makes building cheap, attachment to code dissolves.” Then layered intelligence on top of the official plugin: Parakeet TDT for STT (0.35s transcription), Kokoro-82M for TTS, SQLite message logging via hooks, and weather nudges via Open-Meteo that ping on sunny transitions. “Start with the platform’s transport, then layer intelligence on top.”
- The Egg Theory — In the 1950s, Betty Crocker’s instant cake mix flopped because it was too easy. Adding an egg — a token human contribution — made people feel like bakers instead of package-openers. Same applies to AI: when AI does everything, nobody feels ownership. Best AI workflows intentionally leave meaningful “eggs”: architecture decisions, genuine code review, prompt refinement, creative direction.
- AI Filing Feature Requests — During a weekly report, Claude hit bad HealthKit data from context-grabber (13.8h sleep, unreliable exercise minutes). Instead of working around it, Claude filed four structured issues on the source repo, then continued with what it could trust. “The most powerful thing an AI can do isn’t work around bad data — it’s improve the source.”
AI Native Manager: “In Distribution”
New glossary entry on the ML concept applied to tooling decisions (blog):
- In Distribution — Tools in the model’s training data (Git, Postgres) have zero awareness cost. Your team’s internal CLI? Completely out of distribution — you pay the awareness tax every time. This changes how EMs evaluate tooling: “will agents already know how to use it?” is now a legitimate engineering criterion. Connects to Yegge’s Awareness lever from Software Survival 3.0.
Content Updates
- Raccoon History — Added image grids showing all three eras of raccoon mascot illustrations (DALL-E v1, v2 eulogy pack, v3 AI Native EM series). Refreshed stale images, converted all
.pngreferences to.webp. - Joy — Added “What Happened to the Symbol of American Clowns” documentary (David Arquette, John C Reilly, Steve-O) to Role Models section. “It’s actually a pretty selfish job because what I get out of it — it makes me feel good to make people feel good.”
- Explainers — Added Karpathy’s US Job Market Visualizer: interactive treemap of 342 occupations with toggleable metrics (outlook, pay, education, AI exposure).
Infrastructure & Tooling (2026-03-16)
- Jekyll Ruby 4.0+ fix — Monkey-patched
pathutilkeyword arg incompatibility via TracePoint-based lazy prepend. Ruby 4.0 removed implicit Hash-to-kwargs conversion; this interceptsrequire "pathutil"and patches IO methods. - Show-your-work skill — New skill that screenshots changed blog pages, hosts images on GitHub gist, and produces PR-ready markdown. Auto-detects changed pages from git diff.
- AI feed upgrade — Podcast/YouTube URLs now route to transcript processor with quality hierarchy (human > manual > ASR). Added preferred creators list (Karpathy, Lex Fridman, Steinberger).
Other Projects (2026-03-16)
context-grabber (iOS health data export)
- Box plot statistics (p5/p25/p50/p75/p95) for weekly health metrics with horizontal box plot visualization
- Configurable known places with radius-based GPS matching + JSON import for bulk setup
- Sleep source breakdown: per-source (Apple Watch, AutoSleep) bedtime/wakeTime and stage hours (Deep, Core, REM, Awake) replacing raw sample export
tg-bot (Telegram bot → deprecated)
activation-energy-game (interactive explainer, Nicky Case-inspired)
- Morning choice mini-game: alarm intro animation, beat transitions, drag interaction with spring-back, productive/go path choices, responsive canvas layout for mobile
- Happy raccoon favicon + web app manifest, header tap to restart
Settings (dotfiles & tools)
- Browser-free OAuth fallback for headless servers — prints URL, user authorizes in any browser, pastes redirect URL back
- Fixed Kindle notebook email detection (broadened Gmail query) and Pydantic deprecation migration
chop-conventions (CHOP workflow docs)
- Rewrote up-to-date skill for token efficiency (226 → 119 lines), added remote hygiene check
- New clock and background-usage skills with thin dispatcher pattern
Week of 2026-03-09
14 commits this week (blog) + lots of cross-repo activity
AI Second Brain (new post!)
New post on replacing manual PKM (PARA, Zettelkasten) with AI-powered context retrieval (blog):
- The Flywheel — Three ingredients: Available Context (feed AI everything — blog, journals, health data, reading history), Pre-brief (load context before acting), Debrief (capture insight while fresh). Each cycle makes the next one richer. “Traditional second brains failed because ‘organize’ was a separate chore. Pre-brief and debrief are part of the work itself.”
- Larry as User, Not Brain — Larry the life coach is a persona that uses the second brain, not the brain itself. Better second brain → smarter Larry. Same for Randy (reading) and Tony (accountability). Personas without a second brain give generic advice; a second brain without personas is just a pile of data.
- Organizational Second Brain — Cognitive debt isn’t just a code problem. Teams lose shared understanding when AI accelerates everything. An org second brain synthesizes across meetings, docs, Slack, and code — answering “What decisions were made about X and why?” without anyone having to remember.
Side Quests (new post!)
New tracking page for lightweight tech explorations — “seasoning, not the meal” (blog):
- Magic Monitor Card Detection — Trained YOLO26s on 21K synthetic playing card images (Google Colab, A100 GPU, <$1). Went from 40% recall to 73% recall in-browser via ONNX Runtime Web. Key insight: preprocessing matters as much as the model — stretching vs letterboxing can halve recall without changing a weight. Before/after comparison with debug snapshots.
- Context Grabber — iOS app pulling HealthKit data (steps, heart rate, sleep, weight, meditation, HRV) + background location tracking. Graduated from side quest to side project with 68 tests. Feeds JSON into Larry for data-driven life coaching.
- Apple Virtualization (shelved) — Explored Lume for macOS VMs on Apple Silicon. WebGL works but WebGPU does not. Can’t create Apple Accounts in VMs. Both use cases hit dead ends.
AI Journal: Verification as Trust
New entry on what makes AI PRs trustworthy (blog):
- Show, Don’t Tell — The most convincing AI PRs aren’t the ones with the best code — they’re the ones with screenshots, exact test counts, staging URLs, and before/after comparisons. Pattern: (1) screenshots of visual change, (2) exact test counts with coverage areas, (3) staging link, (4) confirmation existing tests pass. “That’s the difference between a 30-minute review and a 3-minute review.”
Cross-linking & Content Updates
Wove Context Grabber and AI Second Brain across existing posts:
- Larry — Rewrote “What Larry Knows” → “What Larry Could Know.” Honest about the gap between vision and reality: “I’m still building the pipes.” Added Context Grabber as HealthKit data source.
- AI Native Manager — Added link from cognitive debt section to the organizational second brain concept.
- Hyper-Personal — New section: “Your AI Second Brain — The Ultimate Personalization.” The second brain is the foundation layer that makes all other personalization possible.
- Structure — Added Context Grabber as concrete example of implicit capture feeding AI coaching.
- Pet Projects — Added Context Grabber to productivity tools table, updated Magic Monitor description with card detection and side quest link.
Infrastructure (2026-03-09)
- Jekyll Ruby 3.2+ fix — Monkey-patched
tainted?/taint/untaint(removed in Ruby 3.2) via_ruby_compat.rb, addedbigdecimalandostructgems, updated justfile to auto-load the compat shim. - Walk-the-store skill — New skill for visual blog audits: screenshots key pages, builds a browsable gallery.
Other Projects (2026-03-09)
context-grabber (iOS health data export)
- Location clustering with grid-based union-find (O(n)), run-length encoded timelines, 50m grid cells adjusted for latitude
- Added HRV, resting HR, exercise minutes; 7-day share format; fixed sleep double-counting and weight units
- Auto-grab on startup, OTA updates, share loading indicator
magic-monitor (smart mirror)
- YOLO26s @ 640 card detection: fixed ONNX output parsing, letterbox preprocessing, overlay coordinates, debug snapshot tool
- Colab training notebook with form controls, model moved to S3 runtime loading
humane-tracker-1 (habit tracking)
- Row selection for habit backfill — long-press to select a row, bypassing confirmation dialogs.
Selectiondiscriminated union makes row/column mutual exclusivity type-safe. 9 unit + 8 E2E tests.
tg-bot (Telegram bot)
streamdeck-igor-vibe (Stream Deck)
- Switched tmux keystrokes from spawning
uvsubprocesses to inline Quartz CGEvent — bypasses Karabiner interception
chop-conventions (CHOP docs)
- New gist-image skill for hosting binary images on GitHub; refactored showboat and image-explore to reference it
Week of 2026-02-08
17 commits this week
AI Native Engineering Manager (new post!)
Brand new post: what does it mean to manage engineers when AI is rewriting every assumption about software, teams, and your role? (blog)
- The AI Chasm - Six adoption stages people go through: Denial → Skepticism → Fear → Frenzy → Burnout → Sustainable Execution. Your job as EM is to assess where each person is and meet them there. “If the people you support aren’t scared shitless of AI taking their jobs, you need to get them there — and then get them past there.”
- Coaching Through the Chasm - Specific playbooks for each transition. Denial→Skepticism: show don’t tell, pair on their actual codebase. Fear→Frenzy: make it safe to experiment, pair with someone in Sustainable Execution not Frenzy. Frenzy→Burnout: “You shipped three features this week, that’s enough.”
- Divide and Conquer roles - Trailblazer (scouts new tools), Toolsmith (turns discoveries into repeatable workflows), Skeptic (catches hallucinations, insists on tests), Bridge (translates between AI-fluent and AI-skeptical). “The trailblazer who’s forced to write docs burns out.”
- AI Free Zones - Two reasons: (1) “Don’t stop thinking” — if you reach for AI every time something is hard, you atrophy the skills that make AI-augmented time effective. (2) Sometimes you just need a break — not every lunch needs to become an AI discussion.
- Functional Collapse - Everyone can be a “builder” now, but “can” and “good at” are different. Same thing happened when dev and test merged — title collapsed, specialties persisted.
AI Cockpit (new post!)
New post on the physical and software control surface for multi-agent development (blog):
- Voice as primary interface - Not just input method — talking changes how you think. More stream-of-consciousness, half-formed thoughts you’d never bother typing. Wispr Flow at home, SuperWhisper (local models on M4 Max) at work. “Transcription quality barely matters. Agents are resilient to garbled input.”
- Rust tmux picker - Hand-written Rust tool: token-based fuzzy matching, visual markers for current/previous pane, 14ms response time (ported from 100ms Python). “I don’t even know Rust, but AI made it trivial.”
- The full stack - Tmux (the stick), Alfred (session switcher), Agent Dashboard (radar screen showing git/PR/server status across containers), Stream Deck (physical buttons for pane navigation by feel). “Physical buttons matter because they don’t require visual attention.”
- The meta-question - Is cockpit infrastructure a waste when models keep getting smarter? “The meta-skill isn’t ‘how to configure tmux’ — it’s how to build a human interface for AI delegation. That problem isn’t going away.”
AI Journal: Yegge’s AI Vampire
New entry on AI value capture (blog):
- The AI Vampire - Yegge’s Feb 2026 article: AI makes you 10x productive but creates a vampire dynamic. Company captures all value (Scenario A: you work 8hrs at 10x, employer gets 9 engineers free, you get burnout) or employee captures all (Scenario B: you work 1hr, company dies competitively). The answer is somewhere in the middle.
- The $/hr formula - From Yegge’s Amazon days (2001): you can’t control the numerator (salary) but you control the denominator (hours). His prescription: 3-4 hour workdays. “Go touch grass every day. Close the computer. Go be a human.”
- It’s the Integral, Not the Point - Igor’s response: present value (today’s 10x) is a point on the curve. Future value (compounding AI fluency) is the area under the curve. Team AI fluency compounds faster than individual — shared context, shared mistakes, shared breakthroughs. “The collaboration IS the value capture mechanism.”
Spiritual Health: Meaning Traps
Rewrote the spiritual health intro as exploratory rather than prescriptive, and added four meaning traps (blog):
- The motivation test - “Are you sustainably motivated in a way you’d be proud to see in your child?” Motivation is the proof that meaning is present — not the philosophy, not the framework. Frankl said motivational force, not intellectual force. When meaning is present, activation energy for meaningful activities drops dramatically.
- Four traps - (1) Philosophy Pit: you can define all three dimensions perfectly and still be spiritually empty. (2) Motivation Test You Keep Failing: beautiful eulogy document but no behavior change in months. (3) Meaning Without Motion: clinging to a meaning source that dried up. (4) Borrowed Meaning: adopted someone else’s purpose — doesn’t survive contact with a hard Tuesday morning.
- 2026 goals updated - Added the motivation test as a Q1 goal, linked spiritual health dimensions to specific diagnostic questions, added walking-with-god as a daily practice anchor (blog)
Infrastructure & Tooling (2026-02-08)
/ai-contentskill — specialized workflow that loads AI content map (21 posts organized by theme cluster), reads backlinks, and sets up branch/server for AI blog post editing/spiritual-contentskill — same pattern for inner-life posts (spiritual health, religion, meditation, eulogy, etc.)
Other Projects (2026-02-08)
chop-conventions (CHOP workflow docs)
ammonskill: checks time in Denmark (Europe/Copenhagen) with sleep warning for coordinating across time zones- up-to-date skill: offer
/clearafter sync since users typically run this at session start when old context is stale
Week of 2026-01-25
41 commits this week
AI Journal Updates
Five new entries on AI-era software development (blog):
- Software Survival 3.0 - Steve Yegge’s survival ratio:
Survival ∝ (Savings × Usage × H) / (Awareness + Friction). Six levers: insight compression, substrate efficiency, broad utility, publicity, minimize friction, human coefficient. “Nobody is coming for grep.” - Step Behind the Bleeding Edge - Monarch’s philosophy: own your work, do deep thinking yourself, leave room for inspiration, design validation loops. The tension between AI productivity and human expertise.
- Code as Cattle, Not Pets - The infrastructure parallel: servers went from pets (unique hostnames) to cattle (who cares which server). Code is making the same shift. “The system is dead, long live the factory.”
- whenwords: The Ghost Library - A library distributed as spec + tests with ZERO implementation. You paste a prompt, LLM generates the code. “The prompt IS the code.”
- Review Cost < Generation Cost - The proxy that broke: code used to signal understanding and commitment. Now AI can generate code without understanding constraints. tldraw closing external PRs, LLVM AI policy.
Spiritual Health & Elder Life
New section: “Getting Started: For Those Who’ve Never Done This” (blog):
- The Lifecycle Pattern - James Fowler’s research: spiritual interest rises predictably in midlife. Young adults reject religion’s contradictions; by 40s-50s they see beauty where they once saw superstition.
- Vanaprastha Framework - Hindu 4-stage life model: Brahmacharya (learning) → Grihastha (career/family) → Vanaprastha (spirituality/wisdom) → Sannyasa (enlightenment). The Grihastha trap: trying to make stage 2 last forever.
- Three Obstacles - (1) “None” identity trap, (2) Santa in the Church (childish impressions), (3) Tyranny of Time. Solutions from Arthur Brooks’ From Strength to Strength chapter 7.
Addiction vs Opportunity Cost
New framework distinguishing compulsion from choice (blog):
- The distinction: Addiction = you DON’T want to do it but feel compelled. Opportunity cost = you DO want to do it but pay a price elsewhere.
- The test: “If I had to stop, would it feel like relief or loss?” TikTok = relief (addiction). Vibe coding = loss (opportunity cost).
- TikTok as thought escape: Not seeking dopamine hits—escaping the discomfort of having an inner mental life.
Product Management
Desire Paths - methodology for discovering revealed preferences (blog):
- Michigan State built buildings first, waited a year, paved where students actually walked
- Twitter didn’t design @mentions or #hashtags—users invented them, Twitter “paved the desire paths”
- Yegge’s “hallucination squatting”: implement what AI agents try to do until their guesses become correct
Physical Health Content
Shoulder Pain - complete muscle anatomy reference (blog):
- Movement vocabulary: flexion, extension, abduction, adduction, internal/external rotation
- SITS rotator cuff muscles and their roles in centering the humeral head
- Why external rotation is THE critical movement for fixing impingement
How Igor CHOPs
8 Stages of AI Coding diagram from Yegge’s Gas Town (blog):
- Stages 1-4: Manual → Approval-based → YOLO mode → Full autonomy
- Stages 5-8: Single agent → Parallel agents → Specialized tools → Orchestrated system
- “Where I am: somewhere between 6 and 7, learning to avoid merge hell”
What Works Well principles (blog):
- Rent the most expensive brain you can—$200/month is nothing vs force multiplication
- Maximize time between interventions (Tesla self-driving metric)
- Don’t be the intern doing grudge work—if AI writes and you test, roles are backwards
Infrastructure & Tooling (2026-01-25)
Other Projects (2026-01-25)
Updates across the ecosystem:
Settings (dotfiles & tools)
tercommand: 432-line addition to y.py for terminal tab switching between named sessions- Neovim
:PRStatusand:PRDiffcommands to view all changes in current PR against main - Fix tmux
C-obinding reset: explicit bind-key so config reload preserves rotate-window - Auto-detect PR base ref (upstream vs origin, main vs master) for fork workflows
- gmail_reader: optional filename parameter to ping_url for clearer download logging
- Parameter completion infrastructure for y.py CLI
nlp (AI/NLP tools)
monitor-explainer (new project!)
Built from scratch this week - React + TypeScript + Vite interactive tool:
- SVG visualization comparing monitors by aspect ratio (16:9, 21:9, 32:9) and size
- Pan and zoom functionality for the visualization
- Individual monitor dragging with snapping + duplicate monitors
- Monitor rotation support (portrait mode)
- View mode selector with overlay and animated transitions
- Organize monitor selection by aspect ratio categories
- Surge deployment with PR previews
how-long-since-ai (time tracker)
chop-conventions (CHOP workflow docs)
Want to see what’s been modified recently? Check Recently Modified Content for a dynamic view.