podvault

memex → podvault

Agent tabanlı bir kişisel bilgi tabanının neden inşa edildiği, nasıl çalıştığı ve hangi ihtiyaçları hangi aşamada karşıladığı Why an agent-based personal knowledge base was built, how it works, and which needs it meets at which stage

ProjeProject
memex → podvault
Model
Claude Sonnet 4.6
◎ Bölüm 1 — Başlangıç Noktası◎ Section 1 — Starting Point

Neden Böyle Bir Şeye
İhtiyaç Duyuldu?
Why Was Something
Like This Needed?

Her hafta podcast dinleniyor, videolar izleniyor, makaleler okunuyor — ama bu bilgiler birkaç gün içinde buharlaşıyor. Sorun "bilgi eksikliği" değil; bilginin tutulamaması ve birbiriyle bağlanamaması. Every week podcasts are listened to, videos watched, articles read — but this knowledge evaporates within days. The problem isn't "lack of knowledge"; it's the inability to retain and connect it.

Problem 01 — Bilgi DağınıklığıProblem 01 — Knowledge Fragmentation

Parçalanmış KaynaklarFragmented Sources

Bilgi YouTube'da, Spotify'da, PDF'lerde, tarayıcı sekmelerinde dağılmış halde. Hiçbir yerde tam resim yok. Konular arasındaki bağlantılar görünmüyor.Knowledge is scattered across YouTube, Spotify, PDFs, browser tabs. No complete picture anywhere. Connections between topics are invisible.

"Bunu nerede görmüştüm?" sorusu yanıtsız kalıyor."Where did I see this?" goes unanswered.
Problem 02 — Hafıza KaybıProblem 02 — Memory Loss

Seanslar Arası Bağlam YitiyorContext Lost Between Sessions

Her Claude oturumu sıfırdan başlıyor. Daha önce ne konuşulduğu, hangi hipotezlerin ortaya çıktığı, hangi soruların yanıtlanmadığı bilinmiyor.Every Claude session starts from scratch. What was discussed before, which hypotheses emerged, which questions remain unanswered — all unknown.

Her seferinde her şeyi baştan anlatmak gerekiyor.Everything has to be explained from the beginning every time.
Problem 03 — Soğuk BaşlangıçProblem 03 — Cold Start

Boş Sayfa SorunuBlank Page Problem

Yeni bir konu alanına girildiğinde agent'ın hiçbir arka planı yok. Grafik tamamen kopuk, bağlantısız. Nereden başlanacağı belirsiz.When entering a new topic area, the agent has no background. The graph is completely disconnected. Where to begin is unclear.

Obsidian'da izole düğümler var, çizgi yok.Isolated nodes in Obsidian, no edges.
Problem 04 — Sentez EksikliğiProblem 04 — Synthesis Gap

Veri Var, İçgörü YokData Exists, No Insight

Transcriptler mevcut ama "Bu farklı podcastler ne zaman çelişiyor?", "Bu hafta ne öğrendim?" gibi sorular yanıtsız. Veriden anlam üretilemiyor.Transcripts exist but questions like "When do these podcasts contradict each other?" or "What did I learn this week?" go unanswered. Meaning cannot be extracted from data.

Ham içerik biriyor ama zihinsel model oluşmuyor.Raw content accumulates but no mental model forms.

Her Problem için Mimarinin YanıtıArchitecture's Answer to Each Problem

Bilgi dağınıklığıKnowledge fragmentation
Tek bir wiki/ dizini — episodes/, shows/, guests/, topics/, concepts/Single wiki/ directory — episodes/, shows/, guests/, topics/, concepts/
Hafıza kaybıMemory loss
memory/ + agents/*/MEMORY.md — kalıcı, dosya tabanlı bellekmemory/ + agents/*/MEMORY.md — persistent, file-based memory
Soğuk başlangıçCold start
Intake interview + bootstrap wiki — ilk gün bağlantılı başlangıçIntake interview + bootstrap wiki — connected start from day one
Sentez eksikliğiSynthesis gap
Consolidator + /query komutu — haftalık otomatik sentezConsolidator + /query command — weekly automated synthesis
◎ Bölüm 2 — Memex Template◎ Section 2 — Memex Template

Temel Şablonun
Anatomisi
Anatomy of the
Base Template

Memex, herhangi bir domain için kopyalanıp özelleştirilebilen genel amaçlı bir bilgi tabanı şablonudur. TypeScript motor + Markdown içerik + MCP server üçlüsünden oluşur. Memex is a general-purpose knowledge base template that can be copied and customized for any domain. It consists of three elements: TypeScript motor + Markdown content + MCP server.

