{"id":67524,"plugin_id":"plugin_asdk_app_6ac64f4127ac8191a614f4860d640c20","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-28T13:09:02.659Z","digest":"915f1db41ae8b0679944d2e2359f392fabe66d06f456829fe4c4cef02211225e","against":null,"payload":{"description":"Build a Recharm footage brief for an Uber-style ad — where the creative concept is set inside a rideshare and centers on the driver-passenger dynamic as the vehicle for storytelling about a product. Use this skill whenever a user provides an ad concept, brief, or product idea and wants to frame it around an Uber ride, rideshare setting, driver-passenger conversation, backseat discovery, or any in-car / commute scenario. Trigger on: \"uber ad\", \"rideshare brief\", \"in-car ad concept\", \"driver-passenger\", \"backseat\", \"make an ad set in an Uber\", or any brief that uses a car ride as the storytelling device. Always use this skill when the brief involves a prospect who is a passenger or driver in a rideshare — even if the user doesn't say \"Recharm\" or \"brief\" explicitly.\n","included_files":[],"name":"uber-ad-brief","skill_md_contents":"---\nname: \"uber-ad-brief\"\ndescription: >\n  Build a Recharm footage brief for an Uber-style ad — where the creative concept is set inside\n  a rideshare and centers on the driver-passenger dynamic as the vehicle for storytelling about\n  a product. Use this skill whenever a user provides an ad concept, brief, or product idea and\n  wants to frame it around an Uber ride, rideshare setting, driver-passenger conversation, backseat\n  discovery, or any in-car / commute scenario. Trigger on: \"uber ad\", \"rideshare brief\", \"in-car ad\n  concept\", \"driver-passenger\", \"backseat\", \"make an ad set in an Uber\", or any brief that uses a\n  car ride as the storytelling device. Always use this skill when the brief involves a prospect who\n  is a passenger or driver in a rideshare — even if the user doesn't say \"Recharm\" or \"brief\"\n  explicitly.\n---\n\n# Uber-Style Ad Brief Creator\n\nYou turn a product and an ad concept direction into a fully sectioned Uber-style creative brief,\nthen search the user's Recharm clip library for footage that fits, and produce a shareable brief.\n\nThe Recharm MCP server (`recharm`) is available. Key rules:\n\n- Call `list_labels` **once** at the start — reuse it throughout, never call it again per scene.\n- Do NOT build HTML. Hand `save_brief` a structured v2 package; the server renders everything.\n- Call `save_brief` exactly **once**, after all clip picks are final.\n- Do not paginate `search_clips_visually` — use the first page only.\n- Only use label values returned by `list_labels` — never invent or guess label strings.\n- Always refer to a clip as its `clipName`: `<clipSymbol> - <sceneType>`. Fall back to `clipSymbol`\n  if `sceneType` is null.\n\n---\n\n## Uber Ad Concept Archetypes\n\nWhen the user's brief implies an approach, map it to one (or a blend) of these archetypes. If the\nbrief is open-ended, present 3–4 options and let the user pick.\n\n### Original 10 Archetypes\n\n1. **Expert Advice POV** — Driver stops mid-ride to offer niche, unsolicited life advice about the\n   product. Feels like a genuine slightly-intrusive Uber conversation.\n2. **Hidden Compartment Reveal** — Driver reveals the car is secretly stocked with the brand's\n   products instead of the usual water/chargers. Acts like it's the most normal thing in the world.\n3. **Music Taste Test** — Driver plays a track that perfectly matches the product's vibe, using the\n   car's speakers to demonstrate the product's benefits (sound quality, mood-setting, etc.).\n4. **\"Wait, Look at This\" Detour** — Driver pulls over at a scenic spot or store specifically to\n   show the passenger a cool product feature or use case. Breaks the monotony of the car shot.\n5. **Passenger Challenge** — Driver challenges the passenger to try the product for the duration of\n   the ride and captures their raw, unfiltered first-impression reaction.\n6. **Backseat Vlogger** — Dashcam-style angle catches the passenger \"accidentally\" discovering the\n   product in the backseat and starting an organic conversation about it.\n7. **Road Trip Prep** — Montage of the driver prepping the car — and prominently including the\n   product as an essential part of the service they offer every passenger.\n8. **Inside Joke Dynamic** — Driver and passenger are already laughing together, then effortlessly\n   pivot to how the product solved a common problem they both share.\n9. **Before/After Traffic Jam** — High-stress, gridlocked ride transforms into a relaxed experience\n   once the driver introduces the product. Positions it as a mood-shifter or stress-reliever.\n10. **The Rating Play** — Driver jokingly asks for a \"5-star rating,\" but only if the passenger\n    agrees that [Product] is the best thing they've tried all day. Familiar mechanic → CTA.\n\n### 10 Additional Archetypes\n\n11. **ETA Countdown** — Driver references the ride's remaining time (\"6 minutes left\") and shows\n    how the product fits perfectly into any commute window — making every ride feel productive.\n12. **Surge Pricing Confession** — Driver jokes about surge pricing, then pivots: \"But some things\n    are always worth the premium,\" pivoting to the product's value proposition.\n13. **Lost and Found** — Driver pulls out the product: \"Someone left this last week — I tried it,\n    now I keep it for every ride.\" Stranger's social proof in a highly believable setting.\n14. **Late Night Shift** — Midnight or early-AM ride; driver reveals the product that keeps them\n    going through long shifts. Authentic tiredness + genuine product discovery.\n15. **Airport Goodbye** — Frantic airport drop-off, driver hands the product to the passenger as a\n    parting gift: \"You're going to need this.\" High-emotion, memorable ending.\n16. **Carpool Chemistry** — Two strangers sharing a rideshare bond over the product during an\n    otherwise awkward shared ride. Turns a mundane moment into a connection.\n17. **Parallel Lives Split-Screen** — Driver and passenger are shown using the product in their\n    separate daily lives, connected only by the ride. Universality of the product.\n18. **Turn-by-Turn Tutorial** — Driver gives a GPS-navigation-style walkthrough of the product:\n    \"In 200 feet, open the app…\" Playful format, clear product education.\n19. **Long Haul Confession** — Extended airport or cross-city ride; driver opens up about how the\n    product genuinely changed something in their life. Intimacy of a long shared journey.\n20. **Wrong Turn, Right Product** — GPS reroute or wrong turn accidentally leads to discovering the\n    product. Reframes the \"mistake\" as serendipity. Works well for discovery-stage brands.\n\n---\n\n## Step 1 — Confirm brand, archetype, and actor preference\n\n**Brand:** If the user named a brand slug, use it. Otherwise call `list_brands` and ask the user to\npick. If the slug isn't in `list_brands`, try `list_labels` with it directly before giving up.\n\n**Archetype:** Map the user's brief to one or a blend of the archetypes above. If it's unclear,\npresent 3–4 good fits and wait for confirmation. The archetype shapes every scene heading and the\ntone of the search queries — getting it right upfront matters.\n\n**Actor Type preference:** Uber-style ads are inherently actor-forward (driver, passenger), so\nthe default is **No Filter** unless the user's brief specifically calls for B-roll only. Confirm:\n\n- **No Filter** (default) — includes talking heads, UGC, Actor B-roll, and No Actor\n- **Actor B-roll only** — partial body, hands, environmental shots only\n- **No Actor** — purely product/environment footage (unusual for this format)\n\n---\n\n## Step 2 — Fetch available labels\n\nCall `list_labels(brandName)`. Keep the result for the full workflow. Note:\n\n- **Scene Type**: used to filter for hooks, CTAs, product shots, etc.\n- **Actor Type**: confirms available actor/B-roll categories.\n- **Product**: maps to specific flavors/SKUs if the brief names one.\n\n---\n\n## Step 3 — Section the brief into Uber-style scenes\n\nBreak the brief into ordered scenes. Target **10–14 scenes** (Uber ads are tight — cap at 14).\nEach scene ≈ 2–4 seconds. For each scene capture:\n\n- A short heading that names both the Uber context and the product beat\n  (e.g., \"Backseat Reveal — passenger opens product for first time\")\n- 1–2 sentences describing exactly what appears on screen\n- The narrative role: hook / ride-context-setup / product-discovery / benefit / reaction / CTA\n\n**Uber scene palette — lean on these visual contexts:**\n\n- Car interior: backseat POV, front-passenger POV, rearview mirror framing\n- Driver face / driver hands on wheel\n- City or highway passing through the window (movement = life)\n- Product appearing in the cupholder, center console, seatback pocket, or passenger's hand\n- Driver-passenger eye contact via rearview mirror\n- Phone screen showing the Uber app (ETA, rating prompt, arrival)\n- Arrival / door-open moment (high energy, natural cut point)\n- Reaction shots — genuine surprise, delight, or laughter\n\n**Show the proposed scene breakdown to the user and wait for confirmation before proceeding.**\n\n---\n\n## Step 4 — Build search queries\n\nFor each scene, generate **2–4 search queries**. Each query:\n\n- A short visual phrase (under ~8 words) describing what's literally on screen.\n  Favor phrases that include in-car cues: \"woman in backseat opening small box\",\n  \"driver smiling in rearview mirror\", \"city lights through car window at night\".\n- An optional `filters` object. Default: at most **1 label category** beyond ActorType.\n\n**Scene Type guidance for Uber briefs:**\n\n- Opening scenes → `Hook` or `Visual Hook`\n- Product first-touch / discovery scenes → `Product Shot` or `Product Benefits`\n- Reaction / conversation scenes → no Scene Type filter (let the visual query do the work)\n- Closing scenes → `CTA`\n\n---\n\n## Step 5 — Search, section by section\n\n**Fire all queries for all scenes in parallel** in the same tool call batch (first round).\nOnly run follow-ups after reviewing first-round results.\n\nFor each scene:\n\n1. Call `search_clips_visually` for each query phrase.\n2. Select **1–2 top results per query** by lowest `cosineDistance`.\n3. Aim for **3–5 clips per scene** total. Deduplicate by `clipSymbol`.\n4. Use **at most one clip per `rawVideoPublicId`** within a scene — clips sharing an ID are\n   near-duplicate moments from the same source video. Keep the lowest cosineDistance, drop the rest.\n5. Deprioritize clips over 4000 ms when shorter alternatives exist at similar cosineDistance.\n6. Track the `query phrase` and `filters` used for each picked clip — both go into the package.\n7. If a scene has no strong matches, leave `clips: []` (renders as \"custom shoot needed\" gap) and\n   note it in the final summary.\n\n---\n\n## Step 6 — Assemble the brief package\n\nBuild the v2 structured package:\n\n- `title`: short brief title capturing the archetype and product,\n  e.g., `\"Hidden Compartment Reveal\" · Magic Spoon · Cold Traffic`.\n- `scenes`: ordered list. Each scene:\n  - `name`: the scene heading.\n  - `description`: the 1–2 sentence on-screen description.\n  - `clips`: picked clips, each with `clipSymbol`, `searchString`, `filters`.\n  - Empty `clips: []` for custom-shoot gaps.\n\nDo not provide URLs, durations, or display names — the server derives them from `clipSymbol`.\n\n---\n\n## Step 7 — Save and share\n\nCall `save_brief` exactly once:\n\n```\nsave_brief(brandName, {\n  version: \"v2\",\n  title: \"<brief title>\",\n  scenes: [\n    {\n      name: \"<scene heading>\",\n      description: \"<on-screen description>\",\n      clips: [\n        { clipSymbol: \"<symbol>\", searchString: \"<query phrase>\", filters: { <category>: [\"<label>\"] } }\n      ]\n    }\n  ]\n})\n```\n\nSurface the returned `url` as the shareable link. Follow with a short **summary**:\nscenes needing custom footage, any unusually long clips, and observations about gaps in the library\nspecifically for in-car / Uber-context footage.\n\n---\n\n## What not to do\n\n- Don't skip the archetype selection step — it's what makes this format distinctive.\n- Don't use label values not returned by `list_labels`.\n- Don't over-filter: 1 label category per query (beyond ActorType) is the default.\n- Don't fetch or examine poster images or sprite images.\n- Don't invent `clipSymbol`s — only use ones from `search_clips_visually` results.\n- Don't refer to clips by `clipSymbol` alone in user-facing output — always use `clipName`.\n- Don't call `save_brief` more than once, and never before clip picks are final.\n- Don't build HTML or construct clip URLs yourself.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}