From Recharm
Build a Recharm footage brief for an ad anchored in an optimistic purchasing emotion — show the prospect already thriving, not suffering from a problem. Use whenever a user provides a creative brief, concept, or ad idea and wants to frame it around a positive mindstate such as achievement, belonging, empowerment, autonomy, competence, engagement, esteem, nurturance, or security. Searches the Recharm clip library and produces a shareable shot-by-shot brief with clip picks. Trigger this skill whenever the user mentions "optimistic", "positive emotion", "aspirational", "feel-good ad", "celebrate the win", "prospect mindstate", or provides a brief with an uplifting, forward-looking angle — even if they don't name the mindstate explicitly. Also use this when the user asks for an ad that leads with the prospect's joy, confidence, freedom, connection, or sense of accomplishment rather than pain or fear.
How this skill is triggered — by the user, by Claude, or both
Slash command
/recharm:aspire-tone-briefThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You orchestrate a multi-step search loop against the user's Recharm clip library to turn a creative brief into a shot-by-shot brief anchored in a specific **optimistic purchasing emotion** (mindstate). The ad speaks _to_ the prospect while they are in that positive mindstate — it mirrors their aspiration, not their problem.
You orchestrate a multi-step search loop against the user's Recharm clip library to turn a creative brief into a shot-by-shot brief anchored in a specific optimistic purchasing emotion (mindstate). The ad speaks to the prospect while they are in that positive mindstate — it mirrors their aspiration, not their problem.
The Recharm MCP server (recharm) is available in this plugin. Key behavioral notes:
list_labels once at the start — keep the result for the entire workflow; do not call it again per scene.save_brief a slim structured package; the server derives every clip's URLs, name, duration, and aspect ratio from its clipSymbol and renders the HTML.save_brief exactly once, after clip picks are final. Each call mints a new URL.search_clips_visually — use the first page only.list_labels — do not invent or guess label strings.Always refer to a clip in user-facing output as its clipName — <clipSymbol> - <sceneType> (e.g. "AB - Product Reveal"). If sceneType is null, fall back to just the clipSymbol.
This skill processes one video at a time. If the brief calls for multiple videos, ask the user to pick one or confirm sequential processing.
Follow the steps below in order.
Each mindstate represents the positive emotional lens through which the prospect is viewing their world when they encounter the ad. The ad should confirm and celebrate that feeling — not introduce doubt or fear.
| Mindstate | Core desire | What the ad celebrates |
|---|---|---|
| Optimistic Achievement | Success, accomplishing goals | The win, the milestone, the earned result |
| Optimistic Autonomy | Freedom, self-expression, personal choice | Being the author of one's own story |
| Optimistic Belonging | Connection, shared experiences, community | Togetherness, tribe, being part of something |
| Optimistic Competence | Improvement, growth, doing one's best | Getting better, leveling up, mastering something |
| Optimistic Engagement | Pleasure, excitement, full immersion in life | Joy, vitality, savoring the moment |
| Optimistic Empowerment | Handling challenges, feeling capable | Strength, readiness, rising to occasions |
| Optimistic Esteem | Recognition, appreciation, self-confidence | Being seen, valued, proud of who you are |
| Optimistic Nurturance | Compassion, feeling loved, caring for others | Warmth, being cherished, giving or receiving care |
| Optimistic Security | Safety, protection, peace of mind | Confidence in the future, freedom from worry |
From the brief: Read it for emotional cues — words like "earned it", "finally free", "part of something", "getting stronger", "peace of mind", etc. Map these to one or two mindstates from the table above.
Ask for confirmation: Present your read to the user:
"I'm reading this as an Optimistic [X] ad — the prospect is feeling [brief description of what they're experiencing]. Does that resonate, or would you like to shift the emotional angle?"
If the brief is silent on emotion, ask the user to pick one. Do not proceed without a confirmed mindstate — it shapes every scene description.
One primary mindstate: Use at most two mindstates per brief. If two are chosen, designate one as primary (drives scene structure) and one as secondary (flavors individual scenes).
Brand: If the user already named a brand slug (e.g. magic_spoon, hike_footwear), use it. Otherwise call list_brands and ask the user to pick. If a user-named brand doesn't appear in list_brands, don't give up — call list_labels with that slug directly. Many brands work even when absent from the brands listing.
ActorType preference: By default, apply both Actor B-roll and No Actor labels to every search query — this gives the broadest b-roll pool while excluding talking heads, which tend to feel too direct for optimistic emotion-led ads. Only deviate if the brief explicitly requests talking heads or UGC-style on-camera content, in which case confirm with the user before removing the filter.
Call list_labels(brandName) and keep the result for the rest of the workflow. Note these special-case categories if present:
Hook, CTA, Product Benefits, Product Shot, Bowl Shot, Box Shot, Pouring Cereal, etc.)Read the brief and break it into ordered scenes. Each scene should be approximately 2–5 seconds and correspond to a single Recharm clip. Cap the total at 18 scenes.
Mindstate-driven scene architecture: Structure scenes to take the viewer on an emotional arc within the chosen mindstate — starting from a moment that resonates with their current positive feeling, deepening it, and closing with the product as a natural extension of that feeling.
Typical arc shapes by mindstate:
For each scene capture:
Show the proposed scene breakdown to the user and wait for confirmation before searching.
For each scene, generate 2–4 search queries. Each query has:
filters object.Default to lean filtering. The text query does most of the heavy lifting. As a default, add at most 1 label category per query (beyond the ActorType baseline). Only combine two categories when the brief has a genuinely hard constraint requiring both.
ActorType filter: Apply Actor B-roll and No Actor labels to every query (the default). This is a baseline constraint, not counted toward the "1 label category" default.
Scene Type filter: Use the Scene Type that best matches the scene's narrative role: Hook / Visual Hook for openers; product-specific types for food/product B-roll; CTA for closers.
Product filter: If the brief names a specific flavor or SKU, apply the matching Product label on queries where the product is the hero.
Run all first-round queries in parallel — fire all 2–4 queries per scene simultaneously in the same tool call batch.
For each scene:
search_clips_visually once per query phrase, passing brandName, query, and any filters.cosineDistance.clipSymbol.rawVideoPublicId within a scene — clips sharing a rawVideoPublicId are different moments of the same source video. Keep the best.Mindstate alignment check: As you review results, notice whether clips feel emotionally congruent with the mindstate. A clip can have a great cosineDistance but feel flat or neutral — for this brief type, warmth, energy, and emotional charge matter. If two clips are close in score, pick the one that better embodies the emotional beat.
Do not write HTML. Build a slim structured package:
title: e.g. "Magic Spoon · Optimistic Achievement · Runner's Morning"scenes: ordered scenes. Each scene:
name: the scene headingdescription: the 1–2 sentence on-screen description plus a parenthetical emotional beat note, e.g. "Close-up of hands lacing up trail shoes before a run. (Beat: quiet confidence — she's done this a hundred times and knows what's ahead.)"clips: picked clips. Each clip:
clipSymbolsearchStringfiltersclips array for custom shoot scenes.Call save_brief exactly once with the v2 payload:
save_brief(brandName, {
version: "v2",
title: "<brief title>",
scenes: [
{
name: "<scene heading>",
description: "<on-screen description + emotional beat note>",
clips: [
{ clipSymbol: "<symbol>", searchString: "<query phrase>", filters: { <category>: ["<label>"] } }
]
}
]
})
Surface the returned url as the shareable link. Then give the user a short overall summary:
list_labels.clipSymbols — only use ones returned by search_clips_visually.clipSymbol alone in user-facing output — always use clipName.save_brief the v2 package.save_brief more than once or before clip picks are final.list_brands — try list_labels directly.npx claudepluginhub recharm/claude-plugin --plugin recharmGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.