MEMEX — GENEL MİMARİ MEMEX — GENERAL ARCHITECTURE TYPESCRIPT MOTOR — src/ scheduler runner locker validator budget consolidator MARKDOWN İÇERİK MARKDOWN CONTENT wiki/ episodes/ shows/ guests/ topics/ concepts/ syntheses/ raw/ archive/ → Domain bilgi tabanı → Domain knowledge base agents/ MEMORY.md memory/ commands/ /ingest /query CLAUDE.md scratch/ journal/ outputs/ MCP SERVER obsidian-hybrid -search semantic search / wiki ► BM25 + embedding ► wiki/üzerinde çalışır ► works over wiki/ ► Obsidian ile uyumlu ► Obsidian compatible ANAYASA (CLAUDE.md) — Master şema, hard rules, tier sistemi, operasyon tanımları CONSTITUTION (CLAUDE.md) — Master schema, hard rules, tier system, operation definitions Her oturumda ilk okunan dosya — agent bu dosyaya göre davranır First file read every session — agent behaves according to this file HAFIZA KATMANı 1 — SÜREÇ HAFIZASI MEMORY LAYER 1 — PROCESS MEMORY agents/*/MEMORY.md — Patterns, hipotezler, anti-patterns agents/*/MEMORY.md — Patterns, hypotheses, anti-patterns Her agent kendi hafızasını yönetir Each agent manages its own memory HAFIZA KATMANı 2 — DOMAIN BİLGİSİ MEMORY LAYER 2 — DOMAIN KNOWLEDGE wiki/ — Episodes, concepts, syntheses Consolidator haftalık köprü kurar: katman1 → katman2 Consolidator builds weekly bridge: layer1 → layer2 sync
Tier Sistemi — Ne Zaman Ne Yüklenir?Tier System — What Loads When?
Tier 1 (her oturumda): memory/, scratch/ideas.md, journal/ (son 3 gün) — agent her zaman bu bağlamı bilir Tier 1 (every session): memory/, scratch/ideas.md, journal/ (last 3 days) — agent always knows this context
Tier 2 (domain aktifken): wiki/index.md, agents/[aktif]/AGENT.md + MEMORY.md Tier 2 (while domain is active): wiki/index.md, agents/[active]/AGENT.md + MEMORY.md
Tier 3 (açıkça istenince): wiki/archive/, outputs/, eski journal — nadiren yüklenir Tier 3 (only when explicitly requested): wiki/archive/, outputs/, old journal — rarely loaded
◎ Bölüm 3 — Örnek Projeler◎ Section 3 — Example Projects

Memex'ten Türeyen
3 Domain Projesi
3 Domain Projects
Derived from Memex

Memex şablonu, farklı içerik türleri için kopyalanır ve domain'e özel hale getirilir. Altyapı (motor, MCP, hafıza sistemi) aynı kalır; değişen yalnızca ne tür içerik işlendiği ve wiki şemasıdır. The Memex template is copied for different content types and customized for each domain. The infrastructure (motor, MCP, memory system) stays the same; only what type of content is processed and the wiki schema changes.

🎙️

Podvault

Podcast Bilgi TabanıPodcast Knowledge Base

YouTube transcript RSS feed Whisper (audio)

Kaynak:Source: YouTube URL, RSS feed, Spotify
Wiki: episodes/, shows/, guests/, topics/
Sıklık:Frequency: Haftalık ingestWeekly ingest
Sorular:Questions: BCI-AI bağlantısı? Nöromorfik gelişmeler?BCI-AI connection? Neuromorphic developments?
📄

Docvault

Geliştirici Dokümantasyon TabanıDeveloper Documentation Base

Library docs Changelogs RFCs

Kaynak:Source: wiki/raw/docs/ klasörüne bırakılan dosyalarFiles dropped into wiki/raw/docs/
Wiki: libraries/, patterns/, gotchas/
Sıklık:Frequency: Yeni kütüphane ekleninceWhen new library added
Çıktı:Output: API özeti, breaking changes, upgrade paths
📊

Papervault

Araştırma Makalesi TabanıResearch Paper Base

arXiv PDF Abstract Citation graph

Kaynak:Source: wiki/raw/papers/ klasörüne bırakılan PDF'lerPDFs dropped into wiki/raw/papers/
Wiki: papers/, authors/, methods/, venues/
Sıklık:Frequency: Makale okununcaWhen article read
Çıktı:Output: Katkı, yöntem, limitation özetiContribution, method, limitation summary

Ne Değişiyor, Ne Aynı Kalıyor?What Changes, What Stays the Same?

