mcpField
W
wiki-query

wiki-query

github.com/djalmajr生産性464 回インストール5 週間前に更新
リポジトリ

wiki-query について

wiki-queryは、プロジェクトのWikiを参照して質問に答えるスキルです。QMDを優先して検索し、利用できない場合はgrepやインデックス検索に切り替え、参照したWikiページを明記します。

主な機能

  1. 01QMD MCPまたはCLIでの検索
  2. 02構造化検索クエリの作成
  3. 03Wikiの言語へのクエリ翻訳
  4. 04grepまたはインデックス検索への切り替え
  5. 05Wikiページの引用

活用シーン

  1. 01Wikiページから回答を探す
  2. 02Wikiの言語で検索する
  3. 03QMDが使えない場合の検索
  4. 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 は自動的に実行しないでください。これらはリポジトリ管理者が実行するセットアップコマンドです。このスキルでは、構築済みのインデックスに対するクエリのみを実行します。

手順

  1. 検索を計画する — ユーザーの質問を構造化クエリ文書に変換します。リランキングとスニペット抽出が実際の目的に沿うよう、必ず 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 を使います)。

  2. 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 フィールドを尊重してください。ここには、管理者がキュレーションしたコレクションレベルのガイダンスが含まれています。
  3. フォールバック(QMD がない場合)

    • wiki/index.md を読み、「By topic」テーブルから該当しそうなページを探します。
    • 手順 1 で抽出したキーワードを使って、grep/Glob を実行します。
    • 特定したページを全文読みます。
  4. 回答をまとめる:

    • 質問に直接答えます。
    • 使用した Wiki ページを、リンク [page](wiki/path.md) で引用します(docid ではなく、QMD が返したパスを使用してください)。
    • 情報源同士に矛盾がある場合は、それぞれの見解を示し、対立していることを明記します。
    • 情報が Wiki に存在しない場合は、そのことを明確に伝え、取り込み候補の情報源を提案します。
  5. 回答に長期的な価値があるかを評価する

    • 複数のページをまとめて新たな有用性が生まれる場合は、wiki/sources/ にページとして保存する(分野横断的な要約)か、既存ページの新しいセクションとして追加することを提案します。
    • 単発の簡単な回答であれば、保存する必要はありません。
  6. 記録する(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 ページは必ず引用してください。
  • 質問から情報の不足が明らかになった場合は、作成可能なページを提案してください。ただし、自動では作成せず、取り込みに任せてください。

コメント