Skip to content

Commit 2e5d604

Browse files
Sync podcast source pages and expand wiki graph
1 parent 4a04d46 commit 2e5d604

817 files changed

Lines changed: 70148 additions & 15676 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,10 @@ publish separate `Archive Evidence`, `Guest Descriptions`, `Maintenance Notes`,
5050
`Episode Evidence`, `Recurring Archive Themes`, `Contents`, or `Search Intent`
5151
sections in reader-facing pages.
5252

53-
When the source episode is known, link to the specific podcast page:
54-
`https://datatalks.club/podcast/<source-file-slug>.html`. Use
53+
When the source episode is known, link wiki and article pages to the local
54+
podcast page: `{{ '/podcasts/<source-file-slug>/' | relative_url }}`. That
55+
local page links to the original
56+
`https://datatalks.club/podcast/<source-file-slug>.html` episode. Use
5557
`https://datatalks.club/podcast.html` only as a temporary fallback when the
5658
specific episode slug is unknown.
5759

@@ -77,11 +79,17 @@ and replace them with podcast-backed synthesis when the topic becomes important.
7779
4. Update the target exploration page with synthesized takeaways, not just lists
7880
of links.
7981
5. Add cross-links to related wiki pages, articles, people, and podcast summaries.
80-
6. Add podcast evidence links in the body. Public episode links should point to
81-
the specific `https://datatalks.club/podcast/<slug>.html` page when known.
82-
7. For graph/search changes, run `make graph` and
82+
6. Add podcast evidence links in the body. Use local
83+
`/podcasts/<source-file-slug>/` links when the source episode is known.
84+
7. For source-derived podcast and people pages, run `make sources`.
85+
8. For graph/search changes, run `make graph` and
8386
`python scripts/build_search_index.py`, or simply run `make check`.
8487

88+
For broad podcast-topic work, first extract episodes, people, chapter summaries,
89+
and topic candidates with `make sources`. Then keep five subagents running on
90+
non-overlapping episode batches. Subagents should produce grounded topic reports
91+
with local podcast links and guest links before writing wiki or article pages.
92+
8593
## Insight Hub Target
8694

8795
Insight pages should follow the shape requested in DataTalksClub issue #111:
@@ -147,9 +155,12 @@ transcripts.
147155
The graph UI lives at `graph.md` and `assets/graph.js`. It should remain static:
148156
use `graph/graph.json`, avoid external runtime dependencies, and keep node links
149157
stable through graph URL hashes. `graph/graph.json` is generated from collection
150-
frontmatter and internal links by `scripts/build_graph.py`. Episode nodes should
151-
link to local podcast summaries when available and otherwise to
152-
`https://datatalks.club/podcast.html`.
158+
frontmatter and internal links by `scripts/build_graph.py`; do not maintain it
159+
as separate editorial content. Run `make sources` to sync source-derived
160+
podcast and people pages before graph generation. The source documents are
161+
`_wiki/`, `_articles/`, `_people/`, and `_podcast_summaries/`. Episode nodes
162+
should link to local podcast pages, which then link to the original
163+
DataTalks.Club podcast pages.
153164

154165
Run `python scripts/check_links.py` after a static build to validate generated
155166
internal links. GitHub Pages runs the same checker with the deployed base path.

CONTENT_GUIDE.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ Do not publish maintenance notes, agent instructions, evidence appendixes, guest
2020
description appendixes, or SEO scaffolding such as `Search Intent` sections.
2121
Use inline references in the relevant section, like Wikipedia citations.
2222

23-
When the source episode is known, link to the specific podcast page:
24-
`https://datatalks.club/podcast/<source-file-slug>.html`. Use
23+
When the source episode is known, wiki and article pages should link to the
24+
local podcast page: `{{ '/podcasts/<source-file-slug>/' | relative_url }}`. The
25+
local podcast page links to the original
26+
`https://datatalks.club/podcast/<source-file-slug>.html` episode. Use
2527
`https://datatalks.club/podcast.html` only when the specific episode slug is not
2628
known yet.
2729

@@ -75,6 +77,7 @@ knowledge pages built from the podcast archive.
7577
Podcast summaries live in `_podcast_summaries/`. They are not replacement podcast
7678
pages and must not copy full transcripts. Their job is to help future agents decide
7779
whether to open the original source episode in `../datatalksclub.github.io`.
80+
They are also the internal citation targets for wiki and article pages.
7881

