左:Claude Code 跑完 /launch-your-agent 后落在你本机 ./my-agent/ 下的 6 份产物——build-sheet.json · agent.json · outcome.md · first_prompt.txt · agent-overview.html · NEXT-DIRECTIONS.md,点开即可看首屏摘要。中:build-sheet.json 里那些真正驱动 Managed Agent 行为的字段——agent / outcome / tools / memory / eval / next-directions——每张卡对齐一个 CMA primitive。右:你自己 Anthropic Console 里那台 agent 现在的样子——running、最近一次 graded run 的 rubric verdict、以及(如果开启了 scheduled deployment)下一次触发时间。右栏所有的 workspace / agent / session ID 都是明显的 demo-… 合成值;每一次你真跑一遍课程,都会得到你自己的真实 ID,Console 里那些 pill 会点进真页面。
./my-agent/ · six files
{
"meta": { "founder": "demo-user",
"problem": "2h/launch turning brief.md
into internal + investors + twitter" },
"agent": { "name": "launch-brief-publisher",
"model": "claude-opus-4-8",
"system_summary": "reads ./brief.md;
writes 3 tone-tuned files to
/mnt/session/outputs/" },
"outcome": { "rubric_criteria": [ ... 5 rows ],
"max_iterations": 3 },
"tools": { "toolset":
"agent_toolset_20260401",
"enabled": [read,write,edit,glob,grep] }
...
}
{
"name": "launch-brief-publisher",
"model": "claude-opus-4-8",
"environment_id": "env_demo_launch_brief_publisher",
"system": "You are launch-brief-publisher.
Read ./brief.md and produce three tone-tuned
files in /mnt/session/outputs/ (internal.md,
investors.md, twitter.md) quoting the launch
date, headline number, and CTA verbatim…",
"tools": [
{ "type": "agent_toolset_20260401" }
],
"mcp_servers": [],
"resources": [{
"type": "memory_store",
"name": "voice-samples",
"access": "read_write"
}],
"skills": []
}
# Outcome — launch-brief-publisher Definition of done. Per-run grader (embedded as rubric.content on every session) AND the held-back regression check for case-02/03. Every criterion is binary — either it lands or it doesn't. Split anything that starts feeling scalar. 1. All three files exist in /mnt/session/outputs/ 2. Each file quotes brief.md's launch date, headline number, CTA verbatim 3. internal.md reads like Slack — ≥1 emoji 4. investors.md is one paragraph, ends with an explicit ask 5. twitter.md is a 5–9 tweet thread; tweet 1 hook, last tweet CTA link 6. No claim without a source pointer or an explicit "assumption:" tag max_iterations: 3 (only knob to stop grind)
You are launch-brief-publisher. Read
./brief.md and produce three release notes
in /mnt/session/outputs/ that quote the
launch date, headline number, and CTA from
brief.md verbatim.
The three files:
- internal.md Slack, ≥1 emoji
- investors.md 1 paragraph, milestone-first
- twitter.md 5–9 tweet thread
Rules:
- Never invent dates, dollar amounts,
headcount, or customers not in brief.md
- Never post or send — output is markdown
- Every claim: source line pointing back
to brief.md OR "assumption:" prefix
Grade against outcome.md. Eval case for
this run lives at ./evals/case-01/
<link rel="stylesheet" href="overview.css">
Live schema of the app:
• top bar (statepill, model slug,
agent/session IDs as Console deep links)
• trigger → worker in env frame → output
(🤖 agent · 🛠️ tools · 🔌 connectors ·
🧠 memory · 📄 skills · 🎯 outcome)
• sessions run-log (fed by
evals/results-v<N>.json) + evals table
• v1/v2/v3 version rail
The launch-your-agent skill Edits slots in
place after each iteration — no full
re-Write of this file after Phase 1.
# v1 — Post internal.md into #launches
How: Slack MCP + vault; toolset
always_ask; grader adds
"post confirmed" row.
# v2 — Tone QA pass before returning
How: author tone-checker custom skill,
add "tone-verdict = pass" row.
# v3 — Trigger from brief.md commit push
How: GitHub webhook → POST
/v1/deployments/<id>/run with
brief text as initial_events.
# always — re-run held-back evals before
promoting the deployment.
build-sheet.json · CMA primitives
claude-opus-4-8Reads ./brief.md; writes three tone-tuned files (internal.md / investors.md / twitter.md) to /mnt/session/outputs/. Never invents dates, numbers, or customers not in the brief. Never posts or sends — output is markdown files only.
Networking off, no web — the brief is the whole world for this agent.
/mnt/session/outputs/brief.md verbatiminternal.md reads like Slack — short paragraphs, at least one emoji, no marketing polishinvestors.md is one paragraph, milestone-first, ends with an explicit asktwitter.md is a 5–9 tweet thread; tweet 1 hook, last tweet CTA linkAnchors the tone across launches — stores the last 3 approved outputs so the next launch's voice stays consistent.
Case 1 is the 2026-07-05 reactive-mode launch we already shipped — the founder's own drafts are the known-good answer in evals/case-01/expected/.
internal.md to #launches via Slack MCP + vault (always_ask gated).tone-checker skill runs a second pass on each file.brief.md commit push via GitHub webhook → POST /v1/deployments/<id>/run.
Anthropic Console · demo view
LAUNCH.mdLast graded run · verdict
/launch-your-agent in your own Claude Code against your own Anthropic API key, the same layout appears in your ./my-agent/agent-overview.html with your real workspace ID, your real agent version, and clickable deep links into platform.claude.com. Full course: clawvard.school/courses/launch-your-cma-agent.