BileşenComponent Memex (template) Podvault Docvault Papervault
src/ TypeScript motor ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same
MCP Server ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same
Hafıza sistemiMemory system ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same
CLAUDE.md kurallarıCLAUDE.md rules ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same ✓ Aynı✓ Same
Fetcher / src/fetcher/ — Generic ✎ YT+RSS+Whisper ✎ File copy ✎ PDF parser
Wiki şemasıWiki schema — Generic ✎ episodes/shows/guests ✎ libraries/patterns ✎ papers/authors/venues
CLAUDE.md Purpose BlankBlank 6 podcast, haftalık6 podcasts, weekly ✎ Dev docs, stack Research alanResearch area
Bootstrap hipotezleriBootstrap hypotheses YokNone ✎ Intake interview ✎ Stack survey ✎ Research brief
Kalıp — Template MethodPattern — Template Method
Bu, yazılımda "template method pattern"ının bir uygulamasıdır: algoritma şablonu Memex'te sabit (ingest → query → consolidate), domain-spesifik adımlar alt projede override edilir (fetcher, wiki şeması, CLAUDE.md purpose). Her yeni alan için sıfırdan başlamak gerekmez. This is an implementation of the "template method pattern" in software: the algorithm template is fixed in Memex (ingest → query → consolidate), domain-specific steps are overridden in the sub-project (fetcher, wiki schema, CLAUDE.md purpose). No need to start from scratch for each new domain.
◎ Bölüm 4 — Podvault Detayı◎ Section 4 — Podvault Detail

Podvault Pipeline:
Kaynaktan Wiki'ye
Podvault Pipeline:
From Source to Wiki

Bir podcast URL'si girildiği andan yapılandırılmış wiki sayfasına dönüşmesine kadar geçen süreç. Her adımın neden orada olduğu ve hangi ihtiyaca yanıt verdiği. The process from entering a podcast URL to becoming a structured wiki page. Why each step is there and which need it addresses.

TAM PIPELINE — URL → STRUCTURED KNOWLEDGE /fetch-transcript YouTube / RSS / Spotify URL girişi URL input CASCADE FETCHER 3 adımlı deneme zinciri 3-step attempt chain Adım 1 — YouTube Step 1 — YouTube youtube-transcript API API key gerekmez No API key required ▼ başarısız / devre dışı ▼ failed / disabled Adım 2 — RSS Step 2 — RSS shows-config.json rss-parser kütüphanesi rss-parser library En son bölüm içeriği Latest episode content ▼ tüm feed'ler başarısız ▼ all feeds failed Adım 3 — Whisper Step 3 — Whisper yt-dlp → MP3 indir yt-dlp → download MP3 openai-whisper (local) GPU yok → model:base ✓ Transcript elde edildi ✓ Transcript obtained RAW STORAGE wiki/raw/transcripts/ --- transcript_source: youtube | rss | whisper status: raw --- /ingest INGEST SKILL 1. Transkript oku 1. Read transcript 2. Yapıyı çıkar 2. Extract structure 3. Episode sayfası yaz 3. Write episode page 4. Show/guest/topic güncelle 4. Update show/guest/topic 5. log.md'ye yaz 5. Write to log.md WIKI GRAPH episodes/ shows/ guests/ topics/ concepts/ Çift yönlü [[links]] Bidirectional [[links]] Obsidian graph view Her claim → kaynak episode Every claim → source episode status: active /query · /lint · syntheses/
Cascade'in Varlık NedeniWhy Cascade Exists
Tüm podcast'ler YouTube'da transkript sağlamaz (örn. bazı kanallar kısa klipler yayınlar, tam bölümleri RSS üzerinden dağıtır). RSS bazı podcast'lerin tam metnini içerir. Whisper son resort olarak her türlü ses dosyasını metin yapabilir. Bu 3 katman, kaynak ne olursa olsun transcript üretimini garanti altına alır. Not all podcasts provide transcripts on YouTube (e.g. some channels publish short clips, distributing full episodes via RSS). RSS contains the full text of some podcasts. Whisper as a last resort can transcribe any audio file. These 3 layers guarantee transcript generation regardless of the source.
◎ Bölüm 5 — Cascade Fetcher Detayı◎ Section 5 — Cascade Fetcher Detail

Transcript Cascade:
3 Kaynak, 1 Çıktı
Transcript Cascade:
3 Sources, 1 Output

Her kaynak türünün neden hiyerarşide farklı bir yerde olduğu ve gerçek dünya senaryolarında nasıl devreye girdiği. Why each source type is at a different position in the hierarchy and how it comes into play in real-world scenarios.

