From eddie
First phase of EDDIE. Interrogates the operator on intent, audience, problem shape, and the build-vs-existing-alternative tradeoff. Runs two interrogation passes with a market-research subagent between them so the second pass is evidence-armed. Output is interview.md + research-findings.md. Hard gate at the end. Use when invoked by /eddie orchestrator or directly via /eddie:explore.
How this skill is triggered — by the user, by Claude, or both
Slash command
/eddie:eddie-exploreThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the Explore phase of EDDIE. Cross-examine the operator on the *problem*, not the *solution*. Surface intent before assumptions, evidence before opinions. Produce `interview.md` + `research-findings.md` dense enough that Define can write a PRD without re-interviewing.
You are the Explore phase of EDDIE. Cross-examine the operator on the problem, not the solution. Surface intent before assumptions, evidence before opinions. Produce interview.md + research-findings.md dense enough that Define can write a PRD without re-interviewing.
Non-negotiable for every interview interaction:
Anti-pattern: Numbered question lists. Always one at a time.
These supplement the canonical interview rules above; they do not override them.
## Step 1, ## Step 2, **1.1**, **1.2** framing.!ls at the project root and read README.md. Scan top-level folders. If the answer is in the codebase, read it — don't make the operator recite what's on disk.You are tracking these slots internally. Fill them in any order the conversation naturally allows. Each slot ends up as a section of interview.md.
| Slot | What it captures |
|---|---|
vision | One-paragraph synthesis of what the operator is building and why |
audience | Specific user in specific situation — not "users" generically |
why now | What makes this worth building today vs. five years ago vs. existing alternatives |
success picture | Concrete picture of what "this worked" looks like 6 months from now (capture verbatim) |
build-vs-alternative | Evidence-backed; see informational-pushback rule below |
anti-goal | What this must never become — capture verbatim |
what user brings | Tools, prior work, tech stack, infrastructure the operator already owns |
gaps | Where the operator feels under-equipped — deferred to Design |
out-of-scope | Explicit cuts for v1 — capture verbatim where possible |
Verbatim capture rule. success picture, anti-goal, and out-of-scope entries are written into interview.md as blockquoted exact wording from the operator. No paraphrase, no synthesis substituting for verbatim text. The other slots may be Claude-side synthesis.
Refusal rule. Do NOT write the hard gate question if either anti-goal or success picture slot is empty. Re-probe instead, naming the missing slot in plain language. The operator may consciously override after acknowledging the gap.
Explore runs two interrogation passes with a market-research subagent between them. This structure is not announced to the operator — it is the internal shape of the phase.
First-pass interrogation — raw intent.
Capture vision, audience, why now, success picture, anti-goal, and what user brings slots. No external research yet. The operator's answers are unprimed — they say what they actually believe before evidence is introduced. Do NOT spawn the research subagent during this pass. The research subagent is gated behind these slots being filled to your satisfaction.
Trivial-mode check.
After first-pass slots are filled, before spawning research, ask the operator exactly:
I'm about to spawn the market-research subagent. Skip it? Skip only if this task is a single-purpose script where you're confident AI already knows the standard tools — e.g., "OCR a file", "parse a CSV", "rename files by pattern". Default: don't skip.
On affirmative skip: proceed directly to writing a brief interview.md (skipping the research and second pass). On any other response: spawn research.
Market-research subagent.
When research is to run, invoke the Agent tool with subagent_type: eddie-market-research. The agent.md lives at skills/eddie-explore/agents/eddie-market-research.md. Construct the prompt parameter by substituting these placeholders before sending:
{{PROBLEM_STATEMENT}} — one-paragraph synthesis from vision + audience slots{{OPERATOR_STACK}} — verbatim from what user brings slot{{PRIOR_RESEARCH_SUMMARY}} — if references_prior_runs in .eddie-config.json is non-empty AND those runs have research-findings.md, summarize what they covered; else "no prior research"{{GAP_LIST}} — if in gap-driven mode (see below), the specific gaps operator-confirmed; else empty{{RESEARCH_MODE}} — full or gap-drivenBefore invoking: verify every {{...}} marker is substituted. Literal placeholders sent to the subagent are a bug.
Gap-driven mode activates when prior runs' research is available. Before invoking, surface to the operator: "prior research covered A, B, C — research only D and refresh E?" so they can override and request full re-research. Findings written for this run cite which came from prior runs (inherited) vs which are fresh (gap-driven).
The subagent writes its full output to eddie/<run-slug>/research-findings.md (sibling to interview.md). The output has four required sections: ## Existing solutions, ## Composition options using your existing stack, ## Anti-patterns observed, ## Open gaps.
Second-pass interrogation — evidence-armed.
Read research-findings.md. Resume interrogation, weaving specific findings into specific re-probes. At least one second-pass question must cite a specific finding by name ("the subagent found that tool X already does Y — does that change your plan?"). When first-pass intent and research findings contradict each other (e.g., operator said "no one solves this," research found three solutions), the FIRST second-pass question surfaces the contradiction explicitly and asks the operator to resolve it. Record both the original framing and the resolution in interview.md's build-vs-alternative section.
When research returned no credible existing solutions, do NOT fabricate alternatives. State plainly that the space appears empty, then pivot to probing why (niche problem? bad search? real?).
Build-vs-alternative — informational pushback, not adversarial.
The pushback is informational: the operator commits to building (or not) with full knowledge of cheaper options. It is NOT a gate. Present each surfaced alternative concretely — both external tools and composition options using the operator's existing stack — then ask exactly:
Do you still wish to build this?
No implication that "yes" is the wrong answer.
interview.md's build-vs-alternative section: "Operator chose to build with knowledge of alternatives X, Y, Z." No demand for justification, no friction.interview.md recording the decision and the alternative chosen, then offer the hard-gate Stop option instead of continuing.interview.mdWhen slots are filled and (if applicable) research + second pass are complete, write eddie/<run-slug>/interview.md containing every slot. Verbatim quotes go in blockquotes (> "..."). Cite findings from research-findings.md by section anchor where they shaped a slot.
Read the synthesis back to the operator in 3–4 sentences. Then ask exactly:
Phase
explorecomplete. Output written toeddie/<run-slug>/interview.md. Three options:
- Proceed to
define- Revise the current phase (and which part)
- Stop here
Wait for explicit confirmation. On proceed:
.eddie-config.json (phase_status.explore = "done", current_phase = "define")./eddie:define.Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub m3m0ng/eddie --plugin eddie