← RiversideCONTENT HISTORY

Update to Riverside

Snapshot Sep 30, 2026 · 23:19 UTC · version 1.0.1

Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED · RULE-BASED ANALYSIS

Supporting file metadata differs

Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Supporting files

Before

[{"relative_path":"references/cross-skill-handoffs.md","size_in_bytes":3535},{"relative_path":"references/hierarchy-navigation.md","size_in_bytes":5759},{"relative_path":"references/search.md","size_in_bytes":3922}]

After

[{"relative_path":"agents/openai.yaml","size_in_bytes":521},{"relative_path":"references/cross-skill-handoffs.md","size_in_bytes":3535},{"relative_path":"references/hierarchy-navigation.md","size_in_bytes":5759},{"relative_path":"referen...

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

changed /included_files

BEFORE
[
  {
    "relative_path": "references/cross-skill-handoffs.md",
    "size_in_bytes": 3535
  },
  {
    "relative_path": "references/hierarchy-navigation.md",
    "size_in_bytes": 5759
  },
  {
    "relative_path": "references/search.md",
    "size_in_bytes": 3922
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 521
  },
  {
    "relative_path": "references/cross-skill-handoffs.md",
    "size_in_bytes": 3535
  },
  {
    "relative_path": "references/hierarchy-navigation.md",
    "size_in_bytes": 5759
  },
  {
    "relative_path": "references/search.md",
    "size_in_bytes": 3922
  }
]
Full snapshot data
{
  "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).",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 521
    },
    {
      "relative_path": "references/cross-skill-handoffs.md",
      "size_in_bytes": 3535
    },
    {
      "relative_path": "references/hierarchy-navigation.md",
      "size_in_bytes": 5759
    },
    {
      "relative_path": "references/search.md",
      "size_in_bytes": 3922
    }
  ],
  "skill_md_contents": "---\nname: content-discovery\ndescription: >\n  Use when the user wants to search, find, list, browse, or retrieve their\n  Riverside content — productions, studios, projects, recordings, edits,\n  exports, transcripts — by what was said in it, by its title or topic, or by\n  where it lives; when they ask for a download or share link; or when another\n  workflow first needs a studioId, productionId, projectId, sessionId, or\n  editId. Not for creating or changing an edit (see video-editing), and not for\n  publishing to social platforms (see social-publishing).\n---\n\n# Content discovery\n\nRead-only search and navigation over the Riverside platform. Hierarchy tools\ncarry a `platform_` prefix and search tools carry a `search_` prefix; nothing on\nthis surface modifies content. Copy tool names verbatim.\n\n**The live tool schemas are the authority.** Required and nullable fields, date\nwindows, limits, defaults, page sizes, and pagination tokens all come from the\nschema of the tool you are about to call — never from memory, from an earlier\nsession, or from a number written in a skill file. Read the schema, then call.\n\n## The entity bridge\n\nA production contains studios. A studio contains projects. A project contains\nboth recordings and edits. An edit produces exports.\n\nWhich id crosses into another skill:\n\n- **`studioId`** — social publishing needs one, and so do the brand and captions\n  editing tools. No editing or social tool can discover a studio, so it has to\n  come from here. A studio also carries its `productionId`.\n- **`sessionId`** — the recording-session identifier used by transcript reads\n  and edit creation. Reuse a recording's `id` only when the live response or\n  schema says that item is the same session (for example, some upload or\n  single-take records). For multi-take material, confirm the intended take or\n  start from an existing project edit instead of assuming the ids coincide.\n- **`editId`** — one cut of one or more recordings. Social publishing consumes\n  it as the `clipId`.\n- **`exportId`** — one rendered file. Download links live here, not on the edit.\n\n## Where to read next\n\n| Need | Read |\n|---|---|\n| Find content by exact words, topic, or title | [Search](references/search.md) |\n| Browse hierarchy, determine latest, page completely, or obtain a download link | [Hierarchy navigation](references/hierarchy-navigation.md) |\n| Resolve or hand off IDs for editing or social publishing | [Cross-skill handoffs](references/cross-skill-handoffs.md) |\n\n**Routing contract:** Before the first Riverside workflow call, evaluate every\nrow against the observable request and state. Read every matching reference and\nno unrelated reference. After each Riverside response, evaluate every row\nagain before the next workflow call; read any newly matching reference first.\nOnly this table routes references — a reference never routes to another one.\n\n## Rules that hold in every flow\n\n- **Ask, don't guess.** When more than one studio, project, recording, or edit\n  fits what the user described, show the candidates and let them pick. Guessing\n  produces a confident answer about the wrong content.\n- **Keep broad requests broad.** Scoping parameters such as `projectId` on\n  `platform_list_recordings` and `platform_list_edits` are optional. Omit them\n  for \"all my recordings\"-style requests, and never carry a narrow scope\n  captured in an earlier step into a request the user did not scope that way.\n- **Links come from the platform.** Studios, projects, recordings, edits, and\n  exports each carry a `riversideUrl`. Return the one the server gave you; never\n  construct or guess a URL.\n- **Preview links are opt-in.** `platform_get_recording` withholds the\n  token-bearing `previewUrl` unless asked. Set `includePreviewUrl` only once the\n  user has explicitly asked for a shareable preview, and read a null value as\n  \"no share link exists right now\".\n- **Verify readiness before sharing.** Recordings and exports carry a `status`.\n  Confirm the content is ready before handing out a download URL or operating on\n  it — a record existing does not mean its file is finished.\n- **Export-ready is not publish-ready.** A ready export means the rendered\n  artifact is downloadable. It is not the clip state `social_upload_create`\n  checks, and no tool here exposes that state — so never offer a ready export as\n  evidence that something can be published.\n"
}

SHA-256: c56a6c1af46574a1e0075936e65da08ec852cd40f9eb70728a15af3e86f297d5