Sunwood-ai-labs/SourceSage

GitHub CLIとLLMを使用したIssueの要件要約機能の実装

Closed this issue · 0 comments

要件定義書: GitHub CLI & LLMを用いたIssue詳細化機能

1. 概要

本要件定義書は、GitHub CLIと大規模言語モデル(LLM)を用いて、Issueの概要から詳細な要件を自動生成する機能の定義を記述します。この機能により、開発チームはIssueの詳細なレビュー、計画、管理を効率化することが可能となります。

2. スコープ

本機能は、以下の処理を行います。

  1. Issue取得: GitHub CLIを用いて、指定されたリポジトリのオープンIssueを取得します。
  2. 要件生成: LLMにIssueの概要テキストを入力し、詳細な要件を自然言語で生成します。
  3. 要件投稿: 生成された要件をマークダウン形式でIssueに投稿します。

3. 要件

3.1 機能的要件

FR-1: Issueからの要件生成

  • FR-1.1: Issueの概要テキストから、機能要件、非機能要件、ユースケース、制約などの詳細な要件を生成する。
  • FR-1.2: 要件を、人間が理解しやすい自然言語で表現する。
  • FR-1.3: 生成された要件を、構造化されたマークダウン形式で出力する。

FR-2: 要件のIssueへの投稿

  • FR-2.1: 生成された要件を、元のIssueにコメントとして投稿する。
  • FR-2.2: 投稿するコメントに、要件生成に使用したLLMの名前とバージョンを明記する。

3.2 非機能的要件

NFR-1: 処理速度

  • NFR-1.1: 200文字のIssue概要テキストに対して、要件生成と投稿を1秒以内で完了する。

NFR-2: 正確率

  • NFR-2.2: 生成された要件の正しさを、人間によるレビューで検証する。
  • NFR-2.3: 人間によるレビューとの比較で、80%以上の正答率を達成する。

NFR-3: セキュリティ

  • NFR-3.1: Issueから取得した情報は、適切なセキュリティ対策のもとで管理する。
  • NFR-3.2: LLMとの通信は、安全なプロトコルを用いる。

NFR-4: 可用性

  • NFR-4.1: 本機能は、GitHub CLIが動作する環境であれば、いつでも利用可能とする。

4. ペルソナ

本機能を利用する主なペルソナは以下の通りです。

4.1 製品マネージャー:

  • 目標: Issueの詳細な要件を明確化し、開発チームとのコミュニケーションを円滑化すること。
  • ニーズ: Issueの概要から、機能要件、非機能要件、ユースケース、制約などの詳細な要件を自動生成することで、開発チームとの意思疎通を効率化したい。
  • 利点: より明確な要件定義により、開発チームとの誤解を防ぎ、開発期間の短縮、開発品質の向上に貢献する。

4.2 ソフトウェア開発者:

  • 目標: Issueから必要な情報を正確に理解し、効率的に開発を進めること。
  • ニーズ: Issueの概要から詳細な要件を自動生成することで、開発タスクの理解を深め、実装の効率化を図りたい。
  • 利点: 詳細な要件の理解により、開発の誤りを減らし、開発期間の短縮、開発品質の向上に貢献する。

4.3 テスト担当者:

  • 目標: Issueに基づいて、適切なテスト計画を作成し、品質の高いソフトウェアをリリースすること。
  • ニーズ: Issueの概要から詳細な要件を自動生成することで、テストケースの設計を効率化し、テスト漏れを防ぎたい。
  • 利点: 詳細な要件に基づいたテストにより、ソフトウェアの品質向上、バグ発生率の低減に貢献する。

5. 開発計画

  • フェーズ1: 要件定義、設計
  • フェーズ2: 開発、テスト
  • フェーズ3: リリース、運用

6. 参考文献

7. 付録

  • 技術仕様書
  • テスト計画書
  • ユーザーマニュアル

本要件定義書は、あくまでも概要を記述したものであり、詳細な仕様は今後の開発段階で決定されます。