Feature Specification Skill
Purpose
Transform vague or incomplete requests into comprehensive, validated specifications through iterative dialogue. This skill produces a CDC (Cahier Des Charges) document in French that serves as the foundation for all subsequent phases.
Key difference from feature-research:
feature-specification= WHAT to do (define precisely)feature-research= HOW to do it (technical research)
IMPORTANT: User Interaction
ALWAYS use the AskUserQuestion tool to ask questions to the user.
This tool allows structured questioning with multiple choice options:
- Ask 1-4 questions at a time
- Provide 2-4 options per question with descriptions
- User can select options or provide custom "Other" response
- Use
multiSelect: truewhen multiple answers are valid
Example usage:
AskUserQuestion:
questions:
- question: "Who are the primary users of this feature?"
header: "Users"
options:
- label: "Internal employees"
description: "Staff members using internal tools"
- label: "External customers"
description: "End users of the product"
- label: "Administrators"
description: "Users with elevated privileges"
multiSelect: true
Why this matters:
- Structured questions are clearer for users
- Options help users think through possibilities
- Responses are unambiguous
- Conversation stays focused
Specification Workflow
Phase 1: Initial Context Analysis
- Read the user request - Understand the initial ask
- Analyze project context - Use Glob/Grep to discover:
- Project structure and technologies
- Existing similar features
- Conventions and patterns in use
- Identify domain - Understand the business context
- Ask initial framing questions - Start the dialogue
Example initial analysis:
- Found: package.json → Node.js/React project
- Found: src/modules/auth/ → Authentication module exists
- Found: PostgreSQL migrations → Database with existing schema
Phase 2: Deep Iterative Questioning
Ask questions across these categories. See references/questioning-guide.md for complete guide.
2.1 Motivation & Objectives
- What problem does this solve?
- What are the business goals?
- How will success be measured?
2.2 Users & Personas
- Who will use this?
- What is their technical level?
- What are their current workflows?
2.3 Detailed Functionality
- What exactly should happen?
- What actions must be possible?
- What are expected inputs/outputs?
2.4 Constraints & Limits
- Technical constraints (performance, security)?
- Business constraints (regulations, processes)?
- Time or budget constraints?
2.5 Integration & Dependencies
- What existing systems to integrate with?
- What prerequisites must be in place?
- Impact on existing functionality?
2.6 Edge Cases & Exceptions
- What if X fails?
- How to handle edge cases?
- What error scenarios to anticipate?
Questioning principles:
- Ask 2-4 questions at a time, not overwhelming lists
- Build on previous answers
- Validate understanding before moving on
- Be specific based on project context discovered
Phase 3: Contextual Codebase Research
Explore the codebase to inform specifications:
-
Find similar implementations
Glob: **/*Service.ts, **/*Controller.cs Grep: "similar-feature-name" -
Understand existing patterns
- How are similar features structured?
- What conventions are followed?
- What dependencies are used?
-
Identify integration points
- Which components will be affected?
- What interfaces exist?
- What data models are relevant?
Phase 4: Proactive Proposals
Be a force of proposal, not just passive. See references/proposal-techniques.md.
Propose simplifications:
"Rather than a complete notification system, I suggest starting with
emails only. This validates the concept before adding push/SMS."
Suggest alternatives:
"I noticed you don't have a queue system. For emails, I suggest using
Hangfire which is already configured in the project."
Identify quick wins:
"We could reuse the existing EmailTemplate component from the
password-reset feature."
Anticipate problems:
"If we store files locally, this won't work with multiple server
instances. Consider using Azure Blob Storage instead."
Phase 5: CDC Documentation
Compile all gathered information into a CDC document.
- Create
CDC.mdusing template fromreferences/cdc-template.md - Review completeness - Ensure all sections are filled appropriately
- Present for user approval
Context-Aware Questions
Adapt questions based on discovered project context:
If PostgreSQL detected:
"This feature will need new database tables. Have you thought about the data model?"
If React + TypeScript detected:
"Should we include E2E tests with Playwright for this feature?"
If similar feature found:
"I found a similar feature in
src/modules/orders. Should we follow the same pattern?"
If authentication exists:
"Should this feature be restricted to authenticated users? Specific roles?"
Output
The skill produces CDC.md containing:
- Clear problem statement and context
- Validated objectives with success criteria
- Explicit scope (in/out)
- Functional requirements with acceptance criteria
- Non-functional requirements (performance, security, accessibility)
- Constraints and prerequisites
- User personas and usage scenarios
- Identified risks with mitigations
- Documented decisions
- User approval
See references/cdc-template.md for the complete template.
Tips for Effective Specification
- Ask before assuming - Clarify ambiguities early
- Be context-aware - Use project analysis to ask relevant questions
- Propose, don't just ask - Offer options based on your analysis
- Document as you go - Capture decisions in real-time
- Validate incrementally - Confirm understanding before moving on
- Think integration - Consider how this fits the existing system
- Anticipate problems - Surface issues early
- Keep scope focused - Help user avoid scope creep
Integration with Workflow
Phase 0: Specification (this skill)
↓ CDC.md
Phase 1: Research (feature-research)
↓ findings.md
Phase 2: Planning (implementation-planner)
...
The CDC becomes input for feature-research, providing clear requirements for technical research.
Bundled Resources
references/cdc-template.md- Complete CDC template in Frenchreferences/questioning-guide.md- Detailed questioning strategies by categoryreferences/proposal-techniques.md- Techniques for being proactive