{
 "dataset": "sources_registry",
 "as_of_date": "2026-10-10",
 "generated_at": "2026-10-09T00:23:31Z",
 "description": "Registry of news feeds, company IR channels, market-data pages and commentator channels for the Nuclear Atlas news ticker and 'Voices' section. One record per channel. verified='yes' means the feed URL was fetched on the as_of_date and returned items; YouTube/X/website records are never 'yes' because their feeds/profiles could not be fetched by the research tooling (robots.txt or JS rendering). See docs/data/sources_registry.md for method and parsing notes.",
 "sources": [
  {
   "name": "Each record's own source_url (fetched 2026-10-08/09 UTC via WebFetch)",
   "url": null,
   "accessed": "2026-10-09",
   "licence": "Various; see licence_or_terms_note per record"
  },
  {
   "name": "NRC RSS feeds page",
   "url": "https://www.nrc.gov/public-involve/rss-feeds",
   "accessed": "2026-10-09",
   "licence": "US Government work (public domain)"
  },
  {
   "name": "EIA RSS Feeds page",
   "url": "https://www.eia.gov/tools/rssfeeds/",
   "accessed": "2026-10-09",
   "licence": "US Government work (public domain)"
  },
  {
   "name": "X Developer Policy",
   "url": "https://docs.x.com/developer-terms/policy",
   "accessed": "2026-10-09",
   "licence": "Terms document"
  },
  {
   "name": "YouTube API Services - Developer Policies",
   "url": "https://developers.google.com/youtube/terms/developer-policies",
   "accessed": "2026-10-09",
   "licence": "Terms document"
  }
 ],
 "fields": {
  "source_id": "Stable slug, unique per record (one record per channel/feed; a publisher with several channels has several records).",
  "name": "Display name of the source.",
  "type": "rss | youtube | x | website | api. 'rss' = a machine-readable RSS/Atom feed URL; 'website' = HTML page to scrape/link only.",
  "url": "For rss: the feed URL itself. For youtube: the channel URL. For x: the profile URL as it appears on the linking page. For website: the news/listing page.",
  "channel_id": "YouTube channel id (UC...), null unless type=youtube and the id was seen on a fetched page.",
  "handle": "X or YouTube handle including @, null if unknown.",
  "publisher": "Organisation or person behind the source.",
  "category_default": "Default ticker category: regulatory_policy | uranium | reactors_technology | companies_capital | markets | commentary.",
  "region": "Primary geographic focus (ISO-like short code or 'global').",
  "language": "Primary language (ISO 639-1).",
  "cadence_suggested": "Suggested polling cadence for the ingestion job (not the publisher's output cadence).",
  "verified": "'yes' = the feed URL was fetched on as_of_date and returned items; 'no' = not fetchable/not a feed (see notes).",
  "feed_content": "What feed items carry: full_text | summary | title_only | mixed | n/a (not a feed).",
  "licence_or_terms_note": "Reuse / terms situation as observed (paywall, copyright, attribution).",
  "source_url": "Page that was actually fetched to verify this record.",
  "source_name": "Name of that page/publisher.",
  "as_of_date": "Date the record was verified (UTC).",
  "confidence": "high = verified directly by fetching the feed/page; medium = seen on a linking page or secondary source; low = partial/unfetchable.",
  "notes": "Free-text observations: item counts, content depth, quirks, parsing hints."
 },
 "known_gaps": [
  "YouTube channel feeds (youtube.com/feeds/videos.xml?channel_id=...): robots-disallowed for the Stage 1 fetcher; the five channels with a channel id answered the runner fetch of 2026-10-10 with entries and are ingested into curated_posts (the author's instruction: the public feeds, no API key).",
  "X profiles cannot be fetched without login/API; handles were taken from the commentators' own websites or an archived thread. Live status of @quakes99 unconfirmed.",
  "No feed found (website only): Kazatomprom, Orano, Urenco, NexGen, Denison, Paladin, Boss, UEC, enCore, Global Atomic, Yellow Cake, Uranium Royalty, SPUT, Talen, Oklo, NuScale, TerraPower, Kairos, Rolls-Royce SMR, OPG, TVA, EDF, Fortum, KHNP, NEI, WNA, Ember.",
  "EIA Today in Energy feed: eia.gov/rss is robots-disallowed for the Stage 1 fetcher; verified on 2026-10-10 by the runner fetch (HTTP 200, 15 items).",
  "Triangle Investor: no website or X handle found; Substack profile URL unverified.",
  "Titans of Nuclear: no YouTube channel_id found; podcast appears dormant since Dec 2023.",
  "Nuclear Engineering International feed items stop at 16 Jun 2026 - may be stale.",
  "Cameco RSS <description> bodies were identical across items at fetch (site bug) - use titles/links only.",
  "Not included because URL/page could not be verified: Numerco uranium spot proxy page, Mining Stock Education and Palisades Gold Radio YouTube channel ids, Doomberg Substack (robots), KASE/LSE RNS feeds for Kazatomprom/Yellow Cake."
 ],
 "records": [
  {
   "source_id": "world-nuclear-news",
   "name": "World Nuclear News",
   "type": "rss",
   "url": "https://www.world-nuclear-news.org/rss",
   "channel_id": null,
   "handle": null,
   "publisher": "World Nuclear Association (WNN)",
   "category_default": "reactors_technology",
   "region": "global",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "full_text",
   "licence_or_terms_note": "Copyright WNA/World Nuclear News; feed carries full text in a custom wnn:fullText element. Display headline + link; do not republish full text without permission.",
   "source_url": "https://www.world-nuclear-news.org/rss",
   "source_name": "World Nuclear News RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0, 'World Nuclear News'; >=18 items; items dated 28 Sep-01 Oct 2026 at fetch; each item has <description> plus <wnn:fullText>. Articles cover reactors, uranium, policy; categorise by keyword."
  },
  {
   "source_id": "nucnet",
   "name": "NucNet",
   "type": "rss",
   "url": "https://www.nucnet.org/feed.rss",
   "channel_id": null,
   "handle": null,
   "publisher": "NucNet (The Independent Nuclear News Agency)",
   "category_default": "reactors_technology",
   "region": "global",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Articles are subscriber-only ('Subscribe for full access to every article'); feed gives 2-4 lead paragraphs. Link out only.",
   "source_url": "https://www.nucnet.org/feed.rss",
   "source_name": "NucNet: Global Nuclear News RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 titled 'NucNet: Global Nuclear News'; 15 items; latest 07 Oct 2026. Feed URL found in site footer (/feed.rss)."
  },
  {
   "source_id": "ans-newswire",
   "name": "ANS Nuclear Newswire",
   "type": "rss",
   "url": "https://www.ans.org/news/feed/",
   "channel_id": null,
   "handle": null,
   "publisher": "American Nuclear Society",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright ANS. Free to read; feed gives first paragraph(s) only.",
   "source_url": "https://www.ans.org/news/feed/",
   "source_name": "ANS Newswire RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'ANS Newswire'; 50 items; latest 07 Oct 2026. Not advertised on the news page (no rel=alternate); /news/rss/ returned an error. One item observed with a title/link mismatch - dedupe on link AND title."
  },
  {
   "source_id": "iaea-top-news",
   "name": "IAEA Top News",
   "type": "rss",
   "url": "https://www.iaea.org/feeds/topnews",
   "channel_id": null,
   "handle": null,
   "publisher": "International Atomic Energy Agency",
   "category_default": "regulatory_policy",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "title_only",
   "licence_or_terms_note": "IAEA content; headline + link use is uncontroversial. Full IAEA terms page could not be fetched (CLIENT_ERROR) - check https://www.iaea.org/about/terms-of-use manually.",
   "source_url": "https://www.iaea.org/feeds/topnews",
   "source_name": "IAEA Top News RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'IAEA Top News'; 15 items; latest 07 Oct 2026. Most <description> fields are empty; pubDate uses a non-standard 'YY-MM-DD HH:MM' format - parse defensively. The /feeds landing page does not list feed URLs."
  },
  {
   "source_id": "nrc-news-releases",
   "name": "NRC News Releases",
   "type": "rss",
   "url": "https://www.nrc.gov/public-involve/rss?feed=news",
   "channel_id": null,
   "handle": null,
   "publisher": "U.S. Nuclear Regulatory Commission",
   "category_default": "regulatory_policy",
   "region": "US",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "title_only",
   "licence_or_terms_note": "US federal government work - public domain; NRC asks to be acknowledged as source.",
   "source_url": "https://www.nrc.gov/public-involve/rss-feeds",
   "source_name": "NRC RSS feeds page",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'NRC RSS Feed: News Releases'; 164 items; items are title + pubDate + link to a PDF (no description). Latest 14 Sep 2026 at fetch. Listed on https://www.nrc.gov/public-involve/rss-feeds together with event, plant-status and new-content feeds."
  },
  {
   "source_id": "nrc-event-reports",
   "name": "NRC Daily Event Reports",
   "type": "rss",
   "url": "https://www.nrc.gov/public-involve/rss?feed=event",
   "channel_id": null,
   "handle": null,
   "publisher": "U.S. Nuclear Regulatory Commission",
   "category_default": "regulatory_policy",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "title_only",
   "licence_or_terms_note": "US federal government work - public domain.",
   "source_url": "https://www.nrc.gov/public-involve/rss?feed=event",
   "source_name": "NRC Event Report RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 with empty channel title; 8 items; items are event number + licensee name + link, no dates - stamp with fetch time."
  },
  {
   "source_id": "nrc-plant-status",
   "name": "NRC Power Reactor Status Report",
   "type": "rss",
   "url": "https://www.nrc.gov/public-involve/rss?feed=plant-status",
   "channel_id": null,
   "handle": null,
   "publisher": "U.S. Nuclear Regulatory Commission",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "title_only",
   "licence_or_terms_note": "US federal government work - public domain.",
   "source_url": "https://www.nrc.gov/public-involve/rss?feed=plant-status",
   "source_name": "NRC plant status RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0, empty channel title; 99 items like 'Arkansas Nuclear 1 - 100% power'; no dates. Useful as a daily US fleet status snapshot rather than a news feed."
  },
  {
   "source_id": "nei-news",
   "name": "Nuclear Energy Institute - News & Blog",
   "type": "website",
   "url": "https://www.nei.org/news",
   "channel_id": null,
   "handle": null,
   "publisher": "Nuclear Energy Institute",
   "category_default": "regulatory_policy",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright NEI; trade association advocacy content.",
   "source_url": "https://www.nei.org/news",
   "source_name": "NEI News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS/Atom link on the page; only an email-preferences page. Latest items 08 Oct 2026 ('Who's Talking Nuclear: Q3 2026'). Scrape headline list or skip."
  },
  {
   "source_id": "doe-ne-press-releases",
   "name": "US DOE Office of Nuclear Energy - Press Releases",
   "type": "rss",
   "url": "https://www.energy.gov/rss/ne/2282917",
   "channel_id": null,
   "handle": null,
   "publisher": "U.S. Department of Energy, Office of Nuclear Energy",
   "category_default": "regulatory_policy",
   "region": "US",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "US federal government work - public domain; DOE requests credit 'U.S. Department of Energy'.",
   "source_url": "https://www.energy.gov/ne/listings/ne-press-releases",
   "source_name": "DOE NE press releases listing",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'NE Press Releases'; 10 items; 1-2 sentence descriptions; latest 05 Oct 2026. The generic https://www.energy.gov/rss.xml is NOT useful (stale 2019-2020 items)."
  },
  {
   "source_id": "wna-news-media",
   "name": "World Nuclear Association - News and Media",
   "type": "website",
   "url": "https://world-nuclear.org/news-and-media",
   "channel_id": null,
   "handle": null,
   "publisher": "World Nuclear Association",
   "category_default": "regulatory_policy",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright WNA. Press statements; the association's news service is WNN (separate record).",
   "source_url": "https://world-nuclear.org/news-and-media",
   "source_name": "WNA News and Media",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link found. Latest items 23 Sep 2026 ('Roadmaps to New Nuclear 2026'). Items live under /news-and-media/press-statements/."
  },
  {
   "source_id": "ember",
   "name": "Ember - Insights",
   "type": "website",
   "url": "https://ember-energy.org/latest-insights/",
   "channel_id": null,
   "handle": null,
   "publisher": "Ember (energy think tank)",
   "category_default": "markets",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Ember publishes data under CC BY-SA 4.0 (check per dataset); reports copyright Ember.",
   "source_url": "https://ember-energy.org/feed/",
   "source_name": "Ember WordPress feed",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "WordPress feed https://ember-energy.org/feed/ exists but returned an RSS with 0 items (lastBuildDate 08 Oct 2026). No feed link on homepage/insights page. Latest insight 06 Oct 2026. Scrape listing or use Ember's data API instead."
  },
  {
   "source_id": "our-world-in-data",
   "name": "Our World in Data - Atom feed",
   "type": "rss",
   "url": "https://ourworldindata.org/atom.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "Our World in Data (Global Change Data Lab)",
   "category_default": "markets",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "OWID content is CC BY 4.0 (text and charts); third-party data may differ. Attribution required.",
   "source_url": "https://ourworldindata.org/atom.xml",
   "source_name": "Our World in Data Atom",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Atom feed, 10 items, mixed topics (not energy-specific) - filter on 'energy', 'nuclear', 'electricity'. Latest 05 Oct 2026."
  },
  {
   "source_id": "eia-today-in-energy",
   "name": "EIA Today in Energy",
   "type": "rss",
   "url": "https://www.eia.gov/rss/todayinenergy.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "U.S. Energy Information Administration",
   "category_default": "markets",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "US federal government work - public domain; EIA asks for attribution.",
   "source_url": "https://www.eia.gov/tools/rssfeeds/",
   "source_name": "EIA RSS Feeds page",
   "as_of_date": "2026-10-10",
   "confidence": "high",
   "notes": "Feed URL is listed on EIA's RSS page but eia.gov/rss/* is disallowed by robots.txt for our fetcher (ROBOTS_DISALLOWED), so items were not verified. Likely works from a server with a normal UA. Filter for 'nuclear'/'uranium'. Verified on 2026-10-10: the runner fetch (scripts/fetch/news_feeds.txt, data/raw/news/2026-10-10) returned HTTP 200 with 15 RSS items, so the feed is enabled for ingestion."
  },
  {
   "source_id": "eia-uranium-marketing-annual",
   "name": "EIA Uranium Marketing Annual Report",
   "type": "website",
   "url": "https://www.eia.gov/uranium/marketing/",
   "channel_id": null,
   "handle": null,
   "publisher": "U.S. Energy Information Administration",
   "category_default": "uranium",
   "region": "US",
   "language": "en",
   "cadence_suggested": "monthly",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "US federal government work - public domain.",
   "source_url": "https://www.eia.gov/uranium/marketing/",
   "source_name": "EIA Uranium Marketing Annual Report",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Annual. Page states 'Release Date: July 29, 2026', 'With Data for 2025', 'Re-release date August 13, 2026', 'Next Release Date: July 2027'. Poll monthly for the next release; data tables are XLS/HTML on the page."
  },
  {
   "source_id": "cameco-news",
   "name": "Cameco - News Releases",
   "type": "rss",
   "url": "https://www.cameco.com/rss/news",
   "channel_id": null,
   "handle": null,
   "publisher": "Cameco Corporation",
   "category_default": "uranium",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "full_text",
   "licence_or_terms_note": "Cameco terms of use: personal, non-commercial viewing only; written consent for other use. Show headline + link only.",
   "source_url": "https://www.cameco.com/media",
   "source_name": "Cameco Media page (links 'News Releases' RSS)",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 titled 'News'; >=7 items; latest 22 Sep 2026 (pubDate differs from site date 30 Sep). BUG observed: every item's <description> contained the same (latest) release body - use title/link/date only, ignore body."
  },
  {
   "source_id": "cameco-uranium-price",
   "name": "Cameco - Uranium Price page (UxC/TradeTech industry average)",
   "type": "website",
   "url": "https://www.cameco.com/invest/markets/uranium-price",
   "channel_id": null,
   "handle": null,
   "publisher": "Cameco Corporation",
   "category_default": "markets",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Cameco states it 'calculates industry average prices from the month-end prices published by UxC and TradeTech'; underlying indicators are UxC/TradeTech copyright. Quote with attribution to Cameco/UxC/TradeTech.",
   "source_url": "https://www.cameco.com/invest/markets/uranium-price",
   "source_name": "Cameco Uranium Price",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Monthly table. At fetch: spot 89.63 and long-term 96.50 (USD/lb U3O8) for 2026/09/30. HTML table scrape; no feed."
  },
  {
   "source_id": "kazatomprom-news",
   "name": "Kazatomprom - News",
   "type": "website",
   "url": "https://www.kazatomprom.kz/en/media/news",
   "channel_id": null,
   "handle": null,
   "publisher": "NAC Kazatomprom JSC",
   "category_default": "uranium",
   "region": "KZ",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Kazatomprom; also disclosed via LSE RNS and KASE.",
   "source_url": "https://www.kazatomprom.kz/en/media/news",
   "source_name": "Kazatomprom News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link. Dates shown without year (e.g. '8 October'). /en/media/press-releases returned an error. KASE issuer news page https://kase.kz/en/issuers/news/KZAP/60/ surfaced in search as an alternative (not fetched)."
  },
  {
   "source_id": "orano-news",
   "name": "Orano - News",
   "type": "website",
   "url": "https://www.orano.group/en/news",
   "channel_id": null,
   "handle": null,
   "publisher": "Orano",
   "category_default": "uranium",
   "region": "FR",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Orano.",
   "source_url": "https://www.orano.group/en",
   "source_name": "Orano homepage",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "News list is rendered client-side (template placeholder '#{post.title}' in HTML) - needs a headless fetch or the site's JSON endpoint. No RSS link found."
  },
  {
   "source_id": "urenco-news",
   "name": "Urenco - News",
   "type": "website",
   "url": "https://www.urenco.com/news",
   "channel_id": null,
   "handle": null,
   "publisher": "Urenco",
   "category_default": "uranium",
   "region": "EU",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Urenco.",
   "source_url": "https://www.urenco.com/news",
   "source_name": "Urenco News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Server-rendered list with dates (latest 08 Oct 2026). No RSS link. Simple HTML scrape."
  },
  {
   "source_id": "centrus-ir-news",
   "name": "Centrus Energy - News Releases (IR)",
   "type": "rss",
   "url": "https://investors.centrusenergy.com/rss/news-releases.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "Centrus Energy Corp.",
   "category_default": "uranium",
   "region": "US",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright Centrus; press releases distributed via wire services (PR Newswire observed).",
   "source_url": "https://investors.centrusenergy.com/rss/news-releases.xml",
   "source_name": "Centrus IR RSS (Q4 platform)",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Q4 Inc. platform feed; 10 items; truncated excerpts; latest 17 Sep 2026. Corporate site https://www.centrusenergy.com/news/ has no feed link."
  },
  {
   "source_id": "nexgen-news",
   "name": "NexGen Energy - Investor News",
   "type": "website",
   "url": "https://www.nexgenenergy.ca/investor-news",
   "channel_id": null,
   "handle": null,
   "publisher": "NexGen Energy Ltd.",
   "category_default": "uranium",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright NexGen.",
   "source_url": "https://www.nexgenenergy.ca/investor-news",
   "source_name": "NexGen Investor News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS; email alerts only. Latest 28 Aug 2026. Older URL /investors/news-releases/ errored."
  },
  {
   "source_id": "denison-news",
   "name": "Denison Mines - News",
   "type": "website",
   "url": "https://denisonmines.com/news/",
   "channel_id": null,
   "handle": null,
   "publisher": "Denison Mines Corp.",
   "category_default": "uranium",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Denison; PDFs hosted on denisonmines.mediaroom.com (PR Newswire MediaRoom).",
   "source_url": "https://denisonmines.com/news/",
   "source_name": "Denison News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link. Latest 12 Aug 2026. The mediaroom root page is only an email sign-up form."
  },
  {
   "source_id": "paladin-asx",
   "name": "Paladin Energy - ASX Announcements",
   "type": "website",
   "url": "https://www.paladinenergy.com/investors/asx-announcements/",
   "channel_id": null,
   "handle": null,
   "publisher": "Paladin Energy Ltd",
   "category_default": "uranium",
   "region": "AU",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "ASX announcements are public disclosures; PDFs copyright Paladin/ASX.",
   "source_url": "https://www.paladinenergy.com/investors/asx-announcements/",
   "source_name": "Paladin ASX Announcements",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "paladinenergy.com.au redirects (302) to paladinenergy.com. No RSS. List includes routine substantial-holder notices (filter by title)."
  },
  {
   "source_id": "boss-energy-asx",
   "name": "Boss Energy - ASX Announcements",
   "type": "website",
   "url": "https://bossenergy.com/investors/asx-announcements",
   "channel_id": null,
   "handle": null,
   "publisher": "Boss Energy Limited",
   "category_default": "uranium",
   "region": "AU",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "ASX announcements are public disclosures; copyright Boss Energy.",
   "source_url": "https://www.bossenergy.com/",
   "source_name": "Boss Energy homepage (nav link)",
   "as_of_date": "2026-10-09",
   "confidence": "low",
   "notes": "Announcements page URL taken from homepage navigation; direct fetch of /asx-announcements/ errored and the homepage announcement widget was empty (client-side). No RSS."
  },
  {
   "source_id": "energy-fuels-ir-news",
   "name": "Energy Fuels - News Releases (IR)",
   "type": "rss",
   "url": "https://investors.energyfuels.com/news-releases?pagetemplate=rss",
   "channel_id": null,
   "handle": null,
   "publisher": "Energy Fuels Inc.",
   "category_default": "uranium",
   "region": "US",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "title_only",
   "licence_or_terms_note": "Copyright Energy Fuels.",
   "source_url": "https://investors.energyfuels.com/index.php?s=95&rsspage=43",
   "source_name": "Energy Fuels IR RSS page",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'Press & New Releases | Energy Fuels Inc'; 5 items; descriptions empty; latest 28 Aug 2026. Corporate /news-pr page errored. Same IR platform pattern as Vistra."
  },
  {
   "source_id": "uec-news",
   "name": "Uranium Energy Corp - News Releases",
   "type": "website",
   "url": "https://www.uraniumenergy.com/news/releases/",
   "channel_id": null,
   "handle": null,
   "publisher": "Uranium Energy Corp.",
   "category_default": "uranium",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright UEC.",
   "source_url": "https://www.uraniumenergy.com/news/releases/2026/",
   "source_name": "UEC News Releases 2026",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Listing is client-side ('Loading...'); the year page /news/releases/2026/ rendered headlines (latest 29 Sep 2026 'Fiscal 2026 Results'). No RSS; /rss/news-releases.xml errored."
  },
  {
   "source_id": "encore-news",
   "name": "enCore Energy - News",
   "type": "website",
   "url": "https://encoreuranium.com/news/",
   "channel_id": null,
   "handle": null,
   "publisher": "enCore Energy Corp.",
   "category_default": "uranium",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright enCore.",
   "source_url": "https://encoreuranium.com/news/",
   "source_name": "enCore News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Server-rendered list with dates (latest 01 Oct 2026). No RSS link."
  },
  {
   "source_id": "ur-energy-news",
   "name": "Ur-Energy - Press Releases",
   "type": "rss",
   "url": "https://www.ur-energy.com/news-media/press-releases/rss",
   "channel_id": null,
   "handle": null,
   "publisher": "Ur-Energy Inc.",
   "category_default": "uranium",
   "region": "US",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "full_text",
   "licence_or_terms_note": "Copyright Ur-Energy; full release HTML in feed - display headline + link.",
   "source_url": "https://www.ur-energy.com/news-media/press-releases",
   "source_name": "Ur-Energy Press Releases",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'Ur-Energy Inc. (URG) News'; full text in content:encoded; feed is large (truncated at 100k chars in our fetch after 2 items). Latest 20 Aug 2026."
  },
  {
   "source_id": "global-atomic-news",
   "name": "Global Atomic - News Releases",
   "type": "website",
   "url": "https://globalatomiccorp.com/investors/news/default.aspx",
   "channel_id": null,
   "handle": null,
   "publisher": "Global Atomic Corporation",
   "category_default": "uranium",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Global Atomic.",
   "source_url": "https://globalatomiccorp.com/investors/news/default.aspx",
   "source_name": "Global Atomic News (Q4 platform)",
   "as_of_date": "2026-10-09",
   "confidence": "low",
   "notes": "Q4 platform but list is client-side ('Loading...'); no RSS link found and the usual Q4 /rss/news-releases.xml path was not advertised. Needs headless fetch."
  },
  {
   "source_id": "sprott-physical-uranium-trust",
   "name": "Sprott Physical Uranium Trust (SPUT) - fund page",
   "type": "website",
   "url": "https://sprott.com/investment-strategies/physical-commodity-funds/uranium/",
   "channel_id": null,
   "handle": null,
   "publisher": "Sprott Asset Management",
   "category_default": "markets",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Sprott; NAV/holdings figures may be quoted with attribution and as-of date.",
   "source_url": "https://www.sprott.com/investment-strategies/physical-commodity-funds/uranium/",
   "source_name": "Sprott Physical Uranium Trust",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "At fetch 'As of October 8, 2026': NAV US$21.56, total lbs U3O8 81,697,348, total NAV US$7.42 billion. Press releases: https://sprott.com/investment-strategies/exchange-listed-products/physical-commodity-funds/uranium/press-releases/ (latest 26 Jan 2026). No RSS. An earlier fetch of the non-www URL returned a cached page dated 05 Dec 2025 - always read the as-of label."
  },
  {
   "source_id": "yellow-cake-plc",
   "name": "Yellow Cake plc - News / RNS",
   "type": "website",
   "url": "https://www.yellowcakeplc.com/news/",
   "channel_id": null,
   "handle": null,
   "publisher": "Yellow Cake plc",
   "category_default": "markets",
   "region": "UK",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "RNS announcements are public regulatory disclosures; page copyright Yellow Cake.",
   "source_url": "https://www.yellowcakeplc.com/news/",
   "source_name": "Yellow Cake News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Regulatory news is an Investis embed (otp.tools.investis.com/clients/uk/yellow_cake/rns/regulatory-news.aspx) - scrape that iframe source, not the page. No RSS link."
  },
  {
   "source_id": "uranium-royalty-news",
   "name": "Uranium Royalty Corp - News Releases",
   "type": "website",
   "url": "https://www.uraniumroyalty.com/news/news-releases/",
   "channel_id": null,
   "handle": null,
   "publisher": "Uranium Royalty Corp.",
   "category_default": "companies_capital",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright URC.",
   "source_url": "https://www.uraniumroyalty.com/news/news-releases/",
   "source_name": "URC News Releases",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS. Listing shows headlines without dates; homepage showed latest 14 Sep 2026. Dates must be read from individual release pages."
  },
  {
   "source_id": "constellation-ir-news",
   "name": "Constellation Energy - News Releases (IR)",
   "type": "rss",
   "url": "https://investors.constellationenergy.com/rss/news-releases.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "Constellation Energy Corporation",
   "category_default": "companies_capital",
   "region": "US",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright Constellation.",
   "source_url": "https://investors.constellationenergy.com/rss/news-releases.xml",
   "source_name": "Constellation IR RSS (Q4)",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Q4 feed; 10 items; truncated excerpts; latest 06 Oct 2026 (Google 890 MW PJM agreement)."
  },
  {
   "source_id": "vistra-ir-news",
   "name": "Vistra - Investor Relations News",
   "type": "rss",
   "url": "https://investor.vistracorp.com/news?pagetemplate=rss",
   "channel_id": null,
   "handle": null,
   "publisher": "Vistra Corp.",
   "category_default": "companies_capital",
   "region": "US",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "title_only",
   "licence_or_terms_note": "Copyright Vistra.",
   "source_url": "https://investor.vistracorp.com/index.php?s=95&rsspage=43",
   "source_name": "Vistra IR RSS page",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'Vistra Corp. Investor Relations'; 5 items; empty descriptions; latest 29 Sep 2026. Covers all corporate news, not only nuclear - filter."
  },
  {
   "source_id": "talen-ir-news",
   "name": "Talen Energy - News Releases (IR)",
   "type": "website",
   "url": "https://ir.talenenergy.com/news-events/news-releases",
   "channel_id": null,
   "handle": null,
   "publisher": "Talen Energy Corporation",
   "category_default": "companies_capital",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Talen.",
   "source_url": "https://ir.talenenergy.com/news-events/news-releases",
   "source_name": "Talen IR News Releases",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link on IR page; investors.talenenergy.com/rss path is robots-disallowed for our fetcher. Latest 29 Sep 2026."
  },
  {
   "source_id": "oklo-newsroom",
   "name": "Oklo - Newsroom",
   "type": "website",
   "url": "https://oklo.com/newsroom",
   "channel_id": null,
   "handle": null,
   "publisher": "Oklo Inc.",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Oklo.",
   "source_url": "https://oklo.com/newsroom",
   "source_name": "Oklo Newsroom",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link. IR site https://investor.oklo.com (robots-disallowed to our fetcher for the /rss path). Latest 07 Aug 2026 at fetch; mixed date formats ('AUGUST 7, 2026', 'AUG 6, 2026')."
  },
  {
   "source_id": "nuscale-press",
   "name": "NuScale Power - Press Releases",
   "type": "website",
   "url": "https://www.nuscalepower.com/press-releases",
   "channel_id": null,
   "handle": null,
   "publisher": "NuScale Power Corporation",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright NuScale.",
   "source_url": "https://www.nuscalepower.com/press-releases",
   "source_name": "NuScale Press Releases",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link; ir.nuscalepower.com/rss/news-releases.xml errored. Latest 06 Oct 2026."
  },
  {
   "source_id": "bwxt-ir-news",
   "name": "BWX Technologies - News Releases (IR)",
   "type": "rss",
   "url": "https://investors.bwxt.com/rss/news-releases.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "BWX Technologies, Inc.",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "hourly",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright BWXT.",
   "source_url": "https://investors.bwxt.com/rss/news-releases.xml",
   "source_name": "BWXT IR RSS (Q4)",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Q4 feed; 10 items; truncated excerpts; latest 05 Oct 2026 (BANR microreactor)."
  },
  {
   "source_id": "ge-vernova-news",
   "name": "GE Vernova - News (all)",
   "type": "rss",
   "url": "https://www.gevernova.com/news/subscribe/all/rss.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "GE Vernova",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright GE Vernova.",
   "source_url": "https://www.gevernova.com/news/press-releases",
   "source_name": "GE Vernova media hub (links 'View RSS Feeds')",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0 'GE Vernova News'; 20 items; truncated descriptions; company-wide (wind, grid, gas) - filter for nuclear/BWRX-300/GE Hitachi. Latest 06 Oct 2026."
  },
  {
   "source_id": "x-energy-feed",
   "name": "X-energy - site feed (news + blog)",
   "type": "rss",
   "url": "https://x-energy.com/feed/",
   "channel_id": null,
   "handle": null,
   "publisher": "X-energy",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "full_text",
   "licence_or_terms_note": "Copyright X-energy.",
   "source_url": "https://x-energy.com/feed/",
   "source_name": "X-energy WordPress feed",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "WordPress RSS; >=6 items; full text in content:encoded; mixes explainer blog posts with press releases, and the latest feed item (28 Jul 2026) lags the /media page (25 Sep 2026) - also scrape https://x-energy.com/media."
  },
  {
   "source_id": "terrapower-news",
   "name": "TerraPower - News",
   "type": "website",
   "url": "https://www.terrapower.com/news",
   "channel_id": null,
   "handle": null,
   "publisher": "TerraPower",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright TerraPower.",
   "source_url": "https://www.terrapower.com/news",
   "source_name": "TerraPower News",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link; /feed/ errored. Latest 31 Aug 2026."
  },
  {
   "source_id": "kairos-updates",
   "name": "Kairos Power - Updates",
   "type": "website",
   "url": "https://www.kairospower.com/updates",
   "channel_id": null,
   "handle": null,
   "publisher": "Kairos Power",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Kairos Power.",
   "source_url": "https://www.kairospower.com/updates",
   "source_name": "Kairos Power Updates",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS; /feed/ errored. Dates formatted 'Oct. 07.2026'. Latest 07 Oct 2026."
  },
  {
   "source_id": "holtec-feed",
   "name": "Holtec International - site feed",
   "type": "rss",
   "url": "https://holtecinternational.com/feed/",
   "channel_id": null,
   "handle": null,
   "publisher": "Holtec International",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright Holtec.",
   "source_url": "https://holtecinternational.com/feed/",
   "source_name": "Holtec WordPress feed",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "WordPress RSS 'Holtec International'; 10 items; short excerpts; latest 30 Sep 2026 (Palisades Pioneer regulatory developments)."
  },
  {
   "source_id": "rolls-royce-smr-press",
   "name": "Rolls-Royce SMR - Press",
   "type": "website",
   "url": "https://www.rolls-royce-smr.com/press",
   "channel_id": null,
   "handle": null,
   "publisher": "Rolls-Royce SMR Ltd",
   "category_default": "reactors_technology",
   "region": "UK",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Rolls-Royce SMR.",
   "source_url": "https://www.rolls-royce-smr.com/press",
   "source_name": "Rolls-Royce SMR Press",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link. Dates like '23rd September 2026'. Latest 23 Sep 2026."
  },
  {
   "source_id": "opg-media-releases",
   "name": "Ontario Power Generation - Media Releases",
   "type": "website",
   "url": "https://www.opg.com/news-resources/newsroom/media-releases/",
   "channel_id": null,
   "handle": null,
   "publisher": "Ontario Power Generation",
   "category_default": "reactors_technology",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright OPG.",
   "source_url": "https://www.opg.com/news-resources/newsroom/",
   "source_name": "OPG Newsroom",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "https://www.opg.com/media-centre/ is a 404; newsroom is /news-resources/newsroom/. WordPress /feed/ exists but returned 0 items. Listing shows no dates."
  },
  {
   "source_id": "tva-releases",
   "name": "Tennessee Valley Authority - News Releases",
   "type": "website",
   "url": "https://tva.com/news-media/releases",
   "channel_id": null,
   "handle": null,
   "publisher": "Tennessee Valley Authority",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "TVA is a US federal corporation; releases generally public domain - confirm on tva.com legal page.",
   "source_url": "https://www.tva.com/newsroom/press-releases",
   "source_name": "TVA Newsroom press releases (canonical tva.com/news-media/releases)",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link. Listing showed duplicate entries of the same headline (05 Oct 2026 Sequoyah outage) - dedupe by URL."
  },
  {
   "source_id": "edf-press-releases",
   "name": "EDF Group - All press releases",
   "type": "website",
   "url": "https://www.edf.fr/en/the-edf-group/dedicated-sections/journalists/all-press-releases",
   "channel_id": null,
   "handle": null,
   "publisher": "EDF",
   "category_default": "reactors_technology",
   "region": "FR",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright EDF.",
   "source_url": "https://www.edf.fr/en/the-edf-group/dedicated-sections/journalists/all-press-releases",
   "source_name": "EDF press releases",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "No RSS link; 72 pages of releases; dates 'Published on 2026/10/08'. Group-wide (not nuclear-only) - filter."
  },
  {
   "source_id": "fortum-releases",
   "name": "Fortum - All news and releases",
   "type": "website",
   "url": "https://www.fortum.com/news-and-publications/all-news-and-releases",
   "channel_id": null,
   "handle": null,
   "publisher": "Fortum",
   "category_default": "reactors_technology",
   "region": "FI",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Fortum.",
   "source_url": "https://www.fortum.com/",
   "source_name": "Fortum homepage (nav link)",
   "as_of_date": "2026-10-09",
   "confidence": "low",
   "notes": "List renders client-side (empty in fetch); no RSS link; /media and /rss.xml errored. Consider Nasdaq Helsinki/Cision release feeds instead."
  },
  {
   "source_id": "khnp-english",
   "name": "Korea Hydro & Nuclear Power - English site",
   "type": "website",
   "url": "https://www.khnp.co.kr/eng/",
   "channel_id": null,
   "handle": null,
   "publisher": "Korea Hydro & Nuclear Power Co., Ltd.",
   "category_default": "reactors_technology",
   "region": "KR",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright KHNP.",
   "source_url": "https://www.khnp.co.kr/eng/",
   "source_name": "KHNP English",
   "as_of_date": "2026-10-09",
   "confidence": "low",
   "notes": "Host answers but robots.txt disallows our fetcher (ROBOTS_DISALLOWED) - press-release path and dates not verified. Use WNN/NucNet coverage as proxy."
  },
  {
   "source_id": "westinghouse-news",
   "name": "Westinghouse Electric Company - News",
   "type": "rss",
   "url": "https://info.westinghousenuclear.com/news/rss.xml",
   "channel_id": null,
   "handle": null,
   "publisher": "Westinghouse Electric Company",
   "category_default": "reactors_technology",
   "region": "US",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright Westinghouse.",
   "source_url": "https://info.westinghousenuclear.com/news",
   "source_name": "Westinghouse News (HubSpot)",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "HubSpot blog RSS titled 'News'; 10 items; first-paragraph excerpts in description and content:encoded; includes a tracking pixel <img> - strip it. Latest 08 Oct 2026."
  },
  {
   "source_id": "uxc",
   "name": "UxC - Ux Consulting (U3O8 price indicators)",
   "type": "website",
   "url": "https://www.uxc.com/",
   "channel_id": null,
   "handle": null,
   "publisher": "UxC, LLC",
   "category_default": "markets",
   "region": "global",
   "language": "en",
   "cadence_suggested": "weekly",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Price indicators are UxC proprietary; homepage shows gated content ('Please log in to view this content'); Ux Weekly is paid. Do not scrape prices; quote only values Cameco republishes, with attribution.",
   "source_url": "https://www.uxc.com/",
   "source_name": "UxC homepage",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Homepage links 'Ux U3O8 Prices (Daily)' but shows no value without login. Terms of Use page exists (footer) - not fetched."
  },
  {
   "source_id": "tradetech",
   "name": "TradeTech - uranium.info",
   "type": "website",
   "url": "https://www.uranium.info/",
   "channel_id": null,
   "handle": null,
   "publisher": "TradeTech",
   "category_default": "markets",
   "region": "global",
   "language": "en",
   "cadence_suggested": "weekly",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Weekly U3O8 Spot Price Indicator is TradeTech's judgment; current values are client-login gated. Copyright & Disclaimer page linked (not fetched).",
   "source_url": "https://www.uranium.info/",
   "source_name": "TradeTech uranium.info",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Public page is descriptive only; no price shown without login; no RSS."
  },
  {
   "source_id": "uranium-insider-site",
   "name": "Uranium Insider (Justin Huhn) - website",
   "type": "website",
   "url": "https://www.uraniuminsider.com/",
   "channel_id": null,
   "handle": null,
   "publisher": "Uranium Insider / Justin Huhn",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Paid newsletter (quarterly $247, annual $797, Premier $15,000/yr per site); member content is private ('recorded for on-demand access, but never public'). Only public items (free whitepaper, media appearances) may be linked.",
   "source_url": "https://www.uraniuminsider.com/",
   "source_name": "Uranium Insider",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Founder Justin Huhn. No RSS. Public pages: /media (interviews), /case-for-uranium (free whitepaper)."
  },
  {
   "source_id": "uranium-insider-x",
   "name": "Uranium Insider on X",
   "type": "x",
   "url": "https://twitter.com/uraniuminsider",
   "channel_id": null,
   "handle": "@uraniuminsider",
   "publisher": "Uranium Insider / Justin Huhn",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "X content: display via official embeds (publish.x.com oEmbed) or X API under Developer Policy display requirements; keep posts in sync with deletions.",
   "source_url": "https://www.uraniuminsider.com/",
   "source_name": "Uranium Insider website (social links)",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Profile URL exactly as linked from the website (twitter.com host; x.com equivalent). X profile pages cannot be fetched by our tooling."
  },
  {
   "source_id": "uranium-insider-youtube",
   "name": "Uranium Insider on YouTube",
   "type": "youtube",
   "url": "https://www.youtube.com/channel/UCDmY09g5tiR0ocNXvEnOddg",
   "channel_id": "UCDmY09g5tiR0ocNXvEnOddg",
   "handle": "@UraniumInsider",
   "publisher": "Uranium Insider / Justin Huhn",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "n/a",
   "licence_or_terms_note": "YouTube API Services Terms/Developer Policies: embed via official player, attribute YouTube, refresh stored metadata within 30 days.",
   "source_url": "https://www.youtube.com/channel/UCDmY09g5tiR0ocNXvEnOddg",
   "source_name": "YouTube channel page",
   "as_of_date": "2026-10-10",
   "confidence": "high",
   "notes": "Channel page (fetched) advertises RSS https://www.youtube.com/feeds/videos.xml?channel_id=UCDmY09g5tiR0ocNXvEnOddg; the feed itself is robots-disallowed for our fetcher so items were not verified. Website links youtube.com/uraniuminsider. Verified on 2026-10-10: the runner fetch of https://www.youtube.com/feeds/videos.xml?channel_id=UCDmY09g5tiR0ocNXvEnOddg (scripts/fetch/curated_feeds.txt, data/raw/curated/2026-10-10) returned HTTP 200 with Atom entries; ingested into curated_posts by ingest-news."
  },
  {
   "source_id": "john-quakes-x",
   "name": "John Quakes on X",
   "type": "x",
   "url": "https://twitter.com/quakes99",
   "channel_id": null,
   "handle": "@quakes99",
   "publisher": "John Quakes (independent uranium analyst)",
   "category_default": "commentary",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "X content: display via official embeds or X API under Developer Policy; posts are the author's copyright.",
   "source_url": "https://threadreaderapp.com/thread/1482494308557090816",
   "source_name": "Thread Reader archive of a John Quakes thread (author '@quakes99')",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Handle @quakes99 confirmed on a Thread Reader archive (thread dated 15 Jan 2022, display name 'John Quakes'); forum posts from 2026 still cite @quakes99. Live profile not fetchable by our tooling - confirm once in a browser."
  },
  {
   "source_id": "triangle-investor-youtube",
   "name": "Triangle Investor on YouTube",
   "type": "youtube",
   "url": "https://www.youtube.com/channel/UC1Gm1jH1Ty-FexzycW2PqIg",
   "channel_id": "UC1Gm1jH1Ty-FexzycW2PqIg",
   "handle": "@triANGLEINVESTOR",
   "publisher": "Triangle Investor",
   "category_default": "commentary",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "n/a",
   "licence_or_terms_note": "YouTube API Services Terms/Developer Policies apply (embed official player, attribute, 30-day metadata refresh).",
   "source_url": "https://www.youtube.com/channel/UC1Gm1jH1Ty-FexzycW2PqIg",
   "source_name": "YouTube channel page",
   "as_of_date": "2026-10-10",
   "confidence": "high",
   "notes": "Channel description 'Triangle Investor | Commodities, Mining & Market Insights'. Channel page advertises RSS https://www.youtube.com/feeds/videos.xml?channel_id=UC1Gm1jH1Ty-FexzycW2PqIg (feed itself not fetchable by our tooling). No website or X link shown on the channel page; X handle unknown (null). Verified on 2026-10-10: the runner fetch of https://www.youtube.com/feeds/videos.xml?channel_id=UC1Gm1jH1Ty-FexzycW2PqIg (scripts/fetch/curated_feeds.txt, data/raw/curated/2026-10-10) returned HTTP 200 with Atom entries; ingested into curated_posts by ingest-news."
  },
  {
   "source_id": "triangle-investor-substack",
   "name": "Triangle Investor on Substack (profile)",
   "type": "website",
   "url": "https://substack.com/@triangleinvestor",
   "channel_id": null,
   "handle": "@triangleinvestor",
   "publisher": "Triangle Investor",
   "category_default": "commentary",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Substack author copyright; Substack publications expose /feed by convention (unverified here).",
   "source_url": "https://substack.com/@triangleinvestor",
   "source_name": "Substack profile (from WebSearch result; fetch failed)",
   "as_of_date": "2026-10-09",
   "confidence": "low",
   "notes": "Profile URL surfaced in WebSearch; direct fetch failed (CLIENT_ERROR). Publication name and feed unknown - confirm manually. Runner fetch of 2026-10-10: https://triangleinvestor.substack.com/feed and the profile URL both answered 403 (a bot challenge); no posts."
  },
  {
   "source_id": "crux-investor-site",
   "name": "Crux Investor - website",
   "type": "website",
   "url": "https://www.cruxinvestor.com/",
   "channel_id": null,
   "handle": null,
   "publisher": "Crux Investor",
   "category_default": "commentary",
   "region": "UK",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Crux Investor; free monthly newsletter and free course advertised; no paywall statement seen.",
   "source_url": "https://www.cruxinvestor.com/",
   "source_name": "Crux Investor",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "No RSS link found. Site links X https://twitter.com/CruxInvestor and YouTube https://www.youtube.com/c/Cruxinvestor."
  },
  {
   "source_id": "crux-investor-youtube",
   "name": "Crux Investor on YouTube",
   "type": "youtube",
   "url": "https://www.youtube.com/channel/UCc0h6rwJD4vr_Rtdasuyn-w",
   "channel_id": "UCc0h6rwJD4vr_Rtdasuyn-w",
   "handle": "@CRUXInvestor",
   "publisher": "Crux Investor",
   "category_default": "commentary",
   "region": "UK",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "n/a",
   "licence_or_terms_note": "YouTube API Services Terms/Developer Policies apply.",
   "source_url": "https://www.youtube.com/channel/UCc0h6rwJD4vr_Rtdasuyn-w",
   "source_name": "YouTube channel page",
   "as_of_date": "2026-10-10",
   "confidence": "high",
   "notes": "Channel page advertises RSS https://www.youtube.com/feeds/videos.xml?channel_id=UCc0h6rwJD4vr_Rtdasuyn-w (feed not fetchable by our tooling). Interview-heavy; uranium is one of several commodities - tag by title keywords. Verified on 2026-10-10: the runner fetch of https://www.youtube.com/feeds/videos.xml?channel_id=UCc0h6rwJD4vr_Rtdasuyn-w (scripts/fetch/curated_feeds.txt, data/raw/curated/2026-10-10) returned HTTP 200 with Atom entries; ingested into curated_posts by ingest-news."
  },
  {
   "source_id": "crux-investor-x",
   "name": "Crux Investor on X",
   "type": "x",
   "url": "https://twitter.com/CruxInvestor",
   "channel_id": null,
   "handle": "@CruxInvestor",
   "publisher": "Crux Investor",
   "category_default": "commentary",
   "region": "UK",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "X Developer Policy / embeds.",
   "source_url": "https://www.cruxinvestor.com/",
   "source_name": "Crux Investor website (social links)",
   "as_of_date": "2026-10-09",
   "confidence": "medium",
   "notes": "Profile URL as linked from cruxinvestor.com."
  },
  {
   "source_id": "decouple-substack",
   "name": "Decouple (Chris Keefer) - Substack",
   "type": "website",
   "url": "https://www.decouple.media/",
   "channel_id": null,
   "handle": null,
   "publisher": "Chris Keefer / Decouple Media",
   "category_default": "commentary",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Substack publication ('Over 4,000 subscribers'); author copyright. Substack feeds are at <publication>/feed by convention - substack.com is robots-disallowed for our fetcher, so unverified.",
   "source_url": "https://www.decouple.media/",
   "source_name": "Decouple | Chris Keefer | Substack",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Custom domain of decouple.substack.com (image hosts reveal it). Podcast + essays on nuclear energy. The Substack feed https://www.decouple.media/feed answered the runner fetch of 2026-10-10 with RSS items; its posts enter curated_posts through data/curated_posts.json (scripts/build_curated_posts.py), not through the ingest function."
  },
  {
   "source_id": "decouple-youtube",
   "name": "Decouple Media on YouTube",
   "type": "youtube",
   "url": "https://www.youtube.com/channel/UCKKlj_Qf3f6Op0vexKMK7Qw",
   "channel_id": "UCKKlj_Qf3f6Op0vexKMK7Qw",
   "handle": "@decouplemedia",
   "publisher": "Chris Keefer / Decouple Media",
   "category_default": "commentary",
   "region": "CA",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "n/a",
   "licence_or_terms_note": "YouTube API Services Terms/Developer Policies apply.",
   "source_url": "https://www.youtube.com/channel/UCKKlj_Qf3f6Op0vexKMK7Qw",
   "source_name": "YouTube channel page",
   "as_of_date": "2026-10-10",
   "confidence": "high",
   "notes": "Channel page advertises RSS https://www.youtube.com/feeds/videos.xml?channel_id=UCKKlj_Qf3f6Op0vexKMK7Qw (feed not fetchable by our tooling). Verified on 2026-10-10: the runner fetch of https://www.youtube.com/feeds/videos.xml?channel_id=UCKKlj_Qf3f6Op0vexKMK7Qw (scripts/fetch/curated_feeds.txt, data/raw/curated/2026-10-10) returned HTTP 200 with Atom entries; ingested into curated_posts by ingest-news."
  },
  {
   "source_id": "titans-of-nuclear",
   "name": "Titans of Nuclear (podcast)",
   "type": "website",
   "url": "https://www.titansofnuclear.com/",
   "channel_id": null,
   "handle": null,
   "publisher": "Energy Impact Center (Bret Kugelmass)",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "weekly",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Copyright Energy Impact Center; podcast distributed via Apple Podcasts and Spotify.",
   "source_url": "https://www.titansofnuclear.com/",
   "source_name": "Titans of Nuclear",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "APPEARS DORMANT: latest episodes listed are Ep 427 (12 Dec 2023) and Ep 426 (05 Dec 2023). Links: YouTube http://www.youtube.com/c/TitansofNuclear (channel id not found - handle pages failed), X https://twitter.com/NuclearTitans, Apple Podcasts id1331598443, Spotify show 0HWsEdbyLQEjNHHk625hWP. No RSS URL on site."
  },
  {
   "source_id": "atomic-insights",
   "name": "Atomic Insights (Rod Adams) - blog & Atomic Show podcast",
   "type": "rss",
   "url": "https://atomicinsights.com/feed/",
   "channel_id": null,
   "handle": null,
   "publisher": "Rod Adams / Atomic Insights",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "full_text",
   "licence_or_terms_note": "Author copyright; full text in feed - display headline/summary + link.",
   "source_url": "https://atomicinsights.com/feed/",
   "source_name": "Atomic Insights RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "WordPress RSS 'Atomic Insights'; >=12 items; full text in content:encoded plus description; latest 18 Sep 2026 (Atomic Show #354). Podcast episodes and essays share one feed."
  },
  {
   "source_id": "grid-brief",
   "name": "Grid Brief (newsletter)",
   "type": "website",
   "url": "https://www.gridbrief.com/",
   "channel_id": null,
   "handle": null,
   "publisher": "Grid Brief (beehiiv; posts credited to Marc Oestreich)",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Author copyright; beehiiv newsletters expose an RSS feed at rss.beehiiv.com/feeds/<id>.xml by convention - id not shown on page, so unverified.",
   "source_url": "https://www.gridbrief.com/",
   "source_name": "Grid Brief",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "'Powered by beehiiv'. X https://twitter.com/gridbrief. Posting cadence appears irregular: latest posts 28 Jul, 21 Jul, 30 Jun 2026. Covers grid/power markets broadly with frequent nuclear items."
  },
  {
   "source_id": "nuclear-barbarians",
   "name": "Nuclear Barbarians (Emmet Penney) - podcast",
   "type": "website",
   "url": "https://nuclearbarbarians.fireside.fm/",
   "channel_id": null,
   "handle": null,
   "publisher": "Emmet Penney",
   "category_default": "commentary",
   "region": "US",
   "language": "en",
   "cadence_suggested": "weekly",
   "verified": "no",
   "feed_content": "n/a",
   "licence_or_terms_note": "Author copyright. Fireside podcast hosts normally expose /rss; a fetch of https://nuclearbarbarians.fireside.fm/rss needed a permission the session could not grant, so unverified. Substack feed (nuclearbarbarians.substack.com/feed) is robots-disallowed for our fetcher.",
   "source_url": "https://nuclearbarbarians.fireside.fm/",
   "source_name": "Nuclear Barbarians (Fireside)",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "Latest episodes: Ep 96 (15 Jan 2026), Ep 95 (13 Nov 2025) - low cadence. Page links a Substack (URL on page is spelled 'nuclearbarians.substack.com'; the publication is generally known as nuclearbarbarians.substack.com - verify)."
  },
  {
   "source_id": "resource-talks-youtube",
   "name": "Resource Talks on YouTube",
   "type": "youtube",
   "url": "https://www.youtube.com/channel/UCBaoncRxZ_qtV2h9EhRhwrw",
   "channel_id": "UCBaoncRxZ_qtV2h9EhRhwrw",
   "handle": "@ResourceTalks",
   "publisher": "Resource Talks",
   "category_default": "commentary",
   "region": "global",
   "language": "en",
   "cadence_suggested": "daily",
   "verified": "yes",
   "feed_content": "n/a",
   "licence_or_terms_note": "YouTube API Services Terms/Developer Policies apply; channel states content is not investment advice.",
   "source_url": "https://www.youtube.com/channel/UCBaoncRxZ_qtV2h9EhRhwrw",
   "source_name": "YouTube channel page",
   "as_of_date": "2026-10-10",
   "confidence": "high",
   "notes": "Junior-mining interview channel ('No-BS interviews that cut through the fluff of junior mining'); uranium is a recurring but not exclusive topic - filter titles. Verified on 2026-10-10: the runner fetch of https://www.youtube.com/feeds/videos.xml?channel_id=UCBaoncRxZ_qtV2h9EhRhwrw (scripts/fetch/curated_feeds.txt, data/raw/curated/2026-10-10) returned HTTP 200 with Atom entries; ingested into curated_posts by ingest-news."
  },
  {
   "source_id": "nei-magazine",
   "name": "Nuclear Engineering International (NEI Magazine)",
   "type": "rss",
   "url": "https://www.neimagazine.com/feed/",
   "channel_id": null,
   "handle": null,
   "publisher": "Nuclear Engineering International (Progressive Media)",
   "category_default": "reactors_technology",
   "region": "UK",
   "language": "en",
   "cadence_suggested": "4x daily",
   "verified": "yes",
   "feed_content": "summary",
   "licence_or_terms_note": "Copyright NEI Magazine; one-sentence summaries in feed.",
   "source_url": "https://www.neimagazine.com/feed/",
   "source_name": "Nuclear Engineering International RSS",
   "as_of_date": "2026-10-09",
   "confidence": "high",
   "notes": "RSS 2.0; 10 items; BUT latest pubDate was 16 Jun 2026 at fetch (16 weeks stale) - the feed may have been orphaned by a site change; check site and treat as low priority until it updates."
  }
 ]
}
