Skip to content

feat: expand catalog to 1,252 resources with podcast, course, and discovery updates - #2

Open
iChubai wants to merge 1 commit into
OpenEnvision:mainfrom
iChubai:expand-catalog-and-discovery
Open

feat: expand catalog to 1,252 resources with podcast, course, and discovery updates#2
iChubai wants to merge 1 commit into
OpenEnvision:mainfrom
iChubai:expand-catalog-and-discovery

Conversation

@iChubai

@iChubai iChubai commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Grow the catalog from 1,025 to 1,252 verified videos (+227): 71 research podcasts across 22 shows, 79 World Models / research-craft / Vision resources, and 77 official course-series completions.
  • Complete eight incomplete official course series (Stanford CS234, MIT 6.5940, CS50 AI, Full Stack Deep Learning, Karpathy Zero to Hero, MIT 6.S191, NYU Deep Learning 2026, CMU 11-785).
  • Add podcast discovery (show index, first-class library category), richer Why Watch / audience copy, an expanded concept map and ScholarTubers directory, and a staged learning-path workbench. Metadata hygiene and series/notes maintenance scripts land with the catalog.

Test plan

  • npm ci && npm run dev — library search, filters, podcast tab, and series detail still work
  • Open a new podcast episode and a completed course series (e.g. Karpathy Zero to Hero, CS234) and check source links
  • Learning workbench: pick a goal, confirm a path is generated, and export still works
  • Coverage table in README matches live JSON (1,252 total)
  • npm run test:detail and npm run test:paths pass

Made with Cursor

Copilot AI lite review requested due to automatic review settings August 26, 2026 06:22
…covery updates

Grow the index from 1,025 to 1,252 verified videos, complete eight official course series, and add podcast discovery plus learning-workbench editorial surfaces.
@iChubai
iChubai force-pushed the expand-catalog-and-discovery branch from aaefa73 to baf593b Compare August 26, 2026 06:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Expands ScholarTube’s catalog and discovery experience by adding podcast-aware filtering/display, richer editorial framing (library intros, curation protocol, overrides), and improved learning-path/workbench logic—alongside new maintenance scripts and tests to keep the enlarged dataset consistent.

Changes:

  • Add first-class podcast support across the UI (new “Podcast” format, show index section, filtering, and format-family handling).
  • Improve learning-path generation, “next” recommendations, and researcher aggregation; add automated tests for these behaviors.
  • Add editorial overrides, concept-map expansions, and maintenance scripts/docs for taxonomy, series grouping, hygiene, and notes.

Reviewed changes

Copilot reviewed 41 out of 49 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/styles.css Styles for library intro, podcast show cards, resource topics, and responsive tweaks.
src/resource-utils.js Adds podcast detection + format-family helpers and integrates them into search/filtering.
src/learning-utils.js Reworks learning-path construction, adds step reasons, improves next recommendations and researcher aggregation.
src/export-utils.js Exports format-family details and clarifies format output for podcasts.
src/editorial-overrides.js Adds hand-written why/audience copy keyed by resource id.
src/concept-map.js Expands concept clusters and prerequisite relationships.
src/components/ScholarTubers.jsx Expands/edits curated profile definitions.
src/components/ResourceDetail.jsx Adds topics chips and podcast-aware format line in detail view.
src/components/ResourceCard.jsx Displays “Podcast” and “Core” labeling in cards when applicable.
src/components/PodcastShows.jsx New podcast show index section with curated show intros and “browse episodes” actions.
src/components/PathGraph.jsx Updates copy for the skill tree UI.
src/components/Library.jsx Adds Podcast format tab, show filtering, intro panel, and accessibility attributes.
src/components/LearningWorkbench.jsx Adds goal summaries/stage trails, path step reasons, improved researcher view, and next-step framing.
src/components/Hero.jsx Updates hero messaging and adds podcast episode count.
src/components/Header.jsx Adds “Podcasts” nav link and renames “About” to “Curation”.
src/components/Footer.jsx Updates footer copy and adds new anchor links (learning/podcasts/contribute).
src/components/FeaturedCarousel.jsx Updates featured slide metadata labeling and aria-labels.
src/components/Directions.jsx Adds podcast breakdown in direction cards using format-family.
src/components/Curation.jsx Expands on-page curation protocol and introduces signal definitions.
src/components/CourseSeriesDetail.jsx Adds series intro copy and podcast-aware series labeling.
src/components/CourseSeriesCard.jsx Podcast-aware “episode/lecture” labeling and improved aria-label wording.
src/components/Contribute.jsx Tightens contribution copy/checklist and broadens URL placeholder to Bilibili.
src/App.jsx Adds PodcastShows section and updates featured rotation/format param handling.
scripts/test-resource-detail.mjs New tests for editorial overrides + generated detail copy determinism/shape.
scripts/test-learning-paths.mjs New tests for learning-path stability and researcher parsing.
scripts/apply-taxonomy-fixes.mjs New guarded taxonomy fix script (idempotent, evidence-backed).
scripts/apply-metadata-hygiene.mjs New idempotent hygiene script (speaker/format/domain/keywords/tiering).
scripts/apply-editorial-notes.mjs New idempotent notes generator replacing boilerplate with field-driven notes.
scripts/apply-course-series.mjs Expands series assignment to include Talk series + new mappings/order tie-breaks.
README.md Updates catalog counts and documents new maintenance/test commands.
package.json Adds new scripts for curation pipeline, tests, and data adders.
dist/index.html Updates built asset references (hashed JS/CSS).
data/world_models_research_craft_curation_2026-08-25.md Documents world-model/research-craft expansion batch and verification.
data/series_and_notes_quality_2026-08-25.md Documents series consolidation + notes/taxonomy quality pass.
data/podcast_expansion_2026-08-25.md Documents podcast expansion batch and verification.
data/official_course_completions_2026-08-25.md Documents official course completion batch and verification.
data/metadata_verification_report.json Updates verification totals and platform breakdown post-expansion.
data/metadata_hygiene_2026-08-25.md Documents hygiene pass rules/results and merge guidance.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +190 to +193
- **Build** — `npm run build` (Vite + publish-root) succeeds against the
updated JSON. Built artifacts (`index.html`, `dist/`, `assets/`) were
intentionally **not** committed so the site can be rebuilt once after all
parallel content PRs merge.
Comment thread src/components/Hero.jsx
Comment on lines 25 to +26
<span><b>{countBySection('Interview')}</b> interviews</span>
<span><b>{podcastCount}</b> podcast episodes</span>
Comment on lines +3 to +20
import { formatDuration, formatViews, getDisplayTopic } from '../resource-utils'
import { buildSeriesIntro } from '../resource-detail-utils'

// Local copy of the podcast heuristic, duplicated from resource-detail-utils.js
// on purpose so resource-utils.js stays untouched. Keep both copies aligned:
// podcast if format/seriesTitle/channel matches /podcast/i, or title/channel contains 播客.
function isPodcastResource(resource) {
return (
/podcast/i.test(resource.format || '') ||
/podcast/i.test(resource.seriesTitle || '') ||
/podcast/i.test(resource.channel || '') ||
(resource.title || '').includes('播客') ||
(resource.channel || '').includes('播客')
)
}

// Hand-written introductions for the shows the index knows well. Everything
// else falls back to the generated series introduction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants