← Back to docs index

Requirements: PKMS (Personal Knowledge Management System)

Based on Karpathy's LLM Wiki pattern. Served at https://pkms.hermesbillpay.com.


Core Concept

A personal knowledge base where the LLM does the bookkeeping. Three layers:

| Layer | What | Who owns it | |-------|------|-------------| | Layer 1 — Raw Sources | PDFs, articles, notes. Immutable. | Human curates | | Layer 2 — The Wiki | Structured, interlinked markdown pages. | LLM writes | | Layer 3 — The Schema | AGENTS.md rules for how the LLM behaves. | Defined once |

Three operations:

  1. Ingest — drop a source → LLM reads, summarizes, updates 10-15 wiki pages, cross-links
  2. Query — ask a question → LLM reads the pre-synthesized wiki, answers with citations
  3. Lint — LLM audits wiki for contradictions, orphans, stale data

MVP Scope (v0.1)

MUST have

Wiki Viewer (web UI)

Source Upload

Ingest Operation

Query Operation

Lint Operation

NICE to have (v0.2+)

OUT of scope (v0.1)


Technical Constraints


User Flow

1. Pankaj opens https://pkms.hermesbillpay.com
2. Sees wiki index with all pages listed
3. Clicks "Upload" → selects a PDF → file lands in raw/
4. Clicks "Ingest" on the uploaded file
5. LLM processes: reads source → generates wiki pages → updates index
6. Pankaj browses the new pages, clicks [[links]] between them
7. Types a question → LLM reads wiki → returns synthesized answer with [[citations]]
8. Periodically clicks "Lint" → LLM reports wiki health

Success Criteria


Open Questions (for approval)

  1. LLM backend: Use Pankaj's existing OpenRouter API key, or configure a separate one? Using the same key means PKMS inherits the same model/provider Pankaj uses for Hermes.

  2. Directory layout for wiki pages: Karpathy's demo uses wiki/sources/, wiki/concepts/, wiki/people/, wiki/examples/. Do we adopt this or let the LLM decide the structure based on content?

  3. Lint frequency: Manual trigger only, or auto-lint on every ingest?