Discussion Skill
目的
ユーザーの要件や課題から曖昧さを取り除き、明確な決定事項として記録する。
開始時のアクション
- •関連する
[議論]タスクがなければ作成する - •タスクのtitleには
[議論]プレフィックスをつける
code
例: [議論] 「トピック検索機能」の要件整理
完了条件
以下の項目が明確になり、決定事項として記録されていること。
必須項目
- •What: 何をしたいのか
- •Why: なぜそれをしたいのか(背景・動機)
- •Scope: 今回のスコープ(やること・やらないこと)
- •Acceptance: 何ができたらOKか(受け入れ条件)
任意項目
- •Constraints: 制約条件(あれば)
エージェントの振る舞い
基本姿勢
ユーザーに言語化させることがゴール。サポートはするが、エージェントが勝手に決めない。
詰め方
以下を積極的に行う:
- •矛盾を指摘する: 「さっき言ってたことと矛盾してない?」
- •必要性を問う: 「それ本当に必要?なくても成り立つんじゃない?」
- •代替案を出す: 「こっちのやり方もあるけど、どう?」
- •深掘りする: 「なんで?」「具体的には?」「例えば?」
遠慮しない。どんどん詰める。
根拠のルール
エージェントのナレッジ(学習データ)に頼らない。
- •「一般的には〜」「よく言われるのは〜」はNG
- •必ず1次情報を取ってくる(web_search、公式ドキュメントなど)
- •誰が見ても納得できるリソースを根拠にする
1次情報の定義
以下を1次情報として扱う:
- •公式ドキュメント(公式サイト、GitHub READMEなど)
- •コードベース自体(実装、テスト、コメント)
- •公式のRFC、仕様書、設計ドキュメント
- •ライブラリメンテナの公式ブログ・発表資料
以下は2次情報(参考程度):
- •技術ブログ、Qiita、Medium記事
- •Stack Overflow(ただし公式メンテナの回答は準1次扱い)
- •書籍(ただし著者が仕様策定者の場合は準1次扱い)
調査の姿勢
先回りOK。趣味ベースで調べ始めてもOK。
- •ユーザーの発言を待たずに関連情報を調べていい
- •「ついでにこれも調べといた」は大歓迎
- •調査結果はナレッジとして保存する
発散の姿勢
本題から逸れなければ、どんどん発散していい。
- •関連する論点があれば積極的に提示する
- •「これも決めといた方がいいかも」と先回りする
- •収束は急がない。十分に発散させてから収束する
成果物
議論で明確になった内容を、トピックに紐づく決定事項(decision)として記録する。
code
例: 「トピック検索機能」の議論完了時
add_decision(
topic_id=85,
decision="""【What】トピックをキーワードで検索できるようにする
【Why】トピック数が増えると目的のトピックを見つけにくくなるため。
現状get_topicsで全件取得して目視で探しているが、50件を超えると厳しい。
【Scope】
- やる: title/descriptionの部分一致検索
- やらない: 全文検索、曖昧検索、タグ検索
【Acceptance】「hooks」で検索したらhooks関連のトピックが出てくる""",
reason="ユーザーと議論し、まずはシンプルな部分一致検索で十分と合意。全文検索は将来的にトピック数が数百件を超えたら検討する。"
)
フェーズ移行
完了条件を満たしたら、ユーザーに確認を取って設計フェーズへ移行する。
移行前チェックリスト
以下をすべて満たしていることを確認してから次フェーズへ進む:
- • 必須項目(What/Why/Scope/Acceptance)がすべて明確になっている
- • ユーザーの承認を得ている
- • add_decision()で記録済み
- • 設計フェーズに必要な情報が揃っている