All selected work
Second BrainKnowledge system & integrations

A searchable personal wiki linked to its sources

An incremental capture pipeline and searchable reader that turn scattered notes into a source-linked personal wiki.

Privately deployed · Evolving

ValidateA clear view.Source linkedSource notesPublished snapshot
Architecture illustration

The problem

Decisions and useful context get scattered across tools. Importing everything blindly creates a different problem: duplicated notes, uncertain coverage, and polished summaries that are hard to trace back to evidence.

What I built

I built the capture and validation workflow, plus a read-only reader that searches a committed snapshot of the knowledge base.

  • Checkpointed source capture and retry-safe ingestion, so interrupted runs can resume without creating duplicate captures for the same retry.
  • Validation that accounts for pending notes and checks source references before committing generated wiki changes.
  • A FastAPI reader backed by SQLite full-text search, with committed snapshots and separate source-coverage reporting.

The engineering decision

Publishing one coherent snapshot at a time

The reader indexes one committed Git tree. Work still in progress stays out of the reader until it is committed. Rebuilding the index happens atomically, so a refresh does not expose a half-updated collection.

If a refresh fails, the reader can keep serving the last good index and report a degraded state. Capture coverage is tracked separately: a working reader does not imply that every source has been imported.

Interactive model · synthetic data

Change the draft. Keep the reader steady.

Publishing and indexing are separate steps. Explore what happens between them.

Working draftMatches committed note

Source: sample note A

Published readerCurrent snapshot

Interface notes

Keep the interface focused on one useful action.

Source: sample note A

Read-only view

The reader shows the current committed snapshot.

“Checks” means automated structure and source-reference validation, not human approval or a guarantee of accuracy. Validation is illustrated, not executed here. This model does not write notes or Git commits.

What I checked

  • Synthetic regression tests exercise checkpointed ingestion, deduplication, validation, and privacy boundaries.
  • Reader tests verify that uncommitted edits stay hidden and failed refreshes preserve the last good index.
  • The private reader is deployed; source coverage and capture workflows continue to evolve.

Limits

  • Capture coverage is incomplete and varies by source. The system does not promise complete memory or error-free generated summaries.
  • Validation is automated; it should not be confused with a human reviewing every generated note.

Tools and foundations

I built the capture, validation, and reader software around the existing LLM-wiki pattern. Hermes provides the agent runtime and scheduling; FastAPI, Git, and SQLite FTS5 provide the application and storage foundations.