/ask - 対話型タスク実行コマンド
ちょっとした作業を依頼する際に使用する。 作業開始前にインタビューを行い、認識齟齬を防いでから作業を実行する。
処理フロー
code
[1/3] インタビュー(質問生成→回答収集)
↓
[2/3] 確認(要約提示→ユーザー承認)
↓
[3/3] 実行
[1/3] インタビュー
タスク説明の取得
- •
$ARGUMENTSが存在する場合: そのまま使用 - •
$ARGUMENTSが空の場合: AskUserQuestionで取得
$ARGUMENTSが空の場合:
javascript
AskUserQuestion({
questions: [
{
question: "どのようなタスクを実行しますか?",
header: "タスク",
options: [
{ label: "入力", description: "タスク内容を入力してください" }
],
multiSelect: false
}
]
})
質問の生成
タスク内容を分析し、認識齟齬を防ぐための質問を生成する。
質問の観点:
- •スコープ: 何を対象にするか(ファイル、機能、範囲)
- •期待結果: 完了時の状態、成功の定義
- •制約事項: 避けるべきこと、守るべきルール
- •優先度: 複数の選択肢がある場合の判断基準
重要なルール:
- •質問は1〜3個に絞る - 多すぎると煩雑
- •自明なことは聞かない - コンテキストから推測可能なこと、答えが明らかなことは聞かない
- •具体的に聞く - 「何かありますか?」ではなく「Xについてどうしますか?」
質問が不要な場合: タスクが十分に明確で、追加質問が不要と判断した場合はインタビューをスキップして[2/3]へ進む。
質問例
タスク: 「このバグを修正して」
javascript
AskUserQuestion({
questions: [
{
question: "バグの再現手順や期待される動作を教えてください",
header: "バグ詳細",
options: [
{ label: "入力", description: "詳細を入力" }
],
multiSelect: false
}
]
})
タスク: 「この関数にバリデーションを追加して」
javascript
AskUserQuestion({
questions: [
{
question: "バリデーションで検証すべき項目は何ですか?",
header: "検証項目",
options: [
{ label: "必須チェック", description: "空でないことを確認" },
{ label: "型チェック", description: "正しい型であることを確認" },
{ label: "範囲チェック", description: "値が有効範囲内であることを確認" },
{ label: "フォーマットチェック", description: "正しい形式であることを確認" }
],
multiSelect: true
}
]
})
[2/3] 確認
インタビュー結果を要約し、ユーザーに承認を求める。
要約フォーマット
code
## タスク概要 **依頼内容**: [ユーザーが依頼した内容] **実行する作業**: - [具体的な作業1] - [具体的な作業2] - ... **スコープ**: [対象ファイル/機能] **制約・注意点**: [あれば記載]
承認確認
javascript
AskUserQuestion({
questions: [
{
question: "上記の内容で作業を開始してよろしいですか?",
header: "確認",
options: [
{ label: "承認", description: "作業を開始する" },
{ label: "修正", description: "内容を修正する" }
],
multiSelect: false
}
]
})
「承認」の場合: [3/3] 実行へ進む
「修正」または「Other」の場合: ユーザーの指摘に基づき[1/3]に戻って再度インタビュー
[3/3] 実行
承認後、タスクを実行する。
実行ガイドライン
タスク管理:
- •複数ステップがある場合はTodoWriteでタスク管理
- •各ステップ完了時にtodoを更新
実行時の注意:
- •承認された内容の範囲内で作業する
- •スコープ外の変更は行わない
- •追加で判断が必要な場合はAskUserQuestionで確認
完了報告
作業完了後、実行結果を簡潔に報告する:
code
## 完了報告 **実行した作業**: - [作業1] - [作業2] **変更ファイル**: - [ファイルパス1] - [ファイルパス2]
注意事項
アンチパターン(避けるべきこと)
- •自明な質問をする(「本当に修正しますか?」など)
- •質問を4個以上する
- •承認なしで作業を開始する
- •スコープ外の作業を行う
エラーハンドリング
- •作業中にエラーが発生した場合はユーザーに報告
- •判断が必要な場合はAskUserQuestionで確認