wiki-research-loop について
ソースを取得し、主張を抽出・重複排除してページにまとめ、次のシードを追加するリサーチループのドライバーです。設定可能な制限、プライバシーチェック、実行記録を必要とする Wiki 調査ワークフロー向けです。
主な機能
- 01Web、arXiv、GitHub のフェッチャー
- 02主張の抽出と重複排除
- 03幅優先で処理するシードキュー
- 04予算・深度・ページ数の制限
- 05収束検出と停止スイッチ
- 06Markdown ログと実行統計
活用シーン
- 01調査課題を起点に Wiki を拡張
- 02自動ソース収集の範囲を制限
- 03新しい主張が収束した段階で実行を停止
MCP 対応
プラグインセッションでは、providers MCP サーバーの `run_provider_task` ツールに調査タスクを渡します。README には `wiki-query` との連携も記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rohitg00/ pro-workflow --skill wiki-research-loopインストール後、Claude Code で/wiki-research-loopを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/research-loop.jsscripts/source-fetchers/arxiv.jsgithub.jsweb.js詳細
Wiki リサーチループ
Wiki を自動成長するナレッジベースに変えるドライバーです。wiki-builder と wiki-query の上に構築されています。
ループの動作
seed-queue (pending) → next-seed
→ fetch sources via plugins (web | arxiv | github)
→ extract claims
→ dedupe vs index (FTS5; later vector via 3.3.2)
→ compile new page or amend existing
→ upsert page (auto-FTS-index)
→ enqueue follow-up seeds (max-depth gate)
→ mark seed done
→ if budget OR convergence OR kill-switch → halt
停止条件(いずれかに該当した場合)
budget_usdを超過した(ループはフェッチャーごとのコスト見積もりを追跡します)max_pages_per_runに達した- すべてのアクティブなブランチで
max_depthに達した - 3 ページ連続で新しいクレームの追加が 5 % 未満だった(収束)
- ファイル
~/.pro-workflow/STOPが存在する(オペレーター用キルスイッチ) wiki.config.mdのauto_research.enabled: false- Wiki が
private: trueであり、ローカル以外のフェッチャーが選択されている
コマンド
プラグインのセッションでは、以下のランナー引数を指定して、providers MCP サーバーの run_provider_task ツールを task: "research" で呼び出します。たとえば、args: ["run", "agent-memory", "--fetchers", "github"] のように指定します。任意の GitHub トークンは、プラグイン設定ダイアログから取得します。直接 CLI を実行する場合、明示的に指定された PRO_WORKFLOW_GITHUB_TOKEN を使用します。既存のマシン認証情報からトークンを取得しないでください。
node $SKILL_ROOT/scripts/research-loop.js run <slug> [--max-pages N] [--max-depth N] [--budget-usd 0.50] [--fetchers web,arxiv,github]
node $SKILL_ROOT/scripts/research-loop.js seed <slug> "<query>" [--depth 0] [--parent-id N]
node $SKILL_ROOT/scripts/research-loop.js seeds <slug> [--status pending|active|done|failed]
node $SKILL_ROOT/scripts/research-loop.js cancel <slug>
node $SKILL_ROOT/scripts/research-loop.js status
CLI フラグは、その実行中に限り wiki.config.md の設定を上書きします。
ソースフェッチャー
プラグインとして追加できます。それぞれ scripts/source-fetchers/<name>.js に配置します。インターフェースは次のとおりです。
module.exports = {
name: 'web',
match: (q) => true, // is this fetcher useful?
estimateCost: (q) => ({ usd: 0, tokens: 0 }),
fetch: async (q, opts) => [ // returns RawDoc[]
{ url, title, content, fetched_at }
]
};
組み込みフェッチャー:
web.js— 標準入力/標準出力のシムを通じて、ユーザーが利用可能なWebFetchツールで取得します。結果はプレーンテキスト/Markdown として扱います。arxiv.js—https://export.arxiv.org/api/query(無料、公開、キー不要)。要約とメタデータを返します。github.js—https://api.github.com/search/repositoriesと README の取得を使用します(明示的に設定された GitHub トークンを使用し、未設定の場合は未認証のレート制限が適用されます)。
スタンドアロン CLI の実行時は、~/.pro-workflow/fetchers/<name>.js からカスタムフェッチャーを読み込みます。プラグインの MCP サーバーが使用するのは同梱のフェッチャーのみです。設定済みのトークンがユーザー提供モジュールに渡されることはありません。
予算の適用
イテレーション前:選択されたフェッチャーすべての estimateCost を合計します。累積コストの予測値が budget_usd を超える場合は停止します。
イテレーション後:LLM のコンパイル手順(Anthropic/OpenAI のパススルー)で使用されたトークンを追跡します。超過した場合は強制終了します。
環境変数によるフェッチャーごとの上書き:WIKI_LOOP_BUDGET_USD、WIKI_LOOP_MAX_PAGES、WIKI_LOOP_MAX_DEPTH。
シードキュー
wiki_seeds テーブルを使った SQLite ベースのキューです。
| フィールド | 意味 |
|---|---|
query | 自然言語のシード |
status | pending → active → done|failed |
parent_id | このシードを生成したシード |
depth | ルートからの BFS 深度 |
ループは (depth ASC, created_at ASC) の順に取り出すため、幅優先で探索します。
収束の検出
コンパイル済みページごとに、クレームテキストのトークンと直前の 3 ページとの Jaccard 係数を計算します。新規コンテンツが < 5 % の状態が 3 ページ連続した場合、停止して converged を報告します。
キルスイッチ
touch ~/.pro-workflow/STOP
ループは各イテレーションで確認し、正常に停止します。次回の実行で再開するには、ファイルを削除してください。
プライバシーガード
wiki.config.md に private: true が設定されている場合、ループはローカル以外のフェッチャーを拒否し、警告を出力します。許可されるのは、手動シードによる raw/ への取り込みのみです。
リアクティブトリガー(Phase 3.3.4)
scripts/file-watcher.js は wiki/<slug>/wiki/**/*.md を監視します。ユーザーがクレームを編集すると、深度 0 で検証用シード(verify: <claim>)をキューに追加します。pro-workflow の file-watcher.js フックを通じて接続されています。
Cron ティック(Phase 3.3.4)
scripts/research-tick.js は、Cron 形式の任意のランナーから起動できます。シードが保留中のオプトイン済み Wiki のうち、最も古いものを選び、1 回のイテレーションを実行します。フックイベント:pro-workflow:research-tick。
出力
各実行で次のものが書き込まれます。
<wiki-root>/logs/research-<UTC-timestamp>.md # human-readable run log
<wiki-root>/derived/run-<UTC-timestamp>.json # structured stats
実行ログの行:
[2026-05-08T10:42Z] seed-3 (depth=1) "memory consolidation in agents"
fetcher=arxiv hits=3
fetcher=web hits=2
compiled wiki/concepts/memory-consolidation.md (claims=7, novel=4)
enqueued 2 follow-up seeds
cost so far: $0.04 / $0.50
wiki-query との統合
コンパイル済みの各ページは wiki-cli.js page を通るため、FTS5 の整合性が保たれます。重複排除の手順では、候補クレームのテキストを使って searchWiki を呼び出し、類似した重複項目を検索します。
ステータス(Phase 3.3.1)
提供済み:ループドライバー、シードキュー、web/arxiv/github フェッチャー、予算上限、収束検出機能、キルスイッチ、手動の run コマンド。
延期項目:
- ベクトルによる重複排除(sqlite-vec による Phase 3.3.2)
- LLM によるクレームの新規性判定(現在は Jaccard トークン重複率を使用)
- Cron とリアクティブ機能(Phase 3.3.4)