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.yaml file
- 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.yaml in {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 answer
Example 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 answer
Technology 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 answer
Data 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 answer
JSONL Format
Track all questions and answers in {base_directory}/artifacts/technical-interview.jsonl.
See [references/interview-jsonl-spec.md](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}/artifacts
The output document includes these top-level sections: project, version, generated, businessrequirementsref, architecture, technologystack, projectstructure, datamodel, api, security, testing, development, cicd, deployment, monitoring, performance, scalability, constraints, tradeoffs, and openquestions.
See [references/output-spec.md](references/output-spec.md) for the complete document specification with all fields, types, and validation rules.
See [references/example.yaml](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.yaml as context
- Check for existing
{base_directory}/artifacts/technical-interview.jsonl
- Resume from last question if found
- Ask targeted technical questions
- Generate
technical-requirements.yaml in {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:
Completeness Check:
Architecture:
Technology Stack:
Data Model:
API:
Security:
Testing:
Deployment:
Consistency Check
Trade-off Analysis
Review documented trade-offs:
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:
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-planner to generate implementation plans
Examples
See [references/example.yaml](references/example.yaml) for a complete sample output.