Technical Requirements Interview
This skill guides you through a structured interview to derive technical requirements from business requirements.
Prerequisites
- Completed
{base_directory}/requirements/business-requirements.yamlfile - Clear understanding of the problem domain
Interview Process
Rules
- One question at a time - Never ask multiple questions in a single turn
- Business context first - Load and understand business requirements before asking technical questions
- Provide options - Each question includes 2-5 recommended options plus free-form input
- Track progress - All Q&A pairs are immediately appended to
{base_directory}/artifacts/technical-interview.jsonl - Resume capability - If JSONL exists, continue from last question
- Structured output - Generate
technical-requirements.yamlin{base_directory}/requirements/upon completion
Interview Categories
The interview covers these areas in order:
- Architecture & Patterns
- Overall architecture style - Application structure - Component organization
- Technology Stack
- Programming language - Frameworks and libraries - Package management
- Data Model & Storage
- Data persistence strategy - Database selection - Schema design approach
- API Design
- API style (REST, GraphQL, RPC) - API framework - Versioning strategy
- Security & Authentication
- Authentication method - Authorization approach - Secrets management
- Testing Strategy
- Testing approach (TDD, BDD, etc.) - Test types (unit, integration, e2e) - Testing frameworks
- Development & Tooling
- Development workflow - Code quality tools - CI/CD approach
- Deployment & Distribution
- Deployment target - Packaging strategy - Release process
Question Format
Each question follows this structure:
## [Category Name]
**Question:** [Clear, specific question]
**Options:**
1. [Option 1] (Recommended) - [Brief description and rationale]
2. [Option 2] - [Brief description]
3. [Option 3] - [Brief description]
4. Type your own answerExample Questions
Architecture
## Architecture & Patterns
**Question:** What architecture pattern best fits this project?
**Options:**
1. Monolithic application (Recommended) - Single deployable unit, simpler to develop and deploy initially
2. Microservices - Multiple independent services, better scaling but higher complexity
3. Serverless functions - Event-driven, scales automatically, but vendor lock-in
4. Plugin-based - Core engine with extensible plugins for flexibility
5. Type your own answerTechnology Stack
## Technology Stack
**Question:** Which programming language should be used?
**Options:**
1. TypeScript (Recommended) - Type-safe JavaScript, excellent tooling, large ecosystem
2. Python - Readable, extensive libraries, good for data processing and scripting
3. Go - Fast compilation, excellent concurrency, simple deployment
4. Rust - Memory safety without garbage collection, high performance
5. Type your own answerData Storage
## Data Model & Storage
**Question:** What data persistence strategy is appropriate?
**Options:**
1. File-based storage (Recommended) - Simple, portable, no database dependency
2. SQLite - Embedded relational database, good for local tools
3. PostgreSQL - Full-featured relational database, better for complex queries
4. NoSQL (MongoDB, etc.) - Flexible schema, good for document-based data
5. In-memory only - Fast but no persistence, suitable for ephemeral data
6. Type your own answerJSONL Format
Track all questions and answers in {base_directory}/artifacts/technical-interview.jsonl.
See references/interview-jsonl-spec.md for the complete JSONL schema with field definitions and examples.
Output Format
Generate {base_directory}/requirements/technical-requirements.yaml upon interview completion.
Create directory if it doesn't exist:
mkdir -p {base_directory}/requirements
mkdir -p {base_directory}/artifactsThe output document includes these top-level sections: project, version, generated, business_requirements_ref, architecture, technology_stack, project_structure, data_model, api, security, testing, development, ci_cd, deployment, monitoring, performance, scalability, constraints, trade_offs, and open_questions.
See references/output-spec.md for the complete document specification with all fields, types, and validation rules.
See references/example.yaml for a full example.
Usage
To start a new technical interview:
/technical-requirements-interview [base-directory]If no directory is provided, auto-detect by looking for requirements/business-requirements.yaml in the current directory.
If not found, prompt the user: "Where are your requirements documents located?"
Wait for the user to provide a path before proceeding. Store as base_directory.
The skill will automatically:
- Load business requirements from
{base_directory}/requirements/business-requirements.yamlas context - Check for existing
{base_directory}/artifacts/technical-interview.jsonl - Resume from last question if found
- Ask targeted technical questions
- Generate
technical-requirements.yamlin{base_directory}/requirements/when complete - Save interview transcript to
{base_directory}/artifacts/technical-interview.jsonl
Decision Tracking
Each technical decision should include:
- Decision - What was decided
- Rationale - Why this approach
- Alternatives considered - What else was evaluated
- Trade-offs - What was gained/lost
- Reversibility - How hard to change later
Best Practices
- Align with business needs - Every technical choice should support business requirements
- Consider constraints - Respect timeline, budget, and skill constraints
- Start simple - Choose simpler solutions over complex ones when possible
- Plan for change - Make reversible decisions where possible
- Document rationale - Future you will thank present you
Review & Gap Analysis
After generating technical-requirements.yaml, automatically perform a gap analysis:
Alignment Check
Business Alignment:
- Architecture supports all functional requirements
- Technology choices align with business constraints
- Timeline is realistic for technical scope
- Budget constraints respected in tool/service choices
Completeness Check:
Architecture:
- Architecture pattern is clearly defined
- Components and responsibilities documented
- Data flow is clear
- Integration points identified
Technology Stack:
- Language and runtime specified
- Frameworks and libraries listed
- Versions specified where critical
- Alternatives considered and documented
Data Model:
- Storage strategy defined
- Schema approach documented
- Migration strategy if using database
- Data validation approach specified
API:
- API style chosen (REST/GraphQL/RPC)
- Framework selected
- Versioning strategy defined
- Documentation approach specified
Security:
- Authentication method defined
- Authorization model specified
- Secrets management approach
- Input/output validation strategy
Testing:
- Testing strategy defined (TDD/BDD/etc)
- Test types specified (unit/integration/e2e)
- Frameworks selected
- Coverage targets set
Deployment:
- Deployment target identified
- Packaging format chosen
- CI/CD approach defined
- Release process documented
Consistency Check
- No contradictions between technical decisions
- Technology choices compatible with each other
- Performance targets achievable with chosen stack
- Security approach matches data sensitivity
Trade-off Analysis
Review documented trade-offs:
- Each trade-off has clear rationale
- Alternatives were seriously considered
- Consequences understood and acceptable
- Reversibility assessed
Gap Identification
Common Gaps to Check:
- Missing error handling strategy
- Undocumented edge cases
- Unaddressed scalability concerns
- Missing monitoring/observability plan
- Unclear data migration path
- Missing security threat model
- Undocumented performance budgets
- Missing disaster recovery plan
- Unclear dependency versioning strategy
- Missing code quality tooling
Open Questions Review
Check if open questions are:
- Clearly stated
- Have identified options
- Impact is understood
- Decision timeline defined
Review Output
Generate a gap analysis report with:
gap_analysis:
business_alignment_score: [1-10]
completeness_score: [1-10]
consistency_score: [1-10]
gaps_found:
- category: [category]
issue: [description]
severity: [high/medium/low]
recommendation: [how to address]
business_impact: [what business requirement this affects]
strong_areas:
- [what's well-defined]
trade_offs_review:
- decision: [decision]
assessment: [well-reasoned/needs-review/concerning]
notes: [additional context]
open_questions_assessment:
- question: [question]
blocking: [yes/no]
recommendation: [resolve now/later/accept uncertainty]
suggestions:
- [improvement suggestions]
ready_for_implementation: [yes/no/with-modifications]If critical gaps found (severity: high or blocking open questions), ask:
"I've identified some gaps in the technical requirements that could impact implementation. Would you like to: 1. Address them now (I'll ask follow-up questions) 2. Proceed to implementation planning (address during development) 3. Review the gaps and decide"
Next Steps
After completing the technical requirements interview and gap analysis:
- Review gap analysis report
- Address any critical gaps or blocking questions
- Validate technical choices are realistic
- Use
/implementation-plannerto generate implementation plans
Examples
See references/example.yaml for a complete sample output.