> For the complete documentation index, see [llms.txt](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/phases/phase_29/session_17_podcast_themes_enrichment.md).

# Session 17: Podcast Themes Enrichment

**Session ID**: `phase29-session17-podcast-themes-enrichment` **Status**: Deferred by Session 16 **Estimated Tasks**: \~12-25 **Estimated Duration**: 2-4 hours

***

## Objective

Session 16 deferred the podcast/audio source and transcript boundary. Do not implement bounded cross-show theme clustering in Phase 29. Maps comparison item 2.1, podcast transcription plus cross-show theme clustering.

***

## Scope

### In Scope (MVP)

* No Phase 29 implementation work remains in scope.
* A future replacement session may reopen this item only after a new source-specific compliance review approves a source/provider, media rights, cache, retention, attribution, spend, parser fixtures, and leak tests.

### Deferred Original Scope

* Add a podcast adapter/enrichment path only within the boundary approved by Session 16.
* Keep transcripts in private cache only, if transcripts are approved at all.
* Publish theme label, summary, and per-episode `{show, url, angle}` only.
* Label spend as paid/estimated.
* Enforce at least two-show convergence, mapped to the Session 04 corroboration/convergence model.

### Out of Scope

* Publishing raw transcript bodies, speaker names, comments, thumbnails, or media URLs.
* Any work after Session 16 defers the boundary; the item is marked deferred rather than weakening the boundary.

***

## Prerequisites

* [ ] A future source-specific review explicitly approves the podcast source/media boundary.
* [ ] Session 04 complete (provides the convergence/corroboration model).

***

## Deliverables

1. Deferred by Session 16; no Phase 29 implementation deliverable.
2. Future replacement session must define its own approved boundary before adding any adapter, enrichment path, payload, convergence logic, or tests.

***

## Success Criteria

* [ ] Future approved payload contains only theme labels and safe episode attributions.
* [ ] No raw transcript body enters browser payload, Engine Replay, or static Brief.
* [ ] Two-show convergence is enforced.
* [x] Session 16 deferred the boundary, so this session is skipped in Phase 29 and the backlog item is marked deferred.

***

## Key Files

* New source module under `scripts/extensions/trend-finder/sources/`
* New enrichment module under `scripts/extensions/trend-finder/`
* `scripts/extensions/trend-finder/spend-accounting.ts`
* `scripts/extensions/trend-finder/private-diagnostics.ts`
* `src/extensions/trend-finder/schema.ts`
* `scripts/extensions/trend-finder/static-brief-renderer.ts`

***

## Comparison Notes (folded from comparison plan)

**Effort:** High. **Boundary risk:** High. **Depends on Sessions 16 and 04** - Session 16 must approve the source/media boundary, and Session 04 provides the convergence/corroboration model. Session 16 deferred the boundary on 2026-06-21, so skip this session in Phase 29 and keep the backlog item deferred rather than weakening the boundary.

**2.1 Podcast transcription and cross-show theme clustering (implementation portion).** Within the boundary approved by Session 16, add a podcast adapter/enrichment path; keep transcripts in private cache only (if transcripts are approved at all); publish only theme label, summary, and per-episode `{show, url, angle}`; label spend as paid/estimated; and enforce at least two-show convergence mapped to the Session 04 corroboration/convergence model.

**Final Session 16 handoff.** Do not add a podcast source declaration, podcast RSS allowlist, Apify podcast Actor, audio/video downloader, speech-to-text provider, transcript cache, podcast snapshot, browser podcast theme payload, static Brief podcast section, Source Setup podcast target, env key, dependency, or validation fixture in Phase 29.

**TrendingAI source pointers.** `src/podcast-themes.ts`, `prompts/podcast-themes.md`, `scripts/hydrate-ig-transcripts.ts`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/phases/phase_29/session_17_podcast_themes_enrichment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
