Six Research Agents Before One Line of Code
Building the thing subscribers install into their own Claude Code — without architecting it wrong
April 12, 2026 · Build log
Six research agents before I wrote a single line of code. That's how April 12 started. I wanted to build Edge Copilot — the Claude Code extension annual subscribers get — and I didn't want to architect it wrong. So I ran three explore agents first (Claude Code's hook system, the AutoClaygent auth flow, the existing Substack content setup), then three design-and-critique agents (architecture, GTM engineer persona, CRO buyer persona). Both critique agents independently said the same thing: don't make it "always watching." Make it pull-based — subscribers invoke it when they need it. That shaped everything.
The build itself took one session. I adapted AutoClaygent's license key pattern — same OTE- prefix format, same Supabase lookup — and wired it to a Vercel API with seven routes: register, verify, index, content, feedback, usage, and sync. Type-checked clean on the first pass. Deployed to edge-copilot.blueprintgtm.com. Then the right question came up: how do people actually get their key? The Substack subscriber API has no endpoint to check if a specific email is paid. So I built a Stripe webhook instead — same pattern as AutoClaygent, catches the annual subscription event, generates the key, emails it via Resend. Sent a test email to confirm the flow. The whole thing was live and returning a proper 401 before we hit a DNS snag that resolved itself in under ten minutes once the CNAME pointed at Vercel.
While Edge Copilot was being built, a parallel session published the first On the Edge post — "I Built a Swarm to Read Every Call" about the Blueprint Swarm open-source repo. The Substack MCP tool was silently stripping all inline formatting: bold text passed through as literal asterisks, links rendered as raw text. I dug into the source at post_handler.py and found the bug on line 1289 — _extract_text_from_content() was stripping all marks before handing off to the paragraph builder. The fix: bypass that pipeline entirely and use Post.from_markdown() from the underlying python-substack library, which handles inline formatting correctly. Patched it. Cleared the bytecache. The post went live with working bold, links, and code blocks.
Two more skills shipped before midnight. The Headline Optimizer: four Opus research agents (Cannonball GTM historical data, Substack-specific mechanics, timeless copywriting principles, demand research APIs), then a demand scoring script that runs Serper Autocomplete across 26 alphabetical queries plus Exa Reddit and FindSimilar calls — total cost ~$0.04/run. Ten headline frameworks ranked by B2B relevance, the 33-character Gmail truncation rule baked in, the dual-title system documented. Symlinked and wired into the existing /on-the-edge skill so it auto-runs on every draft. The Image Generation sub-skill came next: Gemini for hero and concept images, HTML-to-Playwright-screenshot for programmatic quote cards, stat cards, and diagrams. Built the Fraunces font setup, watermark compositing, five HTML templates, and three uv run --script Python scripts. First watermarks were invisible against dark backgrounds — the purple "OTE" had a 2.1:1 contrast ratio. Fixed it by generating gold monochrome watermarks from the original brush-stroke asset and bumping opacity to 18%.
The last fix of the day was the ugliest to discover: the Stripe webhook for playbooks.blueprintgtm.com had been failing for three weeks. Twenty-two deliveries, twenty-two failures. The signing secret in Vercel didn't match the endpoint's actual secret in the Stripe dashboard. Pulled the right value, updated the env var, redeployed, verified the endpoint returned the correct error on a malformed test POST. Then added a Vercel cron that runs every 6 hours and checks seven components — Supabase connectivity, Stripe API and webhook config, Anthropic credit balance, stuck jobs, failure rate, and webhook delivery — alerting to #pipeline-alerts in Slack if anything breaks. Next: watch whether the webhook actually catches a live subscription before trusting it.
What Annual Adds
This is what I built today. Annual subscribers run the same tools.
Every tool I ship. Edge Copilot installs to your Claude Code — talk to all my knowledge, every method, every data source. Current: Edge Copilot, AutoClaygent, Agent 7, Who to Target and What to Say, Blueprint Cloud. Whatever ships next is included.
All 3 courses: Who to Target and What to Say, Agent 7, AutoClaygent.
Weekly office hours.
License key hits your email after you upgrade.