KAYNAK TİPİ → YÖNTEM EŞLEMESI SOURCE TYPE → METHOD MAPPING YouTube URL Adım 1: YT API Step 1: YT API caption alınırsa → biter if caption received → done Adım 2: RSS Step 2: RSS shows-config ile eşle match via shows-config Adım 3: Whisper Step 3: Whisper yt-dlp + local model RSS URL Direkt RSS fetch Direct RSS fetch En son bölüm → biter Latest episode → done Spotify URL YT transcript yok No YT transcript source → 'spotify' shows-config RSS spotify_rss olarak etiket tagged as spotify_rss Adım 3: Whisper Step 3: Whisper fallback ÇIKTI OUTPUT Frontmatter: transcript_source: youtube rss spotify_rss whisper status: raw GERÇEK SENARYOLAR (2026-04-23) REAL SCENARIOS (2026-04-23) ✓ YT: LZeMZgJszKU → youtube transcript (AI Daily Brief) ✓ RSS: D7kmBc5kOVE → caption disabled → Hard Fork RSS ○ Whisper: 111Hz tam bölümler (henüz test edilmedi) ○ Whisper: 111Hz full episodes (not yet tested) shows-config.json: { name, youtube_channel, rss_feed } — 6 show kaydı, channel ID eşleme — 6 show records, channel ID mapping YouTube channel ID URL'de geçiyorsa → o show'un RSS'ini dene; geçmiyorsa → tüm feed'leri sırayla dene If YouTube channel ID appears in URL → try that show's RSS; otherwise → try all feeds in order

Kod: Cascade MantığıCode: Cascade Logic

// src/fetcher/index.ts — Ana cascade zinciri const result = (await tryYoutube(url)) // Adım 1: caption varsa biter ?? (await tryRssFeeds(url)) // Adım 2: shows-config üzerinden ?? (await tryWhisper(url)); // Adım 3: local Whisper (fallback) // Sonuç: transcript_source frontmatter'ına yazılır // Dosya adı: {date}-{source}-{slugified-identifier}.md
// src/fetcher/index.ts — Main cascade chain const result = (await tryYoutube(url)) // Step 1: done if caption exists ?? (await tryRssFeeds(url)) // Step 2: via shows-config ?? (await tryWhisper(url)); // Step 3: local Whisper (fallback) // Result: written to transcript_source frontmatter // Filename: {date}-{source}-{slugified-identifier}.md
◎ Bölüm 6 — Ingest Adımları◎ Section 6 — Ingest Steps

Ingest: Ham Transcript'ten
Bağlantılı Wiki'ye
Ingest: From Raw Transcript
to Linked Wiki

Bir transkript dosyası okunduğunda agent'ın sistematik olarak ne yaptığı. Ingest'in amacı yalnızca özetlemek değil, çift yönlü bağlantılı bir bilgi ağı oluşturmak. What the agent systematically does when a transcript file is read. The purpose of ingest is not just summarizing but building a bidirectionally linked knowledge network.

ADIM 1 STEP 1 Oku & Çıkar Read & Extract Show, guest, topics, insights quotes, resources ADIM 2 STEP 2 Episode Sayfası Episode Page wiki/episodes/ YYYY-MM-DD- show-slug.md ADIM 3 STEP 3 Show Güncelle Update Show wiki/shows/ Episodes listesi Episodes list episodes_ingested++ ADIM 4 STEP 4 Guest Sayfaları Guest Pages wiki/guests/ Biyografi + Biography + episode backlinks ADIM 5 STEP 5 Topic/Concept wiki/topics/ wiki/concepts/ Cross-episode links ADIM 6-7 STEP 6-7 Index + Log wiki/index.md güncelle update wiki/index.md wiki/log.md → operasyon wiki/log.md → operation kaydı ekle add record ÇİFT YÖNLÜ BAĞLANTI PRENSİBİ BIDIRECTIONAL LINK PRINCIPLE episode show guest topic [[link]] [[link]] [[link]] KURAL: raw/ sadece okunur RULE: raw/ is read-only wiki/raw/ hiçbir zaman wiki/raw/ is never değiştirilmez. Episode sayfası modified. Episode page → wiki/episodes/ altına gider. → goes under wiki/episodes/. KURAL: kaynak zorunlu RULE: source required Her wiki iddiası [[raw/...]] ile Every wiki claim is sourced kaynaklanır. Kaynaksız with [[raw/...]]. Unsourced iddia yasaktır. claims are forbidden. KURAL: locker üzerinden yaz RULE: write via locker wiki/ yazımları locker'dan geçer. wiki/ writes go through locker. Paralel yazım çakışmasını Prevents parallel write önler, atomiklik sağlar. conflicts, ensures atomicity.

