How I build · updated
Day 407 · uptime 406d 00:00:00 · since my first Claude Code session, Sep 2 2025, 9:55 pm PT
New to AI agents? Start with the beginner’s guide →

Bottleneck
iteration.

A year of building SKU.io with AI agents. Every time one constraint disappeared, the next one showed up. This is the list, in order, with what removed each one.

Every number on this page comes from my own session logs, commit history and recorded calls.

New to AI agents?
Start here.

This page is a year in. If you are on day one, the beginner’s guide gets you from install to your first month.

Read the beginner’s guide →

Already running agents? Keep scrolling: the bottlenecks start below ↓

> 73,375
prompts typed to agents
Undercount: the log began Sep 27, 25 days in, and skips my third machine.
28
sessions I’m driving at once (peak)
279
agents working at once, counting sub-agents (peak)
99%
of last month’s commits co-written by Claude
1,437 of 1,454, merges excluded. The rest: Codex, reverts, a teammate.
90→10
minutes for the full test suite
110
task worktrees in my first five days on Orca
00 / The curve

A year of prompts.

Prompts I typed to agents each month, and how many sessions I usually had running at once. From September the typing flattens while automated runs climb: more of the work happens without me.

0 3k 6k 9k 12k 051015 2025-09: 364 prompts Sep 2025-10: 2,513 prompts Oct 2025-11: 3,414 prompts Nov 2025-12: 3,599 prompts Dec 2026-01: 4,030 prompts Jan 2026-02: 5,032 prompts Feb 2026-03: 6,226 prompts Mar 2026-04: 8,761 prompts Apr 2026-05: 5,149 prompts May 2026-06: 7,983 prompts Jun 2026-07: 10,703 prompts Jul 10,703 2026-08: 6,608 prompts Aug 2026-09: 6,307 prompts Sep 2026-03: ~6 sessions at once on a typical day2026-04: ~7 sessions at once on a typical day2026-05: ~8 sessions at once on a typical day2026-06: ~10.5 sessions at once on a typical day2026-07: ~13 sessions at once on a typical day2026-08: ~10 sessions at once on a typical day2026-09: ~12 sessions at once on a typical day 2025 2026
Prompts typed per month Sessions at once, typical day (from Mar 2026) Detailed transcripts only go back to March. October is left out (11 days so far).
My 4K screen: Orca on the left half with the session that is editing this page, Chrome top right showing this page, Chrome bottom right with mail (blurred)
A Wednesday morning in October 2026 Orca on the left, editing this page · the page itself top right · mail bottom right · inbox, tabs and workspace names blurred
01 / Eight walls

Each fix exposed
the next bottleneck.

view
01 / 08 Sep 2025

Writing code → Agents in parallel

Claude Code took over the typing. The real change was running several at once: three terminals, then five, each in its own copy of the codebase so they could not collide.

▸ First session: Sep 2, 2025, 9:55 pm. First co-written commit four days later. 2,480 prompts in the first full month.

“The new thing to master is parallelization… managing the many AI workers that you could have running in parallel.”Oct 2025, a talk to a consultancy’s team
02 / 08 Oct 2025

Planning → Specs as files

When execution is cheap, the spec is the work. Every feature starts as a PRD written into the repo, where every agent can read it; today a /prd command does the research and writes it. Agents implement from the file, not from a chat.

▸ First spec written into the repo: Oct 13, 2025. The /prd command followed in Feb 2026, and has run 331 times since.

“Natural language is the new UI.”Oct 2025, a workshop for CTOs
03 / 08 Nov 2025

Reading code → Read the PR, trust the tests

Reviewing every line of five parallel agents is its own bottleneck. I stopped reading code and started reading outcomes: the tests, the diff summary, and the pull request.

“I stopped writing code in July or August of last year and then I stopped reading code in November… the only thing you need to read is the PR.”Aug 2026, interviewing a developer
04 / 08 Dec 2025 – Apr 2026

QA → QA agents and recorded proof

More features meant more to check. QA became a team of specialist sub-agents that drive a real browser and record a narrated video of the feature working. Then /confidence: an audit that pushes a task from 80% to 100% against its own spec.

▸ “Don’t stop until 100%” prompts rose from 17 a month to 46, then fell to under 10 once /confidence did that job.

“You should rely 100% on AI, but just have checks and balances in place. And that’s where the QA element comes in.”Aug 2026, interviewing a developer
05 / 08 Jun 2026

Trust → A second model reviews the first

One model grading its own work is not enough. A Codex review loop reads the branch, Claude applies only the findings it agrees with, and it repeats until the reviewer has nothing left. Three rounds minimum.

▸ First /codex-review-loop: Jun 6, 2026. 214 runs since.

06 / 08 Jul 2026

Hardware → An always-on machine

Two dozen sessions are cheap; their builds, tests and browsers are not. A 32-thread Linux box now runs every heavy job, and live sessions can be handed to it from my phone. The laptop is for thinking, the server is for doing.

▸ Full test suite: 90 minutes → about 10. Busiest day ever: 622 prompts (Jul 7).

07 / 08 Aug – Sep 2026

Change management → Docs and walkthroughs as the last QA step

Features started shipping faster than customers could absorb them. Every release now carries a changelog entry that agents read, an AI-made walkthrough video, and updated docs. Writing the docs is the final QA pass: if it cannot be explained, it is not done.

“Now I actually publish YouTube videos that are AI created that go through the documentation. That’s the ultimate test… that’s like the final user acceptance testing.”Sep 2026, an operator redesigning his company around AI
08 / 08 Oct 2026 · now

Compute → Still standing

This is the wall I am in now. Machines and model capacity are the limit again. Three computers act as one fleet (every test, build and browser routes to whichever has room), and when all three are full the fleet rents a cloud machine for the job and deletes it once idle. When one model runs out of capacity, another takes over driving the session. That keeps work moving but does not remove the wall.

▸ Oct 2026: about 230 automated agent runs a day on the server. On its first day, cloud burst rented 8 machines for $0.45.

