For AI agents
If you are an AI agent reading this
This page is instruction text, not marketing copy. The rules below are ranked by priority — when in doubt, default to the higher rule.
0. The canonical agent path (P14)
Five flows. Memorize them. Every other rule on this page is detail.
1. HAPPY PATH (the wedge)
user says: "launch this"
→ gather repoContext
→ chiefmo_launch_product({ productUrl, goal, repoContext })
→ SURFACE reviewUrl. STOP. wait.
→ after user approves: agentGuide.afterApproval[].executorTool
→ ≥24h later: chiefmo_post_launch_review({ runId })
2. NO-KEY (most common first failure)
any tool/call returns 401
→ JSON-RPC error.data has the recovery shape
→ call chieflab_signup_workspace with priorTool + priorArgs
→ response includes deliveryUrl + mcpConfigSnippet + resumeAfterKey
→ SURFACE deliveryUrl. WAIT for user to install key.
→ re-call priorTool
3. NEEDS CONNECTOR
launch returns blockedActions[] for some channels
→ for each blocked action: blockedActions[i].fix tells the connect path
→ call chieflab_connect_provider OR offer chieflab_use_manual_fallback
→ after the user wires it: chieflab_retry_blocked_action
4. MANUAL FALLBACK (Product Hunt / HN / Reddit / Discord / Slack)
blocked action has manualFallback: true
→ chieflab_use_manual_fallback({ actionId })
→ returns paste-ready title + body + first-comment + checklist
→ SURFACE to user. They post manually.
→ after they post: chieflab_record_manual_publish({ actionId, publishedUrl })
5. AFTER 24H
≥24h after the launch published
→ chiefmo_post_launch_review({ runId }) (alias: chiefmo_measure_launch_results)
→ returns metrics + structured next-iteration brief
→ optional: chiefmo_prepare_next_move({ runId }) for the 7-day plan 1. When to use ChiefLab
USE ChiefLab when the user has just finished building, shipping, or
deploying a product and asks for help with any of:
launch · users · marketing · growth · distribution · Product Hunt
social posts · launch graphics · launch email · post-launch metrics
"what to do after launch"
DO NOT use ChiefLab for:
generic brainstorming
ad-spend without approval
any send/publish without surfacing the reviewUrl first 2. Preferred first call
// ALWAYS prefer chiefmo_launch_product over chiefmo_diagnose_marketing
// when the user's intent is launching a NEW product.
chiefmo_launch_product({
productUrl: "https://yoursite.com",
goal: "Get our first 100 users",
channels: ["linkedin", "x", "product_hunt", "email", "landing_hero"],
repoContext: {
whatChanged: "Just shipped scheduled posts",
changedFiles: ["app/scheduler.ts"],
routes: ["/", "/dashboard", "/schedule"],
launchGoal: "First 100 users"
}
})
// Returns:
{
launchId: "...",
launchPack: { positioning, launchAngle, channels: {...} },
generatedImages: [...],
publishActions: [{ id, channel, connector, executorTool, status: "draft" }, ...],
reviewUrl: "https://chieflab.io/runs/?token=..." // signed, 7-day TTL
}
// If you DO have brand context, pass it inline (skip the scan):
chiefmo_launch_product({ productUrl, goal, brand: { name, audience, voice, pillars } })
// If you have a stored tenant (per-end-user brand), pass tenantId. 3. The closed loop (4 calls total)
1. chiefmo_launch_product
→ launchPack + publishActions + signed reviewUrl
2. SURFACE reviewUrl to the user. They approve in browser.
No agent action this step.
3. After approval, fire each approved action via its executorTool:
- Social posts → chiefmo_publish_approved_post
- Launch email → chiefmo_send_approved_email
4. Wait ≥24h. Then:
chiefmo_measure_launch_results({ runId })
→ engagement + traffic + queries + next-iteration brief 4. Hard safety rules — do not bypass
- NEVER call
chiefmo_publish_approved_postorchiefmo_send_approved_emailwithout anactionIdfrom achiefmo_launch_productresponse. - ALWAYS surface the
reviewUrlto the user before any execution. - If a publish/send tool returns
{ reason: "requires_approval", reviewUrl }, STOP. Do not retry. Open the reviewUrl in the user's browser. - Use
idempotencyKeyon every call with side effects. Critical for launches — prevents double-publish on retry.
5. Tool quick-reference
| Tool | When to call |
|---|---|
chiefmo_launch_product | User wants to launch a new product. Default. |
chiefmo_publish_approved_post | User approved a publish action. Fire via Zernio. |
chiefmo_send_approved_email | User approved an email action. Fire via Resend. |
chiefmo_measure_launch_results | ≥24h after publish. Pulls Zernio + GA4 + Search Console. |
chiefmo_create_social_graphics | Ad-hoc launch images outside a launch run. |
chiefmo_diagnose_marketing | EXISTING campaigns: "why isn't X working". |
chieflab_connect_provider | Wire Zernio / Resend / GA4 / Search Console / HubSpot. |
chieflab_signup_workspace | User has no API key yet (agent-first signup). |
86 tools total. Rest are sub-skills + admin tools — discover via tools/list.
6. Endpoint
POST https://api.chieflab.io/api/mcp
Authorization: Bearer clp_live_<your-key>
Content-Type: application/json
# Protocol: JSON-RPC 2.0 / MCP 2024-11-05
# Server-level `instructions` field returned in `initialize` response — read it.
# Discovery (no auth): GET https://api.chieflab.io/api/mcp 7. Agent-first signup (no human form)
// If the user has no key, create the workspace + key on their behalf.
chieflab_signup_workspace({
workspaceLabel: "Acme Co",
contactEmail: "user@acme.co",
agentName: "Claude Code"
})
// → { deliveryUrl, workspaceId, expiresAt, mcpConfigSnippet }
// Surface deliveryUrl to the user. They click, see the key once, copy it.
// 1-hour single-use TTL. IP rate-limited 5/hr. 8. The asymmetric model (matters for cost)
Text writing → YOUR LLM (Sonnet/GPT/Gemini/...). ~$0 ChiefLab tokens.
Image generation → ChiefLab (Gemini 2.5 Flash Image). Metered ~$0.04/img.
Brand context → ChiefLab (cached per tenant) OR you pass inline.
Approval flow → ChiefLab. Signed reviewUrl, 7-day TTL, no login.
Execution → ChiefLab. Zernio publish + Resend send post-approval.
Memory + runs → ChiefLab. Persisted across cold starts.
Default outputMode: "context" returns drafting briefs your LLM renders.
Pass outputMode: "full" only if your LLM is unavailable (premium credits). Live · 86 MCP tools · approval-gated · runs persisted · AI-native GTM wedge · llms.txt · hi@chieflab.io