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-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-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.