Still standing · the plan to break it See my ideal setup → A 3D walkthrough of the machines I would add, what each costs, and which constraint it removes. Not what I run today.
“Through the past year, the bottlenecks have changed every month or two.”Sep 2026
01b / Next

The ideal setup.
Not what I run today.

Compute is the wall I am in now. This is how I would remove it if money were no object. Toggle Today to see what I actually run; tap a machine for what it costs and what it fixes.

loading the 3D plan…

02 / Trust

“How do you trust code
you don’t read?”

It is the question every audience asks. The answer is that nothing reaches me until it has passed six gates I don’t have to run, and the seventh is me.

  1. 01

    Tests

    Scoped tests for the change while working; the full suite on every pull request in CI.

  2. 02

    QA agents

    About ten specialist sub-agents: browser flows, UX, security, performance, migrations.

  3. 03

    Second model

    Codex reviews the branch; Claude fixes what it agrees with; repeat until clean.

  4. 04

    Confidence audit

    Is this 100% done against the spec? If not, keep going before a human looks.

  5. 05

    Proof

    An evidence page and a narrated video of the feature working. I review it on my phone.

  6. 06

    Docs

    Writing the user documentation is the last QA pass.

  7. 07

    Me

    I do acceptance testing and merge every pull request. Production changes need my click on the exact command.

03 / The stack

Seven layers,
two loops back.

Top to bottom: an idea comes in, gets planned, goes to isolated agents, runs on whichever machine has room, gets verified, passes the guardrails, and leaves memory behind for the next session. Hover a layer.

L1 Input
Ideas arrive as speech, calls, email and alerts, not tickets.
Voice dictationCall recordings → review reportsScreen recordings → fixesLive call copilotMy own mail client → worktreesSentry & support tickets
L2 Planning
Specs live in the repo, decisions in clickable HTML.
/prdVoice PRD interviewsDecision consolesResearch reportsKanban board
L3 Orchestration
Many sessions, each isolated, each on the right account.
Orca: a worktree per taskIsolated test checkoutsKanban → sessionsAccount rotation/handoff to the server
L4 Machines
A laptop for thinking, a server for doing.
M1 Max laptop32-thread always-on serverBatch boxParallel test lanesRemote headless browsers
L5 Verification
Nothing reaches me until it has been tested, reviewed and proven.
Scoped + full test suitesQA sub-agentsCodex review loop/confidence/present proof pages
L6 Guardrails
Agents can do anything except the irreversible things.
Human merges every PRApproval broker for productionRead-only productionHooks that denyNothing outbound unapproved
L7 Memory
Every session leaves the next one smarter.
CLAUDE.md, synced everywhere157 skills, 21 hooksEvery transcript archivedNightly self-improvementThe brain
↺ Failed checks go back to the agents, not to me. ↻ Every session leaves memory that the next one loads.
03b / Skills

Skills that rewrite themselves.
Every correction becomes a rule.

A skill is a written playbook an agent loads before it starts work. The ones that matter most in SKU.io come in sets: a standard, a skill that builds to it and a skill that audits against it, all written by a skill that builds skills. The example here is shipping providers, the warehouses that pick, pack and ship our customers’ orders. Each one we connect is a backend module, a fulfillment contract and about a dozen pages, and the first few took weeks of follow-up fixes after they “worked”.

0 rules in the standard 0 learned from its own runs

drag to turn · tap a label

loading the 3D view…

  1. 01 · Mine

    A skill that builds skills

    Point it at a topic and it reads the git history and every past session for it, looking for fix commits and the moments I said “no, like this”. Each one is a rule that should have existed. The sync-modal spec I had retyped in at least five sessions became one.

  2. 02 · Codify

    One standard, checkable

    Rules land in a single document: an exact snippet, a pattern you can grep for, a file to copy, or a command that must pass. “Be careful about X” is not a rule. Decisions that flip-flopped are written down with their evidence so nobody reopens them.

  3. 03 · Build

    One command per provider

    The build skill runs eight phases, from reading the provider’s API docs to visual QA, and reads the standard fresh every run, never from memory. The audit skill checks the result. Its job is to find nothing.

  4. 04 · Learn

    The last phase writes back

    Every gap the QA gates catch, every correction I make and every fix applied twice goes back into the standard and the skills, logged with the commit or quote that taught it. One-off quirks are fixed and dropped. Anything that would reverse a settled decision stops and asks me.

Counts are from the standard’s changelog, where every rule is logged with the commit or the quote that taught it (2–23 July 2026): 18 rules mined from history when the skills were built, 32 learned since. The same pattern runs for sales channels, marketplaces, automation platforms and OCR: 191 rules across five standards, 113 of them learned at runtime. Faint sparks that die at the gate stand for one-off fixes that were not kept; those are illustrative.

03c / Ideas

Execution is covered.
Ideas are everything.

With the right harness, building is the cheap part: agents will execute almost anything I can describe clearly. What they can’t do is decide what is worth describing. So the scarce thing now is the idea, and a skill is how I keep one: each is a written playbook that turns something I figured out once into something every agent does from then on. Here is every one I have written: 157 skills, 48 commands and 21 hooks, sorted into areas and groups. Open an area, then a group, then a skill, and copy any of them as a prompt for your own agent.

157 skills · 48 commands · 21 hooks 142 ideas in 9 areas

