← RiversideCONTENT HISTORY

Update to Riverside

Snapshot Oct 8, 2026 · 12:02 UTC · version 1.1.1

Collection source: downloaded plugin package.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Use when the user wants to browse or manage a Riverside hosted podcast, create or update an episode, change podcast artwork, distribute a show, or read podcast download analytics. For video edits use video-editing; for clips posted to social accounts use social-publishing.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 438
    }
  ],
  "name": "podcast-hosting",
  "skill_md_contents": "---\nname: podcast-hosting\ndescription: Use when the user wants to browse or manage a Riverside hosted podcast, create or update an episode, change podcast artwork, distribute a show, or read podcast download analytics. For video edits use video-editing; for clips posted to social accounts use social-publishing.\n---\n\n# Podcast hosting\n\nManage hosted shows and episodes through the `hosting_` tools on the same\nRiverside connection. Read the current tool schema before each call; schemas,\n`hosting_get_hosting_config`, and `hosting_get_podcast_guidelines` govern valid\nvalues and prerequisites. A missing tool is unavailable in this connection.\n\n## Resolve the show and source\n\nUse `hosting_get_user_context` to establish the connected account. Browse with\n`hosting_list_podcasts` and `hosting_list_episodes`; inspect selected objects\nwith `hosting_get_podcast` and `hosting_get_episode`. Page according to the\ncurrent schemas. Ask the user to choose when several shows or episodes fit.\n\nPodcast and episode IDs are UUIDs. Studio identifiers are not interchangeable:\n`hosting_create_podcast` takes the studio **slug**, while\n`hosting_list_podcasts` takes the studio **id**. Resolve both from\n`platform_list_studios` or `platform_get_studio`; keep their field names.\n\nEpisode creation takes exactly one source:\n\n- `sessionId`: the recording session ID. The hosting schema identifies the\n  `id` returned by `platform_list_recordings` or `platform_get_recording` as\n  this value; verify the intended recording.\n- `idClip`: a verified Riverside clip ID. Do not substitute an edit ID from\n  `platform_list_edits`. If the clip ID is unknown, ask the user for the clip\n  ID displayed beneath the recording on the Riverside project page.\n\n## Create and update\n\nBefore metadata writes, read `hosting_get_hosting_config` and\n`hosting_get_podcast_guidelines`. Collect the fields required by the live\nschema, including podcast categories and language. Podcast categories are\nhosting metadata, independent of the plugin directory's Creativity category.\n\n`hosting_create_podcast` creates a draft. If its optional artwork upload fails,\nthe show may already exist: preserve the returned podcast ID and retry only\n`hosting_upload_cover_art` when requested. Do not create a second show.\n\nUse `hosting_create_episode` for the chosen source and\n`hosting_edit_podcast` or `hosting_edit_episode` for requested changes. Preserve\nfields the user did not ask to change. For a publication date, resolve the\nuser's timezone and supply the schema's date and timezone fields; clarify an\nambiguous wall-clock time before writing.\n\nBefore publishing, scheduling, changing public metadata, replacing artwork,\nor connecting a distribution platform, show the target show/episode and exact\nchanges and obtain confirmation. Confirmation of draft creation does not\nauthorize subsequent publication or distribution.\n\nAfter a write, read the affected podcast or episode. Episode processing can\ncontinue after creation; report the returned state and use bounded status\nreads instead of recreating it. Before publishing a new episode, read\n`hosting_get_episode` and wait until it is ready. Stop and report processing or\nfailed instead of sending a publish update. Do not force a processing episode\nto ready. After an unknown mutation outcome, reconcile with list/get reads\nbefore considering another write.\n\n## Artwork and distribution\n\n`hosting_upload_cover_art` replaces show artwork.\n`hosting_upload_episode_artwork` replaces square episode art or a video\nthumbnail; a linked YouTube thumbnail may change as well. Use the current\nschema's size, format, and dimension rules. Image sources must be final public\nHTTPS URLs; do not send private URLs or credentials, or rely on redirects.\n\nUse `hosting_connect_platform` only for a requested, confirmed destination.\nThe current workflow requires a nonprivate show and a published episode.\nRead live platform guidance: submitting a new show differs from supplying the\nURL of an existing show. A YouTube connection requests uploading existing\nepisodes for the whole show; include that scope in the confirmation before\ncalling the tool. Its returned authorization URL requires the user to complete\nOAuth. Do not treat an authorization URL as a completed connection.\n\nVerify distribution with `hosting_get_platform_links`. An empty\nconnected-platform field on a podcast alone is not proof of disconnection.\nSubmission, connection, and a playable episode on the destination are\ndifferent outcomes; report only the returned evidence.\n\nThere are no exposed hosting operations for deleting a show or episode,\ndisconnecting a distribution platform, or managing subscribers. Do not invent\nthem or use a social-account operation as a substitute.\n\n## Analytics\n\nUse `hosting_get_podcast_analytics` or `hosting_get_episode_analytics` for the\nrequested show, episodes, period, and mode. Read the schema's window and\npagination requirements. Distinguish RSS downloads from YouTube views in the\nreturned metrics; do not infer unique listeners or subscribers from either.\n\n`hosting_export_podcast_analytics_csv` returns inline CSV text, not a download\nURL. Its date window is inclusive in UTC. Respect the live window and response\nsize bounds; narrow a window that exceeds them and describe the resulting\ncoverage. Export analytics only when requested.\n"
}

SHA-256 of public snapshot: f6ff7bc97a79f1eb6ed964e9c6cc0b78aeabb6d6cf2e5231d9bd3f4d0d6ccc20