You maintain a persistent LLM wiki for DataTalks.Club podcast knowledge.
Treat ../datatalksclub.github.io/_podcast as source truth. Do not modify those
files from this repo unless the user explicitly asks to prepare a website PR.
The wiki is a compounding artifact. When you answer a meaningful research question,
categorize an episode, or synthesize a theme, file the useful result back into
_wiki/ or _podcast_summaries/ so future sessions do not
rediscover the same knowledge from scratch.
All topic content lives in the single _wiki/ collection, typed by tags:
(comparison, guide, roadmap, transition, how-to; untagged = bare concept hub).
There are no _guides/, _comparisons/, _roadmaps/, or _how_tos/
collections and no redirect pages. See CONTENT_GUIDE.md for the tag model, the
no-redirects rule, and the deduplication/link-check maintenance process.
sources/: documentation about raw sources and source paths.CONTENT_TODO.md: durable backlog for content families such as roles, transitions, portfolio projects, roadmaps, and X vs Y pages._podcast_summaries/: compact episode summaries for agents. Do not copy full transcripts here; link to the original source episode._people/: source-derived person node records. Do not expand these as content pages; human-facing person links resolve to the main site._wiki/: the single content collection — human/LLM-authored archive-derived pages, typed bytags:(comparison, guide, roadmap, transition, how-to; untagged = concept hub). Do not overwrite with generated stubs.search/andartifacts/search/: generated exploration-page search corpora and packed Zerosearch artifacts.graph/graph.json: generated podcast graph data for the static visualization. Do not hand-edit it; runpython scripts/build_graph.pyormake graph.
Do not create public full episode, topic, guest, or transcript-copy pages in this
repo. The canonical podcast archive is https://datatalks.club/podcast.html, with
source files in ../datatalksclub.github.io/_podcast.
Every public page must be grounded, linked, and focused:
- Grounded: every substantive section cites actual podcast discussions. Do not add generic advice unless a podcast discussion or an existing podcast-grounded page supports it.
- Linked: make the page link-heavy. Add visible links to related wiki pages, canonical podcast episodes, and grounding evidence in the body, not only in generated graph data. Person links are optional supporting references.
- Focused: center the page on one topic, role, transition, comparison, roadmap, or project type. Split mixed pages instead of padding them.
Use inline references in the relevant section, like Wikipedia citations. Do not
publish separate Archive Evidence, Guest Descriptions, Maintenance Notes,
Episode Evidence, Recurring Archive Themes, Contents, or Search Intent
sections in reader-facing pages.
Podcast, people, and book pages are node registries, not published pages
(_config.yml sets output: false for them because they duplicate the main
site). Link public content pages straight to the canonical DataTalks.Club URL,
never to a local /podcasts/, /people/, or /books/ path:
- episode:
https://datatalks.club/podcast/<source-file-slug>.html - person:
https://datatalks.club/people/<slug>.html - book:
https://datatalks.club/books/<slug>.html
Use https://datatalks.club/podcast.html only as a temporary fallback when the
specific episode slug is unknown. scripts/rewrite_to_canonical.py (run by
make sources) converts any stray local links to canonical form; the graph and
search still treat these entities as nodes and resolve them to the same
canonical URLs.
Do not write or expand people pages. People documents are redirects/node records for the main DataTalks.Club person profiles. Put what a guest argued, explained, contrasted, or demonstrated inside the relevant wiki/topic page.
Curated pages should omit generated: true. Do not overwrite curated synthesis
casually. If source evidence changes, update the relevant exploration page with a
compact note and links back to the source podcast repo.
Stub wiki pages are allowed when a topic link already exists and the full
writeup is not ready. Mark them with stub: true, link them to an existing hub,
and replace them with podcast-backed synthesis when the topic becomes important.
- Read
CONTENT_GUIDE.md. - For broad topic work, read
sources/podcast-topic-inventory.mdafter runningmake sources. - Inspect existing pages in
_wiki/and_podcast_summaries/. - Open raw source episode files in
../datatalksclub.github.io/_podcastonly when you need evidence, clips, guests, or transcript context. - Update the target exploration page with synthesized takeaways, not just lists of links.
- Add cross-links to related wiki pages, category pages, canonical podcast episodes, and grounding evidence.
- Add podcast evidence links in the body. Link to the canonical
https://datatalks.club/podcast/<source-file-slug>.htmlepisode when known. - For source-derived podcast/person registries, run
make sources. - For graph/search changes, run
make graphandpython scripts/build_search_index.py, or simply runmake check.
For broad podcast-topic work, first extract all episodes, all people, compact
chapter summaries, and topic candidates with make sources. Read
sources/podcast-archive-summary.md or .tmp/podcast-archive-summary.md before
opening full source episodes. Then keep five subagents running on
non-overlapping episode batches. Subagents should produce grounded topic reports
with canonical podcast links and optional guest references before writing wiki or
editorial pages.
Insight pages should follow the shape requested in DataTalksClub issue #111:
- title and 1-2 paragraph introduction
- H2/H3 subtopic sections
- brief synthesized takeaways based on transcript evidence
- relevant podcast cards or episode links
- related topics section
Prefer evidence-backed synthesis over generic advice. If the source transcripts do not support a claim, mark it as a hypothesis or leave it out. Keep guest names, podcast links, and evidence inside the relevant topic sections instead of adding visible meta sections such as contents, guest experts, archive evidence, or maintenance notes.
Use CONTENT_GUIDE.md.
Wiki pages are comprehensive reference pages based on the full podcast archive.
They should include evidence links, tradeoffs, and related wiki pages. Use
compact [[cite:<podcast-slug>=>Episode Label]] markers for routine evidence.
Use [[cite:<podcast-slug>@MM:SS=>Episode Label]] only when the exact clip helps
verification. Avoid | inside citation, podcast, person, book, and wiki chips
because Markdown can render adjacent pipe chips as accidental tables. Podcast
summaries are a separate agent index and should stay compact.
Editorial pages are SEO-informed pages created only after the user supplies
target keywords. They live in _wiki/ with a type tag: (guide, comparison,
roadmap, transition, or how-to) and are served under /wiki/<slug>/ like every
other page. Bare concepts are untagged wiki pages.
Use existing _wiki/ pages as the current working vocabulary. When you find a
recurring theme that does not fit, add it deliberately:
- define the major topic
- add at least three subtopics
- list example episodes or clips
- note the change in
docs/taxonomy-log.md
Avoid topic proliferation. Merge near-duplicates such as LLM, LLMs, and
large language models unless the distinction matters for the user.
When answering a user question about podcast content:
- Search
_wiki/and_podcast_summaries/withrg. - Read the most relevant exploration pages.
- Open raw episode files for direct transcript verification when quoting or making fine-grained claims.
- Answer with source links to local files and timestamps only when useful for verification.
- If the answer creates reusable synthesis, ask whether to file it, or file it directly when the user asked for wiki maintenance.
Use make check before finishing structural changes. It builds the exploration
search index/package and the Rustkyll site.
The public search UI lives at search.md and assets/search.js. It calls
site.search_api_url when configured. Keep the browser fallback working for
local development, but treat the Lambda-backed Zerosearch path as the production
search implementation. Search indexes exploration pages only, not full podcast
transcripts.
The graph UI lives at graph.md and assets/graph.js. It should remain static:
use graph/graph.json, avoid external runtime dependencies, and keep node links
stable through graph URL hashes. graph/graph.json is generated from collection
frontmatter and internal links by scripts/build_graph.py; do not maintain it
as separate editorial content. Run make sources to sync source-derived
podcast and people pages before graph generation. The source documents are
_wiki/, _people/, and _podcast_summaries/. Podcast, person, and book
nodes carry the canonical DataTalks.Club URL (source_url) as their node link,
so clicking them leaves the wiki for the main site. The graph may still treat
tagged wiki pages internally as article/content nodes; that is an
implementation detail.
Run python scripts/check_links.py after a static build to validate generated
internal links. GitHub Pages runs the same checker with the deployed base path.
Periodically check for:
- wiki pages with too many episode mentions and no synthesis
- episodes with missing or overly broad topics
- orphan editorial/wiki pages with no incoming links
- stale claims contradicted by newer episodes
- wiki pages that should mention a guest contribution but lack the episode link
- high-value transcript clips that should become hub examples
Record durable fixes directly in the relevant collection page.