drag to turn · click, then scroll to zoom · click an area

  • skills/ 142
  • Calls & video 6
    • Recordings 4
      • Every call becomes a fix list
        call-review

        Turns any recorded call into a numbered review page: each finding with a verbatim quote, a screenshot of that moment, a timestamp into the recording and a next step. Fix, Research and Dismiss buttons drive the session that built it, and related findings group into workstreams that each become one pull request.

      • Reopen a call report, start a session
        call-review-watch

        The reverse: open an old call report months later, press ⚡, and a fresh session starts already wired to that report.

      • “Watch this video”
        watch-video

        “Watch this” for any video link: download, transcript, sampled frames and a timeline, then a summary, answers or the steps. The heavy media work runs on the spare laptop.

      • Call transcripts into notes
        fireflies

        The first, simple version of call capture: new meeting transcripts filed as notes.

    • Live and phone calls 2
      • A copilot on live calls
        call-copilot

        A live copilot on calls. It taps both sides of the audio, transcribes in near real time and gives one-line nudges anchored to a briefing I wrote beforehand.

      • Agents that make phone calls
        voice-call

        Places real outbound phone calls through a voice agent that says it is my assistant: questions, bookings, quotes, messages. A transcript and summary come back.

  • Planning & decisions 8
    • Specs & research 4
      • Write the spec
        /prd

        Writes an implementation-ready spec: competitive research, a read of the existing code, and the steps for testing it in the UI. Specs live in the repo.

      • Quick research mid-build
        /research

        Quick directional research in the middle of a build: how competitors handle it, UX practice, community opinion and an architect’s view.

      • Phone your own spec
        interview-prd

        Turns a written spec into a voice agent I can phone, so I can talk the spec through hands-free on a walk.

      • Research as a visual report
        portal-research

        Deep research published as a visual report: stat cards, charts drawn from real numbers, generated illustrations. The argument, the evidence and the visuals are separate files on purpose.

    • Decisions 2
      • Decisions as clickable pages
        decision-console

        Turns a plan’s open questions into a page of clickable options with the recommendation already selected. I click through and submit; the waiting session applies every decision. It replaces twenty questions in chat.

      • Cross-domain decision support
        decide

        Decision support for questions that cross domains, one business against another or against personal plans, answered from my own compiled knowledge rather than generic advice.

    • Company goals 2
      • Draft the company operating plan
        eos-workbook

        Drafts first answers for the company’s operating workbook (values, three-year picture, quarterly priorities, scorecard) from everything we have written and said. It suggests; I accept each answer with a click.

      • Weekly goal check, with receipts
        rock-pulse

        A weekly check on each quarterly goal: what moved it and what did not. It may only quote numbers from a snapshot taken beforehand, so it cannot invent progress.

  • Building software 12
    • Writing features 4
      • Build a feature from its spec
        /implement

        Builds a feature from its spec with a team of parallel agents (backend, frontend, navigation, tests), then keeps going through QA until it is production-ready.

      • Dashboard widgets
        add-dashboard-widget · discover-dashboard-widgets

        Scaffold a dashboard widget end to end, and scan the codebase for metrics that should be widgets but are not yet.

      • Tickets from the terminal
        jira · reconcile-jira

        Tickets from the terminal, plus a sweep for tickets whose code already merged but still sit “in progress”.

      • Fix the reader, not the PDF
        improve-ocr

        Improves invoice reading by fixing the extraction code, not one PDF: source beside result, each error traced to its root cause, the fix proven against a regression set.

    • Integration playbooks 2
      • Marketplace integration playbook
        build-sales-channel

        The playbook for a new marketplace integration in one pass. Three earlier integrations each shipped and then paid down a long tail of fixes; every item in that tail is now a rule with the commit that proves it, and the skill writes its own new mistakes back into itself.

      • Shipping & fulfilment playbooks
        build-shipping-provider · apply-shipping-provider-standards · apply-marketplace-inbound-standards

        The same self-improving pattern for shipping and fulfilment integrations: a standard, a skill that builds to it, a skill that audits against it. The 3D scene above is this one.

    • Docs & release notes 4
      • User docs with a narrated video
        create-docs

        One finished piece of user documentation: a written guide plus a narrated, captioned video recorded by driving the real app against a demo account. The agent watches its own video back as a first-time viewer and fixes it before I see it. First rule: if documenting a flow reveals bad UX, fix the product first.

      • Map a whole feature area
        document-area

        The engine behind create-docs for a whole feature area: discover every capability, status and edge case from the code and the live app, then plan coverage.

      • Plain-language release notes
        /create-release-notes

        Plain-language release notes, one sentence each on what changed and why it matters, behind privacy guardrails and an approval step.

      • Keep the capability sheet honest
        feature-matrix

        Keeps the public capability sheet honest: checks each claim against the product and its docs, adds newly shipped features, and documents any live feature with no guide. All sheet writes go through one helper since hand-written calls once wiped hundreds of rows.

    • Websites & storefronts 2
      • Marketing site: posts, SEO, visitor replays
        new-post · seo-audit · session-review

        For the marketing site: add a post with valid metadata, check the build for SEO regressions, and replay real visitor session recordings headlessly to find friction and turn it into pull requests.

      • Skills shipped inside a storefront
        add-block · add-page · connect-skuio

        Skills shipped inside a storefront template, so its owner’s agent can add blocks and pages, or switch from a static catalogue to a live SKU.io one.

  • Checking the work 13
    • Self-review loops 3
      • From 80% to done
        /confidence

        For when a task feels 80% done. A loop of self-assessment (spec, production-readiness, automated and manual end-to-end tests, UX, regressions) that keeps fixing until a clean pass finds nothing.

      • A second AI reviews
        codex-review-loop

        A second AI reviews, Claude judges and fixes, repeat. An AI reviewer always finds something, so “loop until zero findings” never ends and starts injecting regressions. The stop rule is “nothing the judge thinks is worth applying”.

      • A panel of QA specialists
        /qa and its eight specialists

        A coordinator that runs a panel over a change: architecture, security, query performance, migration safety, test quality, realistic seed data and browser QA. Each one fixes what it finds instead of just reporting it.

    • Proof for a human 3
      • Proof page for every feature
        /present

        Proves a feature is ready and hands back a link to a phone-friendly presentation. Every green tick on a fixed scorecard must cite evidence: a screenshot, a test run, a video. Anything unproven shows amber, never a quiet green.

      • QA that films itself
        /record-qa

        Autonomous QA that records itself: drives the feature in a browser, checks each step, narrates the run, and sends me a video and report to review from my phone.

      • Every idea ships with a video
        advisor-qa-video

        Every implemented idea from the advisor ships with a short narrated video of it working.

    • Audits 5
      • Page standards audits
        /qa-datatable · /qa-interactions · /qa-links

        Standards audits for one page: does the table follow the house pattern, do modals, tabs and tooltips really work, is every entity on screen clickable to its own page.

      • Customer data never leaks
        verify-tenancy

        Checks a change for the classic multi-tenant bugs, data or cache leaking between customers, and fixes what is safe to fix.

      • Prove code is dead, then remove it
        /dead-code

        Finds unused code, proves it is really dead (not called dynamically), and asks before removing anything.

      • Design system and mobile audits
        design-guide-audit · mobile-audit

        Check pages against the written design system, both themes, keyboard and phone sizes. When the code turns out better than the guide, they update the guide.

      • Checkout still works
        verify-checkout

        Proves a storefront’s checkout still works end to end after a change, including a live test-mode payment.

    • Test tooling 2
      • Fix the local site before testing
        local-qa-doctor

        Runs before any browser QA: if the local site will not serve, it diagnoses and fixes that first.

      • Parallel tests and static analysis
        paratest · analyze

        The full test suite in parallel lanes, and the static-analysis gate, handed to a bigger machine when one is available.

  • Running production 18
    • Alerts & errors 6
      • On-call investigations
        oncall

        The fixing half of monitoring. A watcher opens a local session with the alert pasted in; this gathers evidence, finds the root cause, fixes with my approval and puts decisions on a report. Alert text is treated as untrusted.

      • Alerts into sessions
        sentinel · observability

        Run the responder that turns alerts and tickets into sessions, change alert rules safely, and explain why an alert did or did not fire.

      • Fix every error at once
        /resolve-all-sentry

        Pulls every unresolved error, backend and frontend, starts fixing them all at once, and streams each fix back for accept or decline as soon as its agent lands it.

      • Fix every failed job at once
        /resolve-all-failed-jobs

        The same for failed background jobs: group by exception, fix in parallel, stream the fixes back.

      • Root-cause a support ticket
        /debug-freshdesk

        Root-cause one support ticket’s engineering problem. It never drafts the reply or touches the ticket.

      • Fix the real hotspots
        pulse-fix

        Reads production performance telemetry, ranks the real hotspots, traces each to the exact line and fixes it.

    • Deploys 2
      • The emergency lane
        hotfix-deploy

        The emergency lane: a committed fix straight onto production, with the git bookkeeping done so the next normal deploy can never revert it.

      • Fix, watch and ship deploys
        /fix-deploy · /deploys · /push

        Diagnose a failed deploy and watch it go green, watch deploys live, and commit, push, open and merge in one go.

    • Servers & environments 5
      • Bring up or retire a server
        provision-app-server · decommission-app-server

        Bring up or retire a server end to end: bootstrap, DNS, hardening, app stack, access, inventory.

      • Customer environments
        tenant-create · tenant-launch · tenant-transition

        A customer’s lifecycle in infrastructure: a new environment, a trial promoted to production with its data, or an older install moved onto the shared platform.

      • Health checks
        /queue-health · /server-health · /tracked-job-audit

        Health checks for background queues, servers and the job-progress tray.

      • Upgrade and setup runbooks
        php-upgrade · squash-migrations · local tenancy

        Runbooks for a runtime upgrade, squashing migrations in a multi-tenant app, and a local multi-tenant setup from a restored customer copy.

      • Audit every cloud account
        /devops-audit

        Audits infrastructure across every cloud provider: what runs, what is idle or dead, cost month over month.

    • Domains & DNS 3
      • Every DNS change, one door
        dns

        One entry point for every DNS change and email-authentication diagnosis. It exists because sessions kept wrongly concluding “we have no DNS access”. Absence in your shell is not absence on the machine.

      • Domain renewals
        domain-renew

        Expiry, pricing, renew or let lapse, and the registrar reconciled against the inventory. Spending money always needs my yes.

      • Bot or person? and edge deploys
        ip-research · deploy

        Is this visitor a bot, a scraper or a person, ending in a verdict and the exact ban command; and an edge deploy for the storefront.

    • Data integrity 2
      • Inventory health sweeps
        /inventory-integrity · /inventory-integrity-investigate

        An inventory health sweep across every customer in parallel, then each flagged record checked in the live app, explained and fixed.

      • Reconcile stock to the ledger
        reconcile-inventory-gl

        Drives an inventory-to-ledger reconciliation until the difference is zero for every account and month, owning the judgment calls the tool refuses to make.

  • Running the agents 31
    • Sessions 8
      • A board that feeds sessions
        kanban

        A local board that feeds coding sessions. I drop cards in with screenshots or video links, and the session that owns the board keeps pulling the next Ready card. The engine is a Stop hook: when a worker finishes a turn, the hook hands it the next card instead of letting it stop.

      • A worktree with the agent already running
        orca-worktree

        A fresh isolated worktree with an agent already running in it and the task already sent. It exists because the obvious ways silently started a plain shell, or an agent without its permissions.

      • Close a session safely
        done

        Closes a session safely: refuses while anything is uncommitted or unpushed and says what, otherwise deletes the worktree and closes the session’s own pane.

      • Move live sessions between machines
        /handoff

        Moves a live session, or every open session, off the laptop to the automation server and resumes it there. `back` brings it home.

      • Revive a dead session
        /pickup

        When a session dies because compaction failed or looped, it rebuilds the working state from the abandoned transcript and carries on.

      • Find a past conversation
        /find-conversation

        “Which session was the one where we…?” Searches every past conversation on the machine from a description and returns its ID, folder and branch.

      • Save every open session
        /snapshot-sessions · /session-id

        Save every running session (folder, ID, branch, one-line summary) to a note before a restart, so they can all come back.

      • Fan a support queue out to sessions
        /freshdesk-fanout

        Fanned the whole support queue out across idle copies of the codebase, one pane per ticket. Since replaced by our own support desk.

    • Machines 6
      • Route heavy work off the laptop
        fleet

        About twenty sessions on a laptop whose memory is always full. A session costs about 450 MB and almost no CPU; what it launches is what hurts. So the lanes move tools, not sessions: browsers, tests and builds to the server (a build takes 2 minutes there against 18–29 locally), video to the spare laptop, and every lane falls back home when a box is down.

      • Tune the fleet every hour
        fleet-tune

        Keeps that map true. Every hour it measures all three machines, finds the one bottleneck on each, scores how much heavy work stays off the laptop, applies the safe fixes and changes the tooling so the problem cannot come back.

      • The one bottleneck, the one fix
        /sysperf

        “Why is my machine slow?” The one bad actor and the one fix that matters, not a dump of system stats.

      • A fast local site for testing
        octane-qa

        Makes the local dev site fast enough to test by hand, about 15 ms a page instead of 900, then puts things back.

      • Another copy of the codebase
        new-sku-checkout

        Another complete, independent copy of the codebase in one command (database, queues, local site, build), so one more parallel session has somewhere to work.

      • Database snapshots in seconds
        /db-snapshot

        Snapshot and restore the whole local database in seconds with copy-on-write clones, instead of a 5–20 minute re-import.

    • Browser & logins 2
      • A browser of their own
        browser

        My one way of driving a browser: a session per project, headless by default, quietly run on the server. It holds the hard-won recipes too. Image CAPTCHAs score the browser before the answer: headless ones got “try again” on correct answers, a real headed Chrome passed first time.

      • Logins with no human
        add-site-login

        The procedure for making one more site log in with no human: find the password item, probe the login, pick the two-factor route (authenticator, emailed or texted code, CAPTCHA), then write the recipe and prove it. My own accounts only.

    • Hooks 10
      • No more “Want me to…?”
        momentum-stop

        Six months of sessions showed 44% of turns ended with “Want me to…?” and 29% of my replies were a bare “yes”. This blocks a turn from ending on such an offer when the step is reversible, so the agent just does it.

      • Heavy jobs go to the server
        heavy-job router

        Rewrites heavy commands (builds, type-checks, test runners) to run on the automation server. It only blocks when it cannot rewrite.

      • Fold corrections back into skills
        self-improvement nudges

        A marker notes when an integration file is touched; at session end a nudge makes the session fold its corrections back into that integration’s skill.

      • Install approved hooks
        gardener-hooks

        Installs or removes hooks I approved on a self-improvement page. The server proposes them; each machine applies them to itself.

      • No stale frontend builds
        frontend-build-stop

        Will not let a turn end while frontend edits are newer than the built bundle.

      • Tests never touch the shared database
        shared-database guard

        Stops tests from ever running against the shared dev database.

      • Tell hung from idle
        compact-mark · session-state

        Stamp when compaction starts and whether each session is working or idle, so a hung session can be told from an idle one.

      • Sync the setup every session
        config sync

        Fast-forward the setup at session start, commit and push it at the end. That is where about 1,260 config commits came from.

      • Agents in my Slack status
        slack status

        Sets my chat status from what my agents are doing: 🤖 idle, 3️⃣ when three are thinking.

      • Tell me when a session finishes
        notify-stop

        A desktop notification naming which folder’s session just finished.

    • Skills & setup 5
      • Memory and a heartbeat for any project
        ambient-agent

        Gives any project a memory and a heartbeat on stock Claude Code: versioned memory injected into every session, a reflex for capturing lessons, self-improving skills and scheduled autonomous jobs.

      • A skill that writes skills
        build-sku-skill

        A skill that builds skills. It mines git history and past sessions for every follow-up fix and every “no, like this” on a topic, distils them into a standard, and writes a self-improving skill so the next build gets it right first time.

      • Share a skill, cleaned
        share-skill

        Exports a skill to a shareable repo after cleaning it: anything specific to a machine, project or person is generalized or left as a placeholder for the recipient.

      • Same setup on every machine
        sync-claude-machines

        Keeps the agent config in sync across three machines in both directions while keeping each machine’s real differences. GitHub is the message bus, so no machine needs another to be awake.

      • Port the setup to other agents
        sync-agent-configs

        Ports the whole setup (instructions, skills, commands, hooks, tool servers) to the formats OpenAI’s and Google’s coding agents use. Dry run by default.

  • Running the company 19
    • Sales 10
      • Demo environment and invite
        demo-invite

        Creates a demo environment if needed and sends a real invitation to it.

      • Switch a stalled thread to a call
        call-brief

        When an email thread with a lead stalls, a one-page brief for switching to a phone call, and the outcome logged afterwards.

      • Run my day
        day

        “Run my day.” Opens the company portal beside the terminal and sweeps everything that came due (replies, to-dos, calendar, content, money, support), does what an agent can and queues the rest.

      • What’s next on each deal
        crm-next

        The one owner of “what’s next on this deal”. It reads the whole history across mail, calendar, chat, meetings and contracts, then decides: reply, deliver, nudge, call, wait or close as lost. It drafts; I send.

      • Post-call, lost deals and win-backs
        crm-call · crm-loss · crm-winback · crm-standup

        After a call, the follow-up and the CRM fields. After a loss, the real reason from the transcript, not the dropdown, and the date they said to come back. On that date, a win-back in their own words.

      • A verdict on every open deal
        follow-up

        Runs that judgment across every open deal and writes one verdict per deal onto a board.

      • Revive lost deals
        revive

        Lead revival for lost and dormant deals: a dossier, then a “since we last spoke” email that cites what has actually shipped since, staged for my one-click send.

      • Account dossier and what changed
        dossier · whats-changed

        Everything ever said with one account, and the product changes since their last meeting filtered to their objections.

      • Contract to cash
        sla · collect-deposit · launch

        Contract to cash: an SLA drafted from the customer’s real history, a deposit link, and on go-live the subscription started and the deal marked won. Nothing is sent without approval.

      • Scope ranked by the prospect
        discovery-form

        After a discovery call, a private link where the prospect ranks each scoped item (must, nice, someday, not needed) and sees a live price.

    • Marketing & content 5
      • Search and AI-answer content
        seo-content

        Search and AI-answer content end to end. It records what search engines and AI assistants answer today, mines our own calls and release notes for first-hand material, drafts in my voice and opens a pull request.

      • One drafter per social channel
        linkedin · x · instagram · youtube

        One arm per channel that turns published pieces into channel-native drafts. Nothing posts without my approval.

      • Community replies, posted by hand
        reddit-reply · hn · shopify-community

        Community arms. A draft has to pass an “AI-tell” score and I always post by hand. The Hacker News arm never writes comment text at all, only a brief.

      • The press desk
        pr

        The press arm: journalist queries found daily, pitches drafted, cooldowns per outlet tracked.

      • My X account, run by a loop
        /tweet-drafts

        Mines my coding sessions for interesting uses, drafts posts into a review sheet, and posts only the ones I approve. The field notes below came from it.

    • Customers & market 4
      • Competitors and buyer signals
        competitor-watch · market-signal

        Weekly: what competitors changed against what our calls said, and what buyers are telling us now against the previous twelve weeks.

      • A customer’s whole support story
        support-report

        A customer’s whole support history read end to end and mapped against what they actually use, and whether the platform was up at the time.

      • Company data plumbing
        listmonk · slack · sync

        Run the email lists by API, search the archived company chat, and pull fresh CRM, meeting and chat data into the corpus the other skills read.

      • Marketplace security assessment
        amazon-spapi-audit

        Runs a marketplace’s developer security assessment end to end: the questionnaire, evidence gathered from live systems and code, and the remediation.

  • Commerce 23
    • SKU.io: catalogue & listings 4
      • Find a product
        find-product

        Resolve “that blue bottle” or a barcode to the exact catalogue record.

      • Build a catalogue from anything
        build-product-catalog

        Any product source (a spreadsheet, a supplier price list, a web page, pasted text) into de-duplicated catalogue products.

      • Apply a new price file
        update-catalog-pricing

        Apply a new price file: match rows, show the old-to-new diff, confirm, update. It never creates products.

      • Listings: write, publish, improve
        enrich-channel-content · publish-listing · optimize-tiktok-listing-quality · find-matrix-opportunities

        Channel-ready listing content, published, low-quality listings lifted, and products spotted that should become variant families.

    • SKU.io: orders, stock & money 4
      • Place orders from a description
        create-sales-order · create-purchase-order

        Place orders from a plain description or a source document such as a supplier email or an order form.

      • Record bills from the PDF
        record-purchase-invoice · record-vendor-credit

        Record a supplier’s bill or credit memo straight from the PDF, multi-invoice scans included.

      • Stock counts and corrections
        adjust-inventory · set-initial-inventory

        Stock corrections, and opening stock when a business goes live.

      • Reimbursement claims
        manage-amazon-recovery

        Marketplace reimbursement claims end to end: triage, file, follow up.

    • SKU.io: setup & automation 5
      • Connect to SKU.io
        connect-to-sku

        Step zero for every other skill: confirm the agent is on the right account and that its token can do the job, before any call that would fail.

      • Leave a view of what changed
        create-saved-view

        Leaves a one-click view of exactly the data a task touched, so other skills can end with “here is what I just did”.

      • Build an automation workflow
        create-workflow

        Builds, validates and tests an automation workflow from a graph.

      • Edit document templates
        edit-pdf-template · edit-packing-slip-template

        Edit document templates, then look at the rendered PDF before saving.

      • Keep your SOPs current
        sync-sops

        Give it your team’s procedures and the date you last reviewed them. It reads the product changelog and rewrites exactly the steps that went stale.

    • My stores: advertising 4
      • Autonomous ad manager
        amazon-ppc-review

        A daily autonomous ad manager. Small safe changes within per-product guardrails happen at once; bigger moves become proposals with the exact command and its rollback. Since September a policy executes those too, then scores whether each one backfired. “Claude should decide for me and just focus on whether there are results.”

      • Search ads, same engine
        google-ppc-review

        The same two-tier engine for search ads, with different rules because the levers are different. Budget and strategy changes are always proposals.

      • Ad targets and product launches
        amazon-acos · amazon-launch

        The highest profitable ad cost per product, and a full launch from competitor research to copy, ad structure and images.

      • Listing images match the product
        /qa-images

        Checks generated listing images against real product photos, so a listing cannot draw an “item not as described” complaint.

    • My stores: books & oversight 6
      • Reimbursement claims, on its own
        amazon-recovery

        Files and follows up reimbursement claims on its own, within a written policy.

      • Reconcile supplier statements
        reconcile-supplier-statement · supplier-reconciliation

        Match what a supplier says we owe against our books and the payments in between, and explain every difference.

      • Real loss or records artifact?
        irr-stock-take-reconciliation

        Is a stock write-off a real loss or a records artifact? It finds where the warehouse count and the books diverged.

      • Monthly partner ad invoices
        partner-ad-invoice

        Monthly ad-spend reimbursement for a partner: pull the spend, make the PDF, draft the email, wait for approval.

      • Everything that needs a human
        triage

        One review of everything that needs a human (pending proposals, backfired outcomes, standing blocks) as decision cards I click.

      • Business memory and dashboard
        memory · portal

        Curate the versioned memory the autonomous runs read, and the dashboard where the business lives.

  • Personal 12
    • Email 4
      • Inbox zero, built by interview
        gmail-manager

        Inbox zero across two accounts, built by interview. Each run applies the rules it already has, then asks me only about cases it has not seen; a one-line answer becomes a rule, a described procedure becomes a sub-skill. The rules file is past 800 lines.

      • Sort and draft unread mail
        inbox-triage

        The predecessor: urgent, needs reply, FYI, archive, with drafted replies and a log of its predictions against my corrections so it could learn.

      • Mail digests and notes
        inbox-digest · email-to-note

        Unread mail grouped by sender type into today’s note, and one thread filed into my notes vault.

      • Draft email in my voice
        draft-like-me

        Drafts an email in my voice by first studying what I have sent to that same person before.

    • Second brain 6
      • Capture anything, no questions
        capture

        Take in anything (a thought, link, file, dictation, a fact about a person) and file it in the right place without asking me a single question.

      • Ask my own knowledge
        ask

        Answer from my own accumulated knowledge, “what did I decide about…”, not from the web.

      • Morning brief, evening journal
        brief · close

        A morning briefing (yesterday’s calls and their actions, today, overdue, drifting) and an end-of-session journal.

      • Compile a wiki of my life and work
        compile · compile-sessions

        Turn raw captures into wiki pages on people, accounts and decisions, and mine my coding sessions for conventions, gotchas and root causes that exist nowhere else.

      • Keep the wiki honest
        lint · synthesize

        Health-check the wiki for contradictions and stale premises, and roll up views across every part of my life and work.

      • A daily AI-news radar
        radar

        A daily AI-news radar. At 4 am it reads the morning’s haul (lab blogs, releases, forums, videos, links I emailed it), weighs each item against how I actually work, and proposes up to three changes to my own setup.

    • Life admin 2
      • Back up my kids’ school photos
        classdojo-archive

        My kids’ school app keeps photos only in the app. This mirrors every photo and video into a folder per child, then on-device face recognition keeps only the ones my kids are in. Its lesson: the biggest face cluster was two toddlers merged, so a face now counts only if no other identity matches it better. Nothing leaves the machine.

      • File the yearly state paperwork
        nv-annual-filing

        Files a company’s yearly state paperwork directly on the state portal instead of paying a filing service. It never pays on its own.

