pop-in-therapy-reels

star 0

Build talking-head explainer reels for the Pop In Therapy IG/TikTok account — pop-psychology takes on musicians' attachment styles, narrated by an AI avatar (Hope) with B-roll graphics, TikTok captions, and a music bed. Use whenever the user wants to "make a reel", "build the [artist] reel", "do the next Pop In Therapy reel", "write a reel script", "render a talking-head video", or anything about the attachment-theory reel series. Covers the full pipeline: script writing (pacing + AI-tell avoidance), HeyGen eleven_v3 avatar render, greenscreen chromakey extraction, the Remotion podcast-stack composition with its scene types, Scribe-timed captions, and ElevenLabs music generation with sidechain ducking. Use this even if the user just says "let's do Olivia Rodrigo next" in the reels context — don't rebuild the pipeline from scratch.

bmbroch By bmbroch schedule Updated 6/2/2026

name: pop-in-therapy-reels description: The Pop In Therapy reel engine for @pop.in.therapy (IG + TikTok) — pop-psychology "decode the song" reels about mega-recognizable girly-pop. Use whenever the user wants to make/build a reel, do the next reel, change the format/slate/songs, debug a reel that shipped wrong (text too small, cut off, bad loop, wrong music), check how posts are doing, or touch anything about the autonomous build→ship→learn pipeline. The CURRENT format is faceless quote (no-VO b-roll: artist photo + album art + a cliffhanger card; the caption holds the decode). NOTE: this skill was rewritten 2026-06-09 — the old HeyGen talking-head/avatar pipeline is PARKED, ignore references/ files that describe it.

Pop In Therapy Reels — system map

