# Launch Your Agent Claude Code

> Build, deploy, and iterate Claude Managed Agents from idea to production using Claude Code

- Skill: `aradotso/launch-your-agent-claude-code` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aradotso/launch-your-agent-claude-code`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aradotso/launch-your-agent-claude-code/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: aradotso (https://skillmd.com/u/aradotso)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aradotso/launch-your-agent-claude-code

---


# launch-your-agent-claude-code

> Skill by [ara.so](https://ara.so) — AI Agent Skills collection.

## Overview

**launch-your-agent** is a Claude Code skill that takes you from an agent idea to a live Claude Managed Agent (CMA) in your Anthropic Console. It orchestrates the full lifecycle: interview → scope v0 → launch in your account → grade against success criteria → iterate → schedule (if recurring).

You walk away with:
- A live managed agent in your Console
- Complete build artifacts in `my-agent/` (build sheet, API payloads, eval scaffold, launch script)
- A graded initial run
- Scheduled deployment (if your task recurs)
- A `NEXT-DIRECTIONS.md` with v1/v2 roadmap

**Primary Language:** HTML (documentation/templates), with JavaScript/TypeScript for agent logic and shell scripts for deployment.

## Installation

```bash
git clone https://github.com/anthropics/launch-your-agent.git
cd launch-your-agent
claude
```

The skills in `.claude/skills/` are auto-loaded when you run Claude Code inside this directory.

## Prerequisites

- **Claude Code** installed and authenticated
- **Anthropic API key** for your own account (create at platform.claude.com → API keys)
- API key stored in local `.env` file (never committed):

```bash
# .env
ANTHROPIC_API_KEY=sk-ant-api03-...
```

## Key Commands

### Main Flow

```
/launch-your-agent
```

Starts the full 4-phase flow:

1. **Interview** – Asks about your use case, inputs, outputs, success criteria, scheduling needs
2. **Stage & Launch** – Generates agent config, creates environment, deploys to your Console
3. **Grade & Iterate** – Runs eval against your success criteria, suggests improvements
4. **Automate** – Sets up scheduled deployment if task is recurring

### Status Check / Close-Out

```
/wrap-up
```

Regenerates overview page, recaps all primitives you built, suggests next 1-2 upgrades.

## Configuration

### CMA Primitives

Claude Managed Agents support:

- **Agent definition**: System prompt, tools, model (`claude-3-5-sonnet-20241022` or `claude-3-7-sonnet-20250219`)
- **Environments**: Isolated runtime contexts (dev/staging/prod)
- **Secrets**: API keys, credentials (encrypted at rest)
- **Scheduled deployments**: Cron-based recurring runs
- **Tool use**: API calls, database queries, file operations

Limits (as of documentation):
- Max system prompt: ~200k tokens
- Tools: Up to 2048 per agent
- Secrets: String values only, accessed via tool parameters

Reference: `cma-primitives.md` in repo root.

### Interview Mapping

The interview phase captures:

| Question | Maps to CMA primitive |
|----------|----------------------|
| What problem does this solve? | Agent system prompt (goals section) |
| What inputs does it need? | Tool definitions + environment secrets |
| What's a successful output? | Eval criteria + success rubric |
| How often should it run? | Scheduled deployment config (cron) |
| What should it NOT do? | System prompt (constraints/guardrails) |

See `interview-to-config.md` for full mapping.

## Code Examples

### Agent Configuration Shape

```typescript
// Generated in my-agent/agent-config.json
{
  "name": "daily-standup-summarizer",
  "model": "claude-3-5-sonnet-20241022",
  "system_prompt": "You are a standup summarizer. Each morning, you...",
  "tools": [
    {
      "name": "fetch_github_prs",
      "description": "Fetch open PRs from team repos",
      "input_schema": {
        "type": "object",
        "properties": {
          "repo": { "type": "string" },
          "github_token": { "type": "string" }
        },
        "required": ["repo", "github_token"]
      }
    }
  ],
  "max_tokens": 4096
}
```

### Launch Script

```bash
#!/bin/bash
# my-agent/launch.sh

set -e

source .env

# 1. Create agent
AGENT_ID=$(curl -s https://api.anthropic.com/v1/agents \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "content-type: application/json" \
  -d @agent-config.json | jq -r '.id')

echo "Agent created: $AGENT_ID"