7982
Required structure:
8083

@@ -84,6 +87,29 @@ Required structure:
8487
- useful-for / probably-skip-if guidance for agents
8588
- source pointers back to `https://datatalks.club/podcast.html` and source files
8689

90+
Generate or refresh these local podcast pages with
91+
`python scripts/sync_podcast_pages.py`. The source of truth is still
92+
`../datatalksclub.github.io/_podcast`.
93+
94+
Before topic writeups, run `make sources`. This extracts podcast episodes,
95+
people, chapter summaries, and topic candidates into Markdown pages and
96+
`artifacts/podcast/source-index.json`. Agents should use that index and the
97+
local `/podcasts/<slug>/` pages as their first pass before opening a full
98+
episode transcript.
99+
100+
For large topic discovery work, keep five subagents running in parallel. Split
101+
the source episodes into non-overlapping batches. Each subagent should return
102+
candidate topics, local podcast links, guest links, and chapter evidence before
103+
any wiki or article page is written.
104+
105+
## Graph Source
106+
107+
The graph is derived from Markdown documents, not maintained as editorial
108+
content. Wiki pages, articles, people pages, and local podcast pages are the
109+
source. `graph/graph.json` is generated by `python scripts/build_graph.py` and
110+
should not be hand-edited. Run `make sources` before `make graph` when podcast
111+
or people source files changed.
112+
87113
## People Pages
88114

89115
People pages live in `_people/`. They collect guest/contributor information from

CONTENT_TODO.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,24 @@ These notes capture the current cleanup direction and should not be lost.
3636
collecting evidence in a separate appendix.
3737
- Make every page link-heavy: visible links to specific podcast interviews,
3838
related wiki pages, relevant articles, and useful local podcast summaries.
39-
- Use specific podcast interview URLs, not only
40-
`https://datatalks.club/podcast.html`, whenever the source episode slug is
41-
known.
39+
- Use local podcast links such as
40+
`{{ '/podcasts/<source-file-slug>/' | relative_url }}` whenever the source
41+
episode slug is known. The local podcast page links to the original
42+
DataTalks.Club episode.
4243
- Make related links visually obvious in CSS. Related pages should look like
4344
links, not muted tags.
4445
- Add a graph-driven "See also" or related graph nodes section to wiki and
4546
article pages, especially stub pages such as `_wiki/tools.md`.
46-
- Change `/podcasts/` into a list view closer to the original DataTalks.Club
47-
podcast structure, not a generic card/grid page.
47+
- Keep `/podcasts/` as a list view closer to the original DataTalks.Club
48+
podcast structure. The pages in `_podcast_summaries/` are the internal
49+
citation targets for wiki/articles.
50+
- Treat Markdown pages as the source for the graph. Do not maintain
51+
`graph/graph.json` separately; regenerate it from the collections.
52+
- Keep `make sources` as the first step for broad podcast work. It syncs local
53+
podcast pages, people pages, chapter summaries, and the source index used by
54+
subagents.
55+
- For broad topic discovery, keep five subagents running on non-overlapping
56+
podcast batches and collect grounded topic reports before writing pages.
4857
- Keep MLOps and DataOps as separate concept pages. Use `_wiki/mlops.md` for
4958
model lifecycle operations, `_wiki/dataops.md` for data delivery operations,
5059
and `_articles/mlops-vs-dataops.md` for the comparison.

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1-
.PHONY: help graph index lambda-package build serve links clean check
1+
.PHONY: help sources graph index lambda-package build serve links clean check
22

33
help:
44
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-12s %s\n", $$1, $$2}'
55

6-
graph: ## Build the static graph data used by the site
6+
sources: ## Sync source-derived podcast and people pages for graph/search
7+
python scripts/sync_podcast_pages.py
8+
python scripts/sync_people_pages.py
9+
python scripts/extract_podcast_sources.py
10+
11+
graph: sources ## Build the static graph data used by the site
712
python scripts/build_graph.py
813

914
index: graph ## Build the zerosearch artifact used by Lambda

0 commit comments

Comments
 (0)