LLM-wiki pattern
Single home for everything that concerns how this wiki operates: the design pattern itself, the operations on it, and the disciplines Denys + Claude layer on top to keep it healthy. Subject-matter content lives elsewhere — under wiki/themes/ (life attention buckets), wiki/sources/ (per-source summaries), wiki/questions/ (open big questions), wiki/synthesis/ (cross-cutting analyses), wiki/calendar/, wiki/entities/.
Sections, in outermost-to-innermost order:
- The pattern — the 5 defining moves
- Two-layer architecture — wiki / schema
- The three operations — ingest / query / lint
- Why this beats RAG: compounding knowledge
- Reactive routing — immediate action on mentions
- Weekly review — Sunday cadence
- Big questions — load-bearing question lifecycle
- Golden rules — hard constraints
- Mental frameworks — thinking lenses
- Open tabs — 5 active + backlog (live table)
The pattern
A design pattern for building personal knowledge bases where an LLM agent incrementally maintains a persistent, interlinked wiki of markdown files sourced from conversation.
Defining moves
- Don’t re-derive on every query (the RAG default) — compile once, then keep current.
- Two layers — see Two-layer architecture.
- Three operations — see The three operations: ingest / query / lint.
- Human role: raise topics, ask questions, decide what matters.
- LLM role: discuss, summarize, cross-reference, file, maintain consistency, route ideas immediately.
Instantiated in this vault as
- Schema:
CLAUDE.md - Index:
index.md - Wiki:
wiki/{entities,themes,system,sources,questions,calendar,synthesis}/
Two-layer architecture
The structural commitment behind the pattern.
| Layer | Owned by | Mutable? | This vault |
|---|---|---|---|
| Wiki | LLM | LLM writes, human reads | wiki/ |
| Schema | Co-evolved | Both edit, deliberately | CLAUDE.md |
- Wiki is the LLM’s working memory across sessions. Free to be rewritten as understanding sharpens.
- Schema is the contract. Changing it changes how all future operations behave — should be a deliberate act.
The three operations: ingest / query / lint
The three operations that define what the LLM does to the wiki. See CLAUDE.md for the concrete procedure in this vault.
Ingest
Conversation → wiki. Denys raises an article or topic; LLM discusses, then writes a source-summary page, updates touched entity/concept pages, links from themes, updates index.md. A single source can touch 10–15 pages.
Query
Ask → answer. Read index.md first, then drill into pages, then synthesize with citations.
Crucial discipline: if the answer is non-trivial and reusable, file it back as a wiki/synthesis/ page. This is what makes explorations compound — otherwise they evaporate into chat history.
Lint
Periodic health check. Look for:
- Contradictions between pages.
- Stale claims.
- Orphan pages (no inbound links).
- Concepts mentioned in 3+ pages without their own page.
- Missing cross-references.
- Gaps a web search could fill.
Produces a wiki/synthesis/lint-YYYY-MM-DD.md report.
Why this beats RAG: compounding knowledge
The property that distinguishes this pattern from RAG: each ingest improves the substrate for future queries instead of leaving the substrate untouched.
What compounds
- Cross-references between entities, concepts, and sources.
- Contradictions flagged and reconciled (or held as open tensions).
- Syntheses across multiple sources, filed as their own pages.
- The index itself — denser and more useful with every ingest.
What doesn’t compound (and why this matters)
A vanilla RAG query pipeline. The retrieval substrate is fixed. Every query rediscovers the same connections the LLM “found” five queries ago, but those discoveries were never written anywhere.
Implication
Effort spent writing back — into entity pages, concept pages, synthesis pages — pays interest. Effort spent in transient chats does not. Hence the file-it-back discipline in Query above.
Reactive routing
When something important is mentioned in conversation, Claude immediately routes it — nothing queues or waits for weekly processing.
Routing decisions
When an idea or mention surfaces:
- Update existing page: If it concerns an entity, theme, or question already in the wiki, update that page directly with new information.
- Backlog increment: If it’s new and not immediately actionable, add it to Open tabs backlog with
Mentions=1. If already in the backlog, increment the mention counter and update Last surfaced to today. - Big question: If it’s load-bearing (multiple dimensions, persistent, not solvable this week), create or update
wiki/questions/<slug>.md. - Synthesis: If it’s a non-trivial insight across multiple sources/ideas, create
wiki/synthesis/<slug>.mdand link from relevant themes.
Nothing sits queued or deferred. Every mention lands in its final destination immediately.
Weekly review
Sunday cadence. Standing operation on the wiki.
Standard agenda
- What was created — scan newly created or significantly updated pages (entities, themes, synthesis, questions). What stood out from the week?
- Habits — scan habit-tracking. Streaks, lapses, triggers from the week.
- Money / business — progress on making-money (toward the $350K-by-2031 number) and nature-business.
- Psyche pass — any patterns showing up that belong in psyche-observation?
- Open tabs check — re-read Open tabs. Is the top 5 still right? Scan the backlog: anything with a rising Mentions count is a promotion candidate — discuss whether it should displace one of the active 5 (and which one). Anything Denys was working on this week that’s not in the top 5 → either it displaces something (deliberately) or it goes/returns to the backlog.
- Rules / frameworks — anything from the week suggesting a new rule (Golden rules) or framework (Mental frameworks), or an existing one breaking down?
- Next week — 1–3 concrete commitments, all inside the top 5. Surface them in calendar (
denystetsenko@gmail.com) via the gcal MCP.
Output
A wiki/synthesis/weekly-review-YYYY-MM-DD.md page each Sunday, sections matching the agenda. Linked from index.md.
Cadence enforcement
If a Sunday passes without a review, the next session should open with: “No weekly review filed for YYYY-MM-DD — want to do one now?” Don’t let it silently slip.
(Stub — first real review will populate the template.)
Big questions
Load-bearing life questions that track important decisions. Different from reactive-routed mentions (which land immediately in entity/backlog/synthesis pages) and from wiki/synthesis/ (finished analyses). A big question:
- Persists for months or years.
- Has multiple incompatible drives pulling on it.
- Accumulates new information, constraints, and shifts in framing over time.
- Resolves into a decision, not a page promotion.
Anticipated split (not yet enforced)
Two sub-categories will likely emerge:
- Practical — where to live, business direction, money allocation, career move.
- Psychological — recurring inner patterns, identity tensions, unresolved emotional loops.
For now both live in wiki/questions/ and are distinguished by category: frontmatter. Split into separate hubs only when the volume justifies it.
File layout
One page per question at wiki/questions/<slug>.md. Slug = short kebab-case verb-phrase (“leave-delft”, “what-business-to-build”).
Page template
---
type: question
category: practical | psychological
status: open | narrowing | decided
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: []
---Sections (in order):
- Question — single sentence stating what’s being decided.
- Dimensions — the axes the question lives on (people, money, time, values, geography…).
- Constraints — hard limits + known unknowns (marked
?). - Options — concrete candidates under consideration. Empty is fine until they emerge.
- Current lean — where Denys is pointing today, in one sentence.
- Open sub-questions — bullet list. The things that need answering before the main question can be.
- Linked themes — which themes this touches.
- Decision log — append-only. Dated entries when the framing shifts, an option is killed, or a partial decision is made. Becomes the historical record of how Denys got to wherever he ends up.
Lifecycle
open— question raised, framing being built.narrowing— options identified; sub-questions being closed off.decided— a decision was made. Page stays; do not delete. The reasoning is the value.
Workflow
- When Denys raises something in conversation that’s bigger than an inbox item — multiple dimensions, persistent, not solvable this week — Claude should propose: “this looks like a big question — file as
wiki/questions/<slug>.md?” rather than burying it ininbox-YYYY-MM-DD.md. - During the Weekly review, scan open questions. For each: did anything happen this week that updates dimensions, constraints, options, or lean? If yes, append to its decision log.
- Cross-link aggressively — a big question almost always touches 2+ themes.
Cross-links from a big question
- Capture lane for things not big enough: Thought inbox.
- Surface-level patterns that recur and might be big-questions in disguise: psyche-observation.
- Anything bumping against Golden rules gets flagged in the question’s decision log.
Open questions (live index)
(One bullet per open page in wiki/questions/. Update when adding/closing.)
- leave-delft — should we leave Delft? (practical, open, 2026-06-29)
- establish-as-sme — become a recognized SME in data / AI / ClickHouse for market-independence (practical, open, 2026-06-29)
Golden rules
Hard constraints. Things Denys has decided are not to be violated, regardless of context.
How Claude uses this
Read this section before responding to anything non-trivial. If a stated plan or pending action conflicts with a rule here, flag it in plain words before doing the action. This is a standing instruction and overrides the “be helpful, get it done” default.
If Denys argues against a rule in the moment, the right move is usually: do not silently capitulate. Either the rule was wrong (in which case we update it here, deliberately) or the in-the-moment argument is wrong (in which case the rule does its job). Don’t carve out one-time exceptions without recording them.
See CLAUDE.md “Framework check” discipline for how Claude operationalizes this check in practice.
Rules
(One line each. If a rule needs a paragraph of context, it’s probably a framework (Mental frameworks), not a rule. Few-and-strong beats many-and-weak.)
- 5 + backlog rule (modified Buffett 5/25): keep exactly 5 active goals; everything else lives in the backlog at Open tabs — not “later”, not “avoid”, but tracked with a mention counter. The backlog isn’t discarded because recurrence is information. Promotion from backlog to top-5 requires demoting one of the active 5 — never grow past 5. When Denys proposes starting something new, Claude must check Open tabs first: if it’s already in the backlog, increment its mention count and ask “this has N mentions — does it now displace one of the active 5?”; if not on either list, file it in the backlog with Mentions=1. Do not silently start work on backlog items.
Mental frameworks
Collection of the lenses Denys uses to think with. Distinct from Golden rules — frameworks are how to look at things; rules are what not to do.
How Claude uses this
Per CLAUDE.md “Framework check” discipline: before responding to a non-trivial decision, plan, or self-report from Denys, scan the items here and on Golden rules. If the proposed action sidesteps a framework or breaks a rule, say so explicitly before going along. Better to be slightly annoying than silently complicit.
See CLAUDE.md “Framework check” discipline for how Claude applies these when evaluating requests.
Frameworks
(One bullet per framework while it’s a one-liner. Promote to its own sub-page once it earns more than a sentence.)
- (empty — add your frameworks one at a time. Examples to delete:)
- e.g. “decisions framed by who you become, not what you get”
- e.g. “five-year compounding default — never optimize a quarter at the expense of a decade”
(Stub.)
Open tabs
Every direction Denys is currently paying attention to. The point of this section is to make the full surface visible at once so it can be prioritized rather than expanded by default.
In Obsidian: open this page, then local graph view. Every linked item below becomes a node — that is the subgraph of attention.
The rule — 5 active + backlog with recurrence (modified Buffett)
Buffett’s original 5/25 — list your top 25 goals, narrow to top 5, fiercely avoid the remaining 20.
Denys’s modification — keep exactly 5 in focus, but the rest are not discarded. They sit in a backlog, each carrying a mention counter. If something keeps surfacing in Denys’s thinking, that recurrence is signal — maybe the rule was wrong and the item deserves promotion. The discipline is not to act on backlog items today, while letting recurrence pressure earn promotion over time.
Why diverge from pure Buffett: the strict “avoid the 20” rule pretends Denys can permanently dismiss things by an act of will. He can’t, and shouldn’t have to. Things he keeps thinking about are information. The backlog catches that information instead of silencing it.
Filed as a hard rule in Golden rules. Re-validated every Weekly review.
Top 5 (active)
(Denys picks. Claude does not pre-fill. Five slots, no more. To add a 6th, an existing one must first be demoted to backlog — never grow past 5.)
- (open)
- (open)
- (open)
- (open)
- (open)
Backlog (tracked, not active)
Everything else lives here. Each row has a Mentions counter and a Last surfaced date.
Claude’s discipline:
- When Denys raises a topic that’s already on the backlog → increment Mentions, update Last surfaced to today.
- When Denys raises a topic that’s not on the backlog and not in the Top 5 → add a new row with
Mentions=1, today’s date. - When Denys proposes starting work on a backlog item → respond with: “this is currently in the backlog with N mentions. Promoting it requires displacing one of the active 5 — which?” Do not silently start work.
- At Weekly review step 6: surface items with rising counts as promotion candidates.
| Item | Mentions | Last surfaced | Notes |
|---|---|---|---|
| Wake at 6:30am daily (habit-tracking) | 1 | 2026-06-29 | lapsed today (no alarm) |
| Same breakfast daily → default-breakfast | 1 | 2026-06-29 | done today |
| Workout 5x/week (habit-tracking) | 1 | 2026-06-29 | |
| Stillness meditation 15min (habit-tracking) | 1 | 2026-06-29 | done today |
| Distraction-free Pomodoro work (habit-tracking) | 1 | 2026-06-29 | |
| Journaling / wiki 15min daily (habit-tracking) | 1 | 2026-06-29 | |
| $350K cumulative by 2031-06-28 → making-money | 1 | 2026-06-29 | the load-bearing financial number |
| Trading strategy (crypto + stocks) → making-money | 2 | 2026-06-30 | undefined; 2026-06-30 added 30-min/day attention cap (containment, not promotion) |
| DCA monthly strategy → making-money | 1 | 2026-06-29 | undefined |
| Nature-business → nature-business | 1 | 2026-06-29 | values-aligned long bet, largely undefined |
| leave-delft | 1 | 2026-06-29 | big question |
| establish-as-sme | 1 | 2026-06-29 | big question |
| Maintain & grow this wiki | 1 | 2026-06-29 | partial overlap with journaling habit |
Promotion mechanics
- Promotion = move row from Backlog → Top 5. Requires demotion of an existing top-5 item back to Backlog (with its prior Mentions count preserved).
- No fixed mention threshold — the weekly review judges relative recurrence and why something keeps surfacing.
- When a top-5 item is finished (or abandoned), the open slot is filled deliberately from the backlog at the next weekly review, not opportunistically mid-week.