Working today

File canon and derived index

Markdown with YAML front matter, one file per entity; SQLite with FTS5 rebuilt from it on demand.

Mechanical query path

Stemming for English and Russian, an editable synonym dictionary, field weighting and a relevance threshold. No model is reachable from this path, and a test enforces that by installing an adapter that raises if called.

Fact packs with provenance

Claims, sources with role and date, open gaps and conflicts — over MCP and over HTTP.

Ingest pipeline

Files, pasted text, URLs and bounded crawls. Entity discovery, stubs, gap opening, claim and evidence extraction, duplicate and conflict detection. Idempotent: unchanged files never reach the model twice.

Source versioning

Editing a document keeps the previous revision, so older citations stay checkable.

Access model

Anonymous and owner, filtered in SQL before retrieval and on every graph step, with privacy closure over the subgraph.

MCP server

Read tools always; write tools only under an explicit flag, owner-only even then.

Web UI and CLI

A public site, an owner-only explorer behind a login, and a CLI covering the same operations.

Open benchmark

Dataset, scoring script and dated results in the repository, negative outcomes included.

Being worked on

Retrieval quality

Mechanical search recalls less than reading whole documents. Better field weighting, phrase handling and a wider synonym dictionary are the current work; a stronger engine behind the same interface is the fallback.

A second benchmark corpus

The golden set is this project’s own documentation. An unrelated corpus is needed before the numbers mean anything general.

Third-party comparison

Getting mem0 and Zep stood up properly so a comparison can be published without hand-waving.

Readable entity pages

For people, an entity should read as an article with its sources, relations and gaps. It is sketched, not finished.

Deliberately deferred

Decided against for now, with the reason. None of these are promises.

Embedding-based retrieval

Would improve recall and reintroduce an opaque ranking step. Worth doing only once the mechanical path has been pushed as far as it goes, and only behind the same interface.

Multi-tenant isolation

The access model is anonymous-or-owner. Separating one client’s private knowledge from another’s belongs with the federation work, not before it.

Bring-your-own-storage federation

The long-term intent is that private knowledge never leaves the client. The seams are in place; the client side is not built.

Publishing private knowledge

Moving something from private to public needs an anonymisation step that does not exist yet, so the web UI refuses it outright rather than offering a button that half works.

A hosted service

Nothing to announce. RTFM is something you run yourself.

Known weaknesses

Stated here so nobody has to discover them the hard way.

Extraction quality bounds everything

Facts are only as good as what the extraction model proposed. A missed statement is invisible to every layer above it.

Lexical retrieval misses paraphrase

A question sharing no vocabulary with the source can come back empty. Empty is honest, but it is still a miss.

Small scale so far

Run against thousands of entities, not millions. Nothing is claimed beyond what has been measured.