agent-launcher — Domain Orchestrator
Use when a user wants to build, launch, grade, or schedule a Claude Managed Agent (CMA) in their own Anthropic account — "build me an agent", "launch this as a managed agent", "run this on a schedule", "grade my agent against a rubric", "set up a nightly worker".
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/agent-launcher-orchestrator, including the files SKILL.md points to. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit alirezarezvani/claude-skills/agent-launcher/skills/agent-launcher-orchestrator#main ~/.claude/skills/agent-launcher-orchestratorFor one project only, change the path to .claude/skills/agent-launcher-orchestrator. This skill also uses goal_router.py, loop_compiler.py, goal_state.py, goal.json, interview-to-config.md, loops-and-workflows.md — copying SKILL.md alone won't be enough. See the folder on GitHub.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of agent-launcher — Domain Orchestrator
Show the full text95 lines
| name | description | context | version | author | license | tags | compatible_tools |
|---|---|---|---|---|---|---|---|
| agent-launcher-orchestrator | Use when a user wants to build, launch, grade, or schedule a Claude Managed Agent (CMA) in their own Anthropic account — "build me an agent", "launch this as a managed agent", "run this on a schedule", "grade my agent against a rubric", "set up a nightly worker". Reads the per-session goal (./my-agent/goal.json), routes deterministically to one of five phase sub-skills (interview → stage-launch → grade-iterate → run-without-you → wrap-up) via goal_router.py, and compiles the goal+phase into an execution shape (single-pass workflow / bounded grade→iterate loop / recurring cron deployment loop) via loop_compiler.py. Forks context so heavy intake (build sheets, payloads, eval cases) stays out of the parent thread. All launches are emitted as BYOK curl the user runs with their own key; no tool makes API calls. Inspired by anthropics/launch-your-agent (Apache-2.0). Distinct from engineering/agent-harness (generic domain loop) and engineering/write-a-skill (authors Claude Code skills, not CMAs). | fork | 2.11.2 | Alireza Rezvani | MIT | [claude-managed-agents, cma, agent, launch, orchestrator, session-goal, loop, workflow, cron, outcome, byok] | [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli] |
agent-launcher — Domain Orchestrator
Every session starts with a goal — one sentence for one CMA. This orchestrator reads that goal, routes to the right phase, and compiles the goal into a loop or a workflow. Heavy intake stays in the forked context; the parent gets a digest.
Inspired by Anthropic's launch-your-agent reference skill (Apache-2.0). This is
an independent re-implementation; CMA semantics come from
../../references/cma-primitives.md.
The through-line: the session goal
State lives at ./my-agent/goal.json (the user's folder). Manage it with
goal_state.py (init / set / status / advance) — it also backs the /cs:goal
command and the opt-in SessionStart hook. The goal's phase selects the lane;
the phase + recurrence selects the loop shape.
Routing (deterministic)
Run the router, then act on its exit code:
python3 scripts/goal_router.py --out-dir ./my-agent
# exit 0 ROUTE -> fork to the named phase sub-skill
# exit 3 ASK -> ask the one printed forcing question, then re-route
# exit 4 REFUSE -> goal too vague; get one sentence, then re-route
| Lane (phase) | Sub-skill | Loop/workflow |
|---|---|---|
| interview | interview |
single-pass workflow |
| stage-launch | stage-launch |
single-pass workflow |
| grade-iterate | grade-iterate |
bounded grade→iterate loop |
| run-without-you | run-without-you |
recurring cron deployment loop |
| wrap-up | wrap-up |
— |
Compile the loop
python3 scripts/loop_compiler.py \
--out-dir ./my-agent --max-iterations 5 --cron "0 9 * * *" --timezone Europe/Berlin --nest-outcome
loop_compiler.py emits plan.v1: single-pass, grade-iterate (always with a
max_iterations cap 1..20), or cron-loop (optionally nesting a self-grading
outcome per firing). See ../../references/loops-and-workflows.md.
Pre-flight gates (hard refusals)
- No goal set. If
goal.jsonis missing, rungoal_state.py init --goal "..."first. The orchestrator does not guess a goal. - Goal too vague. Router exit 4 — get one sentence naming the one job before routing. Never route on under-3-word goals.
- Never make API calls. Emit BYOK curl; the user runs it with their own
$ANTHROPIC_API_KEY. No script in this plugin touches the network. - Never print the key. Launch scripts read the key from the environment.
Hand-off contract
After routing, fork to the sub-skill with: the goal string, agent_name,
out_dir (./my-agent), and the compiled plan.v1. When the sub-skill returns,
goal_state.py advance moves the phase and the parent gets a ≤100-word digest
(phase done, artifact paths, loop shape, one next step).
Forcing-question library (walk one at a time; recommend + cite)
- "What one job should this agent do end-to-end?" — Recommend: the single
most repeated task. Cite: interview-to-config.md (six intake slots). Refuse to
route a two-job goal; split into two
./my-agent-*/folders. - "What kicks it off — you ask it, an event, or a schedule?" — Recommend: on-demand for v0, schedule as the Phase-4 upgrade. Cite: loops-and-workflows.md.
- "How would you grade a good run?" — Recommend: 3–5 rubric lines grounded in the output. Cite: cma-primitives.md (outcomes; rubric required).
- "Is a real integration ready, or do we mock it in v0?" — Recommend: mock with a schema-true custom tool; wire the MCP server as v1. Cite: interview-to-config.md.
- "Should run #10 be smarter than run #1?" — Recommend: attach a memory store only if yes; else skip it. Cite: cma-primitives.md (memory limits + injection risk).
Tools
scripts/goal_state.py— owngoal.json(init/set/status/advance).scripts/goal_router.py— goal → lane (exit 0 route / 3 ask / 4 refuse).scripts/loop_compiler.py— goal+phase →plan.v1execution shape.
| 1 | |
| 2 | name agent-launcher-orchestrator |
| 3 | description Use when a user wants to build, launch, grade, or schedule a Claude Managed Agent (CMA) in their own Anthropic account — "build me an agent", "launch this as a managed agent", "run this on a schedule", "grade my agent against a rubric", "set up a nightly worker". Reads the per-session goal (./my-agent/goal.json), routes deterministically to one of five phase sub-skills (interview → stage-launch → grade-iterate → run-without-you → wrap-up) via goal_router.py, and compiles the goal+phase into an execution shape (single-pass workflow / bounded grade→iterate loop / recurring cron deployment loop) via loop_compiler.py. Forks context so heavy intake (build sheets, payloads, eval cases) stays out of the parent thread. All launches are emitted as BYOK curl the user runs with their own key; no tool makes API calls. Inspired by anthropics/launch-your-agent (Apache-2.0). Distinct from engineering/agent-harness (generic domain loop) and engineering/write-a-skill (authors Claude Code skills, not CMAs). |
| 4 | context fork |
| 5 | version 2.11.2 |
| 6 | author Alireza Rezvani |
| 7 | license MIT |
| 8 | tags [claude-managed-agents, cma, agent, launch, orchestrator, session-goal, loop, workflow, cron, outcome, byok] |
| 9 | compatible_tools [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli] |
| 10 | |
| 11 | |
| 12 | # agent-launcher — Domain Orchestrator |
| 13 | |
| 14 | Every session starts with a **goal** — one sentence for one CMA. This orchestrator |
| 15 | reads that goal, routes to the right phase, and compiles the goal into a **loop or |
| 16 | a workflow**. Heavy intake stays in the forked context; the parent gets a digest. |
| 17 | |
| 18 | Inspired by Anthropic's `launch-your-agent` reference skill (Apache-2.0). This is |
| 19 | an independent re-implementation; CMA semantics come from |
| 20 | [`../../references/cma-primitives.md`]. |
| 21 | |
| 22 | ## The through-line: the session goal |
| 23 | |
| 24 | State lives at `./my-agent/goal.json` (the user's folder). Manage it with |
| 25 | `goal_state.py` (init / set / status / advance) — it also backs the `/cs:goal` |
| 26 | command and the opt-in `SessionStart` hook. The goal's `phase` selects the lane; |
| 27 | the phase + recurrence selects the loop shape. |
| 28 | |
| 29 | ## Routing (deterministic) |
| 30 | |
| 31 | Run the router, then act on its exit code: |
| 32 | |
| 33 | |
| 34 | python3 scripts/goal_router.py --out-dir ./my-agent |
| 35 | # exit 0 ROUTE -> fork to the named phase sub-skill |
| 36 | # exit 3 ASK -> ask the one printed forcing question, then re-route |
| 37 | # exit 4 REFUSE -> goal too vague; get one sentence, then re-route |
| 38 | |
| 39 | |
| 40 | | Lane (phase) | Sub-skill | Loop/workflow | |
| 41 | |---|---|---| |
| 42 | | interview | `interview` | single-pass workflow | |
| 43 | | stage-launch | `stage-launch` | single-pass workflow | |
| 44 | | grade-iterate | `grade-iterate` | **bounded grade→iterate loop** | |
| 45 | | run-without-you | `run-without-you` | **recurring cron deployment loop** | |
| 46 | | wrap-up | `wrap-up` | — | |
| 47 | |
| 48 | ## Compile the loop |
| 49 | |
| 50 | |
| 51 | python3 scripts/loop_compiler.py \ |
| 52 | --out-dir ./my-agent --max-iterations 5 --cron "0 9 * * *" --timezone Europe/Berlin --nest-outcome |
| 53 | |
| 54 | |
| 55 | `loop_compiler.py` emits `plan.v1`: `single-pass`, `grade-iterate` (always with a |
| 56 | `max_iterations` cap 1..20), or `cron-loop` (optionally nesting a self-grading |
| 57 | outcome per firing). See [`../../references/loops-and-workflows.md`]. |
| 58 | |
| 59 | ## Pre-flight gates (hard refusals) |
| 60 | |
| 61 | **No goal set.** If `goal.json` is missing, run |
| 62 | `goal_state.py init --goal "..."` first. The orchestrator does not guess a goal. |
| 63 | **Goal too vague.** Router exit 4 — get one sentence naming the one job before |
| 64 | routing. Never route on under-3-word goals. |
| 65 | **Never make API calls.** Emit BYOK curl; the user runs it with their own |
| 66 | `$ANTHROPIC_API_KEY`. No script in this plugin touches the network. |
| 67 | **Never print the key.** Launch scripts read the key from the environment. |
| 68 | |
| 69 | ## Hand-off contract |
| 70 | |
| 71 | After routing, fork to the sub-skill with: the goal string, `agent_name`, |
| 72 | `out_dir` (`./my-agent`), and the compiled `plan.v1`. When the sub-skill returns, |
| 73 | `goal_state.py advance` moves the phase and the parent gets a ≤100-word digest |
| 74 | (phase done, artifact paths, loop shape, one next step). |
| 75 | |
| 76 | ## Forcing-question library (walk one at a time; recommend + cite) |
| 77 | |
| 78 | **"What one job should this agent do end-to-end?"** — *Recommend:* the single |
| 79 | most repeated task. *Cite:* interview-to-config.md (six intake slots). Refuse to |
| 80 | route a two-job goal; split into two `./my-agent-*/` folders. |
| 81 | **"What kicks it off — you ask it, an event, or a schedule?"** — *Recommend:* |
| 82 | on-demand for v0, schedule as the Phase-4 upgrade. *Cite:* loops-and-workflows.md. |
| 83 | **"How would you grade a good run?"** — *Recommend:* 3–5 rubric lines grounded |
| 84 | in the output. *Cite:* cma-primitives.md (outcomes; rubric required). |
| 85 | **"Is a real integration ready, or do we mock it in v0?"** — *Recommend:* mock |
| 86 | with a schema-true custom tool; wire the MCP server as v1. *Cite:* interview-to-config.md. |
| 87 | **"Should run #10 be smarter than run #1?"** — *Recommend:* attach a memory |
| 88 | store only if yes; else skip it. *Cite:* cma-primitives.md (memory limits + injection risk). |
| 89 | |
| 90 | ## Tools |
| 91 | |
| 92 | `scripts/goal_state.py` — own `goal.json` (init/set/status/advance). |
| 93 | `scripts/goal_router.py` — goal → lane (exit 0 route / 3 ask / 4 refuse). |
| 94 | `scripts/loop_compiler.py` — goal+phase → `plan.v1` execution shape. |
| 95 |
Discussion
Browse more free Claude skills or everything in Product.