Claude Codeへの指示を少しでもさぼりたい!AskUserQuestionツール

はじめに:指示をさぼりたい

どうも、Claude Codeとべったりな龍ちゃんです。

最近、Claude Codeが選択肢式の出力を出してきて、質問に答えたらいい感じに指示を分類してくれたりしてたんですよ。調べたら、どうやら9月ぐらいに発表された機能らしくて。

「これ毎回発火してくんねーかな」

って思ったんですよね。

AI使うことでだいぶ楽になったんですけど、人間って怠惰なんで。指示をちゃんと打ち込めば動くのはわかってるんですけど、エージェント発火させたりスキル発火させたりするのをすげえさぼりてえなって。

僕、今ブログのエージェントを何個か作っていて、タイトルやメタディスクリプションを作ったり、ブログのレビューとか技術情報収集とか、いろんなエージェントがあるんですけど。それぞれ一個ずつ発火させるのってクソ面倒臭いですよね。

それが選択肢式で、「選択肢出して」って言ったら出してくれて、ぼちぼち設定できたらいいなって思って、こんなブログを書いてます。

で、調べてわかったことなんですけど、全然失敗することもあるらしいんですよね。僕の環境でもめちゃくちゃ失敗してるんで、まあ今後に期待したいみたいな話で、ちょっと先んじて書いておこうかなって思ってます。

注意点としては

  • まだまだ開発中というか、品質として良いとは言えない状態
  • すぐ取り込むのは良くないんじゃないかな
  • 発火したらラッキーと思ってるぐらいがちょうどいい

この画面、見たことありますか?

Claude Codeが質問してくれるやつです。

でも現実は…

これを確定で発火させて、Skillsとして提供しておいて、どのエージェント発火するかをCLI的に選ぼうみたいなとち狂ったことを書いていきます。

具体的にどうするのかと、このツールのちょっと参考になる情報を、さっくりまとめていこうかなと思ってます。もしもあれなら参考にしてもらえればなと。

AskUserQuestionツールって何?

AskUserQuestion は、タスク実行中に対話的な質問をするためのツールです。

(2025年11月時点のClaude Code v2.0.46で動作確認済み)

理想的な動作:

  1. ユーザーに選択肢を提示
  2. ユーザーが選択(単一または複数)
  3. 回答を受け取って処理を分岐

実装例:

AskUserQuestion({
  questions: [
    {
      question: "この記事の現在の状態を教えてください",
      header: "記事の状態",
      multiSelect: false,
      options: [
        {
          label: "初稿完成(技術チェック必要)",
          description: "書き上げたばかりで、技術的正確性とセキュリティを確認したい"
        },
        // ... 他の選択肢
      ]
    }
  ]
})

詳しい作り方はClaude Codeに聞いてみて!(どうせ今後変わるかもしれないし)

現実:めちゃくちゃ失敗する

調査したところ、AskUserQuestion は現状かなり不安定でした。

既知の問題:

  • ✗ 公式ドキュメントに包括的な説明なし
  • ✗ スキル内で初回呼び出し時に失敗
  • ✗ “User answered Claude’s questions:” と表示されるが実際には質問しない
  • ✗ 空の応答で処理が完了してしまう
  • △ プランモード切り替えで一時的に機能することがある(不安定)

GitHubイシュー:

ツールが発火しなかった時にどうするか

その時はまあ、サボらず、ちゃんとプロンプトを打ち込もうなって話ですね。

ちゃんと動かしたら、エージェントとかSkillsとか出てきて、だいぶ言うこと聞いてくれるようになったり、作業が自動化されたりしてるんで。その辺ね、多少プロンプトサボっちゃダメですよ。

回避策

SkillsとかAgentがちゃんと発火しないとき:

  • description でどうにかする
  • CLAUDE.md にちゃんと説明を書く

例えば、CLAUDE.md にこんな感じで書いておく:

**⚠️ レビュー依頼の処理方法**:
ユーザーが記事のレビューを依頼した場合(「レビューして」「チェックして」「確認して」など)、
以下のエージェントを**直接呼び出さず**、必ず`.claude/skills/review-article.md`スキルを発火させてください:
- blog-reviewer
- content-reviewer
- technical-accuracy-reviewer
- seo-title-generator

review-articleスキルがユーザーの意図を確認し、適切なエージェントを選択します。

こういうことで、まあ大体はできるので。

僕の実装例:review-article.md スキル

参考までに、僕が作った review-article.md スキルを紹介します。

やりたいこと:

  • 「この記事をレビューして」だけで、適切なエージェントを選びたい
  • 4つのエージェント(技術チェック、品質改善、SEO、タイトル生成)を使い分けたい

理想的な動作:

  1. AskUserQuestion で記事の状態を質問
  2. どのレビュー項目を実行するか選択(複数選択可)
  3. 選択に基づいて適切なエージェントを順次実行

現実:

  • AskUserQuestionが動かない
  • でもキーワードトリガー(「レビューして」など)は動く
  • CLAUDE.mdで制御すれば、まあまあ使える

詳しい実装はClaude Codeに聞いてみて!(長いので)

まとめ

「Claude Codeへの指示を少しでもさぼりたい」という正当な欲求から生まれた実験。

現状:

  • AskUserQuestionは不安定
  • でも将来的には期待できそう
  • 今は代替策でなんとかする

推奨:

  • ✅ キーワードトリガーを活用
  • ✅ CLAUDE.mdで制御
  • ✅ ちゃんとプロンプトを打ち込む
  • ✗ AskUserQuestionに依存しない

学び:

  • スキル・エージェント連携の実装パターンは参考になる
  • フォールバック戦略は重要
  • 発火したらラッキー、ぐらいの気持ちで

「さぼりたい」という気持ちは、エンジニアリングの原動力です。理想と現実のギャップを理解しつつ、現実的な代替策で効率化を追求していきましょう。

ぜひ面白コンテンツだと思って読んでもらえればなと思います。

参考リンク

公式ドキュメント:

既知の問題:

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です