Phase 1 — Interview → Plan

Phase 1 of building a Claude Managed Agent — interview the founder about the one job the agent should do, then produce a build sheet (CMA primitives table + v1/v2 deferrals + eval plan) WITHOUT needing their API key yet.

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/interview, including the files SKILL.md points to.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit alirezarezvani/claude-skills/agent-launcher/skills/interview#main ~/.claude/skills/interview

For one project only, change the path to .claude/skills/interview. This skill also uses interview_planner.py, build-sheet.json, build_sheet_builder.py, primitives_validator.py, goal_state.py, interview-to-config.md — copying SKILL.md alone won't be enough. See the folder on GitHub.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. 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.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Phase 1 — Interview → Plan

Show the full text84 lines
namedescriptionversionauthorlicensetagscompatible_tools
interviewPhase 1 of building a Claude Managed Agent — interview the founder about the one job the agent should do, then produce a build sheet (CMA primitives table + v1/v2 deferrals + eval plan) WITHOUT needing their API key yet. Use when the user says "help me scope an agent", "I have an idea for an agent", "what should this agent be", or when the orchestrator routes phase=interview. Drives the six intake slots (job, trigger, inputs, actions, definition-of-done, recurrence) via AskUserQuestion, maps them to primitives with interview_planner.py, assembles build-sheet.json with build_sheet_builder.py, and validates limits with primitives_validator.py. Connectors are mockable in v0 (schema-true custom tools); real MCP servers become v1 deferrals. Distinct from stage-launch (which turns the sheet into payloads).2.11.2Alireza RezvaniMIT[cma, interview, scoping, build-sheet, primitives, deferrals, eval-plan][claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli]

Phase 1 — Interview → Plan

Open warmly with one or two examples from ../../references/examples-bank.md, then interview the founder into a build sheet. No API key needed in this phase — the output is a plan.

The six intake slots (ask one at a time; use AskUserQuestion for choices)

Slot Question Maps to
Job "What one job should this agent do end-to-end?" agent.system + outcome description
Trigger "What kicks it off — you ask it, an event, or a schedule?" on-demand / event / cron
Inputs "What does it read?" (files, repo, memory, gmail/slack/github, web) resources / MCP servers / memory
Actions "What does it do?" (draft, write, call APIs, run code) agent toolset / custom tools / MCP
Done "How would you grade a good run?" outcome rubric (required)
Recurrence "Once, on request, or on a cadence?" single-pass / grade-loop / cron-loop

See ../../references/interview-to-config.md for the full mapping.

Workflow

  1. Interview. Walk the six slots. Capture the founder's own words — never invent specifics they didn't claim.
  2. Map to primitives.
    python3 scripts/interview_planner.py \
      --job "Triage overnight support email" --trigger schedule \
      --inputs "gmail,memory" --actions "label,reply" \
      --dod "one label per email, grounded reason, no invented facts" \
      --recurrence daily --out ./my-agent/plan.json
    
    MCP inputs become schema-true mock custom tools in v0 and a v1 deferral to wire the real server. Irreversible actions (send/publish) become v2 deferrals behind always_ask.
  3. Assemble the sheet.
    python3 scripts/build_sheet_builder.py --plan ./my-agent/plan.json --out-dir ./my-agent
    
  4. Validate limits.
    python3 scripts/primitives_validator.py --sheet ./my-agent/build-sheet.json
    
    FAIL blocks progress; fix and re-run. WARN is advisory (surface it).
  5. Record the plan in the goal. goal_state.py set --phase stage-launch --artifact build_sheet=./my-agent/build-sheet.json, then advance.

Hard rules

  • v0 is the core job only. Everything else is a versioned deferral with a reason and an exact mechanism.
  • Their problem, their words.
  • No key yet. The interview produces a plan; the key is a Phase-2 concern.

Forcing-question library (recommend + cite)

  1. "What one job — singular?" Recommend: the most-repeated task. Cite: interview-to-config.md. Two jobs → two agents.
  2. "Real integration or v0 mock?" Recommend: mock; wire MCP as v1. Cite: interview-to-config.md rule 1.
  3. "How do you grade it?" Recommend: 3–5 grounded rubric lines. Cite: cma-primitives.md (rubric required).
  4. "Smarter over time?" Recommend: attach memory only if yes. Cite: cma-primitives.md (memory limits + injection).
  5. "Once, or on a cadence?" Recommend: on-demand v0, schedule as Phase-4. Cite: loops-and-workflows.md.

Tools

  • scripts/interview_planner.py — answers → primitives skeleton + deferrals.
  • scripts/build_sheet_builder.py — assemble/normalize build-sheet.json.
  • scripts/primitives_validator.py — validate vs CMA limits (PASS/WARN/FAIL).