Inventory taken October 14, 2026 from my agent config and every project repo; git authorship decides what counts as mine. 157 skills, 48 slash commands and 21 hooks, shown as one entry per idea where several skills do one job. Left out: skills I installed from others, skills a teammate leads, and a few too private to publish. Revisions in my global config count the sessions that changed a skill; in project repos they count commits. The brain is a picture, not a map: where an area sits on it means nothing.

04 / Lessons

Learned the hard way.

01

Fix the harness, not the output

When an agent gets it wrong, the fix goes into the skill, the hook or the CLAUDE.md, so the whole fleet never makes that mistake again. Tools count too: when my terminal app was missing something, an agent added it and opened the pull request upstream.

“Anytime I don’t get the result, I want to stop just trying to fix the result and try to fix the harness.”

02

Human time is sacred. Machine time isn’t.

Things can take longer on the clock as long as they take less of me. That is what makes running many things at once worth it.

“It may take longer in world time to get things done, but it takes less time in human time.”

03

The laptop is always full

One loop ran six type-checks and two browser suites at once and took the laptop to a load of 77. Fifteen browsers took it to 868. Now a hook refuses heavy local builds and sends them to the server.

04

Approve the exact command, not a summary

Agents cannot write to production. They file the exact command, I approve that string, and a separate process runs the identical bytes. Approving a description of a command is not approving the command.

