Hyperresearch stray cleanup and vault-root guard
Section titled “Hyperresearch stray cleanup and vault-root guard”Task KB-OS-cleanup, 2 rounds, rock: 6, category: Other. Continuation: KB-OS-okf-evaluation.
Root cause
Section titled “Root cause”- The
/hyperresearchentry skill (Step 0) runshyperresearch init .whenever.hyperresearch/is missing in the literal working directory. The CLI has no vault-path option:Vault.discoverwalks up from the current directory only. - A run started from a KB session made
D:\FSS\KBa vault, creating.hyperresearch/,research/and a 15 KBCLAUDE.mdat the KB root. - A 2026-09-15 cleanup moved the vault into
KB/archive/but leftKB/CLAUDE.mdbehind. That file auto-loads into every KB session and tells agents to writeresearch/...relative to the current directory, soKB/research/runs/regrew 80 minutes later. - The real vault sat at
/home/ta, so~/CLAUDE.mdloaded into every session under the home folder (monorepo, ai-config, utils). This was confirmed in a monorepo session transcript.
What changed
Section titled “What changed”- KB root cleaned. Moved out:
archive/,research/,CLAUDE.mdandapps/. Theapps/folder held two emptysd-appstubs that Obsidian created when a dead repo-relative link was clicked on 2026-09-01. Nothing was unique, because the curated copies live in the vault. Talbot then deleted the moved-aside folder. - Vault moved from
/home/tato/home/ta/hyperresearch/. Thestatusoutput was identical apart from the path: 152 notes, 301 research files. The vault database stores relative paths, so the move was safe.~and the KB now returnNO_VAULT. - Guard hook deployed (ai-config
c0fcfa1,4dcce3c).claude/hooks/hyperresearch-root-guard.shis aPreToolUseBash hook that blockshyperresearch init|install|setupin command position anywhere except~/hyperresearch;install --globalis allowed.- Test suite: 16/16 pass, including mention-only cases.
- Live check: a real call was blocked, and a command that only mentioned the words ran.
- herdr
researchtab added toTABSin~/utils/herdr-workspace.shand created live, with its working directory set to~/hyperresearch. Software Dev/stays inCore/Processes, by Talbot’s decision. Its folder note now says why: Processes owns the standards and IT runs them.- OKF evaluation spun out as KB-OS-okf-evaluation.
Gotchas
Section titled “Gotchas”- Settings drift. The ai-config
settings.wsl.jsonstill heldmodel: claude-sonnet-5, which Talbot’s/modelswitch had already removed from the deployed settings. Deploying unchanged would have silently reverted him to Sonnet, so the key was removed from source first. This is the “diff before you deploy” rule working as intended. - First guard version over-matched. A substring match blocked the agent’s own test command because the text contained the trigger words. The fix was to match command position only.
hyperresearch repairre-injectsCLAUDE.mdat the vault root by default. Deleting that file is never a durable fix; the vault’s location is.
Lesson candidates (pending Talbot’s approval, not promoted)
Section titled “Lesson candidates (pending Talbot’s approval, not promoted)”- A tool that creates its working folder in the current directory and injects a
CLAUDE.mdneeds thatCLAUDE.mdremoved as part of any cleanup, because it keeps steering sessions there. Target:ai-config/LESSONS.md. - Bash guard hooks should match only in command position, and their test suite needs cases that merely mention the trigger. Target:
ai-config/LESSONS.md.
Core/AI/Skills/DASHBOARD.md(hyperresearch row: vault root, start rule, guard)Core/Processes/Software Dev/Software Dev.md(“why here” note)Core/IT/Utils/Custom/herdr-workspace.md(researchtab)- ai-config:
claude/hooks/hyperresearch-root-guard.sh,claude/settings.wsl.json