# 2. Create environment
ENV_ID=$(curl -s https://api.anthropic.com/v1/environments \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -d "{\"name\": \"production\", \"agent_id\": \"$AGENT_ID\"}" | jq -r '.id')

echo "Environment created: $ENV_ID"

# 3. Set secrets
curl -s https://api.anthropic.com/v1/environments/$ENV_ID/secrets \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -d "{\"key\": \"GITHUB_TOKEN\", \"value\": \"$GITHUB_TOKEN\"}"

# 4. Deploy
curl -s https://api.anthropic.com/v1/agents/$AGENT_ID/deploy \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -d "{\"environment_id\": \"$ENV_ID\"}"

echo "Deployed to $ENV_ID"
```

### Eval Scaffold

```javascript
// my-agent/eval.js
const Anthropic = require('@anthropic-ai/sdk');

async function gradeRun(runId, successCriteria) {
  const client = new Anthropic({
    apiKey: process.env.ANTHROPIC_API_KEY,
  });

  // Fetch run output
  const run = await client.agents.runs.retrieve(runId);
  const output = run.output;

  // Grade against criteria
  const gradePrompt = `
Success criteria:
${successCriteria.join('\n')}

Agent output:
${output}

Did the agent meet all criteria? Respond with JSON: {"pass": true/false, "feedback": "..."}
  `;

  const gradeResponse = await client.messages.create({
    model: 'claude-3-5-sonnet-20241022',
    max_tokens: 1024,
    messages: [{ role: 'user', content: gradePrompt }],
  });

  return JSON.parse(gradeResponse.content[0].text);
}

module.exports = { gradeRun };
```

### Scheduled Deployment

```json
// my-agent/schedule-config.json
{
  "agent_id": "agt_abc123",
  "environment_id": "env_xyz789",
  "cron": "0 9 * * 1-5",
  "timezone": "America/Los_Angeles"
}
```

```bash
# Apply schedule
curl https://api.anthropic.com/v1/schedules \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -d @schedule-config.json
```

## Common Patterns

### Pattern: Internal Workflow Agent

**Use case:** Daily standup summary from GitHub + Slack

1. Interview answers:
   - Problem: "Summarize team activity each morning"
   - Inputs: GitHub API token, Slack webhook
   - Success: "Covers all PRs, mentions blockers, <500 words"
   - Schedule: "Every weekday at 9am PT"

2. Generated tools: `fetch_github_prs`, `post_slack_message`
3. System prompt includes: goals, tone (concise), constraints (no speculation)
4. Scheduled deployment with cron `0 9 * * 1-5`

### Pattern: Customer-Facing Agent

**Use case:** Support ticket triage

1. Interview answers:
   - Problem: "Categorize incoming tickets, suggest help articles"
   - Inputs: Zendesk API, knowledge base embeddings
   - Success: "95% category accuracy, links 2+ relevant articles"
   - Schedule: "Real-time via webhook"

2. Generated tools: `search_kb`, `update_ticket_tags`
3. System prompt includes: customer empathy guidelines, escalation rules
4. No cron schedule (webhook-triggered)

### Pattern: Data Pipeline Agent

**Use case:** Weekly analytics rollup

1. Interview answers:
   - Problem: "Aggregate usage metrics, detect anomalies"
   - Inputs: Postgres connection, previous week's baseline
   - Success: "Flags any >20% change, generates CSV"
   - Schedule: "Mondays at 6am UTC"

2. Generated tools: `query_db`, `write_csv`, `send_email`
3. System prompt includes: statistical thresholds, alert format
4. Scheduled deployment with cron `0 6 * * 1`

## Troubleshooting

### "API key not found"

Ensure `.env` file exists in repo root with:
```bash
ANTHROPIC_API_KEY=sk-ant-api03-...
```

**Never** commit `.env` — it's in `.gitignore` by default.

### "Agent creation failed: invalid tool schema"

Check `my-agent/agent-config.json`:
- `input_schema` must be valid JSON Schema
- `required` fields must be present in `properties`
- Tool names must be lowercase with underscores

### "Eval keeps failing"

Refine success criteria in `my-agent/build-sheet.md`:
- Make criteria measurable (e.g., "mentions 3+ PRs" not "comprehensive")
- Add edge cases to test set
- Iterate system prompt with `/launch-your-agent` (picks up where it left off)

### "Schedule not triggering"

Verify:
- Cron syntax valid (use https://crontab.guru)
- Timezone correct (defaults to UTC)
- Environment has required secrets set
- Check Console → Agents → Runs for error logs

### "Rate limit hit during launch"

CMA API respects standard Anthropic rate limits. If hitting during deploy:
- Add `sleep 2` between curl commands in `launch.sh`
- Or batch secret creation into single call

## File Structure After Launch

```
my-agent/
├── build-sheet.md          # Interview answers + scoping decisions
├── agent-config.json       # Agent definition (system prompt, tools, model)
├── environment-config.json # Environment + secrets references
├── schedule-config.json    # Cron schedule (if recurring)
├── launch.sh               # Resumable deploy script
├── eval.js                 # Grading logic
├── OVERVIEW.md             # Human-readable status page
└── NEXT-DIRECTIONS.md      # v1/v2 roadmap

.env                        # API keys (git-ignored)
```

## API Reference

See official docs: https://platform.claude.com/docs/en/managed-agents/overview

Key endpoints:
- `POST /v1/agents` – Create agent
- `POST /v1/environments` – Create environment
- `POST /v1/environments/{id}/secrets` – Set secrets
- `POST /v1/agents/{id}/deploy` – Deploy to environment
- `POST /v1/schedules` – Create cron schedule
- `GET /v1/agents/runs/{id}` – Fetch run output

## Additional Resources

- `cma-primitives.md` – Full inventory of CMA features and limits
- `interview-to-config.md` – Detailed interview → config mapping
- `examples-bank.md` – Sourced agent examples and proof points
- `ui/` – Example overview page templates

## License

Apache 2.0 (see LICENSE in repo root)