1---
2name: interview
3description: Phase 1 of building a Claude Managed Agent — interview the founder about the one job the agent should do, then produce a build sheet (CMA primitives table + v1/v2 deferrals + eval plan) WITHOUT needing their API key yet. Use when the user says "help me scope an agent", "I have an idea for an agent", "what should this agent be", or when the orchestrator routes phase=interview. Drives the six intake slots (job, trigger, inputs, actions, definition-of-done, recurrence) via AskUserQuestion, maps them to primitives with interview_planner.py, assembles build-sheet.json with build_sheet_builder.py, and validates limits with primitives_validator.py. Connectors are mockable in v0 (schema-true custom tools); real MCP servers become v1 deferrals. Distinct from stage-launch (which turns the sheet into payloads).
4version: 2.11.2
5author: Alireza Rezvani
6license: MIT
7tags: [cma, interview, scoping, build-sheet, primitives, deferrals, eval-plan]
8compatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli]
9---
10 
11# Phase 1 — Interview → Plan
12 
13Open warmly with one or two examples from
14[`../../references/examples-bank.md`](../../references/examples-bank.md), then interview
15the founder into a **build sheet**. No API key needed in this phase — the output
16is a plan.
17 
18## The six intake slots (ask one at a time; use AskUserQuestion for choices)
19 
20| Slot | Question | Maps to |
21|---|---|---|
22| **Job** | "What one job should this agent do end-to-end?" | `agent.system` + outcome `description` |
23| **Trigger** | "What kicks it off — you ask it, an event, or a schedule?" | on-demand / event / cron |
24| **Inputs** | "What does it read?" (files, repo, memory, gmail/slack/github, web) | resources / MCP servers / memory |
25| **Actions** | "What does it do?" (draft, write, call APIs, run code) | agent toolset / custom tools / MCP |
26| **Done** | "How would you grade a good run?" | outcome `rubric` (required) |
27| **Recurrence** | "Once, on request, or on a cadence?" | single-pass / grade-loop / cron-loop |
28 
29See [`../../references/interview-to-config.md`](../../references/interview-to-config.md)
30for the full mapping.
31 
32## Workflow
33 
341. **Interview.** Walk the six slots. Capture the founder's own words — never
35 invent specifics they didn't claim.
362. **Map to primitives.**
37 ```bash
38 python3 scripts/interview_planner.py \
39 --job "Triage overnight support email" --trigger schedule \
40 --inputs "gmail,memory" --actions "label,reply" \
41 --dod "one label per email, grounded reason, no invented facts" \
42 --recurrence daily --out ./my-agent/plan.json
43 ```
44 MCP inputs become **schema-true mock custom tools** in v0 and a **v1 deferral**
45 to wire the real server. Irreversible actions (send/publish) become **v2
46 deferrals** behind `always_ask`.
473. **Assemble the sheet.**
48 ```bash
49 python3 scripts/build_sheet_builder.py --plan ./my-agent/plan.json --out-dir ./my-agent
50 ```
514. **Validate limits.**
52 ```bash
53 python3 scripts/primitives_validator.py --sheet ./my-agent/build-sheet.json
54 ```
55 FAIL blocks progress; fix and re-run. WARN is advisory (surface it).
565. **Record the plan in the goal.** `goal_state.py set --phase stage-launch
57 --artifact build_sheet=./my-agent/build-sheet.json`, then advance.
58 
59## Hard rules
60 
61- **v0 is the core job only.** Everything else is a versioned deferral with a
62 reason and an exact mechanism.
63- **Their problem, their words.**
64- **No key yet.** The interview produces a plan; the key is a Phase-2 concern.
65 
66## Forcing-question library (recommend + cite)
67 
681. "What one job — singular?" *Recommend:* the most-repeated task. *Cite:*
69 interview-to-config.md. Two jobs → two agents.
702. "Real integration or v0 mock?" *Recommend:* mock; wire MCP as v1. *Cite:*
71 interview-to-config.md rule 1.
723. "How do you grade it?" *Recommend:* 3–5 grounded rubric lines. *Cite:*
73 cma-primitives.md (rubric required).
744. "Smarter over time?" *Recommend:* attach memory only if yes. *Cite:*
75 cma-primitives.md (memory limits + injection).
765. "Once, or on a cadence?" *Recommend:* on-demand v0, schedule as Phase-4.
77 *Cite:* loops-and-workflows.md.
78 
79## Tools
80 
81- `scripts/interview_planner.py` — answers → primitives skeleton + deferrals.
82- `scripts/build_sheet_builder.py` — assemble/normalize build-sheet.json.
83- `scripts/primitives_validator.py` — validate vs CMA limits (PASS/WARN/FAIL).
84 

Discussion

Alternatives

Also in User researchSee all 277 in Product →