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.
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.
Prompts typed per monthSessions at once, typical day (from Mar 2026)Detailed transcripts only go back to March. October is left out (11 days so far).
A Wednesday morning in October 2026Orca on the left, editing this page · the page itself top right · mail bottom right · inbox, tabs and workspace names blurred
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 / 08Oct 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 / 08Nov 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 / 08Dec 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 / 08Jun 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 / 08Jul 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 / 08Aug – 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 / 08Oct 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.
“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.
01
Tests
Scoped tests for the change while working; the full suite on every pull request in CI.
02
QA agents
About ten specialist sub-agents: browser flows, UX, security, performance, migrations.
03
Second model
Codex reviews the branch; Claude fixes what it agrees with; repeat until clean.
04
Confidence audit
Is this 100% done against the spec? If not, keep going before a human looks.
05
Proof
An evidence page and a narrated video of the feature working. I review it on my phone.
06
Docs
Writing the user documentation is the last QA pass.
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.
↺ 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 standard0 learned from its own runs
drag to turn · tap a label
loading the 3D view…
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.
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.
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.
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 hooks142 ideas in 9 areas
drag to turn · click, then scroll to zoom · click an area
Click the map to zoom with the wheelwheel zooms · move off the map to scroll
skills/ 142
Calls & video6
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 & decisions8
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 software12
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.
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 work13
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 production18
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 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.
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 agents31
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 company19
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.
Commerce23
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.
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.
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.
Personal12
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.
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.
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.