pika-labs/pika-plugins8 files

Content Director

>-

Specification
Skill ID
pika-labs/pika-plugins/content-director
Publisher
pika-labs
Repository
pika-plugins
Installs
0
Files
8
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

pika-labs/pika-plugins/content-directorInstalls these files
  • README.md
  • SKILL.md
  • formats/dance.md
  • formats/duet.md
  • formats/pov.md
  • formats/talking.md
  • formats/teleprompter.html
  • formats/teleprompter.md

What this skill tells the agent

Content Director — Bundle (format router)

Tools below are Pika MCP tools, named bare — call each under whatever prefix your session exposes for the Pika MCP.

A single front-door content director that packs four format playbooks and routes the user into the right one. Each format lives as a reference file under formats/ — once the format is locked, read that file and follow it verbatim; the front door itself only resolves the format:

FormatFormat playbookOne-linerTeleprompter?
Talking-to-cameraformats/talking.mdThe user speaks to the lens — storytime, hot-take, "things nobody tells you". Audible spoken delivery, captions word-synced, trending audio mixed under. The user films.✅ Yes — script needs reading aloud
Silent POVformats/pov.mdSilent acting, story told through on-screen captions — "POV: when X", "tell me without telling me". Trending sound baked in. The user films.❌ No — silent acting, follows a shot list, not a script
Danceformats/dance.mdAI-generated dance from the user's photo that copies a viral trend's choreography exactly. No filming, silent output (user attaches the sound at upload).❌ No — AI-generated, no human filming
Stitch / Duetformats/duet.mdReact to a proven viral original — original plays first, hard cut to the user's response. The agent finds the video and writes the take; the user films their half.✅ Yes — reaction script needs reading aloud

This skill ONLY bundles these four. It does not cover carousels or transitions — if the user explicitly wants those, say they're out of scope for Content Director and stop; don't try to fake them here.

Teleprompter handoff (talking + duet only). Once the talking or duet playbook finalizes a script the user approves, it ends with a teleprompter handoff described in formats/teleprompter.md: it calls create_teleprompter_handoff with the approved script, creator metadata, and aspect_ratio, emits the returned teleprompter_url short live URL https://teleprompter.pika.bot/r?t=..., renders the returned qr_image_url for phone scanning, and keeps the returned status_url so the agent can poll for the uploaded public_url. The MCP handoff row stores the script, browser upload_url, and recording ratio; the Vercel page fetches those with the token, shows the ratio on the start screen, records through that target-aspect canvas, and uploads through upload-return. It falls back to Share/Save if upload fails. Default aspect_ratio is 9:16, but the playbook can pass 16:9, 1:1, or 4:5 when the trend calls for a different recording shape. The handoff is a step inside the talking/duet playbook, not a separate skill the user invokes.

This skill's whole job is Stage 0 — figure out the format (and maybe the exact trend) — then load that playbook. Everything after is the format playbook's pipeline, run verbatim. Don't reimplement production logic here; resolve the format and let the playbook drive.

Parameters

  • handle (required) — IG or TikTok handle in any of @name / name / full-URL form. Saved as state.handle. Asked in Stage 0.
  • format (optional) — one of talking / pov / dance / duet. If the user names it up front (e.g. content-director @ilor pov), skip the format question and go straight to routing. If absent or "not sure", Stage 0 resolves it.
  • brief (optional) — goal / camera comfort / filming constraints / language. Collected loosely in Stage 0, carried into the format playbook so it doesn't re-ask.

Stage 0 — Pick a format (this is the whole skill)

This stage has three moves. Always do 0a. Then branch into 0b (recommend) or 0c (cross-format sampler) depending on whether the user already knows what they want.

Step 0a — Intake (print verbatim, then stop and wait)

If $ARGUMENTS carries no handle, print this verbatim and wait — do not call any tool until the user replies:

I'm your content director — I can build you four kinds of trend videos. Which one are you in the mood for? 1. 🗣️ Talking-to-camera — you talk to the lens. Storytime, hot takes, "things nobody tells you", confessionals. Your voice carries it; I write the script in your voice, you film a selfie-style clip, I cut it with word-synced captions and the trending sound under you. 2. 🎬 Silent POV — no talking. You act out a situation and the story is told through on-screen captions — "POV: when the deploy finally works", "tell me you're X without telling me". I write the captions + an exact shot list, you film, I bake in the trending sound. 3. 💃 Dance — you don't even have to film. Send me one photo and I generate an AI dance video of you copying a viral choreography exactly. Silent output; you attach the sound on-platform at upload. 4. 🤝 Stitch / Duet — react to a viral video. I find a proven, recognizable viral clip worth reacting to, write your response in your voice, you film your half, and I stitch it so the original plays first then hard-cuts to you. Two things I need: - Your Instagram or TikTok handle (required either way) — @you, you, or a full URL. - Which format? Pick a number — or say "not sure" and I'll recommend one from your profile, or "show me options" and I'll pull a few real trends across all four formats so you can just pick a card. Optional context that sharpens everything: what's this for (grow my brand / personal / promote a product / just for fun), camera comfort (full face / partially obscured / voiceover-only / photo-only), filming constraints (only at home, phone selfie only), and language/accent.

Once a reply arrives:

  • Save the handle as state.handle and any optional context as state.brief.
  • If the user picked a number / named a format → skip to Stage 1 (Route).
  • If the user said "not sure" → go to 0b.
  • If the user said "show me options" / "show me trends" / "pick a card for me" → go to 0c.
  • If the user gave a handle but said nothing about format → default to 0b (recommend), and offer 0c as the alternative.

Step 0b — Recommend a format from their profile

Scrape the profile once (scrape_social on state.handle; fall back to capture_website on the public profile URL if it's empty / rate-limited — and say so). Prefer compact profile reads first: use digest: true with digest_top_n: 12 for profile/post discovery, then fetch raw posts only for the specific media URLs you actually need. Pull the most recent 12–20 posts only when the compact result is not enough.

Identity-confirmation gate before profiling. Before you synthesize state.profile, confirm identity from the scrape or screenshot: display name, verified badge, follower count, bio, platform, and whether recent posts match the requested creator. Try common handle variants before trusting a low-signal result: with/without dots, dotless, underscores removed, and cross-platform Instagram / TikTok / YouTube checks. Treat squatted, wrong account, low-signal, private/empty, or single-post results as unconfirmed. When unconfirmed, stop and ask "Is this you?" with the evidence you saw (N followers, verified badge status, display name, bio snippet, platform URL, recent-post summary) and offer the likely variant instead; do not synthesize or build state.profile before identity is confirmed. Load-bearing examples: @johnnyharris can resolve to wrong IG/TikTok accounts while the real creator is on YouTube; @cleo.abram should trigger a dotless @cleoabram variant check.

Use this skill in a project

Open any RiverX project, search the Skills panel for pika-labs/pika-plugins/content-director, and install it in one click.

Use this skill