wiki-query について
wiki-queryは、プロジェクトのWikiを参照して質問に答えるスキルです。QMDを優先して検索し、利用できない場合はgrepやインデックス検索に切り替え、参照したWikiページを明記します。
主な機能
- 01QMD MCPまたはCLIでの検索
- 02構造化検索クエリの作成
- 03Wikiの言語へのクエリ翻訳
- 04grepまたはインデックス検索への切り替え
- 05Wikiページの引用
活用シーン
- 01Wikiページから回答を探す
- 02Wikiの言語で検索する
- 03QMDが使えない場合の検索
- 04Wikiの情報不足を特定する
MCP 対応
QMD MCPツールが利用可能な場合、Wiki検索に使用します。QMD CLI、またはgrepやインデックス検索への切り替えにも対応します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ djalmajr/ skills --skill wiki-queryインストール後、Claude Code で/wiki-queryを入力して読み込まれたか確認します。
詳細
Query — Wiki に質問する
形式、リンク、言語の規則については、wiki/CONVENTIONS.md に従ってください。
言語
成果物はユーザーの言語で記述してください。正しい文法を適用し、必要な発音区別符号や文字体系固有の文字を使用してください。ユーザーの言語が不明な場合は、出力を生成する前に確認してください。
プロジェクトルート
このスキルは、エージェントの現在の作業ディレクトリではなく、プロジェクトルート(作業対象のリポジトリ)を基準とするパスに成果物を書き込みます。
- プロジェクト内から実行する場合は、このスキルに示されている相対パスを使用してください。
- 別のディレクトリから実行する場合(例:兄弟リポジトリから、またはプロジェクトが別の場所にある場合)は、すべての成果物パスの先頭に
<project-root>/を付けてください。 - プロジェクトルートが曖昧な場合は、書き込む前にハーネスの質問ツールを使ってユーザーに確認してください。
プロンプト
CLAUDE.md / AGENTS.md のプロジェクト全体の規約(「Skill Prompting Conventions」)に従ってください。以下の判断が必要な場合は、ハーネスの構造化質問ツール(Claude Code では AskUserQuestion、Codex では ask_user_question、OpenCode では question)を使用してください。列挙できないパス、名前、値を尋ねる場合に限り、自由形式のテキストを使用してください。
| 判断事項 | 構造化する理由 | 推奨される選択肢 |
|---|---|---|
| 検索方法 | 再現率と適合率に影響します | QMD MCP · QMD CLI · grep/glob フォールバック |
| 回答言語 | ロケールの整合性 | Wiki の言語 · ユーザーの言語 · 二言語 |
自由形式のプロンプト(構造化ツールは不要):
- 実際のクエリテキスト
一時停止なしモード:ユーザーがスキル実行中の確認を明示的に無効にしている場合は、すべての構造化プロンプトを「未解決の質問」(または同等の項目)として記載し、処理を止めずに続行してください。
クエリ言語の整合性
ユーザーの言語が Wiki の言語と異なる場合は、検索前に検索クエリを Wiki の言語に翻訳してください。Wiki の言語は、.wiki-guardrails.yml(query_language または language)から判定し、ガードレールがない場合は Wiki のフロントマターまたはインデックスを確認してください。正確な製品名とコード識別子は変更しないでください。
intent:、vec:、hyde:は Wiki の言語で記述してください。- 有用な場合は、両方の言語の正確な用語に
lex:を使用してください。 - 別の指定がない限り、ユーザーにはユーザーの言語で回答してください。
- 翻訳に確信が持てない場合は、翻訳した用語を示し、元の用語を
lex:に残してください。
検索 — 利用可能な場合は QMD を優先
推奨される検索エンジンは QMD(BM25、ベクトル検索、LLM による再ランキングを組み合わせたローカルハイブリッド検索)です。リポジトリごとのセットアップは一度だけ必要です。詳細については、このスキルリポジトリの docs/wiki/qmd-setup.md を参照してください。
各クエリの前に、利用可能かどうかを確認してください。
- MCP を利用可能(
mcp__qmd__statusとmcp__qmd__queryツールが登録済み)→ MCP ツールを使用します。 - CLI を利用可能(
which qmdが成功)→qmd query --json --files --min-score 0.4を実行します。 - どちらも利用不可 → 以下で説明する grep/インデックスの手順にフォールバックします。QMD が設定されていないことを一度ユーザーに伝え、
docs/wiki/qmd-setup.mdを案内してください。
qmd embed、qmd update、qmd collection add は自動的に実行しないでください。これらはリポジトリ管理者が実行するセットアップコマンドです。このスキルでは、構築済みのインデックスに対するクエリのみを実行します。
手順
-
検索を計画する — ユーザーの質問を構造化クエリ文書に変換します。リランキングとスニペット抽出が実際の目的に沿うよう、必ず
intent:行を含めてください。intent: <one-sentence framing of what the user actually wants> lex: <exact terms / phrases / -negations> vec: <natural-language paraphrase of the question> hyde: <one short paragraph that looks like the ideal answer>シグナルにならないサブクエリは省いてください(用語集の検索なら
lexだけで十分です。「X はどのように機能するか」という質問なら、主にvec/hydeを使います)。 -
QMD で検索する
- MCP:構造化された
searches配列(または複数行のq文字列)とintentフィールドを指定して、mcp__qmd__queryを呼び出します。質問の対象が単一のコレクションか、複数リポジトリにまたがるものかに応じて、collectionsで範囲を絞り込みます。 - CLI:
qmd query "$(cat <<EOF intent: ... lex: ... vec: ... hyde: ... EOF )" --json --files -n 8 --min-score 0.3 mcp__qmd__get/mcp__qmd__multi_get(または CLI のqmd get/qmd multi-get)で、上位 3~5 件の検索結果を読みます。スニペットだけでは判断が難しい場合は、本文全体を取得してください。QMD が返すcontextフィールドを尊重してください。ここには、管理者がキュレーションしたコレクションレベルのガイダンスが含まれています。
- MCP:構造化された
-
フォールバック(QMD がない場合)
wiki/index.mdを読み、「By topic」テーブルから該当しそうなページを探します。- 手順 1 で抽出したキーワードを使って、
grep/Globを実行します。 - 特定したページを全文読みます。
-
回答をまとめる:
- 質問に直接答えます。
- 使用した Wiki ページを、リンク
[page](wiki/path.md)で引用します(docid ではなく、QMD が返したパスを使用してください)。 - 情報源同士に矛盾がある場合は、それぞれの見解を示し、対立していることを明記します。
- 情報が Wiki に存在しない場合は、そのことを明確に伝え、取り込み候補の情報源を提案します。
-
回答に長期的な価値があるかを評価する
- 複数のページをまとめて新たな有用性が生まれる場合は、
wiki/sources/にページとして保存する(分野横断的な要約)か、既存ページの新しいセクションとして追加することを提案します。 - 単発の簡単な回答であれば、保存する必要はありません。
- 複数のページをまとめて新たな有用性が生まれる場合は、
-
記録する(Wiki が更新された場合のみ):
## [YYYY-MM-DD] query | <question summary> - Retrieval: qmd | grep-fallback - Pages consulted: ... - Result saved: yes/no (which page, if yes)
ルール
- まず Wiki に基づいて回答してください。回答がすでに存在する場合、コードや外部情報源を使って一からまとめ直さないでください。
- QMD には必ず
intent:行を指定してください。関連性を高めるための最も重要な手段です。 - QMD の
contextフィールドを信頼してください。キュレーションされたメタデータ(例:raw/は信頼できる情報源ではありません)が反映されています。学習時の直感に基づいて「修正」しないでください。 - 情報が見つからない場合は、不足を補うために取り込むべき情報源を提案してください。
- 使用した Wiki ページは必ず引用してください。
- 質問から情報の不足が明らかになった場合は、作成可能なページを提案してください。ただし、自動では作成せず、取り込みに任せてください。