| name | intake |
| description | Use when starting requirements gathering for a new companion. Draws out requirements through guided reverse prompting conversation. Discovers persona and capability fit through dialogue.
|
| disable-model-invocation | true |
| argument-hint | [persona] [client/companion] |
/intake — New Companion Reverse Prompting
Draw out companion requirements through guided conversation. Discovers which persona and capabilities fit through conversation.
Usage:
/intake — Use current companion, discover persona through conversation
/intake [client/companion] — Override for specific companion
/intake [persona] — Start with a known persona for current companion
/intake [persona] [client/companion] — Both persona and companion
Personas accelerate intake with persona-specific questions. Available personas are in companion-kits/public-kits/personas/ and companion-kits/private-kits/[org]-companion-kit/personas/.
Step 1: Determine the Companion
-
If $ARGUMENTS contains a companion path, use that
-
Otherwise, read tracking/current-companion.md for the current companion
-
If no companion is set and no argument given, ask the user to set one first:
No companion set. Use /companion to set or create one first:
/companion new [client/companion]
-
Verify the companion directory exists at companions/[client]/[companion]/
Determine the organization from the client portion of the path (e.g., consortium.team from consortium.team/my-companion).
Build the accessible kits list by reading tracking/permissions.yaml:
- Always include:
companion-kits/public-kits/
- Always include:
companion-kits/private-kits/[client]-companion-kit/ (derived from companion path)
- Also include each kit in
always_accessible_private_kits from permissions.yaml (e.g., companion-kits/private-kits/[kit-name]/)
This list determines where to search for personas, capabilities, and library materials throughout intake.
Step 2: Check Existing Context
Read any existing context files in companions/[client]/[companion]/context/:
requirements.md
constraints.md
decisions.md
If context already exists, acknowledge it:
I see some context has already been captured for [companion]:
- [summary of what exists]
We can continue from here, or start fresh. What would you prefer?
Step 2b: Load Persona (if specified)
If $ARGUMENTS contains a persona name, search for it:
-
Search for the persona across all accessible kit directories (from Step 1):
companion-kits/public-kits/personas/[persona]/PERSONA.md
companion-kits/private-kits/[kit]/personas/[persona]/PERSONA.md for each kit in the accessible kits list
-
Read the persona's files:
PERSONA.md — Identity, voice, key concepts
intake-guide.md — Persona-specific questions
typical-capabilities.md — Which capabilities this persona typically uses
reference-projects.md — What worked before (if exists)
-
Note the persona in context/decisions.md:
| Persona: [persona] | Loaded from companion-kits/{public-kits,private-kits}/[org]-companion-kit/personas/[persona] | [date] |
-
Use the persona's intake questions in addition to the core questions below. Persona questions help reach known-good configurations faster.
If no persona was specified, proceed to Step 3 — the conversation will discover which persona fits (see Step 4b).
Important: Personas are accelerators, not constraints. They get you to a good starting point. The methodology ("start wrong, iterate to right") handles adaptation through usage.
Step 3: Begin Reverse Prompting
Your role: Draw out what the user knows. Don't assume or generate requirements — extract them.
Core principle: Ask ONE question at a time. Let the answer inform the next question.
Start with:
Let's capture what this companion is about. I'll ask questions one at a time.
What problem does [companion] solve? Or put another way — why does this companion need to exist?
Step 4: The Question Sequence
Work through these areas, but adapt based on answers. Don't mechanically go through a checklist — let the conversation flow naturally while ensuring coverage.
If a persona is loaded: Weave the persona-specific questions from intake-guide.md into the flow below. Persona questions often provide better specificity for their domain.
1. Purpose (start here)
- What problem does this solve?
- Why does it matter? What happens if it doesn't get built?
- What's the "one thing" this companion must do well?
2. Users
- Who will use this?
- What do they need that they don't have today?
- What's their current workaround?
- Are there different types of users with different needs?
3. Success Criteria
- How will you know it's working?
- What does "done" look like?
- What would make this a failure even if it "works"?
4. Constraints
- Technical constraints (language, platform, integrations)?
- Time constraints?
- Resource constraints?
- Organizational constraints (approvals, dependencies)?
5. Context
- Related systems or prior art?
- Existing patterns to follow or avoid?
- Domain knowledge needed?
6. The Quality
- What makes this companion distinct from similar ones?
- What's the "feel" you're going for?
- If you had to explain this to someone in one sentence, what would you say?
Step 4b: Suggest Persona Match (if no persona was specified)
After covering the core questions (especially Purpose, Users, and The Quality), suggest which persona fits best.
Scan available personas:
-
Read all PERSONA.md files from all accessible kit directories (from Step 1):
companion-kits/public-kits/personas/*/PERSONA.md
companion-kits/private-kits/[kit]/personas/*/PERSONA.md for each kit in the accessible kits list
-
Compare the captured requirements against each persona's "When to Use" criteria.
-
Present the best match(es):
Based on what you've described, this sounds like a **[persona name]** companion:
[1-2 sentence summary of why this persona fits]
This persona typically includes these capabilities:
- [capability 1] — [brief description]
- [capability 2] — [brief description]
Does this feel right, or is this something different?
-
If the user confirms, load the persona's intake-guide.md and typical-capabilities.md, then ask the persona-specific questions that weren't already covered.
-
If the user says it's different, continue with generic intake and note that this may be a new persona pattern.
Step 4c: Suggest Capabilities
After the persona is identified (or if no persona fits):
-
Read the persona's typical-capabilities.md for recommended capabilities.
-
Scan available capabilities across all accessible kit directories (from Step 1):
companion-kits/public-kits/capabilities/*/CAPABILITY.md
companion-kits/private-kits/[kit]/capabilities/*/CAPABILITY.md for each kit in the accessible kits list
-
Suggest capabilities based on conversation:
For this companion, I'd recommend these capabilities:
**Core (always included):**
- Reverse Prompting — [why it fits]
- Context Ecosystem — [why it fits]
**Recommended based on what you've described:**
- [Capability] — [why it fits, based on specific things the user said]
**Available but probably not needed yet:**
- [Capability] — [what it does, why it's not urgent]
Which of these resonate? Anything you'd add or remove?
-
Record selected capabilities in context/decisions.md.
Step 4d: Suggest Library Materials
Scan libraries across all accessible kits (from Step 1) that have a library/ directory:
-
Scan library entries:
- Read
metadata.yaml files in companion-kits/private-kits/[kit]/library/**/metadata.yaml for each kit in the accessible kits list
-
Match by subject tags and persona relevance:
- Compare library entry
subjects and related_personas against the companion being created
-
Suggest relevant materials:
Your organization's library has materials that could be useful for this companion:
- [Book Title] by [Author] — [how it's relevant to this companion]
- [Book Title] by [Author] — [how it's relevant]
Want to pull any of these into this companion's reference?
-
Record library selections in context/decisions.md.
Note: Library materials are contextualized for each companion during the build phase, not during intake. The selection here determines which materials to contextualize.
Step 5: Push for Specificity
When answers are vague, push deeper:
| Vague | Push for |
|---|
| "Users need it to be fast" | "What's fast? Sub-second? What operations?" |
| "It should be easy to use" | "Easy for whom? What's hard about current options?" |
| "Various stakeholders" | "Name one. What do they specifically need?" |
| "Standard security" | "What data is sensitive? What's the threat model?" |
Good answers are concrete. "A developer who needs to..." beats "users." "Under 200ms response time" beats "fast."
Step 6: Capture as You Go
After each major area is covered, write to the appropriate context file:
context/requirements.md — What the companion must do
# Requirements
## Purpose
[Why this exists, the problem it solves]
## Users
[Who uses it, what they need]
## Success Criteria
[How we know it's working]
## Core Functionality
[The must-haves]
context/constraints.md — Boundaries and limitations
# Constraints
## Technical
[Platform, language, integration requirements]
## Timeline
[Deadlines, phases]
## Resources
[Team, budget, dependencies]
## Organizational
[Approvals, policies, external dependencies]
context/decisions.md — Choices made during intake
# Decisions
Decisions made during companion intake.
| Decision | Rationale | Date |
|----------|-----------|------|
| Persona: [name] | [why this persona fits] | [date] |
| Capabilities: [list] | [why these were selected] | [date] |
| Library materials: [list] | [why these are relevant] | [date] |
| [other decisions] | [why] | [when] |
Step 7: Summarize and Confirm
After covering the key areas:
-
Summarize what was captured (brief bullet points)
-
Identify gaps — what's still unclear or missing?
-
Confirm with the user:
Here's what I've captured:
**Purpose:** [one sentence]
**Users:** [who]
**Success looks like:** [criteria]
**Key constraints:** [list]
**What makes it distinct:** [the quality]
**Companion composition:**
- Persona: [name or "custom"]
- Capabilities: [list]
- Library materials: [list or "none"]
Gaps remaining:
- [what's still unclear]
Does this capture it accurately? Anything to add or correct?
-
Write final versions of context files after confirmation
Step 8: Suggest Next Steps
Context captured for [companion].
Next steps:
/process — Feed in any existing documents or transcripts
/gaps — See full assessment of what's captured vs. needed
/checkpoint — Save session state before ending
Principles
- One question at a time — Don't overwhelm
- Listen more than talk — Your job is to extract, not generate
- Push for concrete — Vague requirements become vague companions
- It's okay to not know — "Not sure yet" is valuable information
- Capture decisions — Why something was decided matters as much as what
- The quality matters — What makes this distinct is often the key insight
- Discover, don't prescribe — Let the conversation reveal which persona and capabilities fit