mcpField
R
requirements-clarification

requirements-clarification

github.com/doubleslashseテスト・品質552 回インストール19 週間前に更新
リポジトリ

requirements-clarification について

TDDに取り組む開発者向けのスキルです。テスト作成前に振る舞い、受け入れ条件、境界ケースを明確にし、要件の誤解による手戻りを抑えます。

主な機能

  1. 01要件の不足点を特定
  2. 02分類別の確認質問を提示
  3. 03境界条件とエラー処理を確認
  4. 04明確化した要件を文書化

活用シーン

  1. 01短い機能説明や曖昧な要件の確認
  2. 02入力・出力・受け入れ条件の定義
  3. 03テスト前の不正入力時の動作確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/doubleslashse/claude-marketplace --skill requirements-clarification

インストール後、Claude Code で/requirements-clarificationを入力して読み込まれたか確認します。

詳細

TDD の要件確認

目的

テストを作成する前(RED フェーズ)に、以下を行える程度に要件を十分に理解します。

  1. テストする動作を把握する
  2. エッジケースと境界条件を特定する
  3. 受け入れ基準を理解する
  4. 要件の誤解による手戻りを防ぐ

使用するタイミング

次の場合は、要件の確認を開始します。

  • 機能の説明が 2 文未満である
  • 受け入れ基準が提示されていない
  • 「エラーを適切に処理する」などの曖昧な表現がある
  • 具体的なルールが定義されていないビジネスロジックがある
  • 入出力の例が提示されていない

省略するタイミング

次の場合は、要件の確認を省略します。

  • 要件に受け入れ基準が明記されている
  • ユーザーが詳細なテストシナリオを提示している
  • 明確なスキーマを持つ単純な CRUD である
  • 明確な再現手順があるバグ修正である
  • ユーザーが「要件確認を省略」または「すぐに進める」よう求めている

質問のカテゴリ

1. 機能要件
質問目的
主要な正常系の動作は何ですか?主なテストシナリオを確立する
この機能で受け付ける入力は何ですか?パラメーター検証テストを定義する
期待される出力/結果は何ですか?アサーションの期待値を定義する
どのような副作用が発生するべきですか?統合箇所を特定する
ビジネスルールや制約はありますか?検証ロジックを特定する
2. エッジケースと境界条件
質問目的
null/空の入力の場合、どうなりますか?null の処理をテストする
境界値(最小/最大)はいくつですか?境界条件をテストする
必須の依存関係が利用できない場合、どうなりますか?エラー処理をテストする
並行処理やタイミングに関する懸念はありますか?スレッドセーフ性をテストする
3. エラー処理
質問目的
どの例外を、どのタイミングでスローするべきですか?例外をテストする
無効な入力をどのように処理するべきですか?検証をテストする
ユーザーにはどのようなエラーメッセージを表示するべきですか?ユーザーへのフィードバックをテストする
4. 技術面の確認
質問目的
既存のインターフェース/抽象化には何がありますか?依存関係を把握する
既存のパターンのうち、従うべきものはありますか?コードベースとの一貫性を保つ
参考にできる既存のテストはありますか?テストスタイルの一貫性を保つ
対象となるテスト範囲(ユニット/統合)は何ですか?テストを構成する

要件確認のワークフロー

┌─────────────────────────────────────────────────────────────────┐
│                    CLARIFICATION PHASE                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────┐    ┌──────────────┐    ┌──────────────┐      │
│  │   Analyze    │───▶│   Identify   │───▶│   Present    │      │
│  │ Requirements │    │    Gaps      │    │  Questions   │      │
│  └──────────────┘    └──────────────┘    └──────────────┘      │
│                                               │                  │
│                    ┌──────────────┐           │                  │
│                    │   Collect    │◀──────────┘                  │
│                    │   Answers    │                              │
│                    └──────────────┘                              │
│                           │                                      │
│                    ┌──────────────┐                              │
│                    │  Sufficient? │                              │
│                    └──────────────┘                              │
│                      │         │                                 │
│                     YES        NO                                │
│                      │         │                                 │
│                      ▼         └──────▶ Ask Follow-up            │
│               ┌──────────────┐                                   │
│               │ Proceed to   │                                   │
│               │  RED Phase   │                                   │
│               └──────────────┘                                   │
│                                                                 │
│  EXIT: Requirements clear enough to define test scenarios        │
└─────────────────────────────────────────────────────────────────┘

出力テンプレート

要件確認の後、理解した内容を記録します。

## Clarified Requirements for {Feature}

### Understanding Summary
{Brief summary of what the feature should do}

### Inputs and Outputs
- **Inputs**: {List with types}
- **Outputs**: {Expected results}
- **Validation Rules**: {Business rules}

### Identified Test Scenarios
| Scenario Type | Description | Priority |
|---------------|-------------|----------|
| Happy Path | {description} | High |
| Edge Case | {description} | Medium |
| Error Case | {description} | Medium |
| Boundary | {description} | Medium |

### Ready for RED Phase

最低限の質問(常に検討すること)

  1. 正常系で期待される動作は何ですか?
  2. どのような入力を受け付け、どのような出力を生成しますか?
  3. エラー/無効な入力をどのように処理するべきですか?

コメント