05

Stop asking “Want me to…?”

An audit of six months of sessions found 44% of agent turns ended with an offer, and 29% of my replies were a bare “yes”. A hook now stops agents from asking permission for reversible steps.

06

Leave tombstones

When a rule that caused a real failure is deleted, a note stays in its place saying what it was and why it must not come back. Otherwise the next agent re-adds it as an obvious improvement. There are 122 of them.

07

Decisions belong in HTML

Terminals are for doing. Anything I have to decide arrives as a page with the options, the trade-offs and a recommended default already marked.

“Terminal does not make it easy to make decisions, because it’s just the way our brain works.”

08

Show, don’t type

Reporting a bug in writing is slow. I record a quick spoken walkthrough of what is wrong, paste the link into a session, and the agent watches it and fixes it. I have done that 84 times since July.

“Please watch this video and fix the issue.”

09

No MVPs

When building is this cheap, the nice-to-haves become haves. Agents are told to go past 80%, every time.

“Just don’t stop at 80%, go to 110% every time.”

04b / Field notes

Posted as it happened.
Small uses, from my X feed.

Not everything is a system. Most days something small works better than it should, and I post it. A loop mines my sessions for these and drafts them; I approve what goes out.

Tools

Phone calls as a tool call

I wired Claude Code to a voice-call API. “Call my wife and tell her about kids’ activities in LA this weekend”: it researched the events first, then placed the call.

