بنقرة واحدة
storyboard-intro
First-time orientation — the 5 user intents + canonical Wave 2/3 verbs
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
First-time orientation — the 5 user intents + canonical Wave 2/3 verbs
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | storyboard-intro |
| description | First-time orientation — the 5 user intents + canonical Wave 2/3 verbs |
| agent_rule | On cold-start or 'what can you do', orient by the 5 user intents — don't enumerate 40 tools. |
| task | ["narrate"] |
| domain | ["story"] |
| persona | ["agent-only"] |
| scope | episode |
| category | onboarding |
| triggers | ["first time","getting started","what can you do","new user","/intro"] |
The Storyboard MCP exposes ~99 tools spanning image / video / audio generation, brand kits, moodboards, LoRA training, an agent marketplace, finishing, and social publishing via Publora. A new user shouldn't see 99 options — orient by the 5 intents below (or attach get-started-mcp).
→ create_media({ action: "generate", prompt: "..." }) — server picks the right cap.
Wave 3 prefer_fast routing — pass prefer_fast: true when wall-clock matters more than fidelity (chat preview, real-time iteration, draft moodboards). Routes generate → flux-schnell (~2s) and animate → seedance-i2v-fast. The premium default (flux-dev, ~30s) stays in place when prefer_fast is omitted.
Polymorphic actions (Wave 2): action is one of generate | animate | music | tts | mux_audio | lipsync | subtitle | upscale. Pass the appropriate fields (audio_url for mux/lipsync, text for tts/subtitle, source_url for animate/upscale).
Symbolic source refs (Wave 2 E1): pass source_url: "@last" / "@last_image" / "@last_video" / "@last_audio" to chain on the most-recent asset without re-pasting the URL.
Wave 3 fast path — saved templates. If the user's brief matches a canonical flow, this is one MCP call:
list_templates() → see the library: launch_campaign / rebrand_exploration / competitive_moodboard / press_kit / thought_leadership / community_gardenapply_template({ template_id, variables: {product, audience, ...}, context_kit_id? }) → creates the moodboard + returns a pre-filled moodboard_spread invocation in next_actionsconfirm: false (dry-run), then runManual path (when no template fits):
brand_kit_create({ name, palette: ["#RRGGBB", ...], prompt_keywords: [...] })moodboard_create({ title, intent, context_kit_id })moodboard_spread({ moodboard_id, count: 12, confirm: false }) to preview costmoodboard_spread({ ... }) (no confirm) to fireActive brand kit sticky (D3): call set_active_brand_kit({ kit_id }) once at the start; every subsequent create_media / generate_project for the next hour inherits palette + keywords automatically. Clear with clear_active_brand_kit().
→ place_subject({ source_url, count: 6 }) — subject-transfer through nano-banana (Imagen Edit). One call, parallel render. ~$0.20. Use confirm: false for the dry-run preview first.
The canonical Wave 2 verb: create_variations({ source_url, count: 4, mode: "mixed" }). Modes: seed (low drift) / prompt (style shifts) / model (cross-model range) / mixed (the default blend).
Single-slot refinement on a moodboard tile: refine_slot({ moodboard_id, slot_id: "slot-3", hint: "warmer" }). The prior version is pushed to slot.history[] (max 5) and shows up in the viewer's alternatives rail.
Publora is the publish surface. Three wrapper tools in our MCP cover one-turn chains; users with the full Publora MCP plugged in (config preset shipped) get 18 tools total.
publora_list_platforms() → returns connection IDs for the user's X / LinkedIn / Instagram / Threads / TikTok / YouTube / Facebook / Bluesky / Mastodon / Telegram accountspublora_publish_post({ content, platforms: ["linkedin-abc", "twitter-123"], media_urls: [moodboard_hero_url], scheduled_time?: "2026-06-01T09:00:00.000Z" }) — cross-post or schedulepublora_list_posts({ status: "scheduled" }) — content-calendar reviewRequires PUBLORA_API_KEY on the server. Returns a friendly "not configured" error when unset; tell the user to set the key or plug mcp.publora.com directly via Settings → MCP → Add → Publora.
search_assets({ query: "amber", kind: "image", since: "24h" }) — find a recent asset by prompt substring. Use this when the user says "the warm-amber Aurora board from yesterday" and you need the URL.get_recent_assets({ limit: 10 }) — full list, most recent first. Storage caps at 50/bearer.forget_assets({ since_minutes: 60, confirm: false }) — purge the recall index. Default dry-run; pass confirm: true to actually wipe.If the user says "stop" mid-spread: cancel_moodboard({ moodboard_id, reason: "..." }). Soft-cancels the board, in-flight slot completions discarded at persistence, future spreads refuse with a clone-the-board hint. Honest limit: in-flight fetch calls to fal continue to completion at the network layer.
next_actions conventionEvery multi-slot tool returns next_actions: [{label, tool, args, hint}] in its structuredContent. Surface them to the user inline as numbered options after rendering. Example:
Here are your 12 moodboard slots. Next:
- Animate slot-3 into a video
- Make 4 variations of slot-3
- Refine slot-3 (e.g. "warmer", "more cinematic")
- Open the live viewer
The user replies with the number; you dispatch the corresponding tool call. Users shouldn't have to remember tool names or rewrite source URLs.
Use confirm: false before any multi-slot fan-out costing more than $0.20. Every multi-slot tool (moodboard_spread, place_subject, create_variations, generate_project) accepts confirm: false for a dry-run preview showing total estimate + per-slot cost + model pool. Echo the number to the user, then call again without confirm: false.
Approximate costs to know:
All four surfaces share the same MCP server + bearer. Pick by ergonomics:
storyboard.daydream.monster) — canvas-based multi-card workflow, LoRA training studio, LV2V live streaming, fine timeline editing.livepeer CLI — scripting + CI. Verbs: livepeer moodboard <create|spread|publish|refine|cancel>, livepeer vary, livepeer forget, livepeer run <cap>, etc./moodboard, /template, /templates, /search, /refine, /cancel, /forget, /vary route through the Hermes agent with full MCP access.If a user asks for something the web app does better (multi-stream LV2V, LoRA training UI), point them there.
create_media routes intelligently; only surface model choices when explicitly requested ("use gpt-image for stylization").create_media prompts under 30 words. Long briefs → moodboard_spread.intent or generate_project scenes or apply_template.variables.confirm: false first when the estimate is > $0.20.structuredContent, or {action:"generate",…} blocks to the user. Echo human_summary in plain language instead (see cowork-ux skill).Cowork passes the image bytes through conversation context. Two ways to land it as a public URL:
upload_image({ data: <base64> }) — works for sub-1 MB images. Larger files often fail because the MCP transport (Cowork ↔ storyboard) has a body-size cap that truncates the base64 mid-flight. Symptom: base64 round-trip mismatch or length not multiple of 4 error.upload_image({ source_url: <https url> }) — server fetches + re-hosts. Use this whenever (a) the image is already at a public URL (Imgur, Drive 'anyone with link', GitHub raw, fal.media, etc.) or (b) the base64 path failed. Auth-walled services (private S3, Notion) don't work.Fall-back when both fail: tell the user to drag-drop into https://storyboard.daydream.monster (the webapp uses the same /api/upload) or livepeer upload <path> from CLI, then paste the returned URL back.
search_assets({ query: <keyword> }) or get_recent_assets({ limit: 10 }).context_kit_id or use set_active_brand_kit.cancel_moodboard({ moodboard_id, reason: "..." }).refine_slot with the prior URL as the new prompt anchor, or hand the user the prior URL from slot.history[].publora_list_platforms then publora_publish_post. If Publora's not configured, point the user at mcp.publora.com preset.