Prompt file imported from NoaOkuhira/PokerGame (
.github/prompts/code-question.prompt.md). Fill in{{arg1}},{{timestamp}}before use. Copyright stays with the author.
ユーザーからの質問内容をもとにソースコードを調査し、分かりやすく回答します。必要に応じて追加質問も受け付けます。
context
出力ディレクトリ=".dcs" カレントディレクトリ={{プロジェクトルート}} 質問内容="" 質問の種類="" 調査スコープ="" 回答ファイル="" 追加質問回数=0 最大追加質問回数=3
step
- {{arg1}} がある場合、質問内容として記録する
- {{arg1}} がない場合、ユーザーに「どのようなことを知りたいですか?」と尋ねる
- 質問内容を簡潔に確認し、ユーザーに表示する
- AskUserQuestion ツールを使って質問の分類を実施し、context を更新する
- 収集した context の内容をユーザーに宣言する
- step2 を実行する
step2: 調査実行
- 既存の出力ファイルを確認して、重複しないナンバリングを決定する
- {{出力ディレクトリ}}/{{timestamp}}_* を検索
- 質問内容を簡単に英語化したもの(例: "auth_flow", "data_model")を作成
- 同じ timestamp と内容で既存ディレクトリがある場合、末尾の連番を +1 する
- ベースディレクトリを "{{出力ディレクトリ}}/{{timestamp}}_{{内容の英語化}}" とする
- 例: ".dcs/20260203123456_auth_flow"
- 回答ファイルパスを決定する
- 回答ファイル: "{{ベースディレクトリ}}/answer.md"
- <code_question_template> の内容を context の情報で埋めて、Task ツールで直接実行する
- subagent_type: "general-purpose"
- description: "コード質問への回答生成"
- prompt: テンプレートの内容を context で埋めた完全なプロンプト
- Task の実行結果を受け取る
- step3 を実行する
step3: 回答提示と追加質問
- 出力された回答ファイルを Read で確認する
- 回答内容の要点をユーザーに提示する
- 質問に対する直接的な回答
- 重要なファイルパス(相対パス)
- 関連する情報
- ユーザーに追加の質問があるか確認する
- 「この回答について、さらに詳しく知りたいことはありますか?」
- 追加質問がある場合:
- 追加質問回数を +1 する
- 追加質問回数が最大追加質問回数を超えていない場合:
- 新しい質問内容を記録する
- 追加回答ファイルを作成(例: "{{ベースディレクトリ}}/answer_2.md")
- <followup_question_template> を使って Task で追加調査を実行する
- 再度 step3 を実行する
- 追加質問回数が最大に達した場合:
- 「追加質問の上限に達しました。新しい質問がある場合は、改めてコマンドを実行してください。」と伝える
- step4 を実行する
- 追加質問がない場合:
- step4 を実行する
step4: 完了
- 全ての回答ファイルのパスを整理して表示する
- 初回回答: "{{ベースディレクトリ}}/answer.md"
- 追加回答(該当する場合): "{{ベースディレクトリ}}/answer_2.md", "{{ベースディレクトリ}}/answer_3.md", ...
- 調査完了をユーザーに報告する
rules
質問の分類
AskUserQuestion ツールを使って、以下の質問を実施する:
質問: 質問の種類
- 質問: どのような観点で知りたいですか?
- header: "質問の種類"
- multiSelect: false
- options:
- "コードの場所" - 特定の機能やクラス、関数がどこにあるか知りたい
- "動作の仕方" - コードがどのように動作するか、フローを知りたい
- "設計の理由" - なぜこのような実装になっているか、設計意図を知りたい
- "使い方" - 特定の機能やAPIの使い方を知りたい
contextとして以下を保持する:
- 質問内容(具体的なテキスト)
- 質問の種類
- 調査スコープ(必要に応じて質問内容から推測)
ファイル名のルール
timestamp の形式
- yyyyMMddHHmmss 形式(例: 20260203123456)
内容の英語化のルール
- 質問内容を簡潔な英語に変換する
- スネークケース(snake_case)を使用
- 最大30文字程度に収める
- 例:
- "認証フローについて" → "auth_flow"
- "ユーザーデータモデルの構造" → "user_data_model"
- "APIエンドポイントの一覧" → "api_endpoints"
- "エラーハンドリングの実装" → "error_handling"
回答ファイル名のルール
- 初回回答:
answer.md - 追加回答:
answer_2.md,answer_3.md,answer_4.md, ...
完全なファイル名の例
初回回答:
.dcs/20260203123456_auth_flow/answer.md(初回回答)
追加回答:
.dcs/20260203123456_auth_flow/answer_2.md(追加質問への回答1).dcs/20260203123456_auth_flow/answer_3.md(追加質問への回答2)
ファイルパスの記載ルール
- カレントディレクトリを基準とした相対パスを使用する
- フルパス(絶対パス)は記載しない
- 例:
- ❌
/Users/kuroeda/projects/tsumiki-local/src/main.ts - ✅
src/main.ts
- ❌
- カレントディレクトリは調査開始時の作業ディレクトリ
- すべてのファイルパスは相対パスで統一する
調査の指針
質問の種類に応じて、以下のアプローチで調査する:
"コードの場所" の場合
- Grep/Glob を使って該当するファイル、クラス、関数を検索する
- ファイルパスと行番号を明記する
- 複数の候補がある場合はすべて列挙する
"動作の仕方" の場合
- 該当するコードを Read で確認する
- 処理フローを順を追って説明する
- 関連する他のファイルや関数も調査する
- 必要に応じてシーケンス図や呼び出し関係を説明する
"設計の理由" の場合
- コードのコメント、コミット履歴(可能であれば)を確認する
- 類似の実装パターンを探す
- アーキテクチャ上の考慮事項を推測して説明する
"使い方" の場合
- 該当する機能やAPIの定義を確認する
- 実際の使用例をコードベースから探す
- パラメータ、戻り値、例外などを明確に説明する
追加質問の扱い
- 追加質問は初回回答に関連する内容に限定する
- 全く新しい質問の場合は、新しいコマンド実行を推奨する
- 追加質問は最大3回まで受け付ける
- 各追加回答は個別のファイルに保存する
info
<code_question_template> あなたはソースコード分析のエキスパートです。以下の質問に対して、コードベースを調査し、分かりやすく回答してください。
質問情報
質問内容: {{質問内容}} 質問の種類: {{質問の種類}} ベースディレクトリ: {{ベースディレクトリ}}(例: ".dcs/20260203123456_auth_flow") カレントディレクトリ: {{カレントディレクトリ}} 回答ファイル: {{回答ファイル}}(例: ".dcs/20260203123456_auth_flow/answer.md")
重要な注意事項
すべてのファイルパスは、カレントディレクトリを基準とした相対パスで記載してください。 絶対パス(/Users/... や C:... など)は使用しないでください。 回答は読みやすく、理解しやすい形式で記述してください。 コード例を示す場合は、シンタックスハイライト付きのコードブロックを使用してください。
例:
- ❌
/Users/kuroeda/projects/tsumiki-local/src/main.ts - ✅
src/main.ts
調査手順
1. 質問の理解
- 質問内容を分析し、何を調べるべきか明確にする
- 質問の種類({{質問の種類}})に基づいて適切な調査アプローチを選択する
2. コードベースの調査
質問の種類に応じて以下を実施する:
"コードの場所" の場合
- Grep/Glob を使って関連するファイル、クラス、関数を検索する
- 検索結果から最も関連性の高いものをリストアップする
- 各ファイルの役割を簡潔に説明する
"動作の仕方" の場合
- 該当するコードを Read で確認する
- コードの処理フローを分析する
- 関連する他のファイルや関数を追跡する
- 処理の流れを順を追って説明する
"設計の理由" の場合
- コード内のコメントやドキュメントを確認する
- 類似の実装パターンを探す
- アーキテクチャ上の考慮事項を分析する
- 推測される設計意図を説明する
"使い方" の場合
- 該当する機能やAPIの定義を確認する
- 使用例をコードベースから探す
- パラメータ、戻り値、例外などを確認する
- 実際の使い方を具体例とともに説明する
3. 回答の構造化
以下の出力形式で {{回答ファイル}} に結果を保存してください。
回答出力形式
# コード質問への回答
**質問**: {{質問内容}}
**調査日時**: {{調査日時}}
**調査者**: Claude Code
---
## 概要
{{質問に対する簡潔な回答(2-3文)}}
---
## 詳細な回答
### {{セクション1のタイトル}}
{{詳細な説明}}
#### 関連ファイル
- [相対パス:行番号](相対パス#L行番号) - {{ファイルの役割}}
- [相対パス:行番号](相対パス#L行番号) - {{ファイルの役割}}
#### コード例
```言語
{{関連するコード例}}
{{セクション2のタイトル}}
{{詳細な説明}}
(必要に応じてセクションを追加)
補足情報
関連する情報
- {{補足情報1}}
- {{補足情報2}}
参考リンク
- {{内部ドキュメントや関連ファイルへのリンク}}
まとめ
{{回答の要点を簡潔にまとめる(箇条書きで3-5項目)}}
- {{要点1}}
- {{要点2}}
- {{要点3}}
この回答は自動調査により生成されました。さらに詳しい情報が必要な場合は、追加の質問を投げかけてください。
# 調査の注意点
- 質問に直接関連する情報を優先的に収集する
- コード例を示す場合は、必要最小限の部分を抽出する
- 複雑な処理の場合は、図やフロー説明を含める
- 不明な点や推測の範囲は明確に示す
- **すべてのファイルパスは相対パスで記載する(絶対パスは使用しない)**
- 回答は初心者にも理解できるように平易な言葉で説明する
- 技術用語を使う場合は、必要に応じて説明を加える
必ず Write ツールを使用して、{{回答ファイル}} に結果を保存してください。
</code_question_template>
<followup_question_template>
あなたはソースコード分析のエキスパートです。以下の追加質問に対して、前回の回答を踏まえて追加調査を行い、回答してください。
# 追加質問情報
初回質問: {{初回質問内容}}
初回回答ファイル: {{初回回答ファイル}}
追加質問: {{追加質問内容}}
追加回答ファイル: {{追加回答ファイル}}(例: ".dcs/20260203123456_auth_flow/answer_2.md")
カレントディレクトリ: {{カレントディレクトリ}}
# 重要な注意事項
**すべてのファイルパスは、カレントディレクトリを基準とした相対パスで記載してください。**
**初回回答の内容を踏まえて、追加質問に焦点を絞った回答を作成してください。**
**前回の調査結果を参照する場合は、初回回答ファイルを Read で確認してください。**
# 追加調査手順
## 1. 前回の回答を確認
- {{初回回答ファイル}} を Read で読み込む
- 前回の調査結果を把握する
- 追加質問が前回の回答のどの部分に関連するか分析する
## 2. 追加調査の実施
- 追加質問に必要な新しい情報を調査する
- 前回の調査で見つからなかった詳細を深掘りする
- 必要に応じて新しいファイルやコードを調査する
## 3. 追加回答の構造化
以下の出力形式で {{追加回答ファイル}} に結果を保存してください。
# 追加回答出力形式
```markdown
# コード質問への追加回答
**初回質問**: {{初回質問内容}}
**追加質問**: {{追加質問内容}}
**調査日時**: {{調査日時}}
**調査者**: Claude Code
[← 初回回答を見る](./answer.md)
---
## 概要
{{追加質問に対する簡潔な回答(2-3文)}}
---
## 詳細な回答
### {{セクション1のタイトル}}
{{詳細な説明}}
#### 関連ファイル
- [相対パス:行番号](相対パス#L行番号) - {{ファイルの役割}}
#### コード例
```言語
{{関連するコード例}}
(必要に応じてセクションを追加)
前回の回答との関連
{{前回の回答とこの追加回答がどのように関連するか説明}}
まとめ
{{追加回答の要点を簡潔にまとめる}}
- {{要点1}}
- {{要点2}}
この回答は追加調査により生成されました。さらに質問がある場合は、引き続き追加質問してください。
必ず Write ツールを使用して、{{追加回答ファイル}} に結果を保存してください。
</followup_question_template>
# 注意事項
- 質問内容を正確に理解し、的確に回答する
- コードベースの調査は必要十分な範囲にとどめる
- 回答は簡潔かつ分かりやすく構造化する
- ファイルパスは必ず相対パスで記載する
- 追加質問は初回回答に関連する内容に限定する
- 追加質問の上限(3回)を超えた場合は適切に案内する
