← Files RiversideARCHIVED FILE

skills/content-discovery/SKILL.md

4.3 KB · Oct 5, 2026 · 18:02 UTC

↓ Download file

---
name: content-discovery
description: >
  Use when the user wants to search, find, list, browse, or retrieve their
  Riverside content — productions, studios, projects, recordings, edits,
  exports, transcripts — by what was said in it, by its title or topic, or by
  where it lives; when they ask for a download or share link; or when another
  workflow first needs a studioId, productionId, projectId, sessionId, or
  editId. Not for creating or changing an edit (see video-editing), and not for
  publishing to social platforms (see social-publishing).
---

# Content discovery

Read-only search and navigation over the Riverside platform. Hierarchy tools
carry a `platform_` prefix and search tools carry a `search_` prefix; nothing on
this surface modifies content. Copy tool names verbatim.

**The live tool schemas are the authority.** Required and nullable fields, date
windows, limits, defaults, page sizes, and pagination tokens all come from the
schema of the tool you are about to call — never from memory, from an earlier
session, or from a number written in a skill file. Read the schema, then call.

## The entity bridge

A production contains studios. A studio contains projects. A project contains
both recordings and edits. An edit produces exports.

Which id crosses into another skill:

- **`studioId`** — social publishing needs one, and so do the brand and captions
  editing tools. No editing or social tool can discover a studio, so it has to
  come from here. A studio also carries its `productionId`.
- **`sessionId`** — the recording-session identifier used by transcript reads
  and edit creation. Reuse a recording's `id` only when the live response or
  schema says that item is the same session (for example, some upload or
  single-take records). For multi-take material, confirm the intended take or
  start from an existing project edit instead of assuming the ids coincide.
- **`editId`** — one cut of one or more recordings. Social publishing consumes
  it as the `clipId`.
- **`exportId`** — one rendered file. Download links live here, not on the edit.

## Where to read next

| Need | Read |
|---|---|
| Find content by exact words, topic, or title | [Search](references/search.md) |
| Browse hierarchy, determine latest, page completely, or obtain a download link | [Hierarchy navigation](references/hierarchy-navigation.md) |
| Resolve or hand off IDs for editing or social publishing | [Cross-skill handoffs](references/cross-skill-handoffs.md) |

**Routing contract:** Before the first Riverside workflow call, evaluate every
row against the observable request and state. Read every matching reference and
no unrelated reference. After each Riverside response, evaluate every row
again before the next workflow call; read any newly matching reference first.
Only this table routes references — a reference never routes to another one.

## Rules that hold in every flow

- **Ask, don't guess.** When more than one studio, project, recording, or edit
  fits what the user described, show the candidates and let them pick. Guessing
  produces a confident answer about the wrong content.
- **Keep broad requests broad.** Scoping parameters such as `projectId` on
  `platform_list_recordings` and `platform_list_edits` are optional. Omit them
  for "all my recordings"-style requests, and never carry a narrow scope
  captured in an earlier step into a request the user did not scope that way.
- **Links come from the platform.** Studios, projects, recordings, edits, and
  exports each carry a `riversideUrl`. Return the one the server gave you; never
  construct or guess a URL.
- **Preview links are opt-in.** `platform_get_recording` withholds the
  token-bearing `previewUrl` unless asked. Set `includePreviewUrl` only once the
  user has explicitly asked for a shareable preview, and read a null value as
  "no share link exists right now".
- **Verify readiness before sharing.** Recordings and exports carry a `status`.
  Confirm the content is ready before handing out a download URL or operating on
  it — a record existing does not mean its file is finished.
- **Export-ready is not publish-ready.** A ready export means the rendered
  artifact is downloadable. It is not the clip state `social_upload_create`
  checks, and no tool here exposes that state — so never offer a ready export as
  evidence that something can be published.

SHA-256: 3b6b1048cc7a0be31c31a6ebb8efe9efa9f935762014c410e82f8d4dbf83e737