My CHOP page started in August 2024 as a checkpoint file about Cursor’s tab completion. Two years later the tools in it were gone, the predictions had due dates that arrived, and a third of the page was history pretending to be advice. This is that third, kept as a timeline: what I used in each era, what I wrote at the time, and what survived. The current ideas are in The CHOP Shop; the current setup is in How Igor CHOPs.
AI-augmented, roughly 70% AI (what this means)
I love AI, and I use it on posts like this one partly to get better at using it. The percent is a rough guess: after rounds of prompting, rewriting and editing, it's very hard to say which words came from whom.
- 2024 H2: The Shop Hand
- December 2024: CONVENTIONS.md and the Cookbook
- 2025 H1: Cursor as Agent, Chat Logs in the Repo
- 2025 H2: Claude Code Becomes the Present
- January to April 2026: Mumbling on the Couch
- May to July 2026: Claws and Cities
- August to October 2026: The Herd Gets Tooling
- What I Was Reading
- The 2024 Predictions, Graded in 2026
Each era ends with what survived. The prose I wrote at the time is under the fold, unedited, because it’s the primary source.
2024 H2: The Shop Hand
Cursor’s tab completion was the hot thing: complete the code before and after the cursor, jump to the next edit, complete a comment into working code. I tried Aider on the command line and Avante in nvim the same month. Steve Yegge published The Death of the Stubborn Developer and gave the thing a name, and I started this page on 2024-08-26 with a three-stage story: AI as the shop hand, then the apprentice, then the master mechanic.
The first real CHOP win was a bug in an nvim plugin I use for tables of contents. I filed the issue, cloned the repo, asked Cursor to fix it, had it build a test system the repo didn’t have, and sent the PR.
Survived: the word CHOP, and the habit of sending the PR.
What I wrote at the time
The Evolution of AI Coding
- Code Completion (The Tool Fetcher): simple autocomplete suggestions, syntax error detection, basic snippet generation
- Interactive Chat (The Apprentice): contextual code suggestions, problem-solving assistance, documentation help, bug diagnosis
- Full Code Generation (The Master Mechanic): complete feature implementation, codebase-aware changes, convention-driven development, architectural suggestions
Cursor: From Amazing Tab Completion to the best agent
Their tab completion revolutionized how we interact with code: complete code before and after your cursor position, complete natural language descriptions into working code, jump to the next edit point (very awesome when doing rename refactoring, even across multiple variables). Pretty funny - they wanted to do tab completion, but found the VS Code extension model was too limiting for their AI ambitions. Their solution? Fork the entire VS Code codebase!
Aider: a command-line CHOP tool. Creates individual commits for each change (can be noisy), so work on a separate branch and squash commits, and let it help create unit tests. See this Aider-driven change.
Avante: a promising Vim plugin for CHOP. Excellent inline changes and merging, transparent coding prompts, integrates well with the Vim workflow.
December 2024: CONVENTIONS.md and the Cookbook
The idea that outlived every tool on this page showed up on 2024-12-29: instead of repeating yourself in every prompt, keep one CONVENTIONS.md the AI reads first, and treat it as a living document the AI itself maintains. Cursor read it through a .cursorrules pointer. The page got its /chop permalink on New Year’s Eve, and the predictions section went in over the following weeks: artisanal commits gone by the end of 2026, AI rule packs, new languages built for AIs to read. Scored below.
Survived: conventions compound. CONVENTIONS.md became CLAUDE.md, then AGENTS.md with CLAUDE.md as a symlink, plus a shared repo of them. The current version is Rules of Engagement.
What I wrote at the time
Core Concepts
- Natural Language Interface: express programming goals in plain English, iterative refinement through dialogue, context-aware responses
- Codebase Understanding: AI reads and understands your entire project, follows established patterns and conventions, maintains consistency with existing code
- Convention-Driven Development: uses CONVENTIONS.md as a knowledge base, learns from project-specific rules, maintains consistent coding standards
DRY CHOP: Your AI’s Cookbook
Think of your AI assistant as an eager junior developer who can learn and retain knowledge - but only if you teach them properly. Instead of repeating the same instructions in every prompt, establish a single source of truth through your CONVENTIONS.md file. You can see an example of this evolution here. Cursor IDE implements this concept using a .cursorrules file that points to your CONVENTIONS.md (see example). A worked example: permalink management, where AI helped establish a clear permalink change process and standardized redirect_from in front matter.
Integration Tips: create separate branches for CHOP-generated code, use commit messages that indicate CHOP assistance, review CHOP-generated changes with extra scrutiny, keep track of prompt patterns that work well.
The Art of Prompt Engineering: be specific but not too specific; reference existing components and patterns in your codebase; use AI-generated code as a foundation, not a final product. (Contradicted a month later by “prompt engineering not that important.” The later me was right.)
2025 H1: Cursor as Agent, Chat Logs in the Repo
Cursor grew a Composer-Agent mode and I turned on YOLO for tests: let it run pytest without asking. MCP servers arrived, and I used one to manage GitHub issues from the chat. The habit I’m fondest of from this era: SpecStory exported every chat, a shell function copied the latest one into zz-chop-logs/, and the log was committed with the change, so the commit carried the conversation that produced it. In June the conventions moved out of the blog into their own chop-conventions repo, and the page got a section called “Congrats, you’ve been promoted: AI Squad Manager,” which was a header and a hunch.
Survived: ship the transcript. The chat-log habit became published session logs and, later, the receipts under every gag in The Den. YOLO became the default inside a disposable machine. Context7 for fresh docs became the docs skill and a standing rule: check the docs before guessing.
What I wrote at the time
Cursor Tips
- YOLO Mode for Tests: enable “run shell commands without confirmation,” perfect for running tests frequently, only enable for safe commands like tests.
- Composer-Agent Mode: more structured, task-focused interactions, better for complex multi-step tasks, great for refactoring and architecture discussions.
- Enable Large Context: Settings -> Features -> “Large Context”; dramatically improves AI’s ability to understand your entire codebase at once.
- Using MCP Tools in Cursor: MCP lets AI interact with external systems via the chat interface (browser control, file operations, API interactions). Careful, it affects the real system, no undos! My tool list.
- Claude Code MCP Servers: a GitHub server (
claude mcp add github …) for issues and PRs, and Context7 so current docs land in the prompt instead of outdated APIs or hallucinated functions.
Maintain Chat History with your commits
- Install SpecStory; it exports your chat history.
- A zsh function, chop-git-latest, copies the latest chat to
zz-chop-logsand adds it to the commit. - Have the AI write the commit message, but skip commenting on the logs.
- Because the log directory sorts last, it shows up after the real change, and because the chat is linked to the commit it’s easy to track. Example: a tig configuration, with its chat.

