Purpose:A personal LLM-maintained wiki for scientific curiosity, research synthesis, ideas, writing, projects, experiments, decisions, dead ends, and lessons learned.
Pattern:This extends the LLM-wiki pattern: raw sources are not just retrieved at query time; they are incrementally compiled into a persistent, interlinked markdown wiki.
Extension:This addsWIP gravity wells: bounded capsules where related notes, sources, conversations, decisions, drafts, artifacts, and lessons accumulate around a maturing outcome.
LLM role:Maintain the wiki. Read sources, discuss takeaways, create/update pages, keep links current, surface contradictions, update WIP capsules, answer queries, lint the wiki, and log changes.
Authority:This repo-localCLAUDE.md
is the source of truth for howjarvas-mnemoteca
is structured and operated. It may also be read asAGENTS.md
. Generic agent habits, external skills, and reusable wiki conventions defer to this file when they conflict. Direct iteration in this repo by the human user and a coding agent is normal and acceptable.
Most LLM document workflows behave like RAG: retrieve raw chunks at query time, answer, then forget the synthesis. This repo is different: the durable artifact is the wiki, updated as sources, notes, conversations, and questions arrive.
The repo is a simple system with three stages: input → core → output.
— immutable evidence and memory dumps (external sources + personal notes).raw/
is input— compiled understanding: sources, chapters, concepts, entities, ideas, decisions, and WIP gravity wells.wiki/
is core— produced artifacts (decks, reports, exports, code outputs, published drafts).deliverables/
is output
The wiki compounds in two directions:
Global compounding: reusable knowledge across sources, concepts, people, fields, methods, and patterns.Local compounding: WIP gravity wells where an idea matures into a book, essay, side project, experiment, research arc, tool, product idea, or useful dead end.
Raw material is evidence and memory input. Wiki pages are compiled understanding. WIP capsules are local workspaces inside the wiki. Deliverables are produced artifacts; they can be linked from WIP and summarized back only when they contain durable lessons, decisions, or synthesis.
Human role: curate sources, dump notes, steer emphasis, ask questions, make taste/judgment calls. LLM role: summarize, integrate, cross-link, update, lint, and preserve the trail.
./
├── CLAUDE.md # this schema file (also readable as AGENTS.md)
├── skills/ # optional root-level expanded workflows
├── raw/ # INPUT — immutable source material (never modified)
│ ├── external/ # papers, posts, books, repos, transcripts, datasets
│ └── personal/ # idea dumps, devlogs, conversations, reflections
├── wiki/ # CORE — compiled understanding
│ ├── 00_INDEX.md # content catalog; read first
│ ├── log.md # chronological append-only operation log
│ ├── sources/ # one summary page per external source
│ ├── personal/ # one distillation per personal raw note
│ ├── chapters/ # broad synthesis pages (NN_Title_Words.md)
│ ├── concepts/ # reusable concepts, methods, terms, patterns
│ ├── entities/ # people, tools, models, datasets, works
│ ├── organizations/ # companies, labs, institutions
│ ├── ideas/ # durable idea backlog before WIP
│ ├── decisions/ # cross-WIP or durable personal decisions
│ └── wip/ # WIP gravity wells
│ └── WIP_Name/
│ ├── README.md # hub: latest truth, status, next steps
│ ├── Map.md # sources/concepts/links and why they matter here
│ ├── Log.md # dated progress, roadblocks, lessons
│ ├── Decisions.md # local decisions and rationale
│ └── Output.md # optional draft/spec/outline; explicit edits only
└── deliverables/ # OUTPUT — produced artifacts, exports, decks, reports, code outputs
Rules:
raw/
(input) anddeliverables/
(output) sit at the repo root, outsidewiki/
, so the input → core → output flow stays legible.skills/
is root-level so Claude/Codex-style agents can discover it normally. It is optional and created only when a workflow is too detailed for this file.- The master index is
wiki/00_INDEX.md
(kept from this repo's history; equivalent to the genericindex.md
). - Chapters synthesize across pages; specific facts belong in source, concept, entity, organization, idea, or WIP pages.
- Keep directory names boring. The agent should never have to guess where a page belongs.
Use Title_Case
with underscores. Wikilinks omit .md
. Prefer bare page names ([[Cell_Painting]]
) since Obsidian resolves unique filenames from anywhere in the vault; use a path when a name is ambiguous, e.g. WIP docs ([[wip/My_Book/README]]
).
| Kind | Pattern |
|---|---|
| External raw | raw/external/Author_Year_ShortTitle/ |
| Personal raw | raw/personal/YYYY-MM-DD_Short_Title.md |
| External summary | wiki/sources/Author_Year_ShortTitle.md |
| Personal summary | wiki/personal/YYYY-MM-DD_Short_Title.md |
| Chapter | wiki/chapters/NN_Title_Words.md |
| Concept/entity/org | wiki/concepts/Name.md , wiki/entities/Name.md , wiki/organizations/Name.md |
| Idea | wiki/ideas/Idea_Name.md |
| Decision | wiki/decisions/YYYY-MM-DD_Decision_Title.md |
| WIP capsule | wiki/wip/WIP_Name/README.md |
| Deliverable | deliverables/Artifact_Name.ext |
Frontmatter template:
---
type: source | personal | chapter | concept | entity | organization | idea | decision | wip | wip-doc
status: inbox | backlog | active | d | shipped | dropped
tags: []
date: YYYY-MM-DD
updated: YYYY-MM-DD
sources: []
wip: []
---
type
is required. status
is mainly for ideas/WIP. sources
links to source summaries, personal summaries, or raw paths. wip
links reusable pages to relevant WIP capsules. Useful metadata beats perfect metadata.
| Area | Agent authority |
|---|---|
raw/external/ |
|
| May read/add user-provided sources. Never rewrite source contents. | |
raw/personal/ |
|
| May create captured snapshots from chat when asked. Never rewrite snapshots unless explicitly asked. | |
wiki/sources/ , wiki/personal/ |
|
| May create/update during ingest. | |
wiki/concepts/ , wiki/entities/ , wiki/organizations/ , wiki/chapters/ , wiki/ideas/ , wiki/decisions/ |
|
| May create/update when supported by ingest, query writeback, or lint. | |
wiki/wip/*/README.md , Map.md , Log.md , Decisions.md |
|
| May create/update when a source, note, query, or deliverable is clearly relevant to that WIP. | |
wiki/wip/*/Output.md |
|
| May create/update only when the user asks for draft, outline, spec, or output editing. | |
deliverables/ |
|
| May create/update only when the user asks for an artifact. May read/link during WIP or artifact queries. | |
wiki/00_INDEX.md |
|
| Must update after every wiki write. | |
wiki/log.md |
|
| Append only. Must update after every operation. | |
skills/ |
|
| May create/update when a workflow is too detailed for this schema or the user asks. | |
CLAUDE.md |
|
| Edit only when the user asks to change the schema. |
Never delete, rename, restructure, or merge files without explicit user approval. Flag suspected duplicates or stale pages during lint.
A WIP gravity well is a bounded capsule for a maturing outcome: unfinished, speculative, d, shipped, or dropped. Use wiki/ideas/
for loose ideas. Promote an idea to wiki/wip/WIP_Name/
when it has gravity: repeated notes, multiple sources, real artifacts, decisions, active work, or a concrete intended output.
Rules:
- Global pages explain reusable knowledge; WIP pages explain why that knowledge matters for this outcome.
- Do not duplicate full source summaries inside WIP folders.
- Do not bury reusable concepts only inside a WIP; promote them to
wiki/concepts/
and link back. README.md
is current truth.Log.md
is chronological history.- Dead ends are valid WIP when they contain reusable lessons.
| File | Purpose |
|---|---|
README.md |
|
| description, origin, status, current state, next steps, outcomes, support docs | |
Map.md |
|
| linked sources, personal notes, concepts, entities, and WIP-specific relevance | |
Log.md |
|
| dated progress, roadblocks, lessons, experiments | |
Decisions.md |
|
| what changed, why, alternatives, consequences | |
Output.md |
|
| optional draft/spec/outline; edit only on request |
deliverables/
holds produced artifacts: reports, slide decks, PDFs, exports, generated charts, code outputs, and submitted drafts. Deliverables are outputs of the wiki/WIP process, not independent evidence by default.
Rules:
- Link deliverables from relevant WIP hubs under
Outcomes
orArtifacts
. - Keep active drafts/specs/outlines in
wiki/wip/WIP_Name/Output.md
; keep exported/final artifacts indeliverables/
. - Do not use deliverables as evidence for external facts unless they cite primary sources.
- The LLM may summarize durable lessons, decisions, or reusable synthesis from a deliverable back into wiki/WIP pages; mark this as artifact-derived.
- Edit deliverables only when the user asks.
Use for papers, books, posts, docs, repos, talks, datasets, and other external material.
Source-type hints: papers/PDFs preserve methods, evidence, limitations; blogs/newsletters need date and staleness; GitHub repos/docs need purpose, API surface, install complexity, license, maintenance status.
- Read the raw source from
raw/external/
. - Surface 2-3 takeaways, contradictions, new concepts/entities, and possible WIP relevance.
- Create/update
wiki/sources/Author_Year_ShortTitle.md
with citation/URL, TL;DR, key claims, evidence/methods, limitations, signals/implications, and WIP relevance. - Update relevant global pages: concepts, entities, organizations, chapters, ideas, decisions.
- If clearly relevant to a WIP, update its
README.md
,Map.md
,Log.md
, orDecisions.md
. - Update
wiki/00_INDEX.md
and append aningest
entry towiki/log.md
.
Use for idea dumps, devlogs, roadblocks, WIP updates, reflections, plans, outcomes, conversations, artifacts, and dead ends.
- If the note came from chat and the user wants it kept, capture it under
raw/personal/YYYY-MM-DD_Short_Title.md
. - Create
wiki/personal/YYYY-MM-DD_Short_Title.md
with a concise distillation. - Extract durable material: ideas, WIP membership, state changes, lessons, decisions, next actions, reusable concepts, dead ends.
- Update relevant
wiki/ideas/
,wiki/wip/
,wiki/decisions/
,wiki/concepts/
, orwiki/chapters/
pages. - Update
wiki/00_INDEX.md
and append apersonal-ingest
entry towiki/log.md
.
- Read
wiki/00_INDEX.md
first unless the user names specific files. - Read relevant compiled pages before raw sources.
- Answer with wikilinks where useful.
- If the answer creates durable synthesis, update/create the appropriate wiki/WIP page and log a
query
orupdate
entry.
| Question intent | Start with |
|---|---|
| Facts, methods, papers, orgs, people, tools | wiki/chapters/ , wiki/concepts/ , wiki/sources/ , wiki/entities/ , wiki/organizations/ |
| My ideas, WIP, roadblocks, next steps | wiki/wip/ , wiki/ideas/ , wiki/personal/ , wiki/decisions/ |
| What should this become? | relevant WIP hub, idea page, personal summaries, then global concepts/sources |
| What does this source imply? | source summary, concepts, chapters, then related WIP/ideas |
| Where is the artifact/output? | relevant WIP hub, then deliverables/ ; artifacts are not independent evidence |
Output defaults: synthesis = markdown prose with wikilinks; comparison = table; artifact = ask before creating slides, charts, reports, exports, or polished deliverables.
Conflict rule: source-backed pages are stronger for external facts; personal/WIP pages are stronger for user intent, project state, and interpretation. Surface mismatches.
Run periodically or when the wiki feels stale. Check for contradictions, stale claims, orphan pages, missing links, missing concepts/entities, uncompiled raw personal notes, WIP without current state/next steps, reusable knowledge trapped inside WIP, outdated index entries, and deliverables that should be linked from WIP outcomes.
Safe lint fixes: broken index entries, missing backlinks, obvious metadata repairs, log entry. Ask first: deleting, renaming, large rewrites, merging pages, changing WIP status, editing outputs/deliverables.
Append a lint
entry to wiki/log.md
with issues found, fixed, and open.
wiki/00_INDEX.md
is content-oriented: links, one-line summaries, useful metadata, and reading order. The LLM reads it first for most queries and updates it after every ingest or writeback.
Recommended sections: Reading Order, Vault Map, Active WIP, Idea Backlog, Recent Personal Summaries, Decisions, Source Summaries, Chapters, Concepts, Entities, Organizations, Deliverables, Needs Attention.
wiki/log.md
is chronological and append-only. It records ingests, personal ingests, queries, lints, updates, restructures, decisions, WIP promotions, and artifact creation.
## [YYYY-MM-DD] <op> | <title>
- Inputs: raw/source paths or pages read
- Pages touched: links to created/updated pages
- Key update: one sentence
- Open questions: optional
Common ops: ingest
, personal-ingest
, query
, lint
, update
, restructure
, decision
, wip
, artifact
.
Use sections as needed. Do not force empty headings.
| Page type | Useful sections |
|---|---|
| Source | citation/URL, TL;DR, key claims, evidence/methods, limitations, signals/implications, WIP relevance |
| Personal summary | raw input, TL;DR, extracted signals, pages updated, next actions |
| Concept | definition, why it matters, mechanism, examples, sources, related WIP |
| Idea | one-liner, why it matters, possible shape, questions, next step, related WIP/sources |
| Decision | decision, context, options, rationale, consequences, links |
| WIP hub | description, origin, status, current state, map, decisions, open questions, next steps, outcomes/artifacts |
| Chapter | overview, current synthesis, key concepts, important sources, open questions |
Domain-specific page conventions may live in skills/
, e.g. paper-ingest details, organization profiles, literature-review workflows, code-repo reviews, or writing workflows.
Repo: git@github.com:jarvashq/jarvas-mnemoteca.git
Always commit as the bot — never as the human user. This is already set in the local repo config; do not override with a human identity.
git config user.name "jarvas-bot"
git config user.email "jarvas-bot@users.noreply.github.com"
Commit after every meaningful wiki operation. Commit message:
<op>: <title>
<one-line summary matching log.md entry>
Push only when the user asks.