--- name: wiki-query description: Query pro-workflow wikis via SQLite FTS5 BM25 retrieval. Returns top-K passages with citations. Use when answering a question that any of the user's wikis already covers, when the user says "what does the wiki say about X", "ask wiki", "search wikis", or before drafting a new wiki page (to avoid duplication). --- # Wiki Query FTS5 BM25 retrieval over wiki pages indexed by `wiki-builder`. ## When to use - Before writing any new wiki page → check coverage first - User asks a domain question that may already live in a wiki - "Ask the wiki: " - Verifying citations before quoting a claim - `SessionStart` auto-load when prompt matches a known wiki topic ## Commands ``` node $SKILL_ROOT/scripts/query.js search "" [--wiki ] [--limit 10] [--json] node $SKILL_ROOT/scripts/query.js related [--limit 5] node $SKILL_ROOT/scripts/query.js show ``` `search` with no `--wiki` ranks across all wikis. `related` finds adjacent pages by reusing the page's title + summary as the query. ## Output JSON-friendly. Each hit: ``` { "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 } ``` Lower (more negative) rank = better BM25 match. ## Citing back Every wiki hit must be cited as: ``` [wiki:] — `<rel_path>` ``` Do not paraphrase a hit without showing the source. ## SessionStart integration When `pro-workflow`'s SessionStart hook detects wiki-relevant terms in the user prompt, it runs `query.js search "<prompt>" --limit 3` and injects top hits into the session as a hint: ``` [wiki-query] 3 relevant pages: - agent-memory · wiki/concepts/episodic-memory.md - agent-memory · wiki/papers/park-2023-generative-agents.md - ... ``` Helps Claude recall existing knowledge instead of redoing research. ## Limits (Phase 3.3.0) - BM25 only. Vector search arrives 3.3.2 with sqlite-vec. - No re-ranking. MMR diversity arrives with the research loop in 3.3.1. - Snippet window is 16 tokens around match — tune via `--snippet-len`.