@pop.in.therapy is an autonomous IG/TikTok account: pop-psychology takes that decode what a mega-hit song reveals about a relationship/attachment dynamic. The machine builds, QCs, ships, and learns on its own on a VPS. This file is the map — it tells you what the system is and points to the canonical files that run it. It does not duplicate them (so they can't drift).

The ONE format that matters now: quote (no-VO b-roll)

The data picked it (Sabrina's quote reel hit 37% skip — beat Drake, the prior benchmark). It is the default + the registry "winner". Anatomy:

  • Full-bleed colored artist photo (face kept high) + album/single-art inset top-right (double recognition).
  • A bold caps HOOK that is a CLIFFHANGER — opens a curiosity loop, withholds the payoff.
  • 2-3 SHORT teaser lines (≤80 chars each) — NOT an essay. The card is read in 2 seconds.
  • The CAPTION holds the full decode (this is where people learn) — must CONTINUE the hook, never recap.
  • ~5s, seamless loop (image ping-pongs home; text is static; music bed is a crossfade loop).
  • On-brand generated music bed matching the song's genre/era (never the real song — licensing).
  • Closes on a VIEWER-MIRROR ("that's you" / a line specific enough to send to one person), never a "tag/comment/save" beg.

Other formats: whohurt (VO + graphics — the #2, a change-up ~1 in 6), plus attach/hidden/cry/red-flags (VO graphics, testing). Parked: HeyGen avatar (PodcastClipReel/face), editorial. Retired: quiz, all 5 silent-* engines (flopped 75-85% skip).

How a reel is built (faceless, ~$0-0.30/reel)

The autonomous builder (headless Claude on the VPS) follows ops/pop-in-therapy/auto-builder-prompt.txt (the full rulebook — read it for the real detail). Flow:

  1. scripts/next_slate_item.py → next unbuilt song from priority-slate.md (skips state/used-songs.json). If exhausted → pick_next_format.py (explore/exploit on format-registry.json + Dana's guidance).
  2. Builder writes a spec JSON in ops/pop-in-therapy/segments/<slug>.json (quote/segment) or red-flags/<slug>.json.
  3. scripts/build_quote.py <spec> (or build_segment.py for VO formats): fetches artist photo (Wikipedia) + album art (iTunes fetch_album), generates the on-brand bed (generate_bed.py → seamless seamless_loop), writes props.json, renders via render_quote.mjs (Remotion), writes a <slug>-safezone.png QC overlay.
  4. QC: the safezone overlay must show all text inside the safe box; build_quote prints ⚠️ BUILD TOO LONG if the card text would shrink below the 34px legible floor.
  5. finalize_autobuild.py: git commit+push the reel, append to state/queue.json, log to used-songs.json + learnings.json.
  6. ship_today.py (cron) pops queue.json, posts to IG (live) + TikTok (draft → you add the real song manually), records to posted_reels.json.

The autonomous schedule (LIVE on the VPS — /etc/cron.d/pop-in-therapy-*)

  • Autobuild 4×/day: 13:00 / 16:00 / 20:00 / 23:00 UTC (/opt/pop-build/scripts/run_auto_build.sh)
  • Ship 4×/day: 15:00 / 18:00 / 22:00 / 01:00 UTC = 18:00 / 21:00 / 01:00 / 04:00 EAT (/opt/pop-in-therapy/scripts/ship_today.py)
  • Dana's analysis 05:00 UTC (run_daily_analysis.shprompts/daily-analysis.txt) → writes learning-log.md + builder_guidance.json
  • Metrics 14:00 UTC (reel_metrics.pyreel_metrics_log.json); Competitor scan Mon 04:30 (run_competitor_scan.sh)
  • Two VPS clones: /opt/pop-build (git; builds; git pull --ff-only before each build so pushes to main auto-propagate) and /opt/pop-in-therapy (NOT git, rsync-deployed; runs ships + holds state/ and Dana's prompts/). daily-analysis.txt and the prompts live ONLY there — edit them on the VPS (not in git).

Metric philosophy (Ben 6/9)

VIEWS is the headline scoreboard. Skip-rate and saves/shares are the diagnostic inputs that drive views: low skip unlocks the first push; saves/shares unlock the push to NEW audiences. Current diagnosis: skip is SOLVED (quote 37-59%), but saves/shares ≈ 0 → views cap at ~150. The bottleneck now is RESONANCE — the viewer-mirror close is the lever. Don't keep polishing production; the remaining work is content.

Content rules (the durable system — they live in priority-slate.md's header)

MEGA-recognizable girly-pop only (Sabrina, Chappell, Billie, Taylor, Ariana, Dua, Gaga, Lorde, Olivia, Tate, Gracie, Lana, Adele, Rihanna, Katy, Selena, Miley — NO Doja, NO male-led) · rotate artists (never same within ~6) · topic = ALL romance/relationship psychology (situationships, jealousy, trauma bonds, self-sabotage, honeymoon-brain, no-contact, romanticizing pain) NOT just attachment · decode the SONG never generic self-help · hook = cliffhanger · close = viewer-mirror · paraphrase lyrics (never exact — licensing).

Hard-won gotchas (DO NOT relearn these)

  • Safe zone (organic IG+TikTok): keep all text inside x:[90,916] y:[200,1580]. Encoded in tokens.ts ZONE constants. QC with scripts/safezone_check.sh <slug>. Bottom is the ORGANIC number (340px); ads would need ~1440.
  • Legibility: card text shrinks to fit — never below 34px. If it'd overflow, the card is too wordy → shorten to 2-3 lines, move detail to caption (NOT shrink the font).
  • Seamless loop: image uses a ping-pong (sin curve, home→peak→home) so first frame == last; text is static; the MUSIC bed is crossfaded into a seamless loop (seamless_loop) or you hear an audio seam.
  • Deploy race: ships fetch the video by URL (brochbot.com/reels/<slug>/... via Vercel). A re-render only ships correctly once committed+pushed AND Vercel/CDN propagated — verify live URL content-length vs local before claiming a fix shipped.
  • Music: AI-generated bed per reel (musicStyle in the spec → ElevenLabs /v1/music), genre/era only, never the melody. Real songs can't be auto-attached (API limit) and licensing (Lickd) is ~$1-2k/mo — rejected. Add the real song manually on the TikTok draft for recognition.
  • Verify by RENDERING (read the safezone PNG), not by ffmpeg preview. ELEVENLABS_API_KEY is on the VPS.

Where everything lives (the index)

Operational (the autonomous system runs on these):

  • ops/pop-in-therapy/auto-builder-prompt.txt — the full build rulebook (read in full by the VPS agent)
  • ops/pop-in-therapy/priority-slate.md — RULES (top) + the deep girly-pop build queue
  • ops/pop-in-therapy/format-registry.json — format status (winner/testing/retired)
  • ops/pop-in-therapy/learning-log.md — Dana's daily journal (newest = current strategy)
  • ops/pop-in-therapy/treatment-registry.json — visual treatment vocabulary (VO formats)
  • VPS /opt/pop-in-therapy/state/ — the LIVE truth: queue.json, posted_reels.json, used-songs.json, learnings.json, builder_guidance.json, reel_metrics_log.json (local repo state/ copies are stale)
  • VPS /opt/pop-in-therapy/prompts/daily-analysis.txt — Dana's analysis prompt (VPS-only, not git)

Build/render code: scripts/build_quote.py, build_segment.py, build_red_flag.py, generate_bed.py, next_slate_item.py, pick_next_format.py, finalize_autobuild.py, ship_today.py, safezone_check.sh; video-editor/reels/ (QuoteReel.tsx, SegmentReel.tsx, RedFlagsReel.tsx + design/ tokens/primitives/motion — the ZONE safe box + design system).

Creative knowledge (reference, pull from these): docs/pop-in-therapy/song-catalogue.md (170-song deep well), scroll-stop-playbook.md (hook research), vox-method.md (script shape), design-system.md (the visual law), the banks (red-flags/attachment/hidden-meaning), chart-pulse.md (weekly charts), music-library.md.

Lessons (the why, in user memory): project_pop_*, project_reel_*, feedback_reel_* memory files — safe zone, ship schedule, testing engine, metric philosophy, production gotchas, viral-loop, bold hooks.

LEGACY / IGNORE: references/heygen-and-audio.md, scene-types.md, script-writing.md, reels-rubric.md describe the PARKED HeyGen avatar era. scene-types.md is still loosely relevant to SegmentReel scene kinds; the rest is dead.

Install via CLI
npx skills add https://github.com/bmbroch/brochbot --skill pop-in-therapy-reels
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator