Files
gh-classmethod-tsumiki/commands/tdd-requirements.md
2025-11-29 18:09:29 +08:00

7.1 KiB
Raw Blame History

description
description
TDD開発の要件整理を行います。機能要件を明確化し、テスト駆動開発のための準備を行います。

あなたは開発の要件整理担当者です。TASKから必要な情報を集めて必要な機能を網羅的に整理してください。

TDD要件定義・機能仕様の整理

TDD開発を始めます。以下の機能について要件を整理してください

【機能名】: {{feature_name}}

事前準備

開発コンテキストの準備を行います:

  1. 追加ルールの読み込み

    • docs/rule ディレクトリが存在する場合は読み込み
    • docs/rule/tdd ディレクトリが存在する場合は読み込み
    • docs/rule/tdd/requirements ディレクトリが存在する場合は読み込み
    • 各ディレクトリ内のすべてのファイルを読み込み、追加ルールとして適用
  2. 技術スタック定義の読み込み

    • docs/tech-stack.md が存在する場合は読み込み
    • 存在しない場合は CLAUDE.md から技術スタックセクションを読み込み
    • どちらも存在しない場合は .claude/commands/tech-stack.md のデフォルト定義を使用
  3. @agent-symbol-searcher で機能関連情報を検索し、見つかったファイルを読み込み

    • 読み込んだ技術スタック定義に基づいて関連ファイルを検索
    • 関連する既存機能・コンポーネントを検索し、該当ファイルをReadツールで読み込み
    • 類似した実装パターンやアーキテクチャを特定し、設計文書をReadツールで読み込み
    • 既存のインターフェースやAPI仕様を確認し、関連ファイルをReadツールで読み込み
  4. 関連ファイルを直接読み込み

    • docs/implements/{要件名}/{{task_id}}/{feature_name}-memo.md - 既存の開発履歴を確認
    • docs/implements/{要件名}/{{task_id}}/{feature_name}-requirements.md - 既存の要件定義を確認
    • docs/implements/{要件名}/{{task_id}}/{feature_name}-testcases.md - 既存のテストケースを確認
    • 関連する設計文書やタスクファイルも必要に応じて読み込み

読み込み完了後、準備されたコンテキスト情報を基にTDD要件定義の作業を開始します。

TDD用要件整理フォーマット

【信頼性レベル指示】: 各項目について、元の資料EARS要件定義書・設計文書含むとの照合状況を以下の信号でコメントしてください

  • 🔵 青信号: EARS要件定義書・設計文書を参考にしてほぼ推測していない場合
  • 🟡 黄信号: EARS要件定義書・設計文書から妥当な推測の場合
  • 🔴 赤信号: EARS要件定義書・設計文書にない推測の場合

1. 機能の概要EARS要件定義書・設計文書ベース

  • 🔵🟡🔴 各項目の信頼性レベルを記載
  • 何をする機能か(ユーザストーリーから抽出)
  • どのような問題を解決するかAs a / So that から抽出)
  • 想定されるユーザーAs a から抽出)
  • システム内での位置づけ(アーキテクチャ設計から抽出)
  • 参照したEARS要件: [具体的な要件ID]
  • 参照した設計文書: [architecture.md の該当セクション]

2. 入力・出力の仕様EARS機能要件・TypeScript型定義ベース

  • 🔵🟡🔴 各項目の信頼性レベルを記載
  • 入力パラメータ(型、範囲、制約)- interfaces.tsから抽出
  • 出力値(型、形式、例)- interfaces.tsから抽出
  • 入出力の関係性
  • データフローdataflow.mdから抽出
  • 参照したEARS要件: [具体的なREQ-XXX]
  • 参照した設計文書: [interfaces.ts の該当インターフェース]

3. 制約条件EARS非機能要件・アーキテクチャ設計ベース

  • 🔵🟡🔴 各項目の信頼性レベルを記載
  • パフォーマンス要件NFR-XXXから抽出
  • セキュリティ要件NFR-XXXから抽出
  • 互換性要件REQ-XXX MUSTから抽出
  • アーキテクチャ制約architecture.mdから抽出
  • データベース制約database-schema.sqlから抽出
  • API制約api-endpoints.mdから抽出
  • 参照したEARS要件: [具体的なNFR-XXX, REQ-XXX]
  • 参照した設計文書: [architecture.md, database-schema.sql等の該当セクション]

4. 想定される使用例EARSEdgeケース・データフローベース

  • 🔵🟡🔴 各項目の信頼性レベルを記載
  • 基本的な使用パターン通常要件REQ-XXXから抽出
  • データフローdataflow.mdから抽出
  • エッジケースEDGE-XXXから抽出
  • エラーケースEDGE-XXXエラー処理から抽出
  • 参照したEARS要件: [具体的なEDGE-XXX]
  • 参照した設計文書: [dataflow.md の該当フロー図]

5. EARS要件・設計文書との対応関係

既存のEARS要件定義書・設計文書を参照した場合、以下の対応関係を明記してください

  • 参照したユーザストーリー: [ストーリー名]
  • 参照した機能要件: [REQ-001, REQ-002, ...]
  • 参照した非機能要件: [NFR-001, NFR-101, ...]
  • 参照したEdgeケース: [EDGE-001, EDGE-101, ...]
  • 参照した受け入れ基準: [具体的なテスト項目]
  • 参照した設計文書:
    • アーキテクチャ: [architecture.md の該当セクション]
    • データフロー: [dataflow.md の該当フロー図]
    • 型定義: [interfaces.ts の該当インターフェース]
    • データベース: [database-schema.sql の該当テーブル]
    • API仕様: [api-endpoints.md の該当エンドポイント]

整理後、以下を実行してください:

  1. 要件定義書を docs/implements/{要件名}/{{task_id}}/{feature_name}-requirements.md に保存(既存ファイルがある場合は追記)
  2. TODOステータスを更新要件定義完了をマーク
  3. 品質判定: 要件の品質を以下の基準で判定
    • 要件が明確で曖昧さがない
    • 入出力仕様が具体的に定義されている
    • 制約条件が明確
    • 実装可能性が確実
  4. 次のステップ表示: 判定結果に関わらず、次のお勧めコマンドを表示
    • 「次のお勧めステップ: /tdd-testcases でテストケースの洗い出しを行います。」

品質判定基準

✅ 高品質:
- 要件の曖昧さ: なし
- 入出力定義: 完全
- 制約条件: 明確
- 実装可能性: 確実

⚠️ 要改善:
- 要件に曖昧な部分がある
- 入出力の詳細が不明確
- 技術的制約が不明
- ユーザー意図の確認が必要

TODO更新パターン

- 現在のTODOを「completed」にマーク
- 要件定義フェーズの完了をTODO内容に反映
- 次のフェーズ「テストケース洗い出し」をTODOに追加
- 品質判定結果をTODO内容に記録

次のステップ: /tdd-testcases でテストケースの洗い出しを行います。