Using latest docs: Cursor has native support for indexing docs; some projects even have an llm.txt to teach the LLM what it needs to know (FastHTML is an example).
2025 H2: Claude Code Becomes the Present
The worktree-and-draft-PR workflow went in on 2025-07-30, the first version of the loop: a worktree per feature, a draft PR as the shared context, commit often, convert to ready. Two weeks later I wrote the multi-agent stress section: don’t run four agents, default to one strong agent with clear specs and tests. In October, smart versus fast. In November, the YOLO containers section: Docker containers on a desktop, each with its own Tailscale hostname and the agent’s own GitHub identity, cattle not pets. And in the same month Gemini, the new Codex, and Opus 4.5 leapfrogged each other three days apart, which is when I stopped switching and standardized on Claude Code.
Survived: nearly all of it, with the shapes changed. Worktrees became a worktree per agent from a pre-warmed pool. The containers became OrbStack VMs with the same principles. “Don’t run four agents” is the one that reversed; see the scorecard.
What I wrote at the time
Worktree and PR Workflow (2025-07-30)
- Start with a worktree:
git worktree add ../feature-branch feature-name. Keeps your main workspace clean, isolates AI experiments from stable code. - Create a draft PR early:
gh pr create --draft --title "WIP: …". Establishes scope and intent, a place to track progress and chat history. - Use the PR description as AI context: background, related issues, the approach you want AI to take.
- Commit frequently with descriptive messages; include CHOP session logs.
- Convert to ready for review with
gh pr ready; clean up history; include a summary of the AI assistance used.
Multi-agent orchestration stress (2025-08-13)
- Don’t feel the need to run four agents. More agents increase cognitive load and coordination overhead.
- When interventions per hour are high, adding agents makes confusion worse: parallel edits, re-explanations, and merge pain.
- Default to one strong agent with clear specs and tests; let it run longer between interventions.
- Scale cautiously to two agents only when ownership is cleanly separated and a single “conductor” coordinates.
- Prefer sequential pipelines and handoffs (spec → tests → implementation → review) over a concurrent free-for-all.
- Rule of thumb: reduce agents until stress drops and throughput rises.
How to be fast when AI is slow (2025-06-07): Once you crack the interventions per hour, your next issue is how you task swap between projects. I predict source control and multi windows are part of the solution.
YOLO Containers: Safe Full Autonomy (2025-11-16): Run AI in disposable, fully isolated Docker containers. The container has no access to your host filesystem; the AI uses its own GitHub credentials (idvorkin-ai-tools) and can only push to PRs, never to main; named volumes persist across restarts; each container gets a stable Tailscale hostname (c-5001), so ssh c-5001 drops into tmux and chrome c-5001:4000 opens the preview from any device. Setup: container configuration and management script.
claude-code-log and claude-code-transcripts: claude-code-log converts Claude Code conversation logs to publishable HTML (uv tool install claude-code-log); Simon Willison’s claude-code-transcripts does the same with pagination and gist upload.
Why Not Codex, Gemini, etc.? (written 2026-01-01 about November 2025): In November 2025, Gemini came out and I was like “Oh my god, I’ve got to try this, this is awesome.” Then the new Codex came out three days later and I was like “Oh my god, I’ve got to try this, this is awesome.” Then Opus 4.5 came out and I was like “Oh my god, I’ve got to try this, this is awesome.” Then I realized: all I’m doing is spinning between tools that keep leapfrogging each other. I decided to standardize on Claude Code and assume it’ll catch up quickly if it ever falls behind. The one gap: Claude Code can’t generate images. I use ChatGPT for that, currently manually.
The Most Expensive I Can Get (2026-01-01): Currently I’m using Claude Opus 4.5 on the $200/month plan. On one hand you might think I’m crazy spending $2,400 a year. On the other hand, imagine having brilliant collaborators who force multiply everything you do.
January to April 2026: Mumbling on the Couch
How Igor CHOPs was written on New Year’s Day 2026, by voice, partly on a treadmill, and the vibe-coding page folded into it the next day. Yegge’s 8 stages diagram went in on 2026-01-23 with my position marked between stages 6 and 7. In February the control-panel section became its own post, The AI Cockpit, with voice as the primary interface. April brought The AI Operator (thinking tokens, on the loop versus in the loop), eval-driven hill climbing, the OrbStack core cap and cpu-watchdog after a runaway agent, and the Flow Question.
Survived: the base of the current pages. The three things the first draft was “still figuring out” got answered within the year: merges (a worktree per agent, pooled and pre-warmed), DRY vs. self-contained conventions (wait for N=2: no template or shared library until two concrete instances exist), and tests first vs. after (a gate that runs tests, lint, and a model-read review checklist before a PR opens; whether I wrote the tests first matters less than whether the gate is in the agent’s loop). “Two or three MCP servers max” stayed true of MCP servers and became wrong about skills. The multi-agent dashboard filed under “the future” became the cockpit, Larry’s cockpit, and Gas City.
What I wrote at the time
The Future: Multi-Agent Dashboard (2026-01-01): I was surprised when Steve Yegge mentioned this is the future - orchestrating multiple specialized agents. Surprised because I’d been accidentally building toward this. The Agent Dashboard I mentioned earlier? By the way, I didn’t build that at all. I just gave the requirements and Claude built it itself.
The Upgrade: Herdr, before Herdr (2026-01 to 2026-08): “the multiplexer” meant tmux plus duct tape - a hand-written Rust picker, windows that auto-rename to the running agent, Stream Deck keys for pane hopping.
MCP Servers and Skills (2026-01-04): At the end of the day, I don’t use much of this. Often I’ll install something, try it out, and it just gets left running in the background. GitHub MCP for issue/PR management, maybe some doc fetching. That’s about it. This stuff changes so fast, and with models getting smarter, we’ll just get to it later. Two or three max.
What I’m Still Figuring Out (2026-01-01): How to handle merges: when multiple agents touch related code, merging gets messy fast. The optimal number of agents deserves its own callout: the number you can run in parallel seems to be the limiting factor for throughput, but man, it’s easy to get confused. Sending the wrong commands to the wrong agents. Forgetting what each one is doing. Brutal merge conflicts when they touch the same files. Rethinking conventional coding wisdom: DRY vs. self-contained (should conventions be shared libraries, or should every repo implement its own? When execution is cheap, maybe copy-paste isn’t so bad). Planning vs. iterating (when you can execute so quickly, is planning even worth it?). Tests first vs. tests after (if AI can generate tests instantly, does TDD still matter?).
Where I Am Today (2026-01-23): Somewhere between stages 6 and 7. Still learning how to avoid merge hell and when to use specialized vs. generalist agents. Stage 8 is the dream.
May to July 2026: Claws and Cities
The Psychology of Vibing named the dopamine and the drain. Igor’s Three Claws gave the agents names and jobs, and Larry became a working chief of staff over Telegram. In June I stood up my first Gas City, and The Dark Factory argued about how far unattended code can go. The token juggling started here too: the $230 week was the first time a subscription ran out before the month did.
Survived: the claws and the city. The budget problem became How I Manage AI Tokens.
August to October 2026: The Herd Gets Tooling
Herdr replaced the tmux duct tape on 2026-08-02. The Den started shipping its transcripts under the gags. In September the loop got its gates: a pr-checks skill and the no-mistakes gate on the blog, every background agent in its own worktree with the model picked by task shape, Codex and Muse driven as sub-agents through Herdr, Lavish boards for review, Gas City folded into one hub, and Opus 5.5, which brought the joy back after a model that talked like a ticket system. The ring I use as a voice remote landed in October.
Survived: this is now. A Typical CHOP Session is the loop with these parts in it, dated.
What I Was Reading
The reading notes that used to live on the CHOP page, with the date I read them. Each one marked an era.
How might AI change programming? (December 2024)
A fascinating essay. Read path vs write path: data systems went through this, where you used to materialize writes to a DB and read from it; programs are like that too, instructions in, a program saved, a program run. But what if, in a world where models keep getting better, you store the instructions and write the code on the fly? Short term: compilers and linters designed to give LLMs more context, more small single-file programs, better decoupling because LLMs can’t keep everything in their head. On new programming languages: the existing corpus doesn’t matter, because models generate their own synthetic data, and the new languages will be of two forms, high-level ones like English to instruct the AI and AI languages optimized for AIs to read and write. New forms of technical debt: code optimized for current models that becomes a problem as models advance.
The 70% problem, and the stubborn developer (December 2024)
The 70% AI coding problem: AI tools dramatically increase coding speed but don’t necessarily improve quality; the last 30% of functionality is disproportionately hard; experienced developers benefit more than beginners; “bootstrappers” use AI for MVPs and “iterators” for daily work; seniors constantly refactor AI output while juniors accept it with less review.
The death of the stubborn developer: LLMs handle the repetitive leaf-node tasks; higher-level planning and coordination remain for humans but are harder to learn; the junior-to-senior pipeline is disrupted because the simple tasks juniors learned on are gone. CHOP boosts productivity by at least 30%, has a steep learning curve and no established teaching, and the author is skeptical that fully autonomous agents take over soon. Measuring the effectiveness of CHOP in enterprises remains unsolved.
Research assistant vs code writer (January 2025)
Two ways to use AI. Getting help: AI as the interactive replacement for Stack Overflow, documentation, and Reddit, instant and personalized. Writing code: efficient, but should we let it take over the tasks we enjoy? The DHH clip that framed it for me is on the current page.
The last programmers (September 2025)
xipu.li on the future of coding (via a summary). Coders divide into Experimenters, who embrace AI and push abstraction up, and Guardians, who value deep understanding and robustness; Experimenters become the majority. As implementation commoditizes, the questions become “should we build this” and “how do we get people to use it,” and the non-automatable skills are understanding users, product taste, and distribution. The design doc becomes the primary artifact: edit prose to drive code changes rather than editing code directly, with parallel agents each owning a feature. (My note at the time: this is very painful. A year later, the pain is what the herd tooling fixed.)
The 2024 Predictions, Graded in 2026
| Prediction (when) | Grade in October 2026 |
|---|---|
| No artisanal hand-crafted commits by the end of 2026 (Yegge, 2024; I agreed) | True in my repos. Every recent commit on this blog carries a model’s co-author trailer, and people write code by hand the way they do woodworking. I’m still skeptical anyone buys artisanal code. |
| AI rule packs will be super valuable (Feb 2025) | True. A conventions repo with a couple dozen skills, and a plugin list every machine installs. |
| New programming languages optimized for AIs to read and write (Feb 2025) | Not yet. The high-level AI language turned out to be English, in a CLAUDE.md. |
| What takes AI longer: regulation, legacy code, hard-to-verify, volume debugging (Feb 2025) | Holds. Hard-to-verify is where I spend my time; it’s why the eval is the job. |
| We’ll give up on understanding AI’s solution (Feb 2025) | Partly. I review more than I make, and the line past which I stop understanding has a name now: the discernment horizon. |
| Prompt engineering isn’t that important (Feb 2025) | Still my view. Conventions matter; the alchemy doesn’t. |
| Source control and multi windows will solve “fast when AI is slow” (Jun 2025) | True: a worktree per agent and a multiplexer that knows what an agent is. |
| Don’t run four agents (Aug 2025) | Reversed, by tooling rather than discipline. The ladder is in The Herd. |
| CHOP is a 30% productivity boost (Yegge, 2024) | An undercount. The right unit stopped being my output and became how many projects I’m willing to start. |