mcpField
W
wiki-query

wiki-query

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

wiki-query について

wiki-queryは、SQLite FTS5のBM25検索でwiki-builderのページを検索します。ユーザーやエージェントが既存資料や関連ページを見つけ、調査の重複を避けるために検索内容を引用できます。

主な機能

  1. 01BM25全文検索
  2. 02全Wikiまたは指定Wikiの検索
  3. 03関連ページの検索
  4. 04扱いやすいJSON形式の検索結果
  5. 05SessionStartでトピック別ヒントを提示

活用シーン

  1. 01ページ追加前にWikiの既存内容を確認
  2. 02分野の質問に関する既存回答を検索
  3. 03引用前にWikiの出典を検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rohitg00/pro-workflow --skill wiki-query

インストール後、Claude Code で/wiki-queryを入力して読み込まれたか確認します。

同梱ファイルscripts/query.js

詳細

Wiki Query

wiki-builderでインデックス化されたWikiページを対象とする、FTS5 BM25検索です。

使用するタイミング

  • 新しいWikiページを書く前に、まず内容の網羅状況を確認する
  • 既存のWikiに情報がある可能性のあるドメインに関する質問をユーザーから受けたとき
  • 「 wiki に質問する:」
  • 主張を引用する前に、出典を確認するとき
  • プロンプトが既知のWikiトピックに一致したときにSessionStartで自動読み込みする

コマンド

node $SKILL_ROOT/scripts/query.js search "<query>" [--wiki <slug>] [--limit 10] [--json]
node $SKILL_ROOT/scripts/query.js related <slug> <rel-path> [--limit 5]
node $SKILL_ROOT/scripts/query.js show <slug> <rel-path>

--wikiを指定せずにsearchを実行すると、すべてのWikiを対象に順位付けします。relatedは、ページのタイトルと概要をクエリとして再利用し、関連ページを検索します。

出力

JSON で扱いやすい形式です。各検索結果:

{
  "page_id": 12,
  "wiki_slug": "agent-memory",
  "rel_path": "wiki/concepts/episodic-memory.md",
  "title": "Episodic Memory",
  "snippet": "... [time-stamped] traces, distinct from semantic ...",
  "rank": -3.21
}

順位が低い(負の値が大きい)ほど、BM25 の一致度は高くなります。

引用元の提示

Wiki の検索結果はすべて、次の形式で引用する必要があります。

[wiki:<slug>] <title> — `<rel_path>`

出典を示さずに検索結果を言い換えないでください。

SessionStart との連携

pro-workflowのSessionStartフックは、ユーザーのプロンプト内にWiki関連の用語を検出すると、query.js search "<prompt>" --limit 3を実行し、上位の検索結果をヒントとしてセッションに挿入します。

[wiki-query] 3 relevant pages:
- agent-memory · wiki/concepts/episodic-memory.md
- agent-memory · wiki/papers/park-2023-generative-agents.md
- ...

調査をやり直す代わりに、Claude が既存の知識を想起するのに役立ちます。

制限(Phase 3.3.0)

  • BM25 のみです。ベクトル検索は、sqlite-vec とともに 3.3.2 で追加されます。
  • 再ランキングには対応していません。MMR による多様性は、3.3.1 のリサーチループとともに追加されます。
  • スニペットの範囲は、一致箇所の前後 16 トークンです。--snippet-lenで調整できます。

コメント