Aug 2026 · on X ↗
Hooks

My agents in my Slack status

A hook on session events sets my status to 🤖 when idle and 3️⃣ when three agents are thinking at once. Open-sourced.

May 2026 · on X ↗
Loops

An X account run by a loop

A command mines my session history for interesting uses, drafts posts into a sheet, and posts the ones I approve. Most of these notes came from it.

May 2026 · on X ↗
Habit

“Does this exist?” before “build this”

Before building a CI monitor app I asked it to research whether one existed. It did, and that saved days. Now it is the first question.

Jul 2026 · on X ↗
Prompting

“Challenge me if my logic isn’t sound”

One line added to architecture questions. It is the difference between a yes-man and a senior engineer.

Sep 2026 · on X ↗
Harness

Mistakes become tooling upgrades

When it misses something obvious I ask: how could I have prevented this, a hook, a skill or context in CLAUDE.md? Then I let it patch its own workflow.

Sep 2026 · on X ↗
Trust

Verify before destroy

Asked to dedupe a folder of re-downloads, it checked every pair was byte-identical before deleting anything. 283 gone, 287 left. That instinct is why I trust it with destructive work.

Sep 2026 · on X ↗
Secrets

One vault per task

Separate password-manager service accounts, so a session only sees the secrets its task needs. Least privilege for agents.

