Skip to content
ask-user-choice logo

Ask User Choice Skill

ask-user-choice

ユーザーに質問や確認をする際に毎回発動してください。自由回答形式ではなく、明確な選択肢(1質問あたり2-4個)を持つAskUserQuestionツールを使用し、ユーザーの入力負担を軽減して意思決定を迅速化します。柔軟性のためmultiSelect trueをデフォルトにしてください。

SKILL.md

Full skill instructions

Ask User Choice Skill

目的

このスキルはAskUserQuestionツールの使用を推進し、ユーザーの入力負担を軽減して対話をより効率的にします。テキスト入力が必要な自由回答形式ではなく、ワンクリックで選択できる構造化された選択肢を提供してください。

使用タイミング

<trigger>

以下の場合にこのスキルを発動してください:

  • ユーザーの入力や好みを取得する
  • 曖昧な要件を明確化する
  • 実装の選択肢を提示する(ライブラリ、アーキテクチャ、アプローチなど)
  • 複数のタスクがある場合に優先順位を決定する
  • 作業完了後に次のアクションを提案する

</​trigger>

ベストプラクティス

1. 良い質問の構造

各質問には以下を含めること:

  • 明確な質問文: 疑問符で終わり、具体的であること
  • 簡潔なheader: 短いラベル。例:「ライブラリ」「アプローチ」
  • 選択肢: それぞれにラベルと詳細な説明を付ける
  • multiSelect: デフォルトでtrueに設定(柔軟性のため、ユーザーは1つまたは複数選択可能)

2. 充実した詳細な説明文を書く

説明文は長くてOK。情報量を充実させること。

良い選択肢の構造:

{
  "label": "短い選択肢名",
  "description": "コンテキスト、トレードオフ、影響を含む詳細な説明。\n\n段落区切りには\\n\\nを使って可読性を向上させる。\n\n十分な情報を提供して、情報に基づいた意思決定を可能にする。"
}
  • \n\nで段落区切りを使う(可読性が大幅に向上)
  • コンテキスト、メリット・デメリット、影響を含める
  • 詳細を出し惜しみしない - ユーザーは簡潔すぎる説明より包括的な情報を好む
  • Markdown記法の制限:
    • **bold**、*italic*、`code`などは使えない(そのまま表示される)
    • 箇条書き(-)は装飾されないがそのまま表示されるので、可読性向上のために使用OK

3. multiSelectをデフォルトで使用

特に理由がない限りmultiSelect: trueをデフォルトに

✅ multiSelect: trueを使用(推奨デフォルト):

  • ほとんどのシナリオで柔軟性の恩恵がある
  • ユーザーは1つだけ選びたければ1つだけ選べる
  • 該当する場合は複数の選択肢を組み合わせられる
  • よりユーザーフレンドリーで制約が少ない

⚠️ multiSelect: falseを使うのは以下の場合のみ:

  • 選択肢が厳密に相互排他的
  • 複数選択すると論理的な矛盾が生じる
  • 質問の性質上、単一選択が本質的に必要

使用例

<examples>

例1: 実装アプローチ選択(詳細な説明文付き)

<example>
{
  "question": "どのJavaScriptフレームワークを使用しますか?",
  "header": "Framework",
  "multiSelect": true,
  "options": [
    {
      "label": "React + TypeScript",
      "description": "仮想DOMを使用した高速レンダリングを実現する、最も人気のあるJavaScriptフレームワーク。\n\nTypeScriptと組み合わせることで型安全性が向上し、大規模プロジェクトでも保守性が高まる。\n\nコンポーネントベースの設計で再利用性が高く、豊富なエコシステム(React Router, Redux, Next.js等)が利用できる。\n\n学習コストは中程度で、ドキュメントやコミュニティサポートが充実している。"
    },
    {
      "label": "Vue.js + Composition API",
      "description": "学習曲線が穏やかで初心者にも取り組みやすいフレームワーク。\n\nComposition APIを使用することで、React Hooksに近いロジックの再利用が可能になる。\n\nテンプレート構文が直感的でHTMLに近い書き方ができ、公式の状態管理ライブラリPiniaやルーティングライブラリVue Routerが統合されている。\n\nパフォーマンスも優れており、中小規模から大規模まで幅広く対応できる。"
    },
    {
      "label": "Svelte + SvelteKit",
      "description": "コンパイル時にコードを最適化するため、ランタイムのオーバーヘッドが極めて少なく、高速なアプリケーションを構築できる。\n\n仮想DOMを使わず、ビルド時に効率的な命令型コードに変換される。\n\nSvelteKitを使用することでSSRやSSG、ルーティングなどの機能が統合されている。\n\nコード量が少なく、バンドルサイズが小さいのも大きなメリット。ただし、エコシステムはReactやVueと比べるとまだ小さい。"
    }
  ]
}

