Agent skill
spec-elicitation
This skill should be used when a new project session starts and the user expresses what they want to build, asks to "start a project", "spec this out", "help me plan", or describes a feature/tool/system they want to create. Guides structured intent capture through goal, constraints, architecture, acceptance criteria, tasks, and non-goals.
Install this agent skill to your Project
npx add-skill https://github.com/gannonh/kata/tree/main/packages/shared/assets/system-skills/spec-elicitation
Metadata
Additional technical details for this skill
- author
- kata-sh
- system
- true
- version
- 1.1
SKILL.md
Spec Elicitation
Conduct a structured interview to turn intent into a project specification. Drive the conversation through phases, gathering enough detail to produce a spec that a team (human or agent) can execute against.
Message Format (mandatory)
Every message sent during elicitation MUST follow this structure exactly:
[1-2 sentence acknowledgment of previous answer, if any]
[Single question as a heading or bold text]
1. [Option A] — [brief description]
2. [Option B] — [brief description]
3. [Option C] — [brief description]
4. Something else (describe)
**Recommended: [N] ([Option])** — [1-sentence rationale]
Hard constraints
- One question per message. Never append a second question, a "related" follow-up, or an "and also." If two things need asking, send two messages.
- Numbered choices on every question where 3+ reasonable answers exist. Reserve free-form questions for genuinely open-ended exploration (e.g., "Describe your current workflow").
- Recommendation on every choice set. State which option to pick and why. The user expects an informed opinion, not a neutral menu.
- No bullet-point sub-questions. Do not list elaborating questions beneath the main question. Ask them in subsequent turns.
Violation examples
WRONG — two questions in one message:
What's the primary use case?
1. Data pipelines
2. One-off conversions
3. Tool integration
And who's the main user — yourself, your team, or broader distribution?
WRONG — sub-questions under main question:
What problem does this solve? For example:
- Do you need to convert CSV data for a web app?
- Are you processing exports from another system?
- Is this for personal automation?
WRONG — choices without recommendation:
Which approach?
1. CLI tool
2. Library
3. Web service
RIGHT:
What's the primary use case?
1. Data processing pipelines — automating recurring workflows
2. One-off developer conversions — quick ad-hoc transforms
3. Integration layer — bridging two systems via format conversion
4. Something else
**Recommended: 1 (Data processing pipelines)** — most CSV-to-JSON needs
recur, making automation the highest-value path.
Phases
Work through these phases in order. Adapt depth to the project. Skip phases
that don't apply. Consult references/guidance.md for detailed advice on
each phase, including when to skip and how to calibrate depth.
- Goal — What problem, who uses it, what does success look like
- Constraints — Stack, platform, timeline, dependencies, prior art
- Architecture — Components, data flow, mermaid diagram (skip for simple scripts or content-only projects)
- Acceptance criteria — Observable, testable, specific conditions
- Tasks (required in output) — 1-3 day chunks, clear boundaries, parallelizable when possible
- Non-goals — Explicit out-of-scope items to prevent scope creep
Conversation Flow
- Acknowledge answers before moving on. Mirror the user's vocabulary.
- Handle digressions: answer the side question, then steer back naturally.
- Do not loop on the same question if the user redirects.
- When a phase is sufficiently covered, move to the next. Do not ask permission to advance unless the answer was ambiguous.
Completion Gate
Before producing the spec:
- Summarize what was covered and what was intentionally skipped.
- Ask if anything was missed or needs adjustment.
- Produce the spec once the user confirms.
Output Format
Structure is flexible. Two requirements:
- Tasks section is required. Use a markdown checklist.
- Architecture diagram is strongly encouraged when the project has multiple components. Use mermaid syntax.
Keep the spec concise. Consult references/guidance.md for target lengths.
Saving the Spec
After outputting the spec in chat:
- Write the spec to
plans/spec.mdin the session directory using the Write tool. - Call
SubmitPlanwith the path to the written file.
SubmitPlan presents the spec to the user with an accept/reject UI. When
the user accepts, the session transitions from Explore to Execute mode,
enabling write operations for implementation.
Reference Material
Consult the references/ directory for calibration examples and extended
guidance:
guidance.md— phase depth calibration, acceptance criteria examples, task scoping advice, diagram guidance, spec length targetsexample-feature-spec.md— sample spec for a feature buildexample-investigation.md— sample spec for a bug investigation
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
kata-context
Structural and semantic codebase intelligence with persistent memory — index TypeScript and Python repos into a knowledge graph with vector embeddings, query symbol dependencies, run semantic search by intent, search code patterns, fuzzy-find symbols, and persist/recall agent memories with git audit trail. Use when you need to understand code structure, find what depends on a symbol, trace dependencies, search by meaning, search for code patterns, find symbols by name, or remember/recall project decisions, patterns, and learnings.
claude-md-improver
Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project memory optimization".
frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
debug-like-expert
Deep analysis debugging mode for complex issues. Activates methodical investigation protocol with evidence gathering, hypothesis testing, and rigorous verification. Use when standard troubleshooting fails or when issues require systematic root cause analysis.
swiftui
SwiftUI apps from scratch through App Store. Full lifecycle - create, debug, test, optimize, ship.
sym-address-comments
Help address review/issue comments on the open GitHub PR for the current branch using gh CLI; verify gh auth first and prompt the user to authenticate if not logged in.
Didn't find tool you were looking for?