Skip to content

alexbot/elaborate

Elaborate

An agent skill that runs a Socratic interview inside your coding agent — turning vague ideas into structured intent before you write a line of code.

Works with Claude Code, Cursor, GitHub Copilot, and any agent that supports the agentskills.io standard.

CI License: MIT

Elaborate demo — library revival interview

The Problem

Most projects start with a gap between "I have an idea" and "I know what to build." People either jump straight to code or hand an AI a one-line prompt and hope for a spec. Both skip the hard part: figuring out what success looks like, who cares, where the boundaries are, and which assumptions will bite you later.

Traditional methods for this exist — but they depend on trained facilitators and structured workshops. Solo developers, founders, and small teams skip them entirely. The result: projects start with vague goals and discover critical gaps mid-build.

What Elaborate Does

Elaborate runs a structured interview — 25-32 questions across seven phases — that moves you from a vague idea to a scoped project definition.

Phase What it covers
Opening Context and framing — greenfield or existing project?
Purpose What problem are you solving? What does success look like?
Goals Concrete, measurable outcomes with rationale
Stakeholders Who cares, what they need, where interests conflict
Scope What's in, what's out, why the boundary sits there
Assumptions What you're taking for granted that could invalidate everything
Validation Review and confirm — or revise before you build

Every goal, stakeholder, scope decision, and assumption in the output traces back to the conversation turn that produced it.

Quick Start

Requires Node.js 18+.

npx skills add alexbot/elaborate

To install for a specific agent:

npx skills add alexbot/elaborate -a claude-code   # Claude Code only
npx skills add alexbot/elaborate -a cursor   # Cursor only
npx skills add alexbot/elaborate -a github-copilot  # GitHub Copilot only

Then:

/elaborate
# or just say it naturally:
"I'd like to elaborate my latest idea about a neighborhood recycling app"

Elaborate responds to both the slash command and natural language that signals intent to elaborate an idea.

Note on model quality: The interview process completes reliably on any model, but the depth of insight depends on model capability. Stronger models extract more nuance and produce richer artifacts. Smaller models may miss subtlety or generate shallow extractions.

Example: Saving a Library Branch

A volunteer wants to save their neighborhood library from closure. The input:

"The city's talking about closing it because foot traffic has dropped. I don't want to see that happen — the library's been part of this neighborhood for a long time. I want to figure out how to bring people back."

After 28 questions, the respondent had reversed their own premise: "I've been working backwards — I never stopped to ask whether the library is actually what the neighborhood needs." What started as "bring people back" became a research phase that could confirm or kill the original idea — and the respondent was the one who got there, not the tool.

Read the full brief →

See also: Elaborate interviews itself (the tool pointed at its own premise) and selling cookies at the farmers market (a $500 hobby that might be a business). More examples across domains — from federal spending oversight to elderly independent living — in docs/examples/.

Output

The interview produces a session file (.elaborate/session.yaml) — a structured YAML artifact with every goal, stakeholder, scope item, and assumption traced to the conversation turn that produced it. This is machine-consumable: designed as input for spec-driven development tools, code generators, or any pipeline that needs structured intent.

If you want something presentable — for a business plan, a stakeholder pitch, or a project kickoff — run /project-brief on the session file to generate a readable markdown brief. The skill prompt is in skills/project-brief/SKILL.md.

All examples above are generated by the automated test suite using a simulated respondent (an LLM playing the person with the idea). The briefs are generated from those sessions using the project-brief skill. You can reproduce both by running the scenario harness yourself.

How It Works

The interview is complex — 7 phases, state persistence, extraction cycles, deviation handling. Rather than relying on the model to follow a long prompt correctly, Elaborate splits the work: a compiled Node.js script handles all process decisions (what to ask, when to transition, how to store artifacts) while the model handles only semantic work (understanding what you said, extracting meaning, composing follow-up questions). The model can't skip phases or lose track — the script drives.

The interview techniques draw on qualitative research traditions:

  • Kvale & Patton — semi-structured interview design
  • Miller & Rollnick — motivational interviewing (surfacing ambivalence without pushing)
  • Reynolds & Gutman — means-end laddering (climbing from features to underlying values)
  • KAOS — goal decomposition (structuring what emerges into testable hierarchies)

The AI asks questions, flags ambiguity, and structures what you say. It never fills gaps on its own — you decide everything.

See docs/decisions/ for the full architecture story.

Development

Requires Node 22+.

npm install
npm run build          # TypeScript compilation
npm run build:skill    # esbuild bundle → dist/skill/
npx vitest run         # Run tests

Contributing

See CONTRIBUTING.md for setup, architecture, and how to pick up work.

License

MIT

About

AI Socratic interviewer that turns vague ideas into structured intent. 25-32 questions across 7 phases. Catches the gaps you'd miss on your own.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors