9thlevelsoftware/legion/questioning-flow

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Adaptive project initialization questioning that captures vision, requirements, and preferences

Install

npx vskill@latest install 9thlevelsoftware/legion/questioning-flow

SKILL.md

Questioning Flow

Adaptive conversation engine for /legion:start. Captures everything needed to populate PROJECT.md, ROADMAP.md, and STATE.md templates through a 3-stage dialogue.


Section 1: Questioning Philosophy

  1. Vision first, technology second — understand what the user wants to exist before asking how to build it.
  2. Adaptive depth — follow the user's energy. If they go deep on a topic, explore it. If they give a terse answer, move on.
  3. Infer where possible, confirm where uncertain — don't ask questions the user already answered implicitly. State your inference and let them correct it.
  4. Always close with a bounded choice (CLAUDE.md mandate) — every user-facing question MUST invoke adapter.ask_user (AskUserQuestion on Claude Code) with a finite option set. Free-text prompts are not permitted. When the concept space is unbounded, include an Other / Add details option that opens a single free-text capture via adapter.prompt_free_text — never end a turn with an open prose prompt.
  5. Target 5-8 total exchanges — not 20 questions. Combine related questions. Skip what's already clear.
  6. Summarize between stages with a closure question — after each stage, reflect back what you captured and close with a bounded confirmation: Looks correct / Correct a specific field / Add missing detail / Cancel. Never close a summary with an open "Anything to add?" prompt.

Section 2: Conversation Flow

Stage 1: Vision & Identity (1-3 exchanges)

Purpose: Capture {project_name}, {project_description}, {value_proposition}, {target_users}.

Open with an `adapter.ask_user` (AskUserQuestion) call — not a bare prose prompt. Example option set for the opener:

idlabeldescription
pitchPaste or type my elevator pitchOpens adapter.prompt_free_text for a single free-text elevator pitch
from-specI have a spec/PRD to pasteOpens adapter.prompt_free_text for the spec text
from-urlStart from a link (repo, doc, deck)Opens adapter.prompt_free_text for a URL
otherNone of theseOpens adapter.prompt_free_text for an alternative entry

From the captured text, extract what you can. Then ask only what's still missing — each follow-up MUST be an adapter.ask_user call with a bounded option set (not a prose question):

Slot to fillOptions presented via adapter.ask_user
{target_users}Concrete user archetypes inferred from the pitch (3-5 options) + Other (specify via free-text primitive)
{value_proposition}Inferred value-prop candidates (2-4 options) + Refine — describe the real differentiator (free-text primitive)
{architecture_notes} (competitive context)Detected adjacent products/spaces (2-4 options) + None of these — describe what's close (free-text primitive) + Nothing close exists

Only open a free-text primitive when the user explicitly selects an Other/Refine/Describe option — never as the default prompt.

After Stage 1 — Summarize, then close with a bounded adapter.ask_user confirmation:

Display the summary as plain text:

"Here's what I'm understanding: [project_name] is [project_description]. It's for [target_users] and the core value is [value_proposition]."

Then invoke adapter.ask_user with these options (exact schema — no free-text default):

idlabeldescription
confirmLooks correct, proceed to Stage 2Accept the summary as captured
correct-nameCorrect the project nameOpens adapter.prompt_free_text scoped to {project_name}
correct-descriptionCorrect the descriptionOpens adapter.prompt_free_text scoped to {project_description}
correct-usersCorrect the target usersOpens adapter.prompt_free_text scoped to {target_users}
correct-valueCorrect the value propositionOpens adapter.prompt_free_text scoped to {value_proposition}
add-missingAdd missing detail not captured aboveOpens adapter.prompt_free_text for an unbounded addition
cancelCancel initializationStop the questioning flow

Wait for a selection. Do NOT emit an open "Anything to correct or add?" prompt — that is a CLAUDE.md violation.

Stage 2: Requirements & Constraints (2-4 exchanges)

Purpose: Capture {requirements_list}, {out_of_scope}, {constraints}, {architecture_notes}, {decisions_table}.

Core capture — always via `adapter.ask_user`:

For must-have features:

idlabeldescription
list-featuresEnter the v1 feature listOpens adapter.prompt_free_text for a bullet-list of must-haves
from-specExtract from a spec/PRDOpens adapter.prompt_free_text for the spec text
defer-to-legionLet Legion propose a minimal v1 from the vision capturedLegion drafts a feature list for user confirmation

For out-of-scope:

idlabeldescription
list-out-of-scopeEnter explicit exclusionsOpens adapter.prompt_free_text for the exclusion list
noneNothing explicit — include whatever Legion suggestsNo exclusions recorded

Adaptive follow-ups — after detecting project type in Stage 1, invoke one adapter.ask_user call per slot with option lists inferred from the stack — never a free-prose question. Examples:

Project type signalSlotExample option set
Code/softwarestackNext.js + PostgreSQL, Django + Postgres, Rails + MySQL, Other (specify), No preference
Code/softwarecodebaseGreenfield, Brownfield (existing repo), Fork of existing project
Code/softwaredeploy-targetVercel, Cloudflare, AWS, Self-hosted, Other (specify), Undecided
Content/marketingplatformsLinkedIn, X, Instagram, TikTok, YouTube, Newsletter, Other (specify)
DesigndevicesDesktop web, Mobile web, Native iOS, Native Android, Cross-platform, Other (specify)
Research/analysisdeliverableReport (markdown), Slide deck, Dashboard, Dataset, Other (specify)

