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_post or chiefmo_send_approved_email without an actionId from a chiefmo_launch_product response.
  • ALWAYS surface the reviewUrl to 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 idempotencyKey on every call with side effects. Critical for launches — prevents double-publish on retry.

5. Tool quick-reference

ToolWhen to call
chiefmo_launch_productUser wants to launch a new product. Default.
chiefmo_publish_approved_postUser approved a publish action. Fire via Zernio.
chiefmo_send_approved_emailUser approved an email action. Fire via Resend.
chiefmo_measure_launch_results≥24h after publish. Pulls Zernio + GA4 + Search Console.
chiefmo_create_social_graphicsAd-hoc launch images outside a launch run.
chiefmo_diagnose_marketingEXISTING campaigns: "why isn't X working".
chieflab_connect_providerWire Zernio / Resend / GA4 / Search Console / HubSpot.
chieflab_signup_workspaceUser 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