Agency Skills
SkillsMCPCollectionsContributorsContribute
Install MCP
Agency Skills

Skills written by the people who run agencies, consultancies and coaching firms. Free and open source, MIT.

LibraryAll skillsCollectionsContributors
ContributeHow to contributeContributor guideGitHubReport a problem
GiaCompany BrainPowered by Gia
Skills/Win the work/Riverside Shorts social schedule
Marketing

Riverside Shorts social schedule

Use this skill when finished vertical clips from a Riverside recording are approved and need scheduling to YouTube Shorts, TikTok and Instagram. Produces one scheduled post per clip and platform, each read back and checked. Uses Riverside's MCP server. "Schedule the shorts", "post the clips this week", "fix the shorts schedule".

R. Hunter HarrisR. Hunter HarrisFounder, Hunter Software Consulting
Say something like
“Schedule the shorts”“post the clips this week”“fix the shorts schedule”
riversideyoutubetiktokinstagrampodcastvideoshortssocial-scheduling
SKILL.mdView on GitHub

Applies after clips are finished and approved, when they need to go out on a schedule. Produces scheduled posts, one per clip and platform, each verified by reading it back.

Riverside's MCP server (OAuth, signed in once by the human) exposes the social scheduling tools. Five clips on three platforms is fifteen writes, so the procedure is built around never doubling or losing one.

The play

  1. Get approval for everything that goes out: captions, titles, accounts, visibility and times. Scheduling is publishing.
  2. Read what is already scheduled, then build the expected-state matrix before any write: one row per clip, platform and account. The columns are listed in references/expected-state-matrix.md.
  3. Check the matrix. Every caption carries the approved call to action, usually the full-episode link rather than a hosting or bio page, and every time is converted to UTC for that date. Daylight saving moves the UTC hour.
  4. Create each row with social_upload_create. Include composeSettings: {} on the first create. Without it, Riverside rejects an exported clip as "not exported yet".
  5. Journal each write as it returns. If a write's result is unknown (timeout, dropped connection), don't retry it. Read the schedule once, then stop and ask.
  6. Read every row back with social_get_upload and social_get_upload_status. Check account, UTC time, visibility, caption, title and source clip against the matrix. A create can return "waiting for greenlight" and read back as "scheduled". Only the read-back counts.
  7. Repair only what failed: keep verified rows, write only the missing ones.

What good looks like

  • First check: the caption link. A Short without the full-episode link is reach that leads nowhere.
  • The mediocre version fires fifteen creates in a loop, retries the ones that time out, and finds duplicate posts on TikTok two days later.
  • The output is right when every matrix row reads back "scheduled" with the right account, UTC time and caption, and the journal shows exactly one create per row.

Rules

  • MUST have approval for copy, accounts and times before the first write.
  • MUST read back every post; NEVER report a create response as success.
  • NEVER retry a write whose outcome is unknown.
  • NEVER cancel and recreate a scheduled post to fix it; edit it, or ask.
  • NEVER run two scheduling sessions against the same Riverside account at once; parallel callers hit its rate limit.
1 reference file
references/expected-state-matrix.md

Expected-state matrix

Build this before the first write, and check every row against it after read-back.

Columns

ColumnExampleCheck
clipshort-3the edit ID and revision you approved, not a later edit
typeShort, 9:16dimensions match the platform
platformYouTube, TikTok, Instagramone row per platform
accountthe connected account's IDfrom social_get_connected_platforms, not typed
titleYouTube onlyequals the approved title
captionfull textequals the approved caption; carries the full-episode link
visibilitypublicas approved
local timeTue 14:00 America/New_Yorkthe approved slot
UTC time19:00Zconverted for that date, not this week's offset
render settingscomposeSettings: {}present on create
approvalwho approved, and whenpresent before any write
statusnot attempted, unknown, failed, verifiedupdated as each write returns

The create call

social_upload_create takes the studio ID, platform, platform account ID, the clip (edit) ID, scheduledAt in UTC, composeSettings, and one platform block (youtubeData, tiktokData or instagramData) with the title, caption and visibility.

Statuses after each call

StateMeaningNext
not attemptednothing sentcreate
unknownsent, no clear answerread the schedule once; if absent, stop and ask; never resend blind
failedRiverside refusedconfirm no upload exists, fix the cause, then create
verifiedread back and matchingdone

Known refusals and surprises

  • "Clip is not exported yet (status: draft)" on a clip that was exported: composeSettings was missing from the create.
  • Create says "waiting for greenlight", read-back says "scheduled". Normal. Trust the read-back.
  • Wrong attachment on a scheduled post. Prepare the corrected export, then replace the attachment in place, keeping the post, copy and time.
  • The hour is off by one. The UTC conversion used the wrong side of a daylight-saving change.
  • Rate limited. Another session was calling the same account. One caller at a time.

Removing a post

In Riverside's planner, "Remove schedule" only unschedules the post. A permanent delete is the separate "Remove post" action. Do it only with explicit approval, and read back afterwards.

Scale, for orientation

Five Shorts on three platforms is fifteen creates a week. Run weekly for six weeks, ninety-three creates had one refusal, the missing render setting on the first run.

Install this skill

Pick where your agent runs.

View prompt
Help me install the skill named "riverside-short-social-schedule" from this GitHub URL in Claude:
https://github.com/agiea-brain/agency-skills/tree/main/skills/hunter-harris/riverside-short-social-schedule

Prepare only the "riverside-short-social-schedule" skill, not other skills in the repository.

Inspect each complete skill folder, not just SKILL.md. Preserve the original instructions and include all supporting files (such as references, scripts, templates and assets), keeping their relative paths intact. Package each skill as a downloadable ZIP containing its skill folder with SKILL.md directly inside that folder. If a skill only contains SKILL.md, package that folder too.

Give me the download link for each ZIP and walk me through uploading and enabling it under Settings, Capabilities, Skills in Claude. If you cannot access GitHub or create downloadable files here, explain what I need to download and how to package and upload it myself. Do not invent missing files or claim the skill is installed before I upload it.

Paste this prompt into Claude. It packages the skill folder, supporting files included, and walks you through uploading it under Settings, Capabilities, Skills.

0installs
Marketingcategory
MITlicense