Bu Oturumda Gerçekleştirilen IngestIngest Performed in This Session

Episode SayfasıEpisode Page KaynakSource Yeni SayfalarNew Pages
Podcast A — Ep.12 · Konu X Genel Bakış youtube concepts/kavram-a
Podcast B — Ep.47 · Konu Y Derinlemesine youtube concepts/kavram-b
Podcast C — Konuk A ile Konu Z youtube guests/konuk-a
Podcast D — Soru Cevap Özel Bölüm youtube
Podcast E — Konuk B / Kitap Röportajı youtube guests/konuk-b
Podcast E — Dinleyici Soruları Pt.4 youtube
Podcast F — Konuk C · Teknoloji ve Gelecek youtube guests/konuk-c · concepts/kavram-c
Podcast C — Konu W Tartışması rss guests/konuk-d
◎ Bölüm 7 — Yaşam Döngüsü◎ Section 7 — Lifecycle

İhtiyaç Hangi Aşamada
Doğuyor?
When Does Each
Need Arise?

Podvault'u ilk kez kurmaktan birkaç ay sonrasına kadar olan süreçte hangi bileşenin devreye girdiği ve neden orada olduğu. Which component comes into play from initially setting up Podvault to several months later, and why it's there.

KurulumSetup

Gün 1 — Soğuk Başlangıç SorunuDay 1 — Cold Start Problem

  • Intake interview: 6 soru, kullanıcı niyeti netleşiyorIntake interview: 6 questions, user intent clarified
  • Bootstrap wiki: shows/, topics/, guests/ stub sayfaları — Obsidian'da ilk günden bağlantılı başlangıçBootstrap wiki: shows/, topics/, guests/ stub pages — connected start from day one in Obsidian
  • CLAUDE.md doldurulur: purpose, 6 podcast, dinleme sıklığı, açık sorularCLAUDE.md filled in: purpose, 6 podcasts, listening frequency, open questions
  • agents/researcher/MEMORY.md: 5 bootstrap hipotezi (Konu X ile Konu Y bağlantısı? vb.)agents/researcher/MEMORY.md: 5 bootstrap hypotheses (Topic X—Topic Y connection? etc.)
  • shows-config.json: YouTube channel ID + RSS feed eşlemelerishows-config.json: YouTube channel ID + RSS feed mappings
İlk FetchFirst Fetch

Gün 1 — Fetcher'ın İhtiyacıDay 1 — Need for the Fetcher

  • /fetch-transcript URL → cascade çalışır: YouTube → RSS → Whisper/fetch-transcript URL → cascade runs: YouTube → RSS → Whisper
  • 8 transcript indirildi: 7 YouTube caption, 1 RSS (caption kapalı kanal)8 transcripts downloaded: 7 YouTube captions, 1 RSS (channel with captions disabled)
  • Dosyalar wiki/raw/transcripts/ altına frontmatter ile kaydedildiFiles saved with frontmatter under wiki/raw/transcripts/
  • Shows-config sayesinde caption devre dışı bırakılmış kanal otomatik RSS'e düştüThanks to shows-config, the channel with captions disabled automatically fell back to RSS
İlk IngestFirst Ingest

Gün 1 — Wiki Ağının KurulmasıDay 1 — Building the Wiki Network

  • /ingest → 8 episode sayfası oluşturuldu (episodes/ altında)/ingest → 8 episode pages created (under episodes/)
  • 4 guest profili açıldı: Konuk A, Konuk B, Konuk C, Konuk D4 guest profiles created: Guest A, Guest B, Guest C, Guest D
  • 3 concept sayfası: kavram-a, kavram-b, kavram-c3 concept pages: concept-a, concept-b, concept-c
  • Tüm show sayfaları güncellendi: episodes_ingested sayısı, episode listesiAll show pages updated: episodes_ingested count, episode list
  • index.md ve log.md güncellendiindex.md and log.md updated
  • Obsidian'da artık 15+ düğüm ve onlarca [[link]] bağlantısıNow 15+ nodes and dozens of [[link]] connections in Obsidian
HaftalıkWeekly