Rule: If you cannot enumerate 2-5 plausible options for a slot, do not ask — skip the slot and let the phase planner capture it later.

General optional slots — each invoked via adapter.ask_user when relevant (skip the slot entirely if not):

  • constraints — options: None, Timeline, Budget, Hosting, Language/stack, Other (specify)
  • risk — options: 3-5 inferred risks + Other (specify) + No major unknowns
  • existing-assets — options: Existing repo, Existing designs, Existing content, Nothing yet, Other (specify)
  • timeline — options: No deadline, Soft (weeks), Firm (date — specify), Urgent (this week)

After Stage 2 — Summarize as plain text, then close with a bounded adapter.ask_user confirmation:

Summary display:

"Here's the v1 scope I captured: [bullet list]. Out of scope: [items]."

Close with:

idlabeldescription
confirmLooks correct, proceed to Stage 3Accept the requirements as captured
adjust-requirementsAdjust the v1 requirements listOpens adapter.prompt_free_text scoped to {requirements_list}
adjust-scopeAdjust the out-of-scope listOpens adapter.prompt_free_text scoped to {out_of_scope}
adjust-constraintsAdjust the constraintsOpens adapter.prompt_free_text scoped to {constraints}
add-missingAdd missing detail not capturedOpens adapter.prompt_free_text for an unbounded addition
cancelCancel initializationStop the questioning flow

Do NOT close with an open "Any adjustments?" prompt — that is a CLAUDE.md violation.

Stage 3: Workflow Preferences (1-2 exchanges)

Purpose: Capture execution mode, planning depth, and cost profile. These shape how ROADMAP.md phases are structured and how agents execute.

Present three structured choices. Use clear descriptions so the user can choose quickly.

Question 1 — Execution Mode:

  • Guided (Recommended): Legion recommends actions, you approve before each step. Best for first-time use or high-stakes projects.
  • Autonomous: Legion plans and executes, you review at checkpoints. Best for trusted workflows or time pressure.
  • Collaborative: Work alongside agents with high interaction. Best when you want to stay hands-on.

Question 2 — Planning Depth:

  • Standard (Recommended): Balanced planning and execution. 3-6 phases. Good for most projects.
  • Quick Sketch: Minimal planning, start building fast. 2-3 phases. Good for prototypes or explorations.
  • Deep Analysis: Thorough research and planning before execution. 6+ phases. Good for complex or unfamiliar domains.

Question 3 — Cost Profile:

  • Balanced (Recommended): Opus for planning, Sonnet for execution, Haiku for checks. Best cost/quality ratio.
  • Economy: Sonnet for planning and execution, Haiku for checks. Lower cost, still capable.
  • Premium: Opus for planning and execution, Sonnet for checks. Maximum quality, higher cost.

Record choices as decisions in {decisions_table}:

| Execution mode | [user rationale or "default"] | [chosen mode] |
| Planning depth | [user rationale or "default"] | [chosen depth] |
| Cost profile | [user rationale or "default"] | [chosen profile] |

Section 3: Output Structure

Placeholder Mapping
Template PlaceholderSource StageHow to Fill
{project_name}Stage 1Short name extracted from pitch. Use the user's own words if they named it.
{project_description}Stage 12-3 sentence description of what the project is.
{value_proposition}Stage 1Core differentiator — why this matters.
{target_users}Stage 1Who the project serves. Concrete user types, not vague "everyone."
{requirements_list}Stage 2Checkbox list of v1 requirements (see format below).
{out_of_scope}Stage 2Bullet list of explicitly excluded items. Omit section if none stated.
{constraints}Stage 2Technical, timeline, or resource constraints. Omit section if none.
{decisions_table}Stage 2-3Table rows: `\Decision \Rationale \Outcome \`
{architecture_notes}Stage 2Stack choices, competitive context, technical direction. Omit if non-technical project.
{date}GeneratedCurrent date in YYYY-MM-DD format.
{phase_checklist}DecompositionCheckbox list of phases (see Section 4).
{phase_details_sections}DecompositionOne detail block per phase (see roadmap template comment).
{progress_table}DecompositionOne row per phase, all showing "Not started".
{total_phases}DecompositionInteger count of phases.
{total_plans}DecompositionSum of estimated plans across all phases.
{progress_bar}GeneratedEmpty progress bar matching total plans width, e.g., ··········
{progress_percent}Generated0 at initialization.
{recent_decisions}Stage 3Workflow preference decisions formatted as bullet list.
{first_phase_name}DecompositionName of Phase 1 for the "next action" prompt.
Formatting Rules

Requirements — each requirement is a checkbox item:

markdown
-[ ] User authentication with email/password
-[ ] Dashboard showing key metrics
-[ ] Export data as CSV

Decisions — each decision is a table row:

markdown
| Tech stack | Team familiarity and ecosystem maturity | Next.js + PostgreSQL |
| Execution mode | First project with Legion | Guided |

Out of scope / Constraints — plain bullet lists:

markdown
-Mobile app (web-first for v1)
-Multi-language support

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
62
Repository forks
7
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/9thlevelsoftware/legion/questioning-flow/badge)](https://verified-skill.com/skills/9thlevelsoftware/legion/questioning-flow)

Something wrong with this skill or its page? Tell us.