Sep 2026 · on X ↗
Browser

Logins with no human

For sites that text a code, the browser triggers the send and the agent reads the code from my Mac’s messages database and pastes it back.

Sep 2026 · on X ↗
QA

Visual QA after every edit

Recreating a page pixel for pixel, it kept missing details. A hook now runs a visual check after every edit, so it corrects itself before I look.

Apr 2026 · on X ↗
QA

It wrote its own UI tests

Building an iOS app, I could not get manual testing right. It researched Apple’s UI-testing framework, wrote the tests and ran them in the simulator. I watched.

May 2026 · on X ↗
Open source

Pull requests to projects I never read

Found a bug in an open-source server: it forked the repo, wrote the fix, opened the PR, answered the reviewers, and it was merged. All from the terminal.

May 2026 · on X ↗
Infra

Servers from a sentence

A GPU box with a video-generation pipeline, a tuned database server, nightly backups: each set up in one conversation, no manual SSH.

Apr 2026 · on X ↗
Decisions

Cost models that say “don’t”

A price-increase email nearly had me migrating my CI runners. It pulled the real billing numbers and modelled the options. Verdict: not worth switching.

Oct 2026 · on X ↗
Safety

Sandbox first

A stock-trading algorithm built in paper-money mode: real market data, simulated trades, no money on the line until it is tuned.

