--- name: kb-search description: >- Deduction search over the 2dph brain (Ladybug graph: ops corpus, portfolio, ssh hosts) with bin/brain/search.go instead of reading files or grepping repos. Use whenever a question starts with "where is", "what runs on", "which file describes", "who is", "how is X done", before opening any documentation. --- # kb-search — deduction over facts and info One embedded Ladybug graph (`var/kb.lbug`, read-only when queried) holding two roots: - **facts** — assertions backed by ≥2 independent sources (docker ps × compose × ssh-config × docs), `confidence: confirmed`. - **info** — descriptive/narrative leafs, searchable, never asserted. Search = deduction: facts root first, info root second, `web-search` as the second independent source when local roots cannot confirm. An answer is `confirmed` only if it comes off the facts root; anything else is `(not confirmed)`. ```bash bin/brain/search.go "Matrix federation" # pointers + snippets, YAML bin/brain/search.go "onlyoffice postgres" --root facts # restrict to confirmed bin/brain/search.go "where is cs-lexicon" --json | yq '.[].ref' bin/brain/get.go --body # full chunk only when needed bin/brain/stats.go # index health bin/brain/eval.go # recall@5 >= 0.95 gate ``` `bin/kb/search` is a deprecated wrapper. `--hop` errors (File/FROM_FILE edges are not wired yet); do not treat it as a graph walk. ## Rules - Search before you read. Never grep a repo for a concept the graph covers. - `--root facts` returns only confirmed evidence-linked answers. Default shows facts first, then info leafs clearly marked `(not confirmed)`. - If recall looks wrong, run `bin/brain/eval.go`; it gates control questions and should stay at or above 95% recall@5. - Escalate to `web-search` (the `web-search` skill) as the independent second source when both local roots cannot confirm; never report an unconfirmed single-source local answer as fact.