Her Hafta — Tekrar Eden DöngüEvery Week — Recurring Cycle

  • Yeni bölümler yayınlandı → /fetch-transcript ile transcript indirNew episodes published → download transcript with /fetch-transcript
  • /ingest → wiki'ye ekle, mevcut show/guest/topic sayfalarını güncelle/ingest → add to wiki, update existing show/guest/topic pages
  • Bağlantılar birikir: aynı kavram 3. kez geçince concepts/ sayfası açılırLinks accumulate: when the same concept appears a 3rd time, a concepts/ page is created
  • Çelişkiler işaretlenir: ## CONFLICT — örn. Konuk A vs Konuk B aynı konuda farklı pozisyonContradictions flagged: ## CONFLICT — e.g. Guest A vs Guest B different positions on the same topic
SorguQuery

İstenen Zaman — Soru SormaOn Demand — Asking Questions

  • /query "Konu X ile Konu Y arasındaki bağlantı nedir?" → wiki araması → episode listesi → cevap/query "What is the connection between Topic X and Topic Y?" → wiki search → episode list → answer
  • MCP server (obsidian-hybrid-search) semantic + BM25 arama yaparMCP server (obsidian-hybrid-search) performs semantic + BM25 search
  • Cevap wiki'ye syntheses/ altında kaydedilir (geri-dosyalama)Answer saved to wiki under syntheses/ (back-filing)
  • İlgili yeni sorular scratch/ideas.md'ye eklenirRelated new questions added to scratch/ideas.md
KonsolidasyonConsolidation

Haftalık Otomatik — Sentez Boşluğu KapatılıyorWeekly Automatic — Closing the Synthesis Gap

  • Consolidator çalışır: agents/researcher/MEMORY.md → wiki/syntheses/Consolidator runs: agents/researcher/MEMORY.md → wiki/syntheses/
  • Tier 1 (süreç hafızası) → Tier 2 (domain bilgisi) köprüsüTier 1 (process memory) → Tier 2 (domain knowledge) bridge
  • Hipotezler test edilir: "Konu X–Konu Y bağlantısı" hipotezi yeni ingest edilen bölümle güçlendi mi?Hypotheses tested: did the "Topic X–Topic Y connection" hypothesis strengthen with the newly ingested episode?
  • /lint çalışır: orphan sayfalar, kaynaksız iddialar, kırık linkler raporlanır/lint runs: orphan pages, unsourced claims, broken links reported
  • Wiki sağlığı artık otomatik denetleniyorWiki health is now automatically monitored
BüyümeGrowth

Aylar Sonra — Değer Kümülatif BirikirMonths Later — Value Accumulates Cumulatively

  • Aynı konuya (örn. Konu X) farklı podcast'lerden 10+ episode bağlandıkça syntheses/ zenginleşirAs 10+ episodes from different podcasts link to the same topic (e.g. Topic X), syntheses/ grows richer
  • Obsidian grafında "hub" düğümler ortaya çıkar: en çok geçen kavramlar merkeze yerleşir"Hub" nodes emerge in the Obsidian graph: most frequently occurring concepts settle to the center
  • Yeni bir bölüm ingest edildiğinde agent önceki bilgiyle bağlantı kuruyorWhen a new episode is ingested, the agent connects it to prior knowledge
  • Örn: Yeni Konuk A bölümü → "Bkz: [[episodes/...]] ile çelişiyor mu?"E.g.: New Guest A episode → "See: does it contradict [[episodes/...]]?"
◎ Bölüm 8 — Özet◎ Section 8 — Summary

Her Şeyi Birleştiren
Tek Tablo
The Single Table That
Ties It All Together

Hangi bileşen hangi problemi çözüyor ve ne zaman devreye giriyor. Which component solves which problem and when it kicks in.