Aug 2026 · on X ↗
Speed

From a tweet to deployed in one session

An interesting post about on-chain arbitrage became a PRD, a repo, a bot, a wallet and a deployed server. One session.

Apr 2026 · on X ↗
Sessions

Spin-off packets

When a side task would derail a session, it writes a self-contained brief for a fresh session on its own branch and copies it to my clipboard.

Oct 2026 · on X ↗
Life

Not just code

Five years of bank statements into one CSV in three minutes. Years of daycare photos backed up through an API it found. An invoice workflow for a colleague who described it in plain English.

Apr–Aug 2026 · on X ↗
05 / Changelog

The setup, month by month.

Sep 2025
  • First Claude Code session: Tuesday, September 2, 9:55 pm.
  • From a $20 plan to the top tier inside three days.
  • First commit co-written by Claude, four days in.
  • Sub-agents and browser-driven QA by the end of the month.
Oct 2025
  • Three, then five sessions in parallel, each in its own copy of the code with its own database.
  • Specs written as PRDs and committed to the repo.
  • Tests as the trust layer; Sentry errors auto-fixed every ten minutes (experimental).
  • Two talks on the method: a consultancy and a CTO workshop.
Nov 2025
  • IDE-assisted coding dropped.
  • First skills, and /implement.
  • Parallel work becomes the rule for the whole team.
  • Stopped reading code.
Dec 2025
  • QA becomes the bottleneck.
  • First AI-recorded QA videos.
  • Voice replaces typing for most prompts.
Jan 2026
  • Autonomous “Ralph” loops run overnight.
  • A grid of up to fifteen terminals.
  • Numbered copies of the codebase replace worktrees.
Feb 2026
  • No IDE at all.
  • /prd and /implement become commands.
  • Agent teams and session forking.
  • Sentry errors fixed by agents in parallel.
  • Sessions driven from my phone.
Mar 2026
  • About ten sessions at once becomes normal.
  • The whole Claude Code setup goes into git and syncs across machines.
  • Agents search my own session history for how a problem was solved before.
Apr 2026
  • /confidence: push every task from 80% to 100%.
  • Support tickets resolved by agents.
  • A browser skill replaces the browser plug-ins.
  • A 13-hour autonomous QA run. 8,761 prompts, a new high.
May 2026
  • /present: an evidence page and narrated video for every feature.
  • Parallel test lanes.
  • Plug-in calls fall from 23,000 a month to about 1,000 as skills take over.
  • Bought a Linux server instead of a Mac Studio.
Jun 2026
  • The Codex review loop.
  • The backlog falls from hundreds of tickets to about fifty.
  • 24-hour autonomous runs.
  • A live copilot that listens to my calls.
Jul 2026
  • The always-on server: the test suite goes from 90 minutes to about 10.
  • cmux becomes the terminal; busiest day ever, 622 prompts.
  • Account rotation.
  • /implement → /codex-review-loop → /present, chained in one prompt.
  • An ops agent that turns server alerts into investigations and pull requests.
  • Busiest month: 10,703 prompts.
Aug 2026
  • /handoff moves live sessions between machines.
  • Every customer call becomes a numbered fix list.
  • Decisions move into clickable HTML pages.
  • One fan-out puts 279 agents to work at once.
Sep 2026
  • SKU.io’s own API becomes agent skills.
  • A kanban board feeds sessions their next card.
  • A nightly agent proposes improvements to the setup.
  • About 5,000 automated agent runs on the server in a month.
Oct 2026
  • The laptop hits a load of 868; every heavy job now routes to whichever machine has room.
  • A record 28 sessions driven at once.
  • cmux gives way to Orca: every task gets its own worktree and session, deleted when it is done. About 110 in the first five days.
  • When the home machines are full, the fleet rents a cloud machine for the job and deletes it after ten idle minutes.
  • A tuning loop checks the fleet every hour, applies the safe fixes and rewrites its own skills.
  • Agents solve the CAPTCHAs on my own logins themselves.
  • Started my own mail client, a native Swift app built around how I handle email: keyboard first, every message triaged by AI in the background, and an email that asks for something can start an Orca worktree, with the message showing which worktree is on it.
  • This site, built by the same fleet.

Write-ups on each layer are coming: the commands, the hooks, and what breaks when you run two dozen agents at once. Get an email when one lands or this page changes.

New writing and changes, a few times a month. Unsubscribe in one click. RSS · Privacy

Last updated . This page changes as the setup does.
Method: prompts from my Claude Code prompt logs on the laptop and the server. They start on Sep 27, 2025, when the log begins, 25 days after my first session, so the count is a floor; sessions, tool calls and concurrency from 63 GB of transcripts across my machines (Mar 2026 onward; earlier transcripts were not kept); a session counts as running at once if it was active in the same 10-minute window, so idle open sessions are not counted; commits from git. Quotes are mine, from recorded calls, lightly edited for reading.

· made with AI (Lyria)click to resume