đ§ claude-obsidian-kit
LLM wiki kit
First committed by selmakcby
Published in selmakcby/claude-obsidian-kit. Publisher page
26 GitHub stars
What it is
Give your Claude Code agents a shared, persistent brain â an Obsidian vault that survives sessions. Includes a retrofit guide for folders you already have, and a runnable vault linter.
AutoGineer overview, from the brainâs own files
claude-obsidian-kit transforms ephemeral Claude Code sessions into a persistent knowledge base. By introducing specialized agentsâthe archivist for reading and linting, and the scribe for writingâit enables agents to maintain context across sessions. The kit provides a structured vault template, a schema-driven constitution, and a linter to ensure the integrity of the knowledge graph, effectively turning a project's reasoning into a searchable, long-term asset.
How it works
Memory model: LLM wiki
AutoGineer overview, from the brainâs own files
The kit installs two specialized agents into your project: an archivist that handles queries and vault health, and a scribe that performs efficient writes. It uses a structured Obsidian vault layout with predefined folders for architecture, decisions, design, entities, and concepts. Agents follow a specific llm-wiki skill protocol for ingesting information, querying the vault, and linting for issues like broken links or orphans. A provided Python script allows for command-line linting of the vault's health.
| Folder | Role | Files |
|---|---|---|
| agents | agent-instructions | 2 |
| scripts | scripts | 2 |
| skills | agent-instructions | 4 |
| obsidian | folder | 3 |
| vault-template | folder | 10 |
Requirements
Databases: PostgreSQL
Set it up
This brain runs code automatically: 1 script. Review scripts/install.sh before opening the folder in Claude Code. No step below turns a hook on for you.
scripts/install.sh:sh scripts/install.sh
- Download the brain as a ZIP and unzip it where you keep your notes or project: https://mp-staging.autogineer.com/agent-brains/selmakcby/claude-obsidian-kit/download
cd claude-obsidian-kit && claude
AutoGineer scanned these files at commit 2826401.
- Not scanned by AutoGineerThe authorâs README also describes installing it from a clone of its repository. Read its install section: AutoGineer did not scan that path. https://github.com/selmakcby/claude-obsidian-kit/blob/282640137e4761c5a6b0aa75aa509cf39199d6c4/README.md#install
First committed by selmakcby. Published in selmakcby/claude-obsidian-kit. Licence: MIT License.
Usage
AutoGineer overview, from the brainâs own files
- Automating the ingestion of project decisions into a persistent vault.
- Querying past architectural decisions to inform current development.
- Running automated health checks on the knowledge base to identify stale notes or broken links.
- Maintaining a shared knowledge graph that survives individual agent sessions.
- âWhy did we choose Stripe webhooks for the payment integration?â
- The archivist agent reads the relevant decision note from the vault and synthesizes the rationale in seconds.
- âCheck vault health.â
- The archivist scans the vault for orphans, broken links, and contradictions, returning a severity-sorted report.
Documentation by selmakcby
<div align="center">
đ§ claude-obsidian-kit
Give your Claude Code agents a shared, persistent brain.
Turn ephemeral sessions into accumulating knowledge â stored in an Obsidian vault. Built for efficiency: right model for each job, cheap writes, index-first reads.
ââ planner (opus) ââ
â ui-agent (sonnet)â QUERY / LINT
â builder (sonnet)â ââââââ¶ archivist (sonnet · read-only)
â reviewer (sonnet)â â
ââââââââââââââââââââ âŒ
â VAULT
âââââââ INGEST âââ¶ scribe (haiku · writes)
âČ
â
Main Claude
(orchestrator)Install · Retrofit · Lint · Efficiency · FAQ · Prompts đčđ·
</div>
What this is
A drop-in kit that extends Claude Code with:
Two agents:
archivistâ vault reader + health guardian (QUERY, LINT)scribeâ dedicated vault writer (INGEST, runs on haiku for efficiency)
One skill â
llm-wikiâ the INGEST · QUERY · LINT protocolsOne constitution â
vault-template/CLAUDE.mdâ the schema every agent reads before touching the vault (đčđ· TĂŒrkçe)One vault template â pre-structured Obsidian vault with conventions
One linter â
vault-lint.py, the LINT protocol as a runnable command (no dependencies)One retrofit guide â RETROFIT.md, for when you already have months of material
Obsidian config â graph colours by layer, and the
[!conflict]callout the skill needs
After install, your agents read from and write to a shared markdown knowledge graph that survives sessions. Yesterday's decisions are tomorrow's context.
The problem this solves
Default Claude Code agents are stateless:
Monday: agents plan a feature, build it â close session
Tuesday: new session â "why did we use Stripe webhooks?"
Claude: "I don't know. Let me re-analyze from scratch..."Every session starts from zero. Context dies with the conversation. The project's reasoning evaporates even when the code persists.
With this kit:
Monday: agents plan â scribe files to vault/decisions/
Tuesday: "why Stripe webhooks?"
archivist â reads vault/decisions/2026-04-21-stripe-webhooks.md â answers in 1 second with full rationaleInstall
Quick
git clone https://github.com/selmakcby/claude-obsidian-kit ~/claude-obsidian-kit
cd ~/claude-obsidian-kit
./scripts/install.sh ~/my-projectInstalls:
~/my-project/.claude/agents/archivist.md~/my-project/.claude/agents/scribe.md~/my-project/.claude/skills/llm-wiki/~/my-project/vault/(if doesn't exist)
Final step
Update your project's CLAUDE.md with vault permissions:
{
"permissions": {
"allow": [
"Write(vault/**)",
"Edit(vault/**)",
"Read(vault/**)"
]
}
}How it works
The 6-agent team
After this kit, your full team:
| Agent | Role | Model | Why this model |
|---|---|---|---|
| planner | Architecture + planning | opus | Deep reasoning |
| ui-agent | Design + components | sonnet | Balanced |
| builder | Backend implementation | sonnet | Coding quality |
| reviewer | Quality + security | sonnet | Thorough analysis |
| archivist | Vault reads (QUERY, LINT) | sonnet | Synthesis + audit |
| scribe | Vault writes (INGEST) | haiku | Cheap + fast |
The scribe / archivist split is token-efficient by design â see EFFICIENCY.md.
Three operations
đą INGEST (scribe)
Other agents produce findings. Main Claude passes findings to scribe. Scribe formats into proper note + writes to correct folder + updates index.
planner: "We should use monthly/annual pricing toggle"
â
main Claude: Task(scribe, finding="...", type=decision)
â
scribe: writes vault/decisions/2026-04-23-pricing-toggle.mdđ” QUERY (archivist)
you: "Why did we choose monthly/annual toggle?"
â
archivist: reads index.md â greps "toggle" â reads 2-3 notes â synthesizes answerđĄ LINT (archivist)
you: "Check vault health"
â
archivist: scans for orphans, broken links, stale notes, contradictions
archivist: returns severity-sorted report with fix suggestionsRetrofit â you already have a folder
vault-template/ assumes you are starting clean. Almost nobody is. The realistic situation is
months of accumulated material â transcripts, drafts, half-finished projects, and often an older
vault somewhere inside that already works.
RETROFIT.md is the guide for that case. It covers the two decisions you make before writing anything (the vault root is the folder you already have; an existing vault inside it is canonical and read-only), and the parallel-ingest design that keeps agents from writing the same entity page twice:
Phase 1 domain agents âââ¶ project + decision pages only
(reference [[entities]], write none)
â
⌠union + dedupe + deterministic split, in code
Phase 2 node agents âââ¶ disjoint slices of the entity/concept list
â
âŒ
Phase 3 index + lint âââ¶ one owner for index.md, one auditSplitting by page type rather than only by domain makes collisions impossible by construction rather than by instruction. Reference run: 1.9 GB, ~1,000 text files, 226 pages, 3,484 links, zero broken links, zero fabricated source citations.
Lint, as a command
skills/llm-wiki/lint.md specifies the checks and a health-score formula. vault-lint.py
implements that spec so the result is measured rather than asserted. Single file, standard
library only, read-only:
python3 scripts/vault-lint.py path/to/vault
# retrofit case: audit the wiki layer, resolve links against the whole folder
python3 scripts/vault-lint.py . --notes 'wiki/*' --notes 'index.md'
# non-English frontmatter
python3 scripts/vault-lint.py . --fields tur,durum,guncelleme --date-field guncelleme
# CI
python3 scripts/vault-lint.py . --fail-under 85| Check | Why it earns its place |
|---|---|
| Broken links | Code spans are stripped first â an [[example]] inside backticks is not a broken link |
| Orphans | Entry points (index, log, README) are exempt |
| Unverifiable sources | Every path a note cites in source: is checked against disk. This is how you catch a citation the agent invented |
| Ambiguous targets | Two files sharing a basename means [[name]] resolves by proximity â possibly not the file you meant |
| Missing concept pages | A link referenced 3+ times with no page behind it |
| Frontmatter, stale notes | Per the schema; stale = old date still in draft |
Flagged > [!conflict] callouts are reported but not scored. A marked contradiction is the
protocol working; the dangerous one is unmarked, and no linter can see that. Pass
--score-conflicts for the strict formula.
Obsidian config
The skill tells the agent to flag contradictions with > [!conflict] â and Obsidian has no such
callout type, so they render as anonymous grey notes. obsidian/ fixes
that and colours the graph by layer. Copy it into your vault's .obsidian/.
Efficiency
This kit is intentionally designed for low token cost. See EFFICIENCY.md for all 10 patterns.
Highlights:
Separate thinking from writing â opus plans, haiku files (80% cost reduction on writes)
Index-first reads â never grep the whole vault
Model tiering â haiku for scribe, sonnet for reads, opus for architecture
Least-privilege tools â smaller system prompts, fewer wasted calls
Parallel when independent â wall-clock savings
Rough cost per full feature (plan + design + build + review + 2 ingests): ~$0.18 Naive "opus everywhere" alternative: ~$0.90 â 5Ă cheaper with proper model routing.
FAQ
Common questions about INGEST, QUERY, LINT, PII, versioning, RAG comparison, and more â see FAQ.md.
Vault layout
vault/
âââ index.md â entry point, read first
âââ _schema/
â âââ template.md â required frontmatter for all notes
â âââ conventions.md â naming, linking, tagging rules
â
âââ architecture/ â how the system is built
âââ decisions/ â why we chose X over Y (dated)
âââ design/ â UI/UX decisions
âââ entities/ â tools, services (stripe, supabase)
âââ concepts/ â cross-cutting ideas
âââ sessions/ â dated session summariesEvery note has frontmatter. Every note links to others. Orphans are tech debt.
File structure
claude-obsidian-kit/
âââ README.md â you are here
âââ RETROFIT.md â pointing the kit at a folder you already have
âââ EFFICIENCY.md â token patterns (10 of them)
âââ FAQ.md â common questions
âââ LICENSE â MIT
âââ agents/
â âââ archivist.md â reader/guardian (QUERY + LINT)
â âââ scribe.md â dedicated writer (INGEST)
âââ skills/
â âââ llm-wiki/
â âââ SKILL.md â main skill manifest
â âââ ingest.md â INGEST protocol detail
â âââ query.md â QUERY protocol detail
â âââ lint.md â LINT protocol detail
âââ vault-template/
â âââ index.md â vault entry point
â âââ _schema/
â â âââ template.md â note template
â â âââ conventions.md â full rulebook
â âââ architecture/
â âââ decisions/
â âââ design/
â âââ entities/example-service.md
â âââ concepts/example-concept.md
â âââ sessions/
âââ obsidian/
â âââ graph.json â graph coloured by vault layer
â âââ snippets/
â â âââ vault-layers.css â [!conflict] callout + folder colours
â âââ README.md
âââ scripts/
âââ install.sh â one-command setup
âââ vault-lint.py â runs the LINT protocol for real (no deps)Works well with
Claude Code â the primary target
Obsidian â the vault viewer/editor (optional â vault is plain markdown)
VS Code, Typora, Bear â any markdown editor works
Previous kit: knowledge-pipeline â this extends it with the multi-agent efficiency layer
License
MIT
Credits
Built on Claude Code's agent + skill system.
Inspired by:
obra/superpowers â skills as methodology
anthropics/skills â skill file format
wshobson/agents â multi-agent orchestration patterns
Zettelkasten â atomic notes + aggressive linking
PROMPTS.md
Videodaki Promptlar · Prompts from the video
đčđ· "Sıfırdan Ajan Hafızası" videosunda ekranda kullandıÄım promptların temiz, genelleĆtirilmiĆ hĂąli. Kendi klasörĂŒne uyarlaman için kiĆisel kısımlar çıkarıldı. đŹđ§ The exact prompts used in the (Turkish) video, cleaned up and generalized.
Hepsi Claude Code'da, vault klasörĂŒnĂŒn içinden çalıĆtırılır (cd vault-klasorun && claude).
Vault yapısının kendisi için: vault-template/ · mevcut klasörĂŒnĂŒ
dönĂŒĆtĂŒrmek için: RETROFIT.md
1 · ArĆivini gerçekten okuyor mu? (test sorusu)
Kurulumdan sonra sistemin çalıĆtıÄını kanıtlamak için. Obsidian kapalıyken sor â eklenti yok, köprĂŒ yok, MCP yok; ajan sadece klasöre bakıyor:
Bu klasördeki arĆivimde en çok linklenen ĂŒĂ§ sayfa hangisi ve neden merkezde duruyorlar?
Cevabını dosyalara bakarak ver.2 · GranĂŒlerlik deneyi â tek dosya vs bölĂŒnmĂŒĆ yapı
Aynı veriyi bir kere tek dev dosya, bir kere konu-baĆına-dosya olarak koy; birebir aynı promptu iki kuruluma da ver. Deneyin tek deÄiĆkeni dosya yapısı olmalı:
raw/ klasörĂŒndeki kaynakları oku. En çok tekrar eden ĂŒĂ§ talep ne,
her birini kaç farklı yerde gördĂŒn, ve hangileri hiç cevaplanmamıĆ?
Cevabında her iddia için hangi dosyadan geldiÄini yaz.Tek dosyada cevap genelleĆir ve atıf zayıflar; bölĂŒnmĂŒĆ yapıda ajan doÄru dosyayı açar, sayılar ve isimler doÄru gelir.
3 · Sıfırdan vault iskeleti kurdurma
Bu klasörĂŒ bir LLM wiki olarak kur. Ćunları yap:
1. CLAUDE.md yaz â ĂŒĂ§ cĂŒmle: bu klasör ne, içinde ne var, ne zaman buraya bakılmalı.
2. index.md yaz â Ćimdilik boĆ bir katalog, kategori baĆlıkları hazır olsun.
3. log.md yaz â append-only, tarih damgalı kayıt dosyası.
4. Ću klasörleri aç: raw/ (ham kaynaklar, sen asla yazmayacaksın), sources/ (her ham
kaynak için bir özet sayfası), konular/ (kavram sayfaları).
Kurallar: tek konu tek dosya. Dosya adları kĂŒĂ§ĂŒk harf, tire ile ayrılmıĆ, TĂŒrkçe karakter yok.
BaÄlantılar dosyanın içinde [[köĆeli-çift-parantez]] biçiminde. En fazla iki seviye derinlik.
Yazmadan önce ne yapacaÄını tek paragrafta söyle.Son satır önemli: kurulumu sen denetliyorsun, ajan tek baĆına karar vermiyor.
4 · Mevcut daÄınık notları wiki'ye dönĂŒĆtĂŒrme
BoĆ klasöre deÄil, yıllardır biriken notların ĂŒstĂŒne kuruyorsan:
Bu klasörde daÄınık notlarım var. Bunları bir LLM wiki'ye dönĂŒĆtĂŒr.
1. CLAUDE.md yaz â ĂŒĂ§ cĂŒmle: bu klasör ne, içinde ne var, ne zaman buraya bakılmalı.
2. index.md yaz â her sayfa için bir satır: [[baÄlantı]] + tek cĂŒmle özet.
3. Mevcut notları dĂŒzenle: her dosyanın baĆına frontmatter koy (title, tags, date,
status), gövdedeki ilgili kavramları [[köĆeli-çift-parantez]] ile birbirine baÄla.
4. Notların içinde çeliĆki varsa sessizce birini seçme â sayfada iĆaretle ve hangisinin
geçerli olduÄunu gerekçesiyle yaz.
5. raw/ klasörĂŒne ASLA yazma. Orası dokunulmaz.
Dosya adları kĂŒĂ§ĂŒk harf, tire ile ayrılmıĆ, TĂŒrkçe karakter yok.
Yazmadan önce ne yapacaÄını tek paragrafta söyle.5 · INGEST â yeni kaynak iĆleme
Yeni ham malzemeyi raw/ içine koyduktan sonra:
raw/ klasörĂŒne yeni kaynaklar koydum.
Bunları iĆle:
1. Oku, önce bana en önemli çıkarımları söyle.
2. Her kaynak için sources/ altına bir özet sayfası yaz.
3. Konu sayfalarını aç ya da gĂŒncelle â tekrar eden talepleri kendi sayfası olacak
Ćekilde ayır.
4. index.md'yi gĂŒncelle, yeni sayfaları kataloÄa ekle.
5. log.md'ye tarih damgalı bir satır dĂŒĆ.
6. Sayfalar arasında çapraz baÄlantı kur.
Bir kaynakta iddia edilen bir Ćey baĆka bir kaynakla çeliĆiyorsa sayfada iĆaretle,
sessizce birini seçme.6 · QUERY â asıl numara son cĂŒmlede
ArĆive soruyorum: [sorunu buraya yaz]
Cevabında her iddia için kaynak sayfayı göster.
Cevabı ĂŒrettikten sonra bunu bir sentez sayfası olarak wiki'ye yaz ve index.md'ye ekle â
bir dahaki sefere sıfırdan çalıĆma, ĂŒstĂŒne koy.Son cĂŒmle RAG ile aradaki farkın tamamı: RAG'da cevap ĂŒretilir ve uçar gider; burada cevap arĆivin kalıcı parçası olur.
7 · LINT â saÄlık kontrolĂŒ
DĂŒzenli bakım (haftalık yeterli â her gĂŒn aynı dosyaları yeniden okutmak token israfı):
Bu wiki'nin saÄlık kontrolĂŒnĂŒ yap:
- Kırık [[baÄlantı]] var mı?
- Hiçbir yerden link almayan yetim sayfa var mı?
- index.md'de listelenmeyen sayfa var mı?
- Sayfalar arasında çeliĆen iddia var mı?
- Bir sayfada geçen ama kendi sayfası olmayan kavram var mı?
Bulduklarını önce liste hĂąlinde göster. Ben onaylamadan dĂŒzeltme yapma.Uzun sĂŒre bakımsız kalmıà arĆiv için daha hedefli sĂŒrĂŒm:
Bu vault uzun sĂŒredir bakımsız. SaÄlık kontrolĂŒ yap:
1. index.md'de hiç geçmeyen sayfaları listele.
2. Kırık [[baÄlantı]]ları bul. Her biri için sebebini de yaz â dosya adı mı farklı,
sayfa mı silinmi�
3. Yetim sayfaları bul.
ĂĂ§ĂŒnĂŒ de liste hĂąlinde göster, ben onayladıktan sonra index.md'yi yeniden yaz ve
kırık baÄlantıları dĂŒzelt. Sayfa içeriklerine dokunma.8 · GĂŒvenlik testi â hafızaya yerleĆen prompt injection
raw/ içindeki bir kaynaÄa bilerek sahte bir "gerçek" ekle, ingest ettir,
yeni oturumda o bilgiyi sor. Ajan uydurmayı kendi hafızasından, emin bir tonla
verecektir â okuduÄu her Ćey kalıcı gerçeÄe dönĂŒĆĂŒr. TemizliÄi için:
raw/ içindeki sahte notu sil, bu iddiadan tĂŒreyen tĂŒm wiki sayfalarını bul ve
temizle, log.md'ye ne temizlediÄini yaz.Ders: raw/ klasörĂŒne ne girdiÄini bil; vault'a giren her iddia,
sonraki her cevabın zemini olur.
31 files
- .gitignore
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CLAUDE.tr.md
- EFFICIENCY.md
- FAQ.md
- LICENSE
- PROMPTS.md
- README.md
- RETROFIT.md
- agents/archivist.md
- agents/scribe.md
- obsidian/README.md
- obsidian/graph.json
- obsidian/snippets/vault-layers.css
- scripts/install.sh
- scripts/vault-lint.py
- skills/llm-wiki/SKILL.md
- skills/llm-wiki/ingest.md
- skills/llm-wiki/lint.md
- skills/llm-wiki/query.md
- vault-template/CLAUDE.md
- vault-template/_schema/conventions.md
- vault-template/_schema/template.md
- vault-template/architecture/overview.md
- vault-template/concepts/example-concept.md
- vault-template/decisions/.gitkeep
- vault-template/design/.gitkeep
- vault-template/entities/example-service.md
- vault-template/index.md
- vault-template/sessions/.gitkeep
Advantages
- Reduces token costs by using specialized models for different tasks, such as using Haiku for writes and Sonnet for reads. evidence: README.md
- Ensures knowledge persists across sessions, preventing the loss of project reasoning. evidence: README.md
- Provides a robust linting protocol to maintain vault health and catch fabricated citations. evidence: README.md
Limitations
- Requires manual setup and integration into existing project structures. evidence: README.md
- Relies on specific agent roles which must be correctly configured within the Claude Code environment. evidence: README.md
Security
Risk level: Low risk
This brain runs
Install scripts (1)
scripts/install.sh:sh scripts/install.sh
- Low risk: scripts-present (scripts/install.sh)
Attribution and licence
- First committed by
selmakcby
- Publisher
- selma (Community)
- Source
- selmakcby/claude-obsidian-kit · commit 2826401
- Licence
- MIT License (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- selmakcby
AutoGineer is not affiliated with or endorsed by selmakcby.
Download
The ZIP holds the files AutoGineer serves, with ATTRIBUTION.md and the licence. Download claude-obsidian-kit.zip