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/
Temel Şablonun AnatomisiAnatomy 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.
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ı bilirTier 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.mdTier 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üklenirTier 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 Projesi3 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.
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.
Podvault Pipeline: Kaynaktan Wiki'yePodvault 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.
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.
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.
Kod: Cascade MantığıCode: Cascade Logic
// src/fetcher/index.ts — Ana cascade zinciriconst result =
(awaittryYoutube(url)) // Adım 1: caption varsa biter
?? (awaittryRssFeeds(url)) // Adım 2: shows-config üzerinden
?? (awaittryWhisper(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 chainconst result =
(awaittryYoutube(url)) // Step 1: done if caption exists
?? (awaittryRssFeeds(url)) // Step 2: via shows-config
?? (awaittryWhisper(url)); // Step 3: local Whisper (fallback)// Result: written to transcript_source frontmatter// Filename: {date}-{source}-{slugified-identifier}.md
Ingest: Ham Transcript'ten Bağlantılı Wiki'yeIngest: 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.
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
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
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
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
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?
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 TabloThe 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?
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.
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.
├── podcasts.md — ingest 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.