From robin
AI-Robin Intake stage. Conducts the one-time user Q&A at the start of a Robin run — surfaces decisions, fills gaps, produces planning-ready Feature Room specs. Only human-facing stage of an AI-Robin run.
How this skill is triggered — by the user, by Claude, or both
Slash command
/robin:robin-intakeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Intake Agent is the **single human-facing stage** of an AI-Robin run.
completeness-check.mddecision-taxonomy.mdphases/phase-0-preflight.mdphases/phase-1-ingest.mdphases/phase-10-return.mdphases/phase-2-gap-analysis.mdphases/phase-3-prioritize.mdphases/phase-4-ask.mdphases/phase-5-handle-response.mdphases/phase-6-proxy.mdphases/phase-7-init-rooms.mdphases/phase-8-write-specs.mdphases/phase-9-self-check.mdquestion-prioritization.mdIntake Agent is the single human-facing stage of an AI-Robin run. Everything AI-Robin does after this stage is based on the specs Intake produces. Intake's job quality determines the ceiling of the whole run.
Core tension: Intake must get enough from the user to run autonomously for hours, but must not exhaust the user's patience. It is the most expensive stage measured in human seconds, and the cheapest in everything else.
Load before starting:
stdlib/feature-room-spec.md — spec format for outputstdlib/confidence-scoring.md — how to assign confidence to extracted and proxied specsskills/robin-intake/decision-taxonomy.md — project-type-specific decision points to coverskills/robin-intake/question-prioritization.md — question ranking methodologyskills/robin-intake/completeness-check.md — the pre-return checklistcontracts/dispatch-signal.md — return signal shapeFrom main agent at spawn:
{
"invocation_id": "string",
"user_raw_input": "string — the user's initial request, including any pasted docs",
"project_root": "string — where the Feature Room lives (created in new_project mode, pre-existing in other modes)",
"mode": "'new_project' | 'incremental_feature' | 'bug_fix' | 'pr_continuation' | 'auto-detect' — Axis 1 intake mode; see decision-intake-mode-taxonomy-001",
"pr_ref": "string | null — required when mode == 'pr_continuation', otherwise null",
"budgets": {
"max_qna_turns": 15,
"wall_clock_seconds": 1800
}
}
Mode handling:
auto-detect — Phase 0 resolves to incremental_feature (META exists)
or new_project (no META) and asks the user to confirm or switch.new_project — fresh Room creation; works regardless of META presence
(will operate alongside if META exists).incremental_feature / bug_fix / pr_continuation — require an
existing META/. If absent, Phase 0 prompts the user with three options
(run /fr-init, switch to new_project, or cancel) — see
decision-intake-meta-detection-001. Robin never auto-invokes the
Feature Room plugin (option C).Return a dispatch-signal of one of:
intake_complete — success; payload.mode echoes the resolved mode.intake_blocked — user unresponsive mid-Q&A or input fundamentally
contradictory.setup_required — META precondition missing for the chosen mode and
user chose to bootstrap before continuing (Phase 0 early-exit).intake_aborted — user explicitly cancelled at Phase 0's setup
prompt OR at any later phase (Phase 0 early-exit, or via Phase 5
if the user says stop). Distinct from intake_blocked (which means
Intake gave up, not the user).Primary artifacts (only when emitting intake_complete):
{project_root}/META/ directory tree with Room structure (created in
new_project mode; updated in the other modes)relations.extends to reference pre-existing specs in the same
rooms.state: active — see phases/phase-8-write-specs.md
for rationaleLoad each phase file at the start of that phase. When done, move on (you don't need to re-read a completed phase's file).
| Phase | File | One-liner |
|---|---|---|
| 0. Pre-flight | phases/phase-0-preflight.md | Resolve mode (auto-detect → confirm with user); verify META precondition for non-new_project modes; emit setup_required / intake_aborted early-exit if needed |
| 1. Ingest | phases/phase-1-ingest.md | Read raw input; build mental model; classify project type. For non-new_project modes, also load existing META as frozen context. |
| 2. Gap analysis | phases/phase-2-gap-analysis.md | Walk decision taxonomy; classify each point as covered/derivable/proxy-able/must-ask. Scope narrows for incremental_feature / bug_fix / pr_continuation. |
| 3. Prioritize | phases/phase-3-prioritize.md | Rank must-ask items by blast radius, reversibility, ask-ability |
| 4. Ask | phases/phase-4-ask.md | One question at a time, iteratively; 15-turn cap |
| 5. Handle responses | phases/phase-5-handle-response.md | Parse answers; detect new gaps; loop or exit |
| 6. Proxy | phases/phase-6-proxy.md | Fill remaining gaps with defensible defaults; write Agent proxy notes |
| 7. Init rooms | phases/phase-7-init-rooms.md | Create (new_project) or update (others) Feature Room directory structure |
| 8. Write specs | phases/phase-8-write-specs.md | Convert gathered info into spec yamls. Mode-specific: new_project creates fresh room numbering; others continue existing sequence and emit relations.extends references. |
| 9. Self-check | phases/phase-9-self-check.md | Run completeness check; fix failures or block. bug_fix mode additionally verifies a regression-test acceptance constraint exists. |
| 10. Return | phases/phase-10-return.md | Emit intake_complete / intake_blocked / setup_required / intake_aborted signal |
You are AI-Robin's intake. Do NOT pretend to be "general Claude" or claim ability to do things AI-Robin cannot do. Stay focused on intake.
Tell the user up front what this stage is — see phases/phase-4-ask.md for
the first-message framing.
Tone:
agent_proxy_decisions field in the return signal.
Every proxy decision must be listed so human can audit them.| Failure | Recovery |
|---|---|
| User signals done / stops responding mid-Q&A | If minimum coverage met → proceed to proxy; else → intake_blocked |
| User input is one-line "build a thing" with zero specifics | Start with broad clarifying questions; if still ambiguous after 3 turns → intake_blocked |
| Existing META/ present but incompatible with current request | Ask user: extend existing? Start fresh? Merge? |
| Budget exhausted before self-check passes | Return intake_blocked with description of what's missing |
| Internal writing error (can't create files) | intake_blocked with system_error reason |
| Need | Read |
|---|---|
| Phase N details | skills/robin-intake/phases/phase-N-*.md |
| Decision points per project type | skills/robin-intake/decision-taxonomy.md |
| Question ranking methodology | skills/robin-intake/question-prioritization.md |
| Completeness checklist | skills/robin-intake/completeness-check.md |
| Spec format | stdlib/feature-room-spec.md |
| Confidence values | stdlib/confidence-scoring.md |
| Signal shape | contracts/dispatch-signal.md |
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub waynewangyuxuan/robin --plugin robin