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
SessionStartauto-load when prompt matches a known wiki topic
Commands
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>
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:<slug>] <title> — `<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.

