qa-discussion について
qa-discussion は、評価、オンボーディング、フィードバック収集、監査などに使える構造化 Q&A の進行スキルです。質問を一つずつ提示し、複数の回答形式を検証して進捗と結果を記録し、最後にレポートを作成します。
主な機能
- 01単一選択・複数選択・自由回答に対応
- 02一問ずつ提示し進捗を表示
- 03回答を検証し不正入力時に再質問
- 04回答と検証状況を記録
- 05完了時にサマリーレポートを作成
活用シーン
- 01構造化されたクイズや評価の実施
- 02質問によるフィードバック収集
- 03知識確認を含むオンボーディング
- 04監査やコンプライアンス回答の記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zenobi-us/ dotfiles --skill qa-discussionインストール後、Claude Code で/qa-discussionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
FINALIZATION-SUMMARY.mdINTEGRATION.mdQUICK-START.mdREADME.mdTEST-REPORT.mdVALIDATION-REPORT.mdexample.tsindex.test.tsindex.ts詳細
Q&A ディスカッションコーディネーター
概要
ユーザーと体系的な Q&A ディスカッションを実施します。複数の質問形式に対応し、進捗を追跡して回答を検証し、包括的なサマリーレポートを作成します。評価、オンボーディング、フィードバックの収集、教育的なやり取りに最適です。
主な機能
質問形式:
- 複数選択:選択肢から正解を1つ以上選択します
- 単一選択:選択肢から正解を1つだけ選択します
- 自由回答:必要に応じた検証機能付きの自由形式の回答です
セッション機能:
- 進捗の追跡(質問 X / Y)
- わかりやすさのため、質問は一度に1つずつ提示
- 無効な回答に対する、役立つフィードバック付きの再質問
- 検証ステータス付きの回答をすべて記録
- ディスカッション完了後にサマリーレポートを作成
使用する場面
次のような場合にこのスキルを使用します。
- 体系的な評価やクイズを実施する
- 体系的な質問を通じてフィードバックを収集する
- 検証付きの知識確認を通じてユーザーをオンボーディングする
- 追跡機能付きの教育的なやり取りを作成する
- 回答の記録が必要な監査やコンプライアンス確認を実施する
使用しない場面:
- 質問が気軽な会話の一部である(自然にチャットしてください)
- 回答を検証または追跡する必要がない
- ディスカッションが体系的ではなく、探索的である
手順
Step 1: 質問を定義する
必要なメタデータをすべて含む、構造化された質問配列を作成します。
const questions: Question[] = [
{
id: 'q1',
text: 'What is the capital of France?',
type: 'single',
options: ['London', 'Paris', 'Berlin', 'Madrid'],
correctAnswer: 'Paris'
},
{
id: 'q2',
text: 'Select all that apply: Which are JavaScript frameworks?',
type: 'multiple',
options: ['React', 'Django', 'Vue', 'Laravel'],
correctAnswers: ['React', 'Vue']
},
{
id: 'q3',
text: 'Explain why you chose your answer above',
type: 'open',
validation: (answer) => answer.length >= 10
}
];
Step 2: ディスカッションを実施する
メイン関数を呼び出して開始します。
const session = await conductDiscussion(questions);
このスキルは次の処理を行います。
- 進捗インジケーターとともに各質問をわかりやすく表示する
- ユーザーの回答を待つ
- 質問の基準に照らして回答を検証する
- 無効な場合は、役立つフィードバックを添えて再質問する
- 検証済みの回答を保存する
- 次の質問に進む
- 完了後にサマリーを作成する
Step 3: 結果を確認する
レポート作成用にセッションデータにアクセスします。
// Session structure:
{
totalQuestions: number;
completedQuestions: number;
responses: Array<{
questionId: string;
text: string;
answer: string;
isValid: boolean;
attempts: number;
}>;
summary: {
totalAttempts: number;
validResponses: number;
invalidResponses: number;
completionTime: number;
};
}
表示規則
質問の表示:
- 質問番号と合計数を示す明確なタイトル(例:「質問 1 / 5」)
- 質問文を目立つように表示
- 参照しやすいよう、選択肢に番号を付ける(1、2、3...)
- 質問形式に応じた指示:
- 単一選択:「選択肢を1つ選択してください(番号を入力)」
- 複数選択:「該当するものをすべて選択してください(カンマ区切りで番号を入力)」
- 自由回答:「回答を入力してください(10文字以上)」
検証フィードバック:
- 無効な入力:「選択が無効です。1、2、3、または4を入力してください」
- 複数選択の形式エラー:「形式が無効です。次の形式を使用してください:1,2,3」
- 自由回答の検証失敗:「回答が短すぎます。もう少し詳しく入力してください」
- 空の入力:「回答は空にできません」
進捗表示:
- 各質問に「質問 2 / 7」のように表示
- わかりやすさのため、質問の間に視覚的な間隔を設ける
- 最後の質問の後にサマリーを表示
エラー処理
入力の検証:
- 範囲外の選択 → 有効な範囲を示して再質問する
- 形式の誤り(単一選択の質問に複数回答) → 想定される形式を説明する
- 空の回答 → 回答を入力するよう促す
- カスタム検証の失敗 → 条件を役立つメッセージとともに説明する
セッションエラー:
- 質問が指定されていない → わかりやすいエラーをスローする
- 無効な質問形式 → セットアップ時に検証する
- タイムアウト/中断 → 進捗を保存し、再開できるようにする
主な原則
- 一度に1つの質問 - 複数の質問を同時に表示しない
- 明確なフィードバック - 回答が無効な理由を必ず説明する
- 完全な追跡 - すべての回答を検証ステータス付きで記録する
- 柔軟な検証 - 完全一致、リスト検証、カスタム関数に対応する
- 使いやすさ - 番号付きの選択肢、明確な指示、役立つメッセージ
- 再開可能 - 必要に応じて一時停止と再開ができるよう設計する
使用例
完全な実装については、@index.ts を参照してください。次の内容が含まれています。
- すべての質問形式に対応する TypeScript の型定義
- 包括的なエラー処理
- 実際の使用例
- 統合パターン
コメント
Markdown 対応