NAI OS

One offline knowledge base, six agents

A local wiki isn't a web tool — so it slots straight past the no-web-tools boundary that /nai-review and /nai-spec-drafter deliberately enforce.

The research library

Following on from context's Data layer: a personal knowledge base — a local …/library-wiki/wiki/ folder (base path omitted here; it's machine-specific and not part of this repo) — sits on the same machine as this repo, read-only. Its entry point is index.md — a catalog of every page in the wiki — and pages are found by matching a requested topic against each page's topics frontmatter field. No agent may ever write there; it's the user's, curated by hand, outside this repo entirely.

Six agents across three systems were given read access to it, each one already doing research or grounding a review/draft in evidence rather than memory:

AgentSystemtools: changeWhy
tech-radar/nai-chief-of-staff, /nai-newsletter + Read, Globcheck the library before spending a web query on ground it already covers
company-research/nai-chief-of-staff + Read, Globsame, for a company or its market/segment
option-verifier/nai-option-study + Glob (already had Read)a library page can count toward a PASS the same as a cited web source
ea-context-reviewer/nai-option-study none — already had Read, Globturns a memory-filled gap into a library-checked one
review-scoper/nai-review nonesame
spec-context-scoper/nai-spec-drafter nonesame

Why this doesn't reopen the no-web-tools boundary

/nai-review and /nai-spec-drafter have no web tools anywhere in the system, by design: nothing they cite can come from a source that could change or vanish out from under a finished review. A local, hand-curated wiki isn't that — it's a filesystem read, not a network call, and it's exactly as inspectable and stable as the dropped files those agents already ground themselves in. Granting Read/Glob against it doesn't touch the boundary those systems were built to hold.

The three no-web-tools scopers already carried a line almost identical across all three: “a gap in the dropped material is stated as a gap, never filled from memory.” That line now reads “… uncovered by a library page, is stated as a gap, never filled from memory” — the library becomes a second thing to check before declaring absence, not a loosening of what counts as evidence.

The rule this serves

A citable local source turns “no evidence found” into “checked the library too, still nothing” — without opening a network path a design deliberately closed. Read access to a stable, hand-curated store is not the same risk as a live web fetch, so extending it to the offline agents costs nothing they were protecting against.

NextWriting a new one, and what it costs