Loading...
Loading...
Conducts structured interviews to derive technical requirements from business requirements. Requires completed business-requirements.yaml as input. Asks targeted technical questions about architecture, technology stack, data model, APIs, security, testing, and deployment. Generates technical-requirements.yaml output.
npx skill4agent add validkeys/sherpy technical-requirements-interviewbusiness-requirements.yamltechnical-interview.jsonltechnical-requirements.yaml## [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## 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
**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 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 answertechnical-interview.jsonl{"id":1,"category":"Architecture & Patterns","question":"What architecture pattern best fits this project?","answer":"Monolithic application - Single deployable unit, simpler to develop and deploy initially","question_number":"Q1","timestamp":"2025-01-27T11:00:00Z"}
{"id":2,"category":"Technology Stack","question":"Which programming language should be used?","answer":"TypeScript - Type-safe JavaScript, excellent tooling, large ecosystem","question_number":"Q2","timestamp":"2025-01-27T11:05:00Z"}technical-requirements.yamlproject: [project-name]
version: "1.0.0"
generated: [timestamp]
business_requirements_ref: [path-to-business-requirements.yaml]
architecture:
pattern: [architecture-pattern]
description: |
[Detailed description of architecture approach]
components:
- name: [Component 1]
responsibility: [What it does]
- name: [Component 2]
responsibility: [What it does]
technology_stack:
language: [programming-language]
runtime: [node/python/jvm/etc]
frameworks:
- [framework 1]
- [framework 2]
libraries:
core:
- [library 1]
- [library 2]
development:
- [dev library 1]
package_manager: [npm/pip/cargo/etc]
project_structure:
type: [monorepo/multi-repo/single-repo]
layout: |
[Description of directory structure]
key_directories:
- path: [path]
purpose: [what goes here]
data_model:
strategy: [file/database/memory/etc]
database: [type-if-applicable]
schema_approach: [description]
migrations: [strategy]
api:
style: [REST/GraphQL/RPC/CLI]
framework: [framework-name]
versioning: [strategy]
documentation: [approach]
security:
authentication:
method: [none/token/oauth/etc]
implementation: [how]
authorization:
model: [none/rbac/abac/etc]
implementation: [how]
secrets:
storage: [env-vars/keychain/vault/etc]
rotation: [policy]
data_validation:
input: [approach]
output: [approach]
testing:
strategy: [TDD/BDD/manual/etc]
types:
unit:
framework: [framework]
coverage_target: [percentage]
integration:
framework: [framework]
approach: [description]
e2e:
framework: [framework]
approach: [description]
mocking:
strategy: [what to mock]
tools: [frameworks]
development:
workflow: [description]
code_quality:
linter: [tool]
formatter: [tool]
type_checker: [tool]
pre_commit_hooks:
- [hook 1]
- [hook 2]
ci_cd:
platform: [github-actions/circleci/etc]
pipeline:
- stage: [stage 1]
actions:
- [action 1]
- [action 2]
- stage: [stage 2]
actions:
- [action 1]
deployment:
target: [local/cloud/hybrid/etc]
packaging:
format: [npm/docker/binary/etc]
distribution: [approach]
environments:
- name: development
config: [approach]
- name: production
config: [approach]
release_process:
strategy: [semver/calver/etc]
automation: [level]
monitoring:
logging:
format: [structured/plain]
destination: [file/console/service]
metrics:
collection: [approach]
visualization: [tool]
alerts:
strategy: [when to alert]
channels: [email/slack/etc]
performance:
targets:
response_time: [target]
throughput: [target]
optimization:
strategy: [caching/lazy-loading/etc]
monitoring: [approach]
scalability:
approach: [vertical/horizontal/serverless]
limits:
concurrent_users: [estimate]
data_volume: [estimate]
bottlenecks:
- [known bottleneck 1]
- [known bottleneck 2]
constraints:
technical:
- [constraint 1]
- [constraint 2]
operational:
- [constraint 1]
- [constraint 2]
trade_offs:
- decision: [decision made]
rationale: [why]
alternative: [what was not chosen]
consequence: [impact]
open_questions:
- question: [unresolved question]
options:
- [option 1]
- [option 2]
impact: [what this affects]/technical-requirements-interview path/to/business-requirements.yaml/technical-requirements-interview path/to/business-requirements.yamltechnical-interview.jsonltechnical-requirements.yamltechnical-requirements.yamlgap_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]"I've identified some gaps in the technical requirements that could impact implementation. Would you like to:
- Address them now (I'll ask follow-up questions)
- Proceed to implementation planning (address during development)
- Review the gaps and decide"
/implementation-planner