Problem BileşenComponent KonumLocation Ne Zaman İhtiyaç?When Needed?
Transcript almak zor / imkansızGetting transcripts is hard / impossible Cascade Fetcher src/fetcher/ Her yeni bölüm içinFor every new episode
Farklı kaynaklardan hangi feed?Which feed from which source? shows-config.json shows-config.json Kurulumda → nadiren güncellenirAt setup → rarely updated
Ham içerik yapılandırılmamışRaw content is unstructured WIKI_INGEST skill commands/ingest.md Her ingest operasyonundaEvery ingest operation
Bilgi bağlantısız / izoleKnowledge disconnected / isolated Çift yönlü [[links]]Bidirectional [[links]] wiki/ Ingest sırasında otomatikAutomatic during ingest
Agent seanslar arası unutuyorAgent forgets between sessions memory/ + MEMORY.md memory/ · agents/*/ Her oturumda Tier 1 olarak yüklenirLoaded as Tier 1 every session
Soğuk başlangıç, boş grafikCold start, empty graph Intake + bootstrap wiki wiki/shows/ topics/ Yalnızca Gün 1 (kurulum)Only Day 1 (setup)
Veri var, içgörü yokData exists, no insight Consolidator + /query src/ · commands/ Haftalık otomatik + isteğe bağlıWeekly automatic + on demand
Wiki kalitesi bozuluyorWiki quality degrading /lint komutucommand commands/lint.md Haftalık veya manuelWeekly or manual
Kaynak güvenilirliği belirsizSource reliability unclear transcript_source tag wiki/raw/ frontmatter Fetch sırasında otomatikAutomatic during fetch
Paralel yazım çakışmasıParallel write conflicts Locker (src/locker) src/locker.ts Her wiki yazımında arka plandaBackground on every wiki write
Araştırma konuları podcast içeriğiyle karışıyorResearch topics mixing with podcast content research/ katmanıresearch/ layer research/{topic}/ Yeni araştırma konusu açılıncaWhen new research topic opened
Her konu için manuel klasör + routine kurulumuManual folder + routine setup for each topic /new-research komutucommand commands/new-research.md Yeni araştırma konusu başlatılırkenWhen starting a new research topic
Araştırma güncelliğini kaybediyorResearch losing freshness Periyodik araştırma agent'ıPeriodic research agent .github/workflows/ · Claude Routines Konuya göre haftalık / aylık otomatikWeekly / monthly automatic per topic
LLM vendor bağımlılığı (açık kaynak kullanıcıları)LLM vendor lock-in (open-source users) BYOK + GitHub Actions src/research/ · .github/workflows/ Claude dışı LLM ile çalıştırılırkenWhen running with non-Claude LLM

Mimari PrensipleriArchitectural Principles

Prensip 1Principle 1

Raw asla değişmezRaw Never Changes

wiki/raw/ sadece okunur. Tüm işlem wiki/ altında gerçekleşir. Kaynak her zaman orijinal haliyle saklanır — hata durumunda sıfırdan yeniden işlenebilir.wiki/raw/ is read-only. All processing happens under wiki/. The source is always stored in its original form — reprocessable from scratch in case of error.

Prensip 2Principle 2

Her iddia kaynaklanırEvery Claim Is Sourced

Hiçbir wiki sayfasında kaynaksız bilgi olamaz. Her insight [[raw/transcripts/...]] ile bağlıdır. Bu, zamanla büyüyen bilgi tabanının güvenilirliğini korur.No wiki page can contain unsourced information. Every insight links to [[raw/transcripts/...]]. This preserves the reliability of a knowledge base that grows over time.

Prensip 3Principle 3

Çift yönlü bağlantıBidirectional Links

A, B'ye bağlanıyorsa B de A'ya bağlanır. Bu kural Obsidian grafının bağlı kalmasını sağlar. Orphan düğümler /lint ile tespit edilir.If A links to B, B also links to A. This rule keeps the Obsidian graph connected. Orphan nodes are detected with /lint.

Prensip 4Principle 4

Cascade → güvenilirlikCascade → Reliability

En ucuz/hızlı kaynak önce denenir. Başarısız olursa sıradakine geçilir. Bu sayede hiçbir podcast hiçbir zaman "işlenemez" değildir — Whisper her zaman orada.The cheapest/fastest source is tried first. On failure, the next one is tried. This ensures no podcast is ever "unprocessable" — Whisper is always there.

Prensip 5Principle 5

Research izolasyonuResearch Isolation

Araştırma konuları wiki/'den ayrı, research/{topic}/ altında izole yaşar. İkisi arasındaki bağlantı bilinçli ve isteğe bağlıdır. Konu sayısı arttıkça çapraz kirlenme olmaz.Research topics live isolated under research/{topic}/, separate from wiki/. The connection between them is intentional and optional. As topics multiply, there is no cross-contamination.

Sonuç: Neden Bu Kadar Karmaşık Görünüyor?Conclusion: Why Does It Look So Complex?
Çünkü çözmeye çalıştığı 4 problem gerçekten de karmaşık: (1) çok kaynaktan içerik çekme, (2) seanslar arası hafıza, (3) bilginin bağlantılı tutulması, (4) zamanla sentez. Her bileşen bu problemlerden birini çözüyor. Tek başına hiçbirisi yeterli değil — birlikte çalıştıklarında kümülatif değer oluşturuyor. Podvault'u bugün kullanmak hafif hissettiriyor; 3 ay sonra 50 bölüm ingest edildiğinde farkı Obsidian grafiğine bakarak görmek mümkün. Because the 4 problems it solves are genuinely complex: (1) fetching content from multiple sources, (2) memory between sessions, (3) keeping knowledge connected, (4) synthesis over time. Each component solves one of these problems. None is sufficient alone — together they create cumulative value. Using Podvault today feels lightweight; 3 months later with 50 episodes ingested, the difference is visible by looking at the Obsidian graph.
◎ Bölüm 9 — Research Katmanı◎ Section 9 — Research Layer

Podcast İngest'ten Bağımsız
Araştırma Konuları
Research Topics Independent
from Podcast Ingest

Belirli bir konu etrafında podcast araştırması yapılırken wiki/'ye ingest edilen içerikle bu araştırma notları zamanla karışır. research/ katmanı her araştırma konusunu izole bir alanda tutar; wiki ile bağlantı bilinçli ve isteğe bağlıdır. When researching podcasts around a specific topic, these research notes gradually mix with content ingested into wiki/. The research/ layer keeps each research topic in an isolated space; connection to wiki is intentional and optional.

İki Katman Arasındaki FarkThe Difference Between the Two Layers

wiki/ katmanıwiki/ layer

Podcast episode'larından gelen bilgi. Her claim bir episode'a bağlı. Ingest → shows, guests, topics, concepts zinciri.Knowledge from podcast episodes. Every claim links to an episode. Ingest → shows, guests, topics, concepts chain.

wiki/episodes/
wiki/shows/
wiki/guests/
wiki/topics/ · concepts/
research/ katmanıresearch/ layer

Konu araştırması: podcast keşfi için çerçeve, keyword haritası, akademik sinyaller. Her konu kendi klasöründe izole.Topic research: framework for podcast discovery, keyword map, academic signals. Each topic isolated in its own folder.

research/{topic}/index.md
research/{topic}/podcasts.md
research/{topic}/literature.md
research/{topic}/log.md

research/{topic}/ Klasör Şemasıresearch/{topic}/ Folder Schema

research/{topic}/
├── index.md    — konu çerçevesi, keyword haritası, search_keywords frontmattertopic framework, keyword map, search_keywords frontmatter
├── podcasts.mdingest adayı podcast kataloğu (☐ durum takibi)podcast catalog for ingest candidates (☐ status tracking)
├── literature.md   — podcast keşfi için akademik sinyaller (araştırmacı → podcast)academic signals for podcast discovery (researcher → podcast)
└── log.md     — araştırma geçmişi (append-only)research history (append-only)

/new-research Komutu: Tam Otomatik KurulumCommand: Fully Automatic Setup

Yeni bir araştırma konusu açmak için tek komut yeterli. Komut konu adını alır, araştırma yapar ve tüm altyapıyı kurar. A single command is enough to open a new research topic. The command takes the topic name, conducts research, and sets up all infrastructure.

AraştırResearch
WebSearch ile alt alanlar, keywords, podcast türleriSub-fields, keywords, podcast types via WebSearch
KlasörFolder
research/{slug}/ + 4 dosya, araştırma içeriğiyle doluresearch/{slug}/ + 4 files, filled with research content
Schedule
Haftalık / aylık / özel — kullanıcı seçerWeekly / monthly / custom — user selects
Workflow
.github/workflows/research-{slug}.yml otomatik oluşturulur.github/workflows/research-{slug}.yml auto-generated
Routine
Claude Routine aynı cron ile otomatik oluşturulurClaude Routine auto-created with the same cron

Araştırma Otomasyonu: İki YolResearch Automation: Two Paths

Claude Routines
  • Claude Pro+ hesabı gerektirirRequires Claude Pro+ account
  • Anthropic cloud'da çalışırRuns on Anthropic cloud
  • MCP bağlantıları otomatik gelirMCP connections come automatically
  • Bilgisayar kapalıyken de çalışırWorks even when computer is off
  • Kurulum gerekmezNo setup required
GitHub Actions + BYOK
  • Herhangi bir LLM (6 provider)Any LLM (6 providers)
  • Açık kaynak kullanıcıları içinFor open-source users
  • API key GitHub Secrets'ta şifreliAPI key encrypted in GitHub Secrets
  • Bilgisayar kapalıyken de çalışırWorks even when computer is off
  • Opsiyonel: Tavily web aramasıOptional: Tavily web search
Her iki yol da aynı çıktıyı üretir.Both paths produce the same output. research/{topic}/ dosyaları güncellenir, commit atılır. Kullanıcı Claude Pro ise Routines; değilse GitHub Actions + BYOK. İkisi de aynı anda aktif olabilir.research/{topic}/ files are updated, commit is made. If user has Claude Pro: Routines; otherwise GitHub Actions + BYOK. Both can be active simultaneously.