technical-requirements-interview について
Technical Requirements Interview は、段階的で再開可能なインタビューを通じて、ビジネス要件を構造化された技術要件にまとめるスキルです。回答を記録し、ギャップ分析付きの YAML 仕様を生成します。
主な機能
- 01選択肢付きで一問ずつ質問
- 02JSONL 記録からインタビューを再開
- 03アーキテクチャからデプロイまでを網羅
- 04technical-requirements.yaml の生成
- 05整合性、ギャップ、トレードオフの確認
活用シーン
- 01ビジネス要件を技術的な判断に変換
- 02未完了の要件インタビューを再開
- 03アーキテクチャと技術選定を記録
- 04要件案の不足項目を点検
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ validkeys/ sherpy --skill technical-requirements-interviewインストール後、Claude Code で/technical-requirements-interviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/example.yamlinterview-jsonl-spec.mdoutput-spec.md詳細
技術要件インタビュー
このスキルでは、ビジネス要件から技術要件を導き出すための、体系的なインタビューを進めます。
前提条件
{base_directory}/requirements/business-requirements.yamlが完成していること- 問題領域を明確に理解していること
インタビュープロセス
ルール
- 一度に質問は1つ - 1回の発話で複数の質問をしてはいけません
- まずビジネスコンテキストを確認 - 技術的な質問をする前に、ビジネス要件を読み込んで理解します
- 選択肢を提示 - 各質問には、推奨する選択肢を2~5個と自由記述欄を含めます
- 進捗を記録 - 質問と回答の組み合わせはすべて、直ちに
{base_directory}/artifacts/technical-interview.jsonlに追記します - 再開機能 - JSONL が存在する場合は、最後の質問から続けます
- 構造化された出力 - 完了時に
{base_directory}/requirements/にtechnical-requirements.yamlを生成します
インタビューのカテゴリ
インタビューでは、次の領域を順番に扱います。
-
アーキテクチャとパターン
- 全体的なアーキテクチャスタイル
- アプリケーション構造
- コンポーネント構成
-
技術スタック
- プログラミング言語
- フレームワークとライブラリ
- パッケージ管理
-
データモデルとストレージ
- データ永続化の方針
- データベースの選定
- スキーマ設計のアプローチ
-
API 設計
- API スタイル(REST、GraphQL、RPC)
- API フレームワーク
- バージョン管理の方針
-
セキュリティと認証
- 認証方法
- 認可の方針
- シークレット管理
-
テスト戦略
- テストのアプローチ(TDD、BDD など)
- テストの種類(単体、統合、e2e)
- テストフレームワーク
-
開発とツール
- 開発ワークフロー
- コード品質ツール
- CI/CD の方針
-
デプロイと配布
- デプロイ先
- パッケージング戦略
- リリースプロセス
質問形式
各質問は次の形式に従います。
## [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 answer
JSONL 形式
すべての質問と回答を {base_directory}/artifacts/technical-interview.jsonl に記録します。
フィールドの定義と例を含む JSONL スキーマの全文は、references/interview-jsonl-spec.md を参照してください。
出力形式
インタビューの完了時に、{base_directory}/requirements/technical-requirements.yaml を生成します。
ディレクトリが存在しない場合は作成します。
mkdir -p {base_directory}/requirements
mkdir -p {base_directory}/artifacts
出力ドキュメントには、トップレベルのセクションとして、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、open_questions が含まれます。
すべてのフィールド、型、検証ルールを含むドキュメント仕様の全文は、references/output-spec.md を参照してください。
全体の例は、references/example.yaml を参照してください。
使用方法
新しい技術要件インタビューを開始するには、次のようにします。
/technical-requirements-interview [base-directory]
ディレクトリが指定されていない場合は、現在のディレクトリで requirements/business-requirements.yaml を探して自動検出します。
見つからない場合は、ユーザーに「要件ドキュメントはどこにありますか?」と尋ねます。
続行する前に、ユーザーからパスが提供されるまで待ちます。これを base_directory として保存します。
このスキルでは、次の処理が自動的に行われます。
{base_directory}/requirements/business-requirements.yamlからビジネス要件をコンテキストとして読み込みます- 既存の
{base_directory}/artifacts/technical-interview.jsonlを確認します - 見つかった場合は、最後の質問から再開します
- 技術的な質問を適切に行います
- 完了時に
{base_directory}/requirements/にtechnical-requirements.yamlを生成します - インタビューの記録を
{base_directory}/artifacts/technical-interview.jsonlに保存します
意思決定の記録
各技術的な意思決定には、以下を含めてください。
- 決定事項 - 何を決定したか
- 根拠 - なぜこのアプローチを選んだか
- 検討した代替案 - ほかに何を評価したか
- トレードオフ - 何を得て、何を失ったか
- 変更のしやすさ - 後から変更するのがどれほど難しいか
ベストプラクティス
- ビジネスニーズに合わせる - あらゆる技術的な選択は、ビジネス要件を満たすものである必要があります
- 制約を考慮する - スケジュール、予算、スキルに関する制約を尊重します
- シンプルに始める - 可能であれば、複雑なものよりシンプルなソリューションを選びます
- 変更に備える - 可能な限り、元に戻せる決定をします
- 根拠を記録する - 将来の自分が、今の自分に感謝するでしょう
レビューとギャップ分析
technical-requirements.yaml の生成後、ギャップ分析を自動的に実行します。
整合性の確認
ビジネスとの整合性:
- アーキテクチャがすべての機能要件をサポートしている
- 技術の選択がビジネス上の制約に沿っている
- 技術的なスコープに対してスケジュールが現実的である
- ツール/サービスの選択に予算上の制約が反映されている
完全性の確認:
アーキテクチャ:
- アーキテクチャパターンが明確に定義されている
- コンポーネントと責任が記録されている
- データフローが明確である
- 統合ポイントが特定されている
技術スタック:
- 言語とランタイムが指定されている
- フレームワークとライブラリが列挙されている
- 重要なバージョンが指定されている
- 代替案が検討され、記録されている
データモデル:
- ストレージ戦略が定義されている
- スキーマの方針が記録されている
- データベースを使用する場合、移行戦略が定義されている
- データ検証の方針が指定されている
API:
- API スタイルが選択されている(REST/GraphQL/RPC)
- フレームワークが選択されている
- バージョン管理戦略が定義されている
- ドキュメント作成の方針が指定されている
セキュリティ:
- 認証方式が定義されている
- 認可モデルが指定されている
- シークレット管理の方針が定義されている
- 入出力の検証戦略が定義されている
テスト:
- テスト戦略が定義されている(TDD/BDD など)
- テストの種類が指定されている(単体/統合/E2E)
- フレームワークが選択されている
- カバレッジ目標が設定されている
デプロイ:
- デプロイ先が特定されている
- パッケージ形式が選択されている
- CI/CD の方針が定義されている
- リリースプロセスが記録されている
一貫性の確認
- 技術的な決定間に矛盾がない
- 技術の選択同士に互換性がある
- 選択したスタックでパフォーマンス目標を達成できる
- セキュリティ対策がデータの機密性に適合している
トレードオフ分析
記録されたトレードオフを確認します。
- 各トレードオフに明確な根拠がある
- 代替案が十分に検討されている
- 結果が理解され、許容できる
- 変更のしやすさが評価されている
ギャップの特定
確認すべき一般的なギャップ:
- エラー処理戦略の不足
- エッジケースの未記録
- スケーラビリティに関する懸念への未対応
- モニタリング/オブザーバビリティ計画の不足
- データ移行経路が不明確
- セキュリティ脅威モデルの不足
- パフォーマンス予算の未記録
- 災害復旧計画の不足
- 依存関係のバージョン管理戦略が不明確
- コード品質ツールの不足
未解決の質問の確認
未解決の質問について、以下を確認します。
- 明確に記載されている
- 選択肢が特定されている
- 影響が理解されている
- 決定の期限が定義されている
レビュー結果
以下を含むギャップ分析レポートを生成します。
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]
重大なギャップ(深刻度が「高」または実装を妨げる未解決の質問)が見つかった場合は、次のように尋ねます。
「技術要件に、実装に影響する可能性のあるギャップがいくつか見つかりました。次のどれを選びますか?
- 今すぐ対応する(追加の質問をします)
- 実装計画に進む(開発中に対応します)
- ギャップを確認して決定する」
次のステップ
技術要件に関するヒアリングとギャップ分析を完了した後:
- ギャップ分析レポートを確認する
- 重大なギャップや実装を妨げる質問に対応する
- 技術的な選択が現実的であることを検証する
/implementation-plannerを使用して実装計画を生成する
例
出力全体のサンプルについては、references/example.yaml をご覧ください。