[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CADVBFPTY5X325FPRBPBBM":3,"skill-same:01M6CADVBFPTY5X325FPRBPBBM":103},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M6CADVBFPTY5X325FPRBPBBM","memory-search",null,"Search across all memory systems — ~\u002Froadmap, beads, claude memories, hermes sqlite, hermes briefings, hermes index, wiki, history, and slack. Use whenever the user asks to search memories, find something in memories, or looks for anything that might have been captured in any memory store. Trigger on: 'search memories', 'find in my memories', '\u002Fms', '\u002Fmemory_search', 'search across all memories', 'look up in memory', 'did I save this somewhere', 'do I have anything about X in memory'.","jleechanorg\u002Fjleechan-skills","jleechanorg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221404966?v=4","01M6C1VJ99XG950X1DWPEBCBGX","01M6C1VJDK5YVDNT3362RT5WSB",6,"MIT","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"memory","search","memory search","memory store","slack","for","my","trigger","memories","across","do","look","up","roadmap","ms","use","user","find","memory systems","hermes","history","wiki","beads","save","in memory","sqlite","index","2026-11-10 10:12:30",false,"---\nname: memory-search\ndescription: \"Search across all memory systems — ~\u002Froadmap, beads, claude memories, hermes sqlite, hermes briefings, hermes index, wiki, history, and slack. Use whenever the user asks to search memories, find something in memories, or looks for anything that might have been captured in any memory store. Trigger on: 'search memories', 'find in my memories', '\u002Fms', '\u002Fmemory_search', 'search across all memories', 'look up in memory', 'did I save this somewhere', 'do I have anything about X in memory'.\"\n---\n\n# Memory Search (Hermes-side overlay)\n\n**This file is the Hermes-side resolver entry for the `memory-search` skill.**\nThe canonical implementation lives at `~\u002F.claude\u002Fskills\u002Fmemory-search\u002FSKILL.md` (Claude Code user-scope).\nHermes's `skill_view(name='memory-search')` resolves this overlay directly; if your runtime cannot find this overlay, fall back to the Claude-side file.\n\n## Why this overlay exists (added 2026-07-02)\n\nBefore 2026-07-02, `~\u002F.hermes\u002Fskills\u002Fmemory-search\u002FSKILL.md` did NOT exist. SOUL.md's `## COMMIT: ms-on-new-task` told Hermes agents to call `skill_view(name='memory-search')` but the resolver could not find it from `~\u002F.hermes\u002Fskills\u002F` — only from `~\u002F.claude\u002Fskills\u002F`. Telemetry from `~\u002F.hermes\u002Fstate.db` showed 0 of the 1,951 tool-using sessions in 7 days called `memory-search` via `skill_view`; only the slash-command surface (`\u002Fms`) worked, and only from Claude Code \u002F Codex runtimes. This overlay closes the resolver gap so `skill_view(name='memory-search')` works from any runtime (Slack, CLI, cron, terminal).\n\n## How to execute the 9-store fan-out\n\nRead the canonical implementation at `~\u002F.claude\u002Fskills\u002Fmemory-search\u002FSKILL.md` and execute its `Execution` section. The 9 sources are:\n\n1. `~\u002Froadmap` — Project roadmaps and planning docs (`~\u002Froadmap\u002F`)\n2. `beads` — Issue\u002Fbead tracking (`br search \"$QUERY\" --json | head -40`)\n3. `claude memories` — Session memories (`~\u002F.claude\u002Fprojects\u002F*\u002Fmemory\u002F`)\n4. `hermes sqlite` — `~\u002F.hermes\u002Fstate.db` (`messages` table + FTS5 trigram index). NOTE: `~\u002F.hermes\u002Fmemory.db` is 0 bytes — DO NOT use it\n5. `hermes briefings` — `~\u002F.hermes\u002Fmemory\u002Fbriefing-*.md`, `mcp-mail-ack-log.md`\n6. `hermes index` — `~\u002F.hermes\u002FMEMORY.md`\n7. `wiki` — `~\u002Fllm_wiki\u002F`\n8. `history` — `~\u002F.claude\u002Fprojects\u002F*\u002F*.jsonl` (use 2-phase grep with -m flag, never read raw)\n9. `slack` — `mcp__slack__conversations_search_messages` (skip if MCP unavailable)\n\nRun all 9 searches in parallel via `delegate_task` (or `\u002Fe` subagents in Claude Code). Cache TTL = 1 hour, cache dir = `~\u002Fllm_wiki\u002F.cache\u002Fmemory-search\u002F`.\n\n## Parallel fan-out via `delegate_task` (when in-line fan-out isn't viable)\n\nWhen the agent runtime cannot run all 9 searches in a single in-line turn (e.g. Slack-routed session with no `mcp__slack__conversations_search_messages`, or a research task that needs to ingest a multi-MB Google Doc corpus + a 9-store memory search + a file-audit in the same turn), use **3 parallel `delegate_task` calls** instead of one in-line fan-out:\n\n1. **Task A — `file-audit`**: read every file in a known directory tree relevant to the query, capture verbatim content + cross-references + mechanical rules. Returns a structured audit document.\n2. **Task B — `memory-search`**: run the 9-store fan-out with **multiple fused queries** (don't run one search per store per query — fuse 3-5 related queries and accept partial overlap).\n3. **Task C — `domain-corpus`**: any third storage class the task needs (Google Drive via `gog drive search`, Beads, local repo greps). Returns an inventory table.\n\nThis is the pattern that worked for \"redesign all god\u002Fmultiverse mechanics\" on 2026-07-20: 3 parallel subagent tasks → 3 ~20-50K-char structured audits → single human-readable synthesis in the parent session. Cache the 3 task outputs as `\u002Ftmp\u002Fredesign_task{0,1,2}.md` so they can be re-read in chunks (read_file truncates at ~50K chars inline).\n\n**Don't** delegate the synthesis step itself. The parent session must own the cross-referencing and the user-facing summary — subagent summaries are self-reports, not verified findings.\n\n**Don't** mix `delegate_task` with `web_extract` \u002F `web_search` in the same batch — different tool availability profiles, and Tavily is disabled in this runtime per env-preferences.\n\n## Delivery contract — receipts before questions\n\nWhen the user asks \"find + read X\" (a multi-source research task), **deliver the receipts first**, then ask the next-step question. The 2026-07-20 \"redesign god\u002Fmultiverse mechanics\" session was corrected by the user mid-flight with \"Status on this and did you truly find and read aizen campaign and all the others I asked?\" because the agent had moved to a `clarify` tool call without first posting the inventory table. Pitfall pattern:\n\n- WRONG: read sources → draft `clarify` choice list → post \"Pick: A\u002FB\u002FC\"\n- RIGHT: read sources → post inventory table (file ID, size, mod date, 1-sentence \"why this matters\") → THEN ask single-scope question\n\nThe inventory table IS the deliverable for any \"find and read X\" task. The next-step question (if any) goes AFTER it.\n\n## Per-runtime invocation\n\n| Runtime | How to invoke |\n|---|---|\n| Claude Code \u002F Codex | Type `\u002Fms \u003Cquery>` (slash command resolves to `~\u002F.claude\u002Fcommands\u002Fms.md`) |\n| Hermes (any runtime) | `skill_view(name='memory-search')` reads THIS overlay, then execute the 9-store fan-out |\n- Cron \u002F launchd \u002F cmux | `skill_view(name='memory-search')` + execute fan-out via `delegate_task` |\n\n**Pitfall — `web_extract` is broken on plain-text endpoints in this runtime (confirmed 2026-07-10):** Calls to `web_extract(urls=[\"https:\u002F\u002F...github...\u002Fraw\u002F...\"])` fail with `\"DuckDuckGo (ddgs) is a search-only backend and cannot extract URL content. Set web.extract_backend to firecrawl, tavily, exa, or parallel.\"` DDGS is the configured `web.extract_backend` and is search-only. **Fallback: use `terminal(curl)` for any plain-text endpoint** (`.md`, `.txt`, `.json`, `.yaml`, `raw.githubusercontent.com`, documented API endpoints). For JS-rendered or interactive pages, use the Aside browser (`mcp__aside-mcp__*`) or Playwright headless (`mcp__playwright-mcp`). Never retry `web_extract` expecting a different result on the same URL — it fails identically. The env-preferences rule already says \"prefer curl via terminal for plain-text endpoints\" but the overlay didn't enforce it; this pitfall codifies it as a known failure mode to skip past on the first try.\n\n**Pitfall — WorldArchitect campaign search by premise lives in TWO stores (Firestore AND wiki raw transcripts):**\n\nWA campaign premises are duplicated across Firestore (live data) and the LLM wiki (ingested snapshots from `download-campaign`). A premise-only search that hits Firestore alone will return false positives and miss the wiki-ingested original where the user's own words live.\n\n| Store | Path | Holds |\n|---|---|---|\n| Firestore (live) | `users\u002F{uid}\u002Fcampaigns\u002F{campaign_id}\u002Fstory\u002F{entry_id}` | LLM-generated description blocks for the first ~5 entries; premise paraphrased |\n| Wiki raw transcripts | `~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002F\u003Ccampaign_id>\u002F\u003CTitle>_\u003Cid>.md` \u002F `.txt` \u002F `_game_state.json` | Full session transcripts — premise is in the player's opening \"God Mode:\" prompt and first 1-3 scenes |\n| Wiki source summaries | `~\u002Fllm_wiki\u002Fwiki\u002Fsources\u002F\u003Cslug>.md` | Curated one-paragraph summary per ingested campaign |\n| Wiki catalog index | `~\u002Fllm_wiki\u002Fwiki\u002Findex.md` | One-line entry per campaign — fastest signal for \"do we have anything on this trope?\" |\n\n**When to fire this pitfall:** User asks \"find my WA campaign where [premise]\" AND the Firestore scan returns matches that don't describe the user's premise AND the user hints \"the wiki\" \u002F \"I think the campaign might be in the LLM wiki.\" Switch immediately to wiki fan-out — do not re-scan Firestore with broader keywords.\n\n**Recipe when user names a trope (\"demon lord reincarnation,\" \"investigate daughter from past life,\" \"Isekai\"):**\n\n```bash\n# 1. Wiki catalog index — fastest (curated one-liners)\ngrep -i -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fwiki\u002Findex.md\n\n# 2. Wiki source summaries — paraphrased premise per campaign\ngrep -lir -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fwiki\u002Fsources\u002F\n\n# 3. Wiki raw transcripts — full text (premise in opening God Mode prompt)\ngrep -lir -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002F\n\n# 4. Wiki concepts\u002Fentities — cross-refs (faction, character, setting pages)\ngrep -lir -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fwiki\u002Fconcepts\u002F ~\u002Fllm_wiki\u002Fwiki\u002Fentities\u002F\n```\n\n**Worked example (2026-07-28):** user asked \"find the campaign where I was reincarnated and investigating my daughter from a past life.\" Firestore scan returned 14 false positives (`Aristocrat reborn V2` Sylphina being reincarnated as a seventh daughter; `Gaia Julia` Caesarion \"thinks he is the reincarnation of Horus\"; `Alexiel` absorbing a demon king's heart — not reincarnation as one). User follow-up: \"I was a demon lord or demon king reincarnation I think the campaign might be in the LLM wiki.\" Wiki grep on `reincarnat|reborn|iseki` immediately surfaced `~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002FdUfl4Adb3oH6foczNFSZ\u002FIseki v1_dUfl4Adb.txt`. Opening God Mode prompt: \"Let's make me a reincarnation of a great demon lord… I killed half the worlds population but I had a good reason and I was level 25 but a band of heroes finally defeated me but I only lost because my child's life was in danger during battle.\" Scene 19 confirmed the daughter from a past life: \"Future plot arc where I meet my child again from when I was a demon lord. She's now level 20 and will be primary antagonist for an arc.\" Both descriptions the user gave across two turns landed on this single campaign — `Iseki v1` \u002F character `Renjiro` \u002F Firestore campaign ID `dUfl4Adb3oH6foczNFSZ` \u002F 112 story entries \u002F created 2026-06-19 \u002F last played 2026-06-27. **Lesson:** the user's own words live in the God Mode opening of the raw transcript, NOT in the Firestore description block which the LLM rewrites. Always include `~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002F` in the search path when premise-only Firestore search returns false positives.\n\n## Aggregation output format\n\n```\n# Memory Search: \"\u003Cquery>\"\n\n## ~\u002Froadmap\n[results]\n\n## Beads\n[results]\n\n## Claude Memories\n[results]\n\n## Hermes SQLite\n[results]\n\n## Hermes Briefings\n[results]\n\n## Hermes Index\n[results]\n\n## Wiki\n[results]\n\n## History\n[results]\n\n## Slack\n[results]\n```\n\n## Cross-references\n\n- Canonical implementation: `~\u002F.claude\u002Fskills\u002Fmemory-search\u002FSKILL.md` (Claude Code user-scope)\n- Trigger rule: `~\u002F.hermes\u002Fworkspace\u002FSOUL.md` `## COMMIT: ms-on-new-task`\n- Per-session fan-out: `~\u002F.hermes\u002Fworkspace\u002FAGENTS.md` `Session-Start Recall Routine`\n- Audit detector: `~\u002F.hermes\u002Fscripts\u002Faudit_ms_proactive_firing.sh` (verifies firing rate after each deploy)\n- Mirror: `~\u002F.codex\u002Fskills\u002Fmemory-search\u002FSKILL.md` (Codex-readable, kept in sync)\n- Bug-ref: 2026-07-02 Slack C0AJ3SD5C79 ts 1783036536.864119 — user asked to root-cause + fix `\u002Fms` not firing proactively","# Memory Search (Hermes-side overlay)\n\n**This file is the Hermes-side resolver entry for the `memory-search` skill.**\nThe canonical implementation lives at `~\u002F.claude\u002Fskills\u002Fmemory-search\u002FSKILL.md` (Claude Code user-scope).\nHermes's `skill_view(name='memory-search')` resolves this overlay directly; if your runtime cannot find this overlay, fall back to the Claude-side file.\n\n## Why this overlay exists (added 2026-07-02)\n\nBefore 2026-07-02, `~\u002F.hermes\u002Fskills\u002Fmemory-search\u002FSKILL.md` did NOT exist. SOUL.md's `## COMMIT: ms-on-new-task` told Hermes agents to call `skill_view(name='memory-search')` but the resolver could not find it from `~\u002F.hermes\u002Fskills\u002F` — only from `~\u002F.claude\u002Fskills\u002F`. Telemetry from `~\u002F.hermes\u002Fstate.db` showed 0 of the 1,951 tool-using sessions in 7 days called `memory-search` via `skill_view`; only the slash-command surface (`\u002Fms`) worked, and only from Claude Code \u002F Codex runtimes. This overlay closes the resolver gap so `skill_view(name='memory-search')` works from any runtime (Slack, CLI, cron, terminal).\n\n## How to execute the 9-store fan-out\n\nRead the canonical implementation at `~\u002F.claude\u002Fskills\u002Fmemory-search\u002FSKILL.md` and execute its `Execution` section. The 9 sources are:\n\n1. `~\u002Froadmap` — Project roadmaps and planning docs (`~\u002Froadmap\u002F`)\n2. `beads` — Issue\u002Fbead tracking (`br search \"$QUERY\" --json | head -40`)\n3. `claude memories` — Session memories (`~\u002F.claude\u002Fprojects\u002F*\u002Fmemory\u002F`)\n4. `hermes sqlite` — `~\u002F.hermes\u002Fstate.db` (`messages` table + FTS5 trigram index). NOTE: `~\u002F.hermes\u002Fmemory.db` is 0 bytes — DO NOT use it\n5. `hermes briefings` — `~\u002F.hermes\u002Fmemory\u002Fbriefing-*.md`, `mcp-mail-ack-log.md`\n6. `hermes index` — `~\u002F.hermes\u002FMEMORY.md`\n7. `wiki` — `~\u002Fllm_wiki\u002F`\n8. `history` — `~\u002F.claude\u002Fprojects\u002F*\u002F*.jsonl` (use 2-phase grep with -m flag, never read raw)\n9. `slack` — `mcp__slack__conversations_search_messages` (skip if MCP unavailable)\n\nRun all 9 searches in parallel via `delegate_task` (or `\u002Fe` subagents in Claude Code). Cache TTL = 1 hour, cache dir = `~\u002Fllm_wiki\u002F.cache\u002Fmemory-search\u002F`.\n\n## Parallel fan-out via `delegate_task` (when in-line fan-out isn't viable)\n\nWhen the agent runtime cannot run all 9 searches in a single in-line turn (e.g. Slack-routed session with no `mcp__slack__conversations_search_messages`, or a research task that needs to ingest a multi-MB Google Doc corpus + a 9-store memory search + a file-audit in the same turn), use **3 parallel `delegate_task` calls** instead of one in-line fan-out:\n\n1. **Task A — `file-audit`**: read every file in a known directory tree relevant to the query, capture verbatim content + cross-references + mechanical rules. Returns a structured audit document.\n2. **Task B — `memory-search`**: run the 9-store fan-out with **multiple fused queries** (don't run one search per store per query — fuse 3-5 related queries and accept partial overlap).\n3. **Task C — `domain-corpus`**: any third storage class the task needs (Google Drive via `gog drive search`, Beads, local repo greps). Returns an inventory table.\n\nThis is the pattern that worked for \"redesign all god\u002Fmultiverse mechanics\" on 2026-07-20: 3 parallel subagent tasks → 3 ~20-50K-char structured audits → single human-readable synthesis in the parent session. Cache the 3 task outputs as `\u002Ftmp\u002Fredesign_task{0,1,2}.md` so they can be re-read in chunks (read_file truncates at ~50K chars inline).\n\n**Don't** delegate the synthesis step itself. The parent session must own the cross-referencing and the user-facing summary — subagent summaries are self-reports, not verified findings.\n\n**Don't** mix `delegate_task` with `web_extract` \u002F `web_search` in the same batch — different tool availability profiles, and Tavily is disabled in this runtime per env-preferences.\n\n## Delivery contract — receipts before questions\n\nWhen the user asks \"find + read X\" (a multi-source research task), **deliver the receipts first**, then ask the next-step question. The 2026-07-20 \"redesign god\u002Fmultiverse mechanics\" session was corrected by the user mid-flight with \"Status on this and did you truly find and read aizen campaign and all the others I asked?\" because the agent had moved to a `clarify` tool call without first posting the inventory table. Pitfall pattern:\n\n- WRONG: read sources → draft `clarify` choice list → post \"Pick: A\u002FB\u002FC\"\n- RIGHT: read sources → post inventory table (file ID, size, mod date, 1-sentence \"why this matters\") → THEN ask single-scope question\n\nThe inventory table IS the deliverable for any \"find and read X\" task. The next-step question (if any) goes AFTER it.\n\n## Per-runtime invocation\n\n| Runtime | How to invoke |\n|---|---|\n| Claude Code \u002F Codex | Type `\u002Fms \u003Cquery>` (slash command resolves to `~\u002F.claude\u002Fcommands\u002Fms.md`) |\n| Hermes (any runtime) | `skill_view(name='memory-search')` reads THIS overlay, then execute the 9-store fan-out |\n- Cron \u002F launchd \u002F cmux | `skill_view(name='memory-search')` + execute fan-out via `delegate_task` |\n\n**Pitfall — `web_extract` is broken on plain-text endpoints in this runtime (confirmed 2026-07-10):** Calls to `web_extract(urls=[\"https:\u002F\u002F...github...\u002Fraw\u002F...\"])` fail with `\"DuckDuckGo (ddgs) is a search-only backend and cannot extract URL content. Set web.extract_backend to firecrawl, tavily, exa, or parallel.\"` DDGS is the configured `web.extract_backend` and is search-only. **Fallback: use `terminal(curl)` for any plain-text endpoint** (`.md`, `.txt`, `.json`, `.yaml`, `raw.githubusercontent.com`, documented API endpoints). For JS-rendered or interactive pages, use the Aside browser (`mcp__aside-mcp__*`) or Playwright headless (`mcp__playwright-mcp`). Never retry `web_extract` expecting a different result on the same URL — it fails identically. The env-preferences rule already says \"prefer curl via terminal for plain-text endpoints\" but the overlay didn't enforce it; this pitfall codifies it as a known failure mode to skip past on the first try.\n\n**Pitfall — WorldArchitect campaign search by premise lives in TWO stores (Firestore AND wiki raw transcripts):**\n\nWA campaign premises are duplicated across Firestore (live data) and the LLM wiki (ingested snapshots from `download-campaign`). A premise-only search that hits Firestore alone will return false positives and miss the wiki-ingested original where the user's own words live.\n\n| Store | Path | Holds |\n|---|---|---|\n| Firestore (live) | `users\u002F{uid}\u002Fcampaigns\u002F{campaign_id}\u002Fstory\u002F{entry_id}` | LLM-generated description blocks for the first ~5 entries; premise paraphrased |\n| Wiki raw transcripts | `~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002F\u003Ccampaign_id>\u002F\u003CTitle>_\u003Cid>.md` \u002F `.txt` \u002F `_game_state.json` | Full session transcripts — premise is in the player's opening \"God Mode:\" prompt and first 1-3 scenes |\n| Wiki source summaries | `~\u002Fllm_wiki\u002Fwiki\u002Fsources\u002F\u003Cslug>.md` | Curated one-paragraph summary per ingested campaign |\n| Wiki catalog index | `~\u002Fllm_wiki\u002Fwiki\u002Findex.md` | One-line entry per campaign — fastest signal for \"do we have anything on this trope?\" |\n\n**When to fire this pitfall:** User asks \"find my WA campaign where [premise]\" AND the Firestore scan returns matches that don't describe the user's premise AND the user hints \"the wiki\" \u002F \"I think the campaign might be in the LLM wiki.\" Switch immediately to wiki fan-out — do not re-scan Firestore with broader keywords.\n\n**Recipe when user names a trope (\"demon lord reincarnation,\" \"investigate daughter from past life,\" \"Isekai\"):**\n\n```bash\n# 1. Wiki catalog index — fastest (curated one-liners)\ngrep -i -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fwiki\u002Findex.md\n\n# 2. Wiki source summaries — paraphrased premise per campaign\ngrep -lir -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fwiki\u002Fsources\u002F\n\n# 3. Wiki raw transcripts — full text (premise in opening God Mode prompt)\ngrep -lir -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002F\n\n# 4. Wiki concepts\u002Fentities — cross-refs (faction, character, setting pages)\ngrep -lir -E \"\u003Ctrope-keywords>\" ~\u002Fllm_wiki\u002Fwiki\u002Fconcepts\u002F ~\u002Fllm_wiki\u002Fwiki\u002Fentities\u002F\n```\n\n**Worked example (2026-07-28):** user asked \"find the campaign where I was reincarnated and investigating my daughter from a past life.\" Firestore scan returned 14 false positives (`Aristocrat reborn V2` Sylphina being reincarnated as a seventh daughter; `Gaia Julia` Caesarion \"thinks he is the reincarnation of Horus\"; `Alexiel` absorbing a demon king's heart — not reincarnation as one). User follow-up: \"I was a demon lord or demon king reincarnation I think the campaign might be in the LLM wiki.\" Wiki grep on `reincarnat|reborn|iseki` immediately surfaced `~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002FdUfl4Adb3oH6foczNFSZ\u002FIseki v1_dUfl4Adb.txt`. Opening God Mode prompt: \"Let's make me a reincarnation of a great demon lord… I killed half the worlds population but I had a good reason and I was level 25 but a band of heroes finally defeated me but I only lost because my child's life was in danger during battle.\" Scene 19 confirmed the daughter from a past life: \"Future plot arc where I meet my child again from when I was a demon lord. She's now level 20 and will be primary antagonist for an arc.\" Both descriptions the user gave across two turns landed on this single campaign — `Iseki v1` \u002F character `Renjiro` \u002F Firestore campaign ID `dUfl4Adb3oH6foczNFSZ` \u002F 112 story entries \u002F created 2026-06-19 \u002F last played 2026-06-27. **Lesson:** the user's own words live in the God Mode opening of the raw transcript, NOT in the Firestore description block which the LLM rewrites. Always include `~\u002Fllm_wiki\u002Fraw\u002Fcampaigns\u002F` in the search path when premise-only Firestore search returns false positives.\n\n## Aggregation output format\n\n```\n# Memory Search: \"\u003Cquery>\"\n\n## ~\u002Froadmap\n[results]\n\n## Beads\n[results]\n\n## Claude Memories\n[results]\n\n## Hermes SQLite\n[results]\n\n## Hermes Briefings\n[results]\n\n## Hermes Index\n[results]\n\n## Wiki\n[results]\n\n## History\n[results]\n\n## Slack\n[results]\n```\n\n## Cross-references\n\n- Canonical implementation: `~\u002F.claude\u002Fskills\u002Fmemory-search\u002FSKILL.md` (Claude Code user-scope)\n- Trigger rule: `~\u002F.hermes\u002Fworkspace\u002FSOUL.md` `## COMMIT: ms-on-new-task`\n- Per-session fan-out: `~\u002F.hermes\u002Fworkspace\u002FAGENTS.md` `Session-Start Recall Routine`\n- Audit detector: `~\u002F.hermes\u002Fscripts\u002Faudit_ms_proactive_firing.sh` (verifies firing rate after each deploy)\n- Mirror: `~\u002F.codex\u002Fskills\u002Fmemory-search\u002FSKILL.md` (Codex-readable, kept in sync)\n- Bug-ref: 2026-07-02 Slack C0AJ3SD5C79 ts 1783036536.864119 — user asked to root-cause + fix `\u002Fms` not firing proactively",{"name":5,"description":7},"main","05df7380981a2c4af868ce0fa57962ae0eea62a9","hermes\u002Fskills\u002Fmemory-search",0,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills","https:\u002F\u002Fgithub.com\u002Fjleechanorg","2026-11-11 22:19:36",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add jleechanorg\u002Fjleechan-skills --skill memory-search",{"tool":63,"command":64},"bunx","bunx skills add jleechanorg\u002Fjleechan-skills --skill memory-search",{"tool":66,"command":67},"pnpm","pnpm dlx skills add jleechanorg\u002Fjleechan-skills --skill memory-search","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002FSKILL.md",true,[71,77,81,85,89,93,99],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"commands\u002Fad.md","REFERENCE","参考文档",2576,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002Fcommands\u002Fad.md",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"commands\u002Fms.md",2517,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002Fcommands\u002Fms.md",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"GLOSSARY.md",17493,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-writing-great-skills\u002FGLOSSARY.md",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fwa-campaign-premise-search-examples.md",4922,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002Freferences\u002Fwa-campaign-premise-search-examples.md",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fwa-campaign-premise-search.md",6656,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002Freferences\u002Fwa-campaign-premise-search.md",{"path":94,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":97,"sourceHtmlUrl":98},"tests\u002Ftest_memory_search_overlay.py","SCRIPT","脚本",5784,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002Ftests\u002Ftest_memory_search_overlay.py",{"path":100,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":101,"sourceHtmlUrl":102},"tests\u002Ftest_ms_proactive_firing.py",10611,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fmemory-search\u002Ftests\u002Ftest_ms_proactive_firing.py",[104,120,140,154,168,184],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":45},"01M716Y5MTJ6GYJZ2ATXCJK8G4","instinct","Use when the user invokes \u002Finstinct or \u002Fin, or asks to \"message Instinct\", \"ask Instinct\", \"tell Instinct\", \"check Instinct\", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Finstinct\u002FSKILL.md",[],[106,34,111,112,113,33,114,115,116,117,118,119],"when","replies","check","identity","whatsapp","gmail","read","message","ask",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":131,"publishedAt":45},"01M716Y4HF7FVVMJSA2CCVN5VF","hr","Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhr\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[122,132,133,134,23,38,135,136,137,138,139],"resume","compatibility","provenance","produce","alias","briefing","state","fresh",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":147,"publishedAt":45},"01M716Y1FFNFKFJYYKF8HQA6T8","history-resume","Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhistory-resume\u002FSKILL.md",[146],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},[38,132,148,149,34,150,137,151,23,152,153,138,139],"history resume","branch","analysis","repository","worktree","sources",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":45},"01M716XWXJ8EPHK4RH9T14TR85","grok","Alias for the canonical grokbot browser conversation workflow; \u002Fgrok talks to the Grok bot the same way \u002Fdot talks to Dot.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgrok\u002FSKILL.md",[],[156,161,162,163,23,164,136,165,166,167],"dot","bot","workflow","canonical","conversation","browser","grokbot",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":45},"01M70N9Q07DTE0EW5KFXMMMSJ0","codexa-bench","Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcodexa-bench\u002FSKILL.md",[],[175,176,177,33,178,23,179,180,181,182,183],"codexa bench","work","split","default","duplicate","task","compare","normal","codex",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":188,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":203,"publishedAt":45},"01M6C24S2X60SP8BBFGAEKPEGW","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[192,197,200],{"categoryNo":193,"categoryName":194,"taxonomyType":195,"taxonomyTypeDesc":196},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":198,"categoryName":199,"taxonomyType":195,"taxonomyTypeDesc":196},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":201,"categoryName":202,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000032","设计师",[204,205,206,33,207,208,209,34,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,111,228],"frontend","design","frontend design","generic","ui design","react","html","components","code","artifacts","ui","aesthetics","Production","web components","landing","applications","quality","web","css","create","examples","with","react components","web ui","pages"]