Duo Agent を使った GitLab Issue のリファインメント

Duo Agent を使って Refinement Thread での非同期リファインメント会話を強化するための的を絞ったディスカッションポイントを生成するプロセス。

概要

このドキュメントでは、Duo Agent を使って Refinement Thread での非同期リファインメント会話を強化するための焦点を絞ったディスカッションポイントを生成するプロセスについて説明します。エンジニアに見積もりと技術的な検討のための明確な焦点領域を提供することを目的としています。

問題

~workflow::refinement ステータスの Issue には、焦点の定まったディスカッションポイントが欠如している Refinement Thread があることが多く、以下のような状況につながります:

  • 正確な見積もりのためにどの具体的な側面を検討すべきかが不明なエンジニア
  • 重要な技術的要因を見落とす非同期リファインメント会話
  • 異なる Refinement Thread 間でのディスカッション品質の不一致
  • 絵文字投票中に見落とされる重要な依存関係や制約
  • 見積もりの判断を効果的に導かない焦点のない非同期ディスカッション

これにより、リファインメントの成果が低下し、絵文字ベースの見積もりが不正確になる可能性があります。

解決策

標準化されたプロンプトを使って Duo Agent を活用し、以下を提供する構造化されたディスカッションポイントで Refinement Thread を強化します:

  • 非同期リファインメントディスカッションのための明確な焦点領域をエンジニアに提供する
  • 見積もりに影響を与える技術的制約と依存関係を表面化する
  • 絵文字投票の判断のための重要な考慮事項を強調する
  • すべての Refinement Thread 全体で一貫した構造化されたインプットを提供する
  • より情報に基づいた焦点を絞った非同期リファインメント会話を可能にする

プロセス

ステップ 1: リファインメントワークフローの Issue を特定する

以下の Issue を探します:

  • ボットによって割り当てられた ~workflow::refinement ステータス
  • @gitlab-bot によって作成されたアクティブな Refinement Thread
  • ディスカッションインプットが必要な :construction: Refinement コメント

ステップ 2: Refinement Thread のディスカッションポイントを生成する

以下の Duo Agent プロンプトを使って非同期リファインメントディスカッションのための焦点を絞ったインプットを作成します:

Issue リファインメントプロンプト(クリックして展開)
あなたはこの Issue のリファインメントディスカッションポイントの準備を支援する GitLab フルスタックエンジニアです

目標:
リファインメントチームを支援するディスカッションポイント・質問を生成してください:

- チームのディスカッションが必要な、不足または曖昧な要件を特定する
- チームの評価のための潜在的なブロッカー、依存関係、またはリスクを表面化する
- 工数見積もりや実現可能性に大きく影響する場合にのみ技術的制約を強調する

分析するコンテキスト:

1. 関連する Issue、エピック、MR(この Issue で直接参照されているものに焦点を当てる)
2. 影響を受ける領域の既存のコードベースパターン
3. コメント内のディスカッション、特に未解決の懸念点や決定事項

出力要件:

- リファインメントチームが対処すべき重要なディスカッションポイントのみを提供する(通常 3〜5 個)
- 各質問はチームのディスカッションを促す明確な 1 文であること
- Issue の範囲内でチームのインプットが必要な具体的な技術的またはプロダクト上の決定に焦点を当てる

出力例:

- **UX** エラーメッセージはモーダルとフラッシュのどちらで表示すべきか?
- **技術** 移行中に既存のユーザーセッションをどのように処理すべきか?
- **スコープ** これにはモバイルレスポンシブデザインを含めるべきか、デスクトップのみか?

アクション:
この Issue で `@gitlab-bot` が投稿した「:construction: Refinement」で始まるコメントを見つけ、出力をそのコメントに返信してください

ステップ 3: エンジニアが非同期ディスカッションにインプットを活用する

生成されたディスカッションポイントは以下のためのインプットとなります:

  • Refinement Thread 内での焦点を絞った非同期ディスカッション
  • 見積もりのための絵文字投票時の十分な情報に基づいた検討
  • 重要な技術的・プロダクト要因の一貫したカバレッジ
  • リファインメント会話の品質向上

改善前後の例

ディスカッションポイントインプット前

典型的な特徴:

  • 構造化されたディスカッションが最小限の Refinement Thread
  • 見積もりのためにどの要因を考慮すべきか不確かなエンジニア
  • 重要な技術的な考慮事項を見落とす非同期会話
  • Issue 間でリファインメントの深さが不一致
  • 複雑さの要因に関する明確なコンテキストのない絵文字投票

ディスカッションポイントインプット後

改善された特徴:

  • Refinement Thread の会話を導く構造化されたディスカッションポイント
  • 見積もりの決定のための明確な技術的・プロダクト上の考慮事項
  • すべてのリファインメントスレッド全体で重要な要因の一貫したカバレッジ
  • 十分な情報に基づいた絵文字投票をサポートする強化されたコンテキスト
  • より生産的な非同期リファインメントディスカッション

チームへのメリット

強化された Refinement Thread インプットは大きな改善をもたらします:

  • 焦点を絞った非同期ディスカッション: 明確なディスカッションポイントが Refinement Thread の会話を生産的かつ的を絞ったものに保つ
  • より良い見積もりコンテキスト: 絵文字投票時にエンジニアが考慮すべき具体的な要因を持てる
  • 一貫した品質: 構造化されたインプットがすべての Issue 全体で包括的なリファインメントを確保する
  • 効率的なプロセス: 非同期スレッドで何をディスカッションすべきか決定する時間を削減する
  • 十分な情報に基づいた決定: 明確に構造化されたインプットがより正確な見積もりと技術的な選択につながる

使用ガイドライン

使用する場合

  • ボットによって ~workflow::refinement ステータスに移動されたすべての Issue
  • 構造化されたディスカッションインプットが必要な Refinement Thread
  • 複数の見積もり要因の検討が必要な複雑な Issue
  • 焦点を絞ったガイダンスから非同期ディスカッションが恩恵を受ける Issue

使用しない場合

  • すでに包括的なディスカッションポイントを持つ Refinement Thread がある Issue
  • 明らかな見積もり要因を持つシンプルで明確に定義された変更
  • スコープと技術的アプローチが完全に明確な Issue

ガイドライン

  • 見積もりの決定を直接サポートするディスカッションポイントに焦点を当てる
  • 非同期 Refinement Thread の品質を高めるインプットを提供する
  • ディスカッションポイントを現在の Issue の範囲に限定する
  • 工数見積もりに大きく影響する要因を優先する
  • ポイントが生産的な非同期会話と絵文字投票を促進するようにする

成功基準

Refinement Thread ディスカッションの品質向上、より十分な情報に基づいた絵文字投票の決定、一貫したリファインメント成果を通じて成功を測定します。生成されたディスカッションポイントは、エンジニアが非同期リファインメント会話に効果的に参加できる能力を高める価値あるインプットを提供すべきです。

フィードバックとイテレーション

このプロセスはチームのフィードバックと結果に基づいて進化させるべきです。定期的なレビューセッションでは以下を取り上げます:

  • 見積もりのためのディスカッションポイントの関連性と品質
  • Refinement Thread 会話の有効性
  • 絵文字投票の決定の一貫性と精度
  • プロセスの採用と非同期リファインメントの改善

最終更新: 2025-09-12 プロセスオーナー: [Roy Liu]