mcpField
I
interactive-requirements-gathering

interactive-requirements-gathering

github.com/oimiragieoエージェントワークフロー44103 回インストール17 週間前に更新
リポジトリ

interactive-requirements-gathering について

interactive-requirements-gatheringは、対話形式の質問票で要件を収集するための構造化スキルです。質問の分類と逐次提示、選択された回答だけを使った内容作成、生成物の確認をエージェントに促します。

主な機能

  1. 01複数選択と単一選択の質問を分類
  2. 02構造化された回答 विकल्पの提示
  3. 03一度に一問ずつ質問
  4. 04選択済み回答のみを根拠に内容を作成
  5. 05レビューと承認の手順
  6. 06複数段階の質問状態を保存

活用シーン

  1. 01製品要件の定義
  2. 02機能仕様の範囲設定
  3. 03プロジェクト設定の希望収集
  4. 04ワークフローの利用開始支援

インストール

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

$npx skills add https://github.com/oimiragieo/agent-studio --skill interactive-requirements-gathering

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands/
interactive-requirements-gathering.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
interactive-requirements-gathering.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

詳細

対話型要件収集

対話型アンケートを通じて要件を収集するための構造化フレームワークです。Conductor の方法論で実証された、Human-in-the-loop のパターンに基づいています。

使用する場面

  • 新規プロジェクトのセットアップ
  • プロダクト要件の定義
  • 機能仕様の収集
  • 新しいワークフローへのユーザーのオンボーディング
  • 構造化されたユーザー入力が必要なあらゆるタスク

基本原則

1. 質問の分類

質問をする前に、必ずその種類を分類します。

種類目的質問の表現例
追加選択アイデア出し、複数回答が有効「該当するものをすべて選択してください」「どの機能が必要ですか?」
単一選択1つだけ選択する必要がある複数選択を示す表現は使わない「どのフレームワークを使うべきですか?」
2. 質問の構成

すべての質問は、必ず次の構成に従ってください。

[Question text]

A) [Option A - often recommended, marked with "(Recommended)"]
B) [Option B]
C) [Option C]
D) Type your own answer
E) Auto-generate and continue
3. 順番に質問する

重要:一度に質問するのは1つだけです。次の質問に進む前に、回答を待ってください。

CORRECT:
1. Ask Question 1
2. Wait for response
3. Confirm understanding
4. Ask Question 2

INCORRECT:
1. Ask Questions 1, 2, and 3 together

アンケートのワークフロー

ステップ 1:導入

取り組むセクションを伝えます。

"I'll now help you define [section name]. I'll ask a few questions to understand your needs."
ステップ 2:順番に質問する

各質問について、次の手順に従います。

  1. 分類:追加選択ですか、それとも単一選択ですか?
  2. 作成:選択肢を含む、明確な質問を作成します
  3. 提示:選択肢を A/B/C/D/E 形式で提示します
  4. 待機:回答があるまで先に進んではいけません
  5. 確認:続行する前に、理解した内容を要約します
ステップ 3:特別な選択肢への対応

選択肢 D(自由入力):

  • ユーザーの入力を受け付けます
  • カスタム回答を確認します
  • 次の質問に進みます

選択肢 E(自動生成):

  • このセクションの質問を終了します
  • これまでの回答に基づいて最善の判断を行います
  • 内容を生成し、確認のために提示します
ステップ 4:内容の生成

重要:信頼できる情報源として使用するのは、ユーザーが選択した回答だけです。

CORRECT:
- User selected "OAuth 2.0" -> Generate OAuth implementation details

INCORRECT:
- Include Option A, B, C text that wasn't selected
- Include question text in generated content
ステップ 5:ユーザー確認ループ

内容を生成した後:

"I've drafted [document name]. Please review:"

[Content preview]

What would you like to do?
A) Approve - proceed to next step
B) Suggest Changes - tell me what to modify

Please respond with A or B.

承認されるか、ユーザーから別の指示があるまで繰り返します。

質問のパターン

プロダクトビジョンに関する質問(追加選択)
What are the primary goals of this product? (Select all that apply)

A) Improve user productivity
B) Reduce operational costs
C) Enhance customer experience
D) Type your own answer
E) Auto-generate and continue
技術選定に関する質問(単一選択)
Which database should we use?

A) PostgreSQL (Recommended) - Best for relational data with complex queries
B) MongoDB - Document store for flexible schemas
C) SQLite - Lightweight for small applications
D) Type your own answer
E) Auto-generate and continue
機能の範囲設定に関する質問(追加選択)
Which authentication methods should be supported? (Select all that apply)

A) Email/Password
B) OAuth (Google, GitHub)
C) Magic Links
D) Type your own answer
E) Auto-generate and continue

AskUserQuestion ツールとの統合

