feat(kb): fill brain from eslider portfolio, evidence gates green

- kb/index: index yaml seeds (knowledge-mesh, workspace catalogs) as leafs
- kblib: open_readonly no longer writes schema; INSTALL extensions helper
- facts/audit db: drop init_schema on read-only connection
- kb/eval: assert by text fragment not stale leaf ids; recall@5 = 1.0
- corpus: var/kb.lbug rebuilt with eslider/cv (4580 leafs) + ops facts

Confirmed facts now: eslider DevOps/25yr engineer (CV README x career-timeline)
+ 13 ops facts (docker ps x compose, ssh x docs).
This commit is contained in:
2026-08-10 22:12:52 +01:00
parent b1a7ee0d5f
commit 6f766226f6
4 changed files with 22 additions and 12 deletions
+1 -2
View File
@@ -24,13 +24,12 @@ sys.path.insert(0, str(ROOT / "tools"))
def audit_db() -> list[str]:
from kblib import connect, init_schema
from kblib import connect
from kblib import VAR
dbpath = VAR / "kb.lbug"
if not dbpath.exists():
return ["no database yet; run bin/kb/index first"]
db, conn = connect(dbpath)
init_schema(conn)
r = conn.execute("MATCH (l:Leaf {root:'facts'}) RETURN l.id, l.source, l.loc, l.how, l.confidence")
problems: list[str] = []
for lid, source, loc, how, conf in r.get_all():