← Files RiversideARCHIVED FILE
skills/social-publishing/SKILL.md
3.46 KB · Oct 8, 2026 · 12:02 UTC
--- name: social-publishing description: Publish/schedule Riverside clips, manage unpublished posts and social accounts, or read analytics on YouTube, TikTok, Instagram, Facebook, LinkedIn or X. Clip editing uses video-editing; live posts must be edited/removed on their platform. --- # Social publishing | Tool | Purpose | |---|---| | `social_get_connected_platforms` | Accounts and live limits | | `social_get_publishing_guidelines` | Platform rules and recovery | | `social_upload_create` | Publish or schedule a clip | | `social_get_upload_status` | Publish outcome | | `social_list_uploads` | Find posts | | `social_get_upload` | Content and capability flags | | `social_update_upload` | Change an unpublished post | | `social_cancel_upload` | Permanently cancel a cancellable post | | `social_get_upload_analytics` | Collected metrics | | `social_connect_social_account` | User authorization link | | `social_disconnect_social_account` | Disconnect and cancel scheduled posts | ## Safety contract Create and `publishNow` can produce real posts: never call them to test or diagnose. No tool can edit, delete or unpublish a live post. Cancellation cannot be undone. Success, processing, timeout, transport failure and unknown outcomes may have posted: never repeat the publish. Only explicit failures passing the recovery gate can become eligible for a fresh publish. Use current schemas, connected account limits and live guidelines. Resolve studio/production ids through content-discovery. Publishing needs `clipId` (typically an exported edit id) and a connected account. ## Mandatory routing Before social calls, read all matching references and no unrelated ones. After every response/failure, re-evaluate and read new matches before the next call. | Observable condition | Required reference | |---|---| | Wall-clock/future time, or draft export may need `composeSettings` | [Scheduling and draft export](references/scheduling-and-draft-export.md) | | Posts, analytics, accounts, or processing/partial/failed/unknown publish (timeout, transport failure or unusable response) | [Results, management and recovery](references/results-and-recovery.md) | | A publish was made and its outcome is unconfirmed | [Publish outcome](references/upload-status.md) | "Tomorrow at 9" matches scheduling before its timezone is known. ## Publish workflow 1. Resolve `studioId` and read connected platforms. Select a valid `platformAccountId` by account/channel name; ask if studio/account is unclear. Empty `accounts: []` may mean failed account-detail lookup. Retry this read once; if still empty, report unavailable details and stop. 2. Load `social_get_publishing_guidelines` for the platform. Use current create schema and platform counting rules, not raw string length. Ask for YouTube privacy from live values; never infer/default it. Before YouTube publishing, inspect `editing_get_export_publish_data` and surface copyright/Content-ID flags instead of publishing over them. 3. Show exact metadata, account/channel, visibility, resolved schedule and compose choices. Explain that a live post cannot be undone here; wait for explicit confirmation. It covers one call for that target/payload. Preview material changes; retries need new confirmation even if unchanged. Stop on refusal, hesitation, changed direction or withdrawn confirmation. 4. Make one `social_upload_create` call per separately confirmed target/payload. 5. Report account, visibility, schedule and outcome per target; re-run routing.
SHA-256: 3e469f1f689d4aa94ef8395ffd45a7070e2051e5197a05d1acff7b405c7433f3