AskUserQuestion ツールを使用する場合は、このフレームワークに対応付けます。

AskUserQuestion({
  questions: [
    {
      header: 'Database',
      question: 'Which database should we use?',
      multiSelect: false, // Exclusive question
      options: [
        { label: 'PostgreSQL (Recommended)', description: 'Best for relational data' },
        { label: 'MongoDB', description: 'Document store for flexible schemas' },
        { label: 'SQLite', description: 'Lightweight for small apps' },
      ],
    },
  ],
});

状態の永続化

複数のステップで構成されるアンケートでは、進行状況を保存します。

{
  "last_successful_step": "2.1_product_guide",
  "answers": {
    "product_type": "SaaS",
    "target_users": ["developers", "teams"]
  }
}

これにより、中断されたワークフローを再開できます。

セッションの例

AGENT: "I'll help you define the product vision. First question:"

"Who are the primary users of this product?"

A) Developers
B) Business users
C) End consumers
D) Type your own answer
E) Auto-generate and continue

USER: A, B

AGENT: "Got it - targeting developers and business users. Next question:"

"What problem does this product solve?"

A) Streamlines workflows
B) Reduces manual work
C) Improves collaboration
D) Type your own answer
E) Auto-generate and continue

USER: D - "Automates code review feedback"

AGENT: "Understood - the product automates code review feedback for developers and business users. Let me generate the product vision..."

避けるべきパターン

してはいけないこと
  • 一度に複数の質問をする
  • 生成する内容に、選択されていない選択肢を含める
  • 確認のステップを省略する
  • 質問せずに回答を決めつける
  • 説明なしに選択肢で専門用語を使う
すること
  • 一度に質問するのは1つだけにする
  • 選択肢の説明を明確かつ簡潔にする
  • 理解した内容をこまめに要約する
  • 回避策となる選択肢(D、E)を用意する
  • ユーザー独自の入力を尊重する

鉄則

  1. 必ず一度に質問するのは1つだけにし、次の質問をする前に回答を待ってください。複数の質問を同時に提示すると、ユーザーを圧倒し、曖昧な回答を生み、逐次的なステートマシンを破綻させます。
  2. 決して選択されていない選択肢のテキストを生成コンテンツに使わないでください。生成される出力には、提示した選択肢の全リストではなく、ユーザーが実際に選んだ回答だけを反映してください。
  3. 必ず質問する前に、その質問を加算型(複数選択)か排他型(単一選択)に分類してください。分類を誤ると、矛盾する回答が生じます(1つしか選べないのに、ユーザーが「BとD」を選ぶなど)。
  4. 決してコンテンツを生成した後の確認手順を省略しないでください。承認を得ずにコンテンツを提示すると、ユーザーが必要としていた修正を無視することになります。ユーザーが明示的に承認するまで、必ず確認を繰り返してください。
  5. 必ずすべての質問に「独自に入力」できる選択肢を用意してください。選択肢が限定されていると、ユーザーの状況に合う選択肢がなく、ワークフローが停止することがあります。自由入力ができれば、ワークフローの停滞を防げます。

反アンチパターン

アンチパターン失敗する理由正しい方法
複数の質問を一度に提示する回答が曖昧になり、逐次状態が破綻し、ユーザーが一部しか回答しないことがある1つ質問し、回答を待ってから次の質問をする
生成するドキュメントで選択肢のテキストをそのまま使うユーザーが選んでいない選択肢がドキュメントに含まれ、要件が不正確になる選択肢の全リストではなく、選択された回答の値だけを使う
質問の分類(加算型か排他型か)を省略する複数選択の質問を単一選択として扱ったり、その逆になったりして、要件が矛盾する先に分類し、加算型の質問には multiSelect: true を使用する
確認せずに先へ進む生成されたコンテンツがユーザーの意図と合わず、やり直しが必要になる必ず出力を確認用に提示し、承認/変更提案の流れを用意する
独自入力の選択肢がないユーザーの状況に合う選択肢がなく、セッションが停止するか、誤った選択を強いられるすべての質問に必ず「D) 独自に入力」を含める

関連スキル

  • project-onboarding - プロジェクトのセットアップ時にこのフレームワークを使用します
  • context-driven-development - 回答からコンテキストアーティファクトを生成します
  • brainstorming - 自由形式の探索に適した代替手段です

メモリプロトコル(必須)

開始前: .claude/context/memory/learnings.md を読みます

完了後:

  • 新しいパターンを発見した場合 -> .claude/context/memory/learnings.md
  • 問題が発生した場合 -> .claude/context/memory/issues.md
  • 決定を行った場合 -> .claude/context/memory/decisions.md

中断が起きることを前提にしてください。メモリに記録されていないことは、起きていないのと同じです。

コメント