</​example>

例2: 複数機能選択(multiSelect推奨)

<example>
{
  "question": "どの機能を実装しますか?",
  "header": "Features",
  "multiSelect": true,
  "options": [
    {
      "label": "ダークモード",
      "description": "ライトモードとダークモードの切り替え機能を追加。\n\n- アクセシビリティが向上\n- 低照度環境でのユーザーの快適性が改善\n- 目の疲労を軽減\n\n実装要件:\n- CSS変数の設定\n- 状態管理(localStorage等)\n- テーマ切り替えUI"
    },
    {
      "label": "キーボードショートカット",
      "description": "パワーユーザー向けにキーボードナビゲーションとショートカットを有効化。\n\n頻繁に使用するユーザーの生産性が大幅に向上する。\n\nブラウザのショートカットとの衝突を避けるための慎重な設計が必要。"
    },
    {
      "label": "PDF出力",
      "description": "コンテンツをPDFファイルとしてエクスポートできる機能。\n\nレポート、ドキュメント、オフライン共有に便利。\n\nPDF生成ライブラリ(jsPDF、pdfmake等)が必要。"
    }
  ]
}

</​example>

例3: タスク優先順位(multiSelect falseのレアケース)

<example>
{
  "question": "最初にどのタスクから始めますか?",
  "header": "Priority",
  "multiSelect": false,
  "options": [
    {
      "label": "認証バグの修正",
      "description": "🔴 最優先 - 現在ユーザーがログインできない状態。\n\n全ユーザーのアクセスをブロック中。修正予想時間:1-2時間。\n\n他の作業より先に即座に対処すべき。"
    },
    {
      "label": "新機能追加",
      "description": "🟡 中優先度 - 次スプリント向けにクライアントから要望あり。\n\n現在の機能をブロックしていない。予想時間:1-2日。\n\nクリティカルなバグ解決後にスケジュール可能。"
    },
    {
      "label": "コードリファクタリング",
      "description": "🟢 低優先度 - 保守性とコード品質を改善。\n\nユーザーへの即時影響なし。予想時間:3-4時間。\n\n機能開発の合間を埋めるのに適している。"
    }
  ]
}

</​example>

</​examples>

常に覚えておくこと

<important>

✅ すべきこと:

  • 詳細な説明を使う(コンテキストとトレードオフを追加)
  • \n\nで段落区切りを使い、可読性を向上させる
  • 柔軟性のためmultiSelect: trueをデフォルトにする
  • 各選択肢のlabelは短く、descriptionは充実させる
  • 必要に応じて複数回質問する - フォローアップが必要な場合は、最初の回答を得た後に再度AskUserQuestionを使用

❌ してはいけないこと:

  • 簡潔すぎる説明 - ユーザーは情報に基づいた意思決定のため詳細を求める
  • 選択肢が真に相互排他的でない限りmultiSelect: falseを使う
  • フォローアップ質問を躊躇する - 推測よりも明確化の方が良い

</​important>

複数ラウンドの質問

不明点が多い場合や段階的な明確化が必要な場合:

  1. 関連する質問をグループ化
  2. 最初のバッチを聞く、回答を待つ
  3. 回答に基づいてフォローアップ質問を必要に応じて行う
  4. すべての不確実性が解消されるまで繰り返す

この段階的な質問アプローチは推奨されており、実装に進む前に徹底的な理解を確保するのに役立ちます。

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View