Case study · 0 / dogfood

ChiefLab launched itself with ChiefLab.

Before the first paying customer, we ran the closed loop on ourselves. Every artifact ID below is a real third-party object you can verify — Zernio post URL, Resend messageId, the signed reviewUrl that gated execution, the 24-hour measurement readback. Same proof-pack we hand customers.

verified end-to-end · 2026-05-04 → 2026-05-05 · runId 7c1cb651-1e6e-47c2-8ea8-d0e419da9e3d

The setup

Customer: ChiefLab itself. Goal: announce the launch operator to the AI-agent-builder audience. Channels picked: LinkedIn (text post), X (threaded), email (Resend transactional), landing-page hero refresh.

The agent (Claude Code, in our own repo) made one MCP call: chiefmo_launch_product with productUrl: "chieflab.io", inline repoContext describing the closed loop we'd just shipped, and brand describing the audience and voice. 4–8 seconds later it returned a launch pack, signed reviewUrl, and four awaiting_approval publish actions — all persisted with real Supabase row IDs.

The closed loop, end-to-end

01

Plan — chiefmo_launch_product

The agent passed repoContext (recent commits, README, routes, target customer) inline. The launch pack came back grounded in the actual product — no template fluff.

  • launchId 7c1cb651-1e6e-47c2-8ea8-d0e419da9e3d — real Supabase chieflab_runs row
  • cost ~$0 ChiefLab tokens — caller's LLM rendered the final copy from the brief (default outputMode: "context")
02

Approve — signed reviewUrl

The reviewUrl rendered the four publish actions with previews. Opened on a phone. Approved in 30 seconds. Each click flipped the action's status from awaiting_approval to approved — a Supabase row update, not a façade.

  • linkedin_post action 3dd628af-722e-426b-91b7-1e16e7626df9 — approved
  • approval gate HMAC-signed · 7-day TTL · no login
03a

Publish — chiefmo_publish_approved_post (Zernio)

The agent fired the publish tool against the approved action. Zernio returned a real post ID. The post is live in the chibaku_x account, scheduled out into 2027 so it doesn't accidentally show in feeds today — real publish, controlled blast radius.

  • Zernio postId 69f8a74fc50416d0f77f852e — verifiable in the Zernio dashboard
  • platform X (Twitter) · account chibaku_x
03b

Send — chiefmo_send_approved_email (Resend)

Same shape as 03a, different connector. The Resend messageId is queryable via the Resend API for delivery confirmation.

  • Resend messageId ba122a9c-2843-4d38-b998-a345990911dc — real send, 2026-05-05
04

Measure — chiefmo_measure_launch_results

24 hours after publish, the daily cron tick fires. The tool pulls Zernio engagement, GA4 traffic, and Search Console queries. Returns a structured next-iteration brief — what worked, what to ship next.

  • readback Zernio engagement + GA4 page-views + Search Console impressions
  • recommendation returned via chiefmo_post_launch_review as a structured brief

What this proves

  • The closed loop is not slideware. Plan → approve → publish → measure → recommend each produced a real artifact ID, persisted, queryable, and survived a fresh customer-perspective smoke check (50/50 passing on every deploy).
  • Approval is enforced, not optional. The four publish actions sat in awaiting_approval until a human clicked the reviewUrl. The publish tool's first check is the action's status — pre-approval, it 403s.
  • Real connectors, not mocks. Zernio and Resend are the live writers. Nothing in the dogfood run touched a stub. The full mock-vs-real connector list is on /proof.
  • Repo-aware grounding works. The launch pack's per-channel briefs cite the actual closed-loop architecture we'd shipped — because the agent passed the repoContext that described it. A launch tool without the repo would have generated "innovative AI launch platform" boilerplate.

What this doesn't claim

This is dogfood, not a third-party customer launch. Case study #1 is waiting on the first design partner to ship through the loop. What this case study proves is that the rails are real and the artifact IDs are real — not that the loop has been validated by an external founder yet. Same flow, different attribution.

For the unfiltered honest gap list (Stripe webhook half-wired, HubSpot token-persist TODO, mock-only catalog connectors, etc.) see the roadmap + the appendix in our proof page.

Run the same loop on your launch

Get a key in 60 seconds (no email required for sandbox), point any agent runtime at chieflab.io/api/mcp, call chiefmo_launch_product with your productUrl. The proof-pack output above is what chieflab proof-pack <runId> generates from a real run.