@growthub/cli 0.3.33 → 0.3.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/assets/worker-kits/creative-strategist-v1/brands/_template/brand-kit.md +123 -0
- package/assets/worker-kits/creative-strategist-v1/brands/solawave/brand-kit.md +139 -0
- package/assets/worker-kits/creative-strategist-v1/bundles/creative-strategist-v1.json +46 -0
- package/assets/worker-kits/creative-strategist-v1/growthub-meta/README.md +14 -0
- package/assets/worker-kits/creative-strategist-v1/growthub-meta/kit-standard.md +47 -0
- package/assets/worker-kits/creative-strategist-v1/kit.json +72 -0
- package/assets/worker-kits/creative-strategist-v1/skills.md +341 -0
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/INDEX.md +94 -0
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/bedroom-minimic-talk.md +197 -0
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/frame-analysis.md +209 -0
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/process-specialist-medical.md +105 -0
- package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/villain-animation.md +183 -0
- package/assets/worker-kits/creative-strategist-v1/templates/brief-template.js +470 -0
- package/assets/worker-kits/creative-strategist-v1/templates/hooks-library/500-winning-hooks.csv +539 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/INDEX.md +151 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/before-after-flatlay.md +143 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/minimic-problem.md +109 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/product-demo-glow.md +123 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/tiktok-skeptic-pivot.md +119 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/body/villain-agitation.md +156 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/cta/bogo-meme-bookend.md +144 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/cta/guarantee-close.md +143 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/dollar-amount.md +105 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/meme-overlay.md +104 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/pov-confession.md +92 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/tiktok-comment.md +116 -0
- package/assets/worker-kits/creative-strategist-v1/templates/scene-modules/hooks/villain-hook.md +134 -0
- package/assets/worker-kits/creative-strategist-v1/workers/creative-strategist/CLAUDE.md +440 -0
- package/dist/index.js +206 -0
- package/package.json +3 -2
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Frame-by-Frame Video Analysis — Full Methodology
|
|
2
|
+
> **Load this file only when:** a muse video is provided AND no frozen format matches in `INDEX.md`.
|
|
3
|
+
> **Skip this file when:** a matching format exists in `INDEX.md` — use the format file instead.
|
|
4
|
+
>
|
|
5
|
+
> Source of truth: proven on Clarifion ODRx brief (April 2026), TheraPet muse → 9-scene match.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## WHY THIS MATTERS
|
|
10
|
+
|
|
11
|
+
A muse video is not a reference for "tone and feel." It is a **performance-proven creative structure**.
|
|
12
|
+
When a user says "use this as the muse," they mean:
|
|
13
|
+
- Same number of scenes — same types in the same order
|
|
14
|
+
- Same visual character format (villain objects, product characters, UGC creator, etc.)
|
|
15
|
+
- Same karaoke text rhythm and placement
|
|
16
|
+
- Same emotional arc (where the tone shifts from problem → solution)
|
|
17
|
+
- Same CTA structure
|
|
18
|
+
|
|
19
|
+
Writing a brief based on vibes from the muse = wrong. Reverse engineering frame by frame = right.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## PHASE 1: VIDEO INGESTION
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Get runtime + dimensions
|
|
27
|
+
ffprobe -v quiet -print_format json -show_format -show_streams "/path/to/video.mp4" \
|
|
28
|
+
| python3 -c "import sys,json; d=json.load(sys.stdin); \
|
|
29
|
+
[print(s.get('duration','?'),'sec |',s.get('width','?'),'x',s.get('height','?')) \
|
|
30
|
+
for s in d['streams'] if s.get('codec_type')=='video']"
|
|
31
|
+
|
|
32
|
+
# Create frame output dir + extract at 3-second intervals
|
|
33
|
+
mkdir -p /tmp/muse_frames
|
|
34
|
+
ffmpeg -i "/path/to/video.mp4" -vf fps=1/3 /tmp/muse_frames/frame_%ds.jpg 2>&1 | tail -3
|
|
35
|
+
ls /tmp/muse_frames/ | sort
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Interval guide:**
|
|
39
|
+
- 90–120s video → fps=1/3 (~30 frames, covers every beat)
|
|
40
|
+
- 20–30s TikTok video → fps=1/2 (~12 frames)
|
|
41
|
+
- Already extracted? Check `/tmp/muse_frames/` before re-running ffmpeg.
|
|
42
|
+
|
|
43
|
+
**If URL only (no local file):** Note URL in brief as muse reference. Ask user for local copy.
|
|
44
|
+
Frames stored at: `/tmp/muse_frames/frame_Xs.jpg` (X = elapsed seconds)
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## PHASE 2: FRAME READING — WHAT TO LOOK FOR
|
|
49
|
+
|
|
50
|
+
Read ALL frames using the Read tool. Never skip. Batch 3 frames per tool call for speed.
|
|
51
|
+
|
|
52
|
+
| Element | What to Note |
|
|
53
|
+
|---|---|
|
|
54
|
+
| **Setting** | Interior? Exterior? Warm? Clinical? Chaotic? |
|
|
55
|
+
| **Characters** | Real creator? Animated? Product objects with villain faces? Animals? |
|
|
56
|
+
| **Villain format** | Animated product objects with expressive faces + small arms? |
|
|
57
|
+
| **On-screen text** | Exact words. Which word is highlighted? Color? Position? |
|
|
58
|
+
| **Tone/lighting** | Warm golden? Cool clinical? Chaotic? Clean minimal? |
|
|
59
|
+
| **Scene energy** | Agitation/frustration OR resolution/warmth/calm? |
|
|
60
|
+
|
|
61
|
+
**6 structural questions — answer before writing a single word of the brief:**
|
|
62
|
+
1. How many distinct scenes? (count by setting/character changes, not frame count)
|
|
63
|
+
2. Exactly when does the tone flip from problem → solution? (which scene number?)
|
|
64
|
+
3. What is the character format? (villain animated objects? UGC creator? doctor?)
|
|
65
|
+
4. What is the on-screen text style? (karaoke word-by-word? full sentences? stacked?)
|
|
66
|
+
5. When does the product first appear? (what scene? floor/wall/box/hand?)
|
|
67
|
+
6. How does the CTA end? (stacked boxes? product close-up? person holding? static card?)
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## PHASE 3: SCENE MAP FORMAT
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
SCENE MAP: [Muse Title] — [Total Runtime]
|
|
75
|
+
|
|
76
|
+
SCENE N | 0–Xs
|
|
77
|
+
Setting: [description]
|
|
78
|
+
Character: [villain format or creator type]
|
|
79
|
+
Text: "[word1]" → "[WORD2 — highlighted]" → "[word3]" → ...
|
|
80
|
+
Beat: HOOK / AGITATION / PRODUCT INTRO / SOCIAL PROOF / CTA
|
|
81
|
+
Energy: CHAOTIC / WARM / CLINICAL / ASPIRATIONAL
|
|
82
|
+
|
|
83
|
+
KEY STRUCTURAL FINDINGS:
|
|
84
|
+
- Total scenes: N
|
|
85
|
+
- Tone flip at: Scene N
|
|
86
|
+
- Character format: [description]
|
|
87
|
+
- Text style: [karaoke / sentences / stacked]
|
|
88
|
+
- Product reveal: Scene N, [floor/wall/box]
|
|
89
|
+
- CTA end format: [description]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## PHASE 4: ADAPTATION RULES
|
|
95
|
+
|
|
96
|
+
**The hierarchy — in order of priority:**
|
|
97
|
+
1. **Scene count is sacred** — if the muse has 9 scenes, the brief has 9 scenes. No exceptions.
|
|
98
|
+
2. **Scene TYPE is sacred** — if Scene 2 is "villain-inside-failed-product," the new brief Scene 2 must be villain-inside-failed-product equivalent.
|
|
99
|
+
3. **Character format is sacred** — animated villain objects → stay animated villain objects. Never swap to real people.
|
|
100
|
+
4. **Text rhythm is sacred** — karaoke word-by-word → specify karaoke word-by-word. Show exact muse text then new brand equivalent.
|
|
101
|
+
5. **Tone shift scene is sacred** — the warmth flip happens at the same scene number.
|
|
102
|
+
6. **Only the product + copy change** — everything else is replicated.
|
|
103
|
+
|
|
104
|
+
| Muse Element | Action |
|
|
105
|
+
|---|---|
|
|
106
|
+
| Animated product villain character | Keep format — swap to equivalent failed competitor product |
|
|
107
|
+
| Specific competitor brand names | Remove — use generic label ("Enzyme Cleaner," "Scented Plug-In") |
|
|
108
|
+
| Brand-specific animals | Keep same animals — emotional arc mirrors the problem/solution |
|
|
109
|
+
| Calendar on wall (60 days) | Adapt to match your guarantee period exactly |
|
|
110
|
+
| Social proof persona (gray-haired woman) | Match to target persona age and type |
|
|
111
|
+
| Product packaging color/design | Replace with real product from brand assets |
|
|
112
|
+
| Guarantee language | Must match brand compliance exactly |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## PHASE 5: BRIEF FORMAT FOR NEW MUSE-DRIVEN BRIEFS
|
|
117
|
+
|
|
118
|
+
Each scene must have:
|
|
119
|
+
```
|
|
120
|
+
[SCENE N header bar — brand secondary color]
|
|
121
|
+
→ Scene number + name + timecode
|
|
122
|
+
|
|
123
|
+
[MUSE reference strip — light gray, italics]
|
|
124
|
+
→ "MUSE: [exact description of what the muse does + exact text shown]"
|
|
125
|
+
|
|
126
|
+
[3-column table: VISUAL DIRECTION | ON-SCREEN TEXT | VOICEOVER]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**The ↑ mirrors: notation** — for every on-screen text line, show the muse equivalent:
|
|
130
|
+
```
|
|
131
|
+
→ RED LIGHT THERAPY
|
|
132
|
+
• AT HOME (highlight)
|
|
133
|
+
↑ mirrors: MOTHER CAT PRODUCES / SAFE HERE 24
|
|
134
|
+
```
|
|
135
|
+
This notation lets animators/editors confirm they are matching the muse, not improvising.
|
|
136
|
+
|
|
137
|
+
**Scene mapping table** — always the FIRST section of the brief:
|
|
138
|
+
```
|
|
139
|
+
| # | Muse — What Happens | New Brand — Equivalent Beat |
|
|
140
|
+
|---|---|---|
|
|
141
|
+
| 1 | [timecode + muse beat + exact text] | [new brand equivalent] |
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## PHASE 6: FREEZE THE NEW FORMAT
|
|
147
|
+
|
|
148
|
+
After completing the brief, freeze the format so future sessions don't re-derive it:
|
|
149
|
+
1. Create `templates/ad-formats/<new-id>.md` — copy any existing format file as schema
|
|
150
|
+
2. Add row to `templates/ad-formats/INDEX.md`
|
|
151
|
+
3. Extract any reusable scene modules → `templates/scene-modules/<type>/<id>.md`
|
|
152
|
+
4. Add rows to `templates/scene-modules/INDEX.md`
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## PROVEN EXAMPLE: TheraPet → Clarifion ODRx (April 2026)
|
|
157
|
+
|
|
158
|
+
**Muse:** TheraPet AI Animation | Runtime: 98.47s | 9:16 | 360×640 | 30fps
|
|
159
|
+
**URL:** facebook.com/100068524006696/posts/1227321179562004
|
|
160
|
+
|
|
161
|
+
| Scene | Timecode | Character | Text | Beat |
|
|
162
|
+
|---|---|---|---|---|
|
|
163
|
+
| 1 | 0–17s | Villain plug-in between 3 devices | WHY NOTHING CHANGED / AND YOU HAVE / MIGHT WORK | HOOK |
|
|
164
|
+
| 2 | 17–29s | Villain INSIDE litter box | YOU'VE SPENT $300 / IN EVERY ROOM / YOU ARE JUST | AGITATION 1 |
|
|
165
|
+
| 3 | 29–41s | Clay litter bag villain | YOU'VE TRIED CLAY / AND YOUR CATS / PROBLEM / SYSTEM | AGITATION 2 |
|
|
166
|
+
| 4 | 41–50s | Enzyme cleaner + vinegar villains | PROBLEM IS SOLVED / EXACTLY WHERE THEY | AGITATION 3 |
|
|
167
|
+
| 5 | 50–62s | Floxetine pill bottle villain | SURE THE SPRAYING / YOU GOT ZOMBIES / YOU'RE ZOMBIFYING | AGITATION 4 |
|
|
168
|
+
| 6 | 62–74s | **TONE FLIP** — 3 TheraPet units glowing | MARKING AND SPRAYING / ALL IN ONE | PRODUCT INTRO |
|
|
169
|
+
| 7 | 74–83s | Units plugged in, cat resting below | MOTHER CAT PRODUCES / SAFE HERE 24 | IN ACTION |
|
|
170
|
+
| 8 | 83–92s | Gray-haired woman + cats + calendar | 60 DAYS / NO MESS | SOCIAL PROOF |
|
|
171
|
+
| 9 | 92–98s | Stacked boxes + cats | PARENTS ALREADY / BACK GUARANTEED | CTA |
|
|
172
|
+
|
|
173
|
+
**Key findings:** 9 scenes. Tone flip at Scene 6. Karaoke word-by-word, green highlight. Villain objects with faces + arms. Product reveal in trio formation on floor.
|
|
174
|
+
|
|
175
|
+
**Frozen as:** `templates/ad-formats/villain-animation.md`
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## CHECKLIST: BEFORE SUBMITTING A NEW MUSE-DRIVEN BRIEF
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
[ ] All frames read — none skipped
|
|
183
|
+
[ ] Scene count matches muse exactly
|
|
184
|
+
[ ] Scene mapping table on page 1
|
|
185
|
+
[ ] Every scene has a MUSE: reference strip
|
|
186
|
+
[ ] On-screen text word-by-word with ↑ mirrors: notation
|
|
187
|
+
[ ] Tone shift scene identified and explicitly called out
|
|
188
|
+
[ ] Villain/character format described exactly as in muse
|
|
189
|
+
[ ] Product reveal scene matches muse scene number and format
|
|
190
|
+
[ ] Social proof persona age + calendar day count correct
|
|
191
|
+
[ ] CTA has correct offer + guarantee language (compliance checked)
|
|
192
|
+
[ ] Brief ≤ 7 pages — tight, editor-readable
|
|
193
|
+
[ ] No paragraph essays inside scene blocks — 3-column table format
|
|
194
|
+
[ ] Format frozen in templates/ad-formats/ after brief is done
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## CRITICAL FAILURE MODES (DO NOT REPEAT)
|
|
200
|
+
|
|
201
|
+
| Failure | What Happened | Correct Approach |
|
|
202
|
+
|---|---|---|
|
|
203
|
+
| Ignored muse structure | Wrote generic 5-section brief based on ad strategy, not the muse | Read every frame. Use the muse's scene count. |
|
|
204
|
+
| Wrong scene count | Brief had 5 sections, muse had 9 scenes | Scene count must match muse exactly — no exceptions |
|
|
205
|
+
| Generic visual direction | "animated home interior" — no villain spec | Describe character format exactly: animated object villains with faces and arms |
|
|
206
|
+
| Missing karaoke specifics | No ↑ mirrors notation | Every text line maps back to muse text |
|
|
207
|
+
| Prose-heavy scenes | Multi-paragraph essays in scene blocks | 3-column table, bullet-style, editor-readable |
|
|
208
|
+
| Re-extracting existing frames | Re-ran ffmpeg when frames already in /tmp/muse_frames/ | Always `ls /tmp/muse_frames/` before running ffmpeg |
|
|
209
|
+
| Skipping the freeze step | New format not added to template library | After every muse brief: freeze the format |
|
package/assets/worker-kits/creative-strategist-v1/templates/ad-formats/process-specialist-medical.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Ad Format: "The Process Specialist"
|
|
2
|
+
**ID:** `process-specialist-medical`
|
|
3
|
+
**Category:** Medical / Regenerative Medicine / Healthcare Authority
|
|
4
|
+
**Length:** ~50 seconds
|
|
5
|
+
**Scene Count:** 5
|
|
6
|
+
**Status:** ✅ PROVEN (Greentree Medical Center — v1 April 2026)
|
|
7
|
+
**Muse:** None — original format built for Greentree Medical Center
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## FORMAT OVERVIEW
|
|
12
|
+
|
|
13
|
+
**Core Premise:** Lead with WHY the category fails (lack of diagnosis), not with the problem symptom. Position the brand as an elite diagnostic facility before positioning it as a treatment clinic. The 90% success rate is the proof point — and the diagnostic process is the explanation.
|
|
14
|
+
|
|
15
|
+
**Primary Differentiator vs. Standard Doctor-Led Format:** Does NOT open with the doctor. Opens with an elderly UGC actor (patient voice) who experienced the category failure. Doctor appears in Scene 2 onward as the authority who explains the solution.
|
|
16
|
+
|
|
17
|
+
**Competitor Framing:** Indirect. "Some clinics / most practices" language — no brand names. Creates category contrast without direct attack.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## SCENE STRUCTURE
|
|
22
|
+
|
|
23
|
+
| Scene | Name | Timecode | Beat | Talent |
|
|
24
|
+
|-------|------|----------|------|--------|
|
|
25
|
+
| 1 | Opening Hook | 0–5s | Category failure question — scroll-stop | Elderly UGC actor OR Doctor clone |
|
|
26
|
+
| 2 | The Problem at Other Clinics | 5–18s | Why the category fails — diagnostic gap | VO + B-roll (institutional/cool grade) |
|
|
27
|
+
| 3 | The Brand's Diagnostic Process | 18–33s | The 3-step process that explains the success rate | Doctor AI clone + diagnostic B-roll |
|
|
28
|
+
| 4 | The 90% Proof + Patient Story | 33–43s | Earned proof point + relatable patient outcome | Elderly UGC actor (1 line) + Doctor close |
|
|
29
|
+
| 5 | CTA — Diagnostic Screening Request | 43–52s | Drive one action: screening request (NOT consultation) | Doctor AI clone + branded end card |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## SACRED ELEMENTS (never remove)
|
|
34
|
+
|
|
35
|
+
- **Scene 2 color contrast:** Must be cooler/more institutional than Scenes 3–5. The visual shift IS the argument.
|
|
36
|
+
- **Three B-roll badges in Scene 3:** Blood Work Reviewed → Imaging Analyzed → Candidate Confirmed. These make the process tangible.
|
|
37
|
+
- **90% stat with context:** Always paired with "because we screen first" framing. Stat alone is a boast. Stat with explanation is authority.
|
|
38
|
+
- **CTA language:** "Request a Diagnostic Screening" — NOT "schedule a consultation." This reframe attracts qualified prospects and repels passive/symptom-management patients.
|
|
39
|
+
- **Results may vary disclaimer:** Mandatory alongside the 90% claim.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## HOOK VARIATIONS (5 — Scene 1 only)
|
|
44
|
+
|
|
45
|
+
| Hook | Type | Talent | Hook Line |
|
|
46
|
+
|------|------|--------|-----------|
|
|
47
|
+
| A | Patient Story — Missed Step | Elderly woman 65–72 | "I went to one of those injection clinics. They didn't order a single blood test before they treated me." |
|
|
48
|
+
| B | Doctor Challenge | Doctor AI clone | "Before we do anything at Greentree, I need to know one thing first — are you actually a candidate for this therapy?" |
|
|
49
|
+
| C | Patient Story — Failed Attempt | Elderly man 67–74 | "I tried a regenerative treatment at another clinic. It didn't work. Took me a year to find out why." |
|
|
50
|
+
| D | Doctor Authority | Doctor AI clone | "If your doctor didn't review your bloodwork before recommending a regenerative treatment — that's a major problem." |
|
|
51
|
+
| E | Patient Story — Two Clinics | Elderly woman 65–73 | "Two different clinics told me I was a candidate for PRP. Neither one ever reviewed my imaging." |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## AI ACTOR SPECS
|
|
56
|
+
|
|
57
|
+
**Elderly UGC Actors (2 required):**
|
|
58
|
+
- Actor 1: Woman, 65–72, active-casual clothing, warm home or outdoor setting
|
|
59
|
+
- Actor 2: Man, 67–74, active-outdoor look (golf/outdoor casual), backyard or garage setting
|
|
60
|
+
- Both: Genuine expression, NOT stock-photo polished. NOT frail or clinical.
|
|
61
|
+
|
|
62
|
+
**Doctor AI Clone:**
|
|
63
|
+
- Physician, 50–60, white coat, clean clinic exam room background
|
|
64
|
+
- Direct to camera. Measured pace. Clinical-warm lighting.
|
|
65
|
+
- Must appear consistent across Scenes 2–5 (same clone instance)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## ADAPTATION RULES
|
|
70
|
+
|
|
71
|
+
| Adapt | Keep | Never |
|
|
72
|
+
|-------|------|-------|
|
|
73
|
+
| Client name, doctor name, location | Scene structure and timecodes | Pain med / pain management language |
|
|
74
|
+
| Specific services (PRP / Stem Cell / other regen modalities) | The diagnostic-process-as-differentiator angle | Direct competitor brand names |
|
|
75
|
+
| Success rate percentage (verify and source before use) | Three-step process revelation in Scene 3 | Imagery suggesting pain clinic / opioid context |
|
|
76
|
+
| Elderly UGC actor demographics (adjust for brand's target age) | CTA reframe as "Diagnostic Screening" | Guaranteed outcome claims |
|
|
77
|
+
| B-roll sources | Color contrast Scene 2 (cool) vs Scenes 3–5 (warm) | Generic stock clinic imagery |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## COMPLIANCE REQUIREMENTS (Medical Formats)
|
|
82
|
+
|
|
83
|
+
- All scripts referencing a specific doctor by name require doctor approval before publishing
|
|
84
|
+
- "Results may vary" required alongside any success rate or outcome claim
|
|
85
|
+
- PRP and stem cell claims may require FTC/FDA compliance review for paid social
|
|
86
|
+
- DO NOT claim to diagnose or cure any condition
|
|
87
|
+
- DO NOT make surgical-outcome comparison guarantees
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## JS STUB REFERENCE
|
|
92
|
+
|
|
93
|
+
Source script: `/tmp/docx_work/greentree_process_specialist_v1.js`
|
|
94
|
+
Output: `~/Downloads/GreenTreeMedical_VideoBrief_ProcessSpecialist_v1_20260409.docx`
|
|
95
|
+
|
|
96
|
+
To adapt for a new medical client:
|
|
97
|
+
1. Update `CONFIG` fields (client_name, doctor_name, campaign_name, colors)
|
|
98
|
+
2. Update `CONFIG.brand_constraint` from new client's brand-kit.md guardrails
|
|
99
|
+
3. Update all hook lines (Scene 1) and the 3-step process (Scene 3) with new client specifics
|
|
100
|
+
4. Update CTA text and website/phone in Scene 5
|
|
101
|
+
5. Rename output file per naming convention
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
*Process Specialist format — frozen April 2026 — Greentree Medical Center v1*
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Ad Format: Villain Object Animation
|
|
2
|
+
> ID: `villain-animation`
|
|
3
|
+
> Category: Pet Products / Home Devices / Supplements / Any product displacing an incumbent
|
|
4
|
+
> Length: 90–120 seconds (proven at 98s)
|
|
5
|
+
> Scene Count: 9
|
|
6
|
+
> Hook Variations: 5 (A–E)
|
|
7
|
+
> Status: ✅ PROVEN — Clarifion ODRx brief, April 2026
|
|
8
|
+
> Aspect Ratios: 9:16 primary, 1:1 secondary
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## MUSE REFERENCE
|
|
13
|
+
|
|
14
|
+
- **Creator/Brand:** TheraPet (AI animation ad)
|
|
15
|
+
- **URL:** https://www.facebook.com/100068524006696/posts/1227321179562004
|
|
16
|
+
- **Original product featured:** TheraPet pheromone plug-in device (pet behavior / cat marking)
|
|
17
|
+
- **Local muse file:** `~/Downloads/AQN2IbZ…mp4`
|
|
18
|
+
- **Runtime:** 98.47 seconds | 360×640 | 9:16 vertical | 30fps
|
|
19
|
+
- **Why it works:** Long-form agitation stack + villain character format creates emotional investment before the product appears. 4× agitation scenes build genuine frustration — by the time the hero product arrives, the viewer is psychologically primed to want it. Animated villain objects prevent competitor brand legal issues while being more visually memorable than live footage. Tone flip at Scene 6 is a hard emotional reset — the color/warmth change signals "it's over now."
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## FORMAT SIGNALS (non-negotiable)
|
|
24
|
+
|
|
25
|
+
1. **Animated villain objects** — competing/failed products rendered as cartoon characters with expressive faces, small arms, frustrated/evil expressions. Never show real competitor branding — use generic category labels ("Enzyme Cleaner," "Scented Plug-In," "Litter Bag").
|
|
26
|
+
2. **4× agitation stack** — Scenes 2–5 are each a different failed solution. Each one ends with the villain still losing / the problem persisting. Do not compress to fewer agitation scenes — the stack is what builds the emotional case.
|
|
27
|
+
3. **Karaoke word-by-word text** — 1–4 words at a time, key word highlighted in brand accent color. This text rhythm is sacred. Full sentences break the format.
|
|
28
|
+
4. **Hard tone flip at Scene 6** — full color, lighting, energy reversal. Cold/chaotic/frustrated → warm/golden/calm. This scene flip is the emotional payoff. It must be distinct — not a gentle transition.
|
|
29
|
+
5. **Product trio reveal** — 3 hero product units on the floor/surface in formation before being plugged in. This staging is consistent across the muse.
|
|
30
|
+
6. **Gray-haired woman social proof** — Carol-type persona in Scene 8 with a calendar on the wall showing the guarantee period. This is the trust anchor before the CTA.
|
|
31
|
+
7. **Stacked product boxes CTA** — Scene 9 shows bundled/stacked product boxes with satisfied animals/characters. Product must be in its packaging, not just the unit.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## PROVEN SCENE STRUCTURE
|
|
36
|
+
|
|
37
|
+
| # | Scene Name | Timecode | Beat | Sacred Element |
|
|
38
|
+
|---|------------|----------|------|----------------|
|
|
39
|
+
| 1 | Hook | 0–17s | Scroll stop — villain established | Villain between 3 competing devices. Agitation energy. Hook line variations A–E. |
|
|
40
|
+
| 2 | Agitation 1 | 17–29s | Failed solution #1 | Villain INSIDE the failed product. Specific dollar amount wasted. |
|
|
41
|
+
| 3 | Agitation 2 | 29–41s | Failed solution #2 | Different villain character / product category. "You've tried [X]..." |
|
|
42
|
+
| 4 | Agitation 3 | 41–50s | Failed solution #3 | Different villain — natural/DIY solutions that also fail. |
|
|
43
|
+
| 5 | Agitation 4 | 50–62s | Failed solution #4 | Most extreme failed solution — medical/pharmaceutical or highest-stakes option. |
|
|
44
|
+
| 6 | Product Intro — TONE FLIP | 62–74s | Hero enters — full emotional reset | Warm lighting ON. Hero product in trio formation on floor, glowing. Problem framing drops. |
|
|
45
|
+
| 7 | Product in Action | 74–83s | Mechanism proof | Product plugged in / in use. Animal/character calm below it. Low camera angle. |
|
|
46
|
+
| 8 | Social Proof | 83–92s | Trust anchor | Carol-type persona + satisfied animals + calendar (guarantee days). |
|
|
47
|
+
| 9 | CTA | 92–98s | Convert | Stacked product boxes + animals + satisfaction guarantee text. |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## SCENE MODULES USED IN THIS FORMAT
|
|
52
|
+
|
|
53
|
+
| Scene | Module ID | File |
|
|
54
|
+
|-------|-----------|------|
|
|
55
|
+
| 1 | `villain-hook` | `hooks/villain-hook.md` |
|
|
56
|
+
| 2–5 | `villain-agitation` × 4 | `body/villain-agitation.md` |
|
|
57
|
+
| 6–7 | product intro + in-action (format-specific — use inline, not modular) | — |
|
|
58
|
+
| 8 | social proof persona (format-specific — use inline) | — |
|
|
59
|
+
| 9 | `guarantee-close` | `cta/guarantee-close.md` |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## ADAPTATION RULES
|
|
64
|
+
|
|
65
|
+
### Keep (sacred)
|
|
66
|
+
- 9 scenes — no exceptions
|
|
67
|
+
- 4 agitation scenes (Scenes 2–5) — never compress to fewer
|
|
68
|
+
- Animated villain object format — never swap to real competitor footage
|
|
69
|
+
- Hard tone flip at Scene 6 — warm/golden must be visually distinct from Scenes 1–5
|
|
70
|
+
- Karaoke word-by-word text rhythm — 1–4 words at a time
|
|
71
|
+
- Gray-haired woman persona in Scene 8 — age and warmth signal are part of the trust mechanic
|
|
72
|
+
- Stacked product boxes in CTA — not just the device
|
|
73
|
+
|
|
74
|
+
### Swap (per brand)
|
|
75
|
+
- Villain character design — match the category (litter bag for pet, pill bottle for supplement, etc.)
|
|
76
|
+
- Dollar amounts — match what target audience actually spends ($300 on litter, etc.)
|
|
77
|
+
- Calendar day count — match guarantee period exactly (30 days for ODRx, 60 days for TheraPet)
|
|
78
|
+
- Animal type — match product's target animal (cats, dogs, etc.)
|
|
79
|
+
- Guarantee language — must match compliance exactly
|
|
80
|
+
- Product glow color — match brand's device color/LED color
|
|
81
|
+
|
|
82
|
+
### Never
|
|
83
|
+
- Real competitor brand names — use generic labels
|
|
84
|
+
- "Home stops smelling" → check compliance, may need "room" instead
|
|
85
|
+
- Specific medical claims in agitation scenes — "zombifying" language only if cleared
|
|
86
|
+
- Tone flip before Scene 6 — the first 5 scenes must stay cold/frustrated
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## AI ACTOR / ANIMATION SPEC
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
character_style: "Animated 3D — expressive faces, small arms, exaggerated frustrated emotions"
|
|
94
|
+
villain_format: "Product objects as characters — litter bags, pill bottles, spray cans, etc. each with villain face"
|
|
95
|
+
hero_product: "Clean, glowing, warm — NOT animated with face. Product is aspirational, not a character."
|
|
96
|
+
social_proof_persona: "Animated woman, 60–70, gray or white hair, warm smile. 'Carol'-type. Relatable grandmother energy."
|
|
97
|
+
setting_villain: "Chaotic, dark, cluttered — matches the frustration of the problem"
|
|
98
|
+
setting_hero: "Warm, golden, organized — immediate visual contrast from villain scenes"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## DOCX JS STUBS
|
|
104
|
+
|
|
105
|
+
Paste these sceneBlock() calls. Replace `[PLACEHOLDERS]`.
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
// SCENE 1 — Hook (use sceneBlock + 5 hookCards above it)
|
|
109
|
+
sceneBlock("SCENE 1 — HOOK", "0–17s | MUST stop the scroll", [
|
|
110
|
+
["Visual Direction", "Animated setting: [PROBLEM_ENVIRONMENT]. Villain character ([VILLAIN_1_TYPE] with angry face + small arms) positioned between 3 competing [PRODUCT_CATEGORY] devices. Chaotic, dim, frustrated energy."],
|
|
111
|
+
["On-Screen Text", "Karaoke word-by-word: [HOOK_LINE] — 1–4 words at a time. Key word highlighted in [BRAND_ACCENT_COLOR]."],
|
|
112
|
+
["VO", "[HOOK_VO_LINE]"],
|
|
113
|
+
["Purpose", "Establish the problem AND the villain in one scene. Viewer must recognize their own frustration immediately."],
|
|
114
|
+
])
|
|
115
|
+
|
|
116
|
+
// SCENE 2 — Agitation 1
|
|
117
|
+
sceneBlock("SCENE 2 — AGITATION 1", "17–29s | Consistent across all variations", [
|
|
118
|
+
["Visual Direction", "[VILLAIN_1_TYPE] INSIDE the failed product ([SPECIFIC_PRODUCT]). [ANIMAL/CHARACTER] still frustrated. Same chaotic setting."],
|
|
119
|
+
["On-Screen Text", "Karaoke: '[DOLLAR_AMOUNT_WASTED] / [PRODUCT_CATEGORY] / [FAILURE_STATEMENT]'"],
|
|
120
|
+
["VO", "[AGITATION_1_VO]"],
|
|
121
|
+
["Purpose", "Quantify the pain. Dollar amount makes it visceral. Villain inside the product = the problem is in the product, not the user."],
|
|
122
|
+
])
|
|
123
|
+
|
|
124
|
+
// SCENES 3–5: repeat sceneBlock pattern with different villain types and products
|
|
125
|
+
|
|
126
|
+
// SCENE 6 — Tone Flip + Product Intro
|
|
127
|
+
sceneBlock("SCENE 6 — TONE FLIP + PRODUCT INTRO", "62–74s | EMOTIONAL RESET", [
|
|
128
|
+
["Visual Direction", "FULL TONE FLIP: warm golden lighting replaces cold/chaotic. [HERO_PRODUCT] × 3 units in trio formation on [SURFACE], [ACTIVE_STATE] glowing. [ANIMAL/CHARACTER] present and CALM. No villain characters."],
|
|
129
|
+
["On-Screen Text", "Karaoke: '[UNLIKE_THOSE / PRODUCT_NAME / ALL IN ONE]' — positive framing for first time"],
|
|
130
|
+
["VO", "[PRODUCT_INTRO_VO — first mention of hero product by name]"],
|
|
131
|
+
["Purpose", "Full emotional reset. Problem era is over. Every visual signal (color, warmth, calm animals) signals the solution has arrived."],
|
|
132
|
+
])
|
|
133
|
+
|
|
134
|
+
// SCENE 7 — Product in Action
|
|
135
|
+
sceneBlock("SCENE 7 — PRODUCT IN ACTION", "74–83s | Mechanism proof", [
|
|
136
|
+
["Visual Direction", "[HERO_PRODUCT] plugged in / in use. [ACTIVE_STATE] visible. [ANIMAL/CHARACTER] calm and resting below or near device. Low camera angle looking up at product."],
|
|
137
|
+
["On-Screen Text", "Karaoke: '[MECHANISM] / [KEY_BENEFIT] / [TIME_CLAIM]'"],
|
|
138
|
+
["VO", "[MECHANISM_VO — how it works, simply]"],
|
|
139
|
+
["Purpose", "Show the product DOING SOMETHING. The [ACTIVE_STATE] is the proof. Low camera angle makes product feel significant."],
|
|
140
|
+
])
|
|
141
|
+
|
|
142
|
+
// SCENE 8 — Social Proof
|
|
143
|
+
sceneBlock("SCENE 8 — SOCIAL PROOF", "83–92s | Trust anchor", [
|
|
144
|
+
["Visual Direction", "Animated [PERSONA_AGE]-year-old woman, warm smile. [ANIMAL/CHARACTER] happy beside her. Calendar on wall showing [GUARANTEE_DAYS] days."],
|
|
145
|
+
["On-Screen Text", "Karaoke: '[GUARANTEE_DAYS] DAYS / [PRODUCT_BENEFIT] / [ACTION]'"],
|
|
146
|
+
["VO", "[SOCIAL_PROOF_VO]"],
|
|
147
|
+
["Purpose", "Human trust anchor before the ask. Calendar = risk reversal is real. Persona age should match target audience."],
|
|
148
|
+
])
|
|
149
|
+
|
|
150
|
+
// SCENE 9 — CTA
|
|
151
|
+
sceneBlock("SCENE 9 — CTA", "92–98s | Convert", [
|
|
152
|
+
["Visual Direction", "Bokeh/clean background. Stacked [HERO_PRODUCT] boxes. [ANIMAL/CHARACTER] happy. Satisfaction guarantee badge visible."],
|
|
153
|
+
["On-Screen Text", "Karaoke: '[SOCIAL_PROOF_NUMBER] / [OFFER_TEXT] / [GUARANTEE_TEXT]'"],
|
|
154
|
+
["VO", "[CTA_VO — product name + action + guarantee]"],
|
|
155
|
+
["Purpose", "Drive the one action. Stacked boxes signal availability/popularity. Guarantee removes final objection."],
|
|
156
|
+
])
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## AI GENERATION PROMPTS (per-scene stubs)
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
SCENE 1 — Villain Hook
|
|
165
|
+
3D animated [PROBLEM_ENVIRONMENT]. [VILLAIN_1_TYPE] character with angry cartoon face and small arms stands between 3 competing [PRODUCT_CATEGORY] devices. Dark, chaotic, frustrated color palette. [ANIMAL/CHARACTER] present looking unhappy. Karaoke text overlaid word-by-word. 9:16. 17 seconds.
|
|
166
|
+
|
|
167
|
+
SCENES 2–5 — Agitation Stack
|
|
168
|
+
3D animated [VILLAIN_N_TYPE] character inside/near [FAILED_PRODUCT]. Same chaotic setting. Each scene ends with villain laughing or problem persisting. 9:16. 8–12 seconds each.
|
|
169
|
+
|
|
170
|
+
SCENE 6 — Tone Flip
|
|
171
|
+
DRAMATIC TRANSITION: cold/chaotic → warm/golden. [HERO_PRODUCT] × 3 units on [SURFACE] glowing [ACTIVE_COLOR]. [ANIMAL/CHARACTER] calm and peaceful. Soft warm ambient lighting replaces all previous harsh tones. 9:16. 12 seconds.
|
|
172
|
+
|
|
173
|
+
SCENE 9 — CTA Close
|
|
174
|
+
Clean bokeh background. Stacked [HERO_PRODUCT] boxes in pyramid/stack arrangement. [ANIMAL/CHARACTER] happy sitting nearby. Satisfaction guarantee badge in corner. Warm, aspirational lighting. 9:16. 6 seconds.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## FIRST DEPLOYED — Clarifion ODRx Campaign
|
|
180
|
+
|
|
181
|
+
- Brief: `~/Downloads/Clarifion_ODRx_VideoBrief_TheraPetAI_v1_20260408.docx`
|
|
182
|
+
- Brand kit: `brands/clarifion/brand-kit.md`
|
|
183
|
+
- Script: `/tmp/docx_work/odrx_brief_v3.js`
|