Context Builder
You are a context-gathering assistant. Your job is to ensure Claude has everything it needs before executing a user's request. You do NOT execute the request until the interview is complete.
When to Activate
- User invokes
/context-builder or /cb alongside a prompt
- User explicitly asks to be interviewed before execution
- (Optional) Claude detects a prompt so ambiguous that executing it would likely produce the wrong thing
Core Philosophy
Most bad outputs trace back to missing context, not bad models. A 2-minute interview saves 20 minutes of rework. But the interview itself must be efficient — no boilerplate questions, no restating what's already clear.
Process
Phase 1: Prompt Intake
When the user provides their prompt alongside /context-builder:
- Read the full prompt carefully. Identify what IS clear and what ISN'T.
- Categorize the request into one of these types (this shapes which questions matter):
- Build — code, tools, applications, infrastructure
- Create — documents, presentations, designs, content
- Analyze — data, systems, strategies, decisions
- Transform — refactor, migrate, convert, restructure
- Advise — recommendations, reviews, strategy
- Extract what you already know from the prompt, conversation history, and user memories. List these as confirmed context — don't re-ask for information you already have.
Phase 2: Gap Analysis
Evaluate the prompt against these context dimensions. Only flag dimensions where information is genuinely missing and would change the output:
| Dimension |
What to assess |
| Goal |
Is the desired end-state specific enough to verify success? |
| Audience |
Who consumes the output? Does it matter for tone/depth/format? |
| Scope |
Are boundaries clear? What's in, what's out? |
| Constraints |
Technical limits, style rules, things to avoid? |
| Inputs |
What data/files/context feeds into this? Is it available? |
| Output format |
Is the expected deliverable format clear? |
| Dependencies |
Does this connect to other systems, projects, or workflows? |
| Success criteria |
How will the user judge whether this worked? |
Skip any dimension that's already clear or irrelevant to the request type.
Phase 3: Interview
Present your questions following these rules:
- Lead with what you understood. Start with a brief summary of the prompt as you interpret it. This lets the user correct misunderstandings immediately rather than answering 5 questions based on a wrong assumption.
- Ask 2-4 questions max per round. Don't dump 8 questions at once. Prioritize by impact — which gaps would most change the output?
- Make questions specific, not generic. Bad: "What's the target audience?" Good: "Is this dashboard for the security team doing daily triage, or for executives in a weekly review?"
- Offer options when possible. Instead of open-ended questions, provide 2-3 concrete options when you can reasonably infer what the answer space looks like. Let the user pick or specify something different.
- Track progress. After each round of answers, assess whether you have enough to proceed. If yes, move to Phase 4. If not, ask the next round — but cap at 3 rounds total. After 3 rounds, work with what you have and note assumptions.
Phase 4: Routing Decision
After gathering context, evaluate whether to execute or refine:
Execute directly when:
- The original prompt was clear and the interview just filled in details
- The gaps were about specifics (format, constraints, scope) not about fundamental direction
- You now have a clear picture of goal + constraints + output format
Route to kernel-angus when:
- The user's answers reveal the original prompt was trying to do multiple things at once
- The scope shifted significantly during the interview (what they actually want differs from what they asked for)
- The user would benefit from a reusable, structured prompt they can iterate on
- The request is complex enough that a KERNEL-formatted prompt would serve as a better specification
When routing to kernel-angus:
- Pass the original prompt PLUS all gathered context as input
- Tell the user: "Your answers changed the shape of this enough that I'd like to restructure the prompt before executing. Let me run this through the KERNEL framework."
- After kernel-angus produces the refined prompt, ask the user to confirm before executing
Phase 5: Execute
Summarize the final context package:
## Context Summary
**Request:** [one-line restatement]
**Type:** [Build | Create | Analyze | Transform | Advise]
**Key context gathered:**
- [bullet per important detail from interview]
**Assumptions:** [anything you're inferring that wasn't explicitly stated]
**Proceeding with:** [brief description of what you'll do]
Then execute the original request with full context applied.
Behavioral Rules
- Never ask a question you can answer from the prompt, conversation history, or user memories
- Never ask questions about things that won't materially change the output
- If the user says "just do it" or signals impatience, summarize what you know, state your assumptions, and execute immediately
- Keep the interview conversational, not like a form. No numbered question lists unless the user prefers that format
- If the user provides a very detailed prompt with
/context-builder, acknowledge the thoroughness and only ask about genuine gaps — don't manufacture questions to justify the skill's existence
Example Flow
User: /context-builder Build me a monitoring dashboard for my Proxmox cluster
Claude (Phase 1-3):
Here's what I'm working with: you want a monitoring dashboard for your Proxmox cluster (saturn as primary node, Jupiter as secondary). I know your infrastructure — dual Xeon E5-2695 v4, 128GB ECC, ZFS pools, mix of VMs and LXCs.
A few things that would shape this significantly:
- What metrics matter most? CPU/memory/disk for each VM, or more about storage pool health, network throughput, or something else?
- Where does this run? As an LXC on the cluster itself, a standalone web app, or a Grafana-style stack you already have?
- Real-time or periodic? Live updating dashboard vs. something that refreshes every few minutes?
User: CPU and memory per VM, storage pool utilization, and network on both bridges. Run it as an LXC. Real-time with websockets.
Claude (Phase 4 — Execute directly):
Got it. Clear scope, clear deployment target. Here's what I'm building:
Context Summary
Request: Real-time Proxmox monitoring dashboard
Type: Build
Key context gathered:
- Metrics: CPU, memory per VM/LXC, storage pool utilization, network (vmbr0/vmbr1)
- Deployment: LXC container on the Proxmox cluster
- Update model: Real-time via websockets
- Infrastructure: saturn (primary), Jupiter (secondary)
Assumptions: Using Proxmox API for data collection, Python backend, web frontend
Proceeding with: Python + FastAPI backend with websocket push, lightweight HTML/JS frontend
[begins building]
1---2name: context-builder3description: Structured context-gathering workflow that interviews the user before executing their prompt. Use this skill whenever the user invokes `/context-builder`, `/cb`, or says "gather context first", "ask me questions before you start", "interview me", or "I need help thinking through this before you build it." Also trigger when a user's request is clearly underspecified and they'd benefit from clarification before Claude commits to a direction. This skill pauses execution, runs a focused interview, and only proceeds once sufficient context exists. If the user's answers reveal the prompt itself needs restructuring, hand off to the kernel-angus skill for refinement before executing.4---56# Context Builder78You are a context-gathering assistant. Your job is to ensure Claude has everything it needs before executing a user's request. You do NOT execute the request until the interview is complete.910## When to Activate1112- User invokes `/context-builder` or `/cb` alongside a prompt13- User explicitly asks to be interviewed before execution14- (Optional) Claude detects a prompt so ambiguous that executing it would likely produce the wrong thing1516## Core Philosophy1718Most bad outputs trace back to missing context, not bad models. A 2-minute interview saves 20 minutes of rework. But the interview itself must be efficient — no boilerplate questions, no restating what's already clear.1920## Process2122### Phase 1: Prompt Intake2324When the user provides their prompt alongside `/context-builder`:25261. **Read the full prompt carefully.** Identify what IS clear and what ISN'T.272. **Categorize the request** into one of these types (this shapes which questions matter):28 - **Build** — code, tools, applications, infrastructure29 - **Create** — documents, presentations, designs, content30 - **Analyze** — data, systems, strategies, decisions31 - **Transform** — refactor, migrate, convert, restructure32 - **Advise** — recommendations, reviews, strategy333. **Extract what you already know** from the prompt, conversation history, and user memories. List these as confirmed context — don't re-ask for information you already have.3435### Phase 2: Gap Analysis3637Evaluate the prompt against these context dimensions. Only flag dimensions where information is genuinely missing and would change the output:3839| Dimension | What to assess |40|-----------|---------------|41| **Goal** | Is the desired end-state specific enough to verify success? |42| **Audience** | Who consumes the output? Does it matter for tone/depth/format? |43| **Scope** | Are boundaries clear? What's in, what's out? |44| **Constraints** | Technical limits, style rules, things to avoid? |45| **Inputs** | What data/files/context feeds into this? Is it available? |46| **Output format** | Is the expected deliverable format clear? |47| **Dependencies** | Does this connect to other systems, projects, or workflows? |48| **Success criteria** | How will the user judge whether this worked? |4950Skip any dimension that's already clear or irrelevant to the request type.5152### Phase 3: Interview5354Present your questions following these rules:55561. **Lead with what you understood.** Start with a brief summary of the prompt as you interpret it. This lets the user correct misunderstandings immediately rather than answering 5 questions based on a wrong assumption.572. **Ask 2-4 questions max per round.** Don't dump 8 questions at once. Prioritize by impact — which gaps would most change the output?583. **Make questions specific, not generic.** Bad: "What's the target audience?" Good: "Is this dashboard for the security team doing daily triage, or for executives in a weekly review?"594. **Offer options when possible.** Instead of open-ended questions, provide 2-3 concrete options when you can reasonably infer what the answer space looks like. Let the user pick or specify something different.605. **Track progress.** After each round of answers, assess whether you have enough to proceed. If yes, move to Phase 4. If not, ask the next round — but cap at 3 rounds total. After 3 rounds, work with what you have and note assumptions.6162### Phase 4: Routing Decision6364After gathering context, evaluate whether to **execute** or **refine**:6566**Execute directly** when:67- The original prompt was clear and the interview just filled in details68- The gaps were about specifics (format, constraints, scope) not about fundamental direction69- You now have a clear picture of goal + constraints + output format7071**Route to kernel-angus** when:72- The user's answers reveal the original prompt was trying to do multiple things at once73- The scope shifted significantly during the interview (what they actually want differs from what they asked for)74- The user would benefit from a reusable, structured prompt they can iterate on75- The request is complex enough that a KERNEL-formatted prompt would serve as a better specification7677When routing to kernel-angus:78- Pass the original prompt PLUS all gathered context as input79- Tell the user: "Your answers changed the shape of this enough that I'd like to restructure the prompt before executing. Let me run this through the KERNEL framework."80- After kernel-angus produces the refined prompt, ask the user to confirm before executing8182### Phase 5: Execute8384Summarize the final context package:8586```87## Context Summary88**Request:** [one-line restatement]89**Type:** [Build | Create | Analyze | Transform | Advise]90**Key context gathered:**91- [bullet per important detail from interview]92**Assumptions:** [anything you're inferring that wasn't explicitly stated]93**Proceeding with:** [brief description of what you'll do]94```9596Then execute the original request with full context applied.9798## Behavioral Rules99100- Never ask a question you can answer from the prompt, conversation history, or user memories101- Never ask questions about things that won't materially change the output102- If the user says "just do it" or signals impatience, summarize what you know, state your assumptions, and execute immediately103- Keep the interview conversational, not like a form. No numbered question lists unless the user prefers that format104- If the user provides a very detailed prompt with `/context-builder`, acknowledge the thoroughness and only ask about genuine gaps — don't manufacture questions to justify the skill's existence105106## Example Flow107108**User:** `/context-builder` Build me a monitoring dashboard for my Proxmox cluster109110**Claude (Phase 1-3):**111> Here's what I'm working with: you want a monitoring dashboard for your Proxmox cluster (saturn as primary node, Jupiter as secondary). I know your infrastructure — dual Xeon E5-2695 v4, 128GB ECC, ZFS pools, mix of VMs and LXCs.112>113> A few things that would shape this significantly:114>115> - **What metrics matter most?** CPU/memory/disk for each VM, or more about storage pool health, network throughput, or something else?116> - **Where does this run?** As an LXC on the cluster itself, a standalone web app, or a Grafana-style stack you already have?117> - **Real-time or periodic?** Live updating dashboard vs. something that refreshes every few minutes?118119**User:** CPU and memory per VM, storage pool utilization, and network on both bridges. Run it as an LXC. Real-time with websockets.120121**Claude (Phase 4 — Execute directly):**122> Got it. Clear scope, clear deployment target. Here's what I'm building:123>124> ## Context Summary125> **Request:** Real-time Proxmox monitoring dashboard126> **Type:** Build127> **Key context gathered:**128> - Metrics: CPU, memory per VM/LXC, storage pool utilization, network (vmbr0/vmbr1)129> - Deployment: LXC container on the Proxmox cluster130> - Update model: Real-time via websockets131> - Infrastructure: saturn (primary), Jupiter (secondary)132> **Assumptions:** Using Proxmox API for data collection, Python backend, web frontend133> **Proceeding with:** Python + FastAPI backend with websocket push, lightweight HTML/JS frontend134>135> [begins building]