Writes frame-by-frame TikTok and Reels scripts — hook, spoken word, text overlays, transitions, audio cues — in SkyyRose brand voice for product reveals, founder stories, and styling content.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add SkyyRoseLLC/DevSkyy --skill skyyrose-social-tiktok-script --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Skyyrose Social Tiktok Script?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/skyyrosellc-skyyrose-social-tiktok-script)More formats (shields.io, HTML) on the badges page.
---
name: skyyrose-social-tiktok-script
description: "Writes frame-by-frame TikTok and Reels scripts — hook, spoken word, text overlays, transitions, audio cues — in SkyyRose brand voice for product reveals, founder stories, and styling content."
allowed-tools: Read Write Edit Glob
---
# SkyyRose Social — TikTok Script
## When to Use This Skill
- Writing a 15-second product reveal for a new drop (teaser / first look)
- Scripting a 30-second brand story featuring Corey or Oakland context
- Producing a 60-second "3 ways to style" transition video for a single garment
- Building a POV or reaction format video adapted to SkyyRose's aesthetic
- Creating a behind-the-scenes packing or production clip
- Generating a founder-perspective "hot take" on fashion or streetwear culture
**DO NOT** use this for Instagram carousel scripts (use `skyyrose-social-instagram-carousel`), full 30-day video plans (use `skyyrose-social-short-form-video-plan`), or long-form YouTube content. This is for single short-form video scripts: 15–60 seconds, vertical.
---
## Brand Canon (non-negotiable)
- **Tagline close:** Every brand-story or product-reveal video ends with "Luxury Grows from Concrete." — either spoken or as the final text overlay + logo.
- **Collection voice is strict:** Love Hurts = crimson heat, "the bloodline that raised me." Black Rose = armor, defiance, "you already stood up." Signature = "stay golden / the standard," West Coast elevation. Kids Capsule = little royalty, heritage. Never cross-register.
- **No hype-merchant delivery.** Corey's tone: unhurried, earned, Oakland-direct. No "You NEED this", no "fire 🔥🔥", no countdown-pressure delivery.
- **Burned-in captions are mandatory.** 70% of viewers watch without sound. Every text overlay must be brief enough to read in the time it's on screen (3-7 words).
- **Name, not SKU.** "Love Hurts Bomber Jacket" in the video — never "lh-004".
- **The Five only for aesthetic reference:** Kith editorial, Oaklandish community, Culture Kings hype energy (adapted, not copied), Fear of God restraint, Palm Angels graphic confidence.
Full canon: `../skyyrose-content-engine/brand-guardrails.md`
---
## Phase 1: Brief
### Required Inputs
| Input | What to Ask | Default |
|-------|-------------|---------|
| **Product / topic** | "Which product or theme? Use the product NAME." | No default — must be provided |
| **Collection** | "Black Rose, Love Hurts, Signature, or Kids Capsule?" | Derive from product |
| **Video format** | "Product reveal, founder story, styling transition, POV, behind-the-scenes, or hot take?" | Product reveal |
| **Duration** | "15, 30, or 60 seconds?" | 30 seconds |
| **Platform** | "TikTok, Instagram Reels, or both?" | Both (same script, minor caption adaptation) |
| **On-camera presence** | "Corey on camera, model, hands-only, or text-on-screen only?" | Depends on format |
| **Trending hook** | "Any trending format or sound to anchor this to?" | None — use evergreen |
**GATE: Confirm product name, duration, and format before scripting. If the collection is Love Hurts, confirm no Black Rose language is anywhere in the brief.**
---
## Phase 2: Outline
### Script Structure
```
Hook (0–3 sec): Stop the scroll. Text overlay + visual action.
Setup (3–10 sec): Context — what is this, why it matters.
Body (10–X sec): The value: reveal, styling beats, construction detail, or story.
Payoff (last 5 sec): The takeaway or emotional landing.
CTA (final 2–3 sec): Single action + "Luxury Grows from Concrete." close.
```
**GATE: Approve outline and duration before writing full script.**
---
## Phase 3: Write
### Full Script Format
```
## [Internal title — not shown on video]
**Duration:** [X seconds]
**Format:** [product reveal / founder story / styling transition / POV / BTS / hot take]
**Collection:** [Black Rose / Love Hurts / Signature / Kids Capsule]
### HOOK (0–3 seconds)
**On screen:** [What the viewer sees — physical action, cut, or visual]
**Text overlay:** "[3-7 words — reads in under 2 seconds]"
**Audio:** [Spoken words OR trending sound cue OR music style]
### SETUP (3–10 seconds)
**On screen:** [Visual description]
**Spoken:** "[Exact words — write for spoken delivery, not reading]"
**Text overlay:** "[Supporting phrase if needed]"
### BODY (10–X seconds)
**On screen:** [Visual — b-roll, detail shot, styling cut, talking head]
**Spoken:** "[Exact words]"
**Text overlay:** "[Key phrase — 3-7 words per card]"
**Transition:** [Cut / zoom in / swipe / slow reveal — specific]
### PAYOFF (last 5 seconds)
**On screen:** [Final visual — product worn, product flat, or founder frame]
**Spoken:** "[Exact words — the landing]"
**Text overlay:** "[Takeaway phrase]"
### CTA (final 2–3 seconds)
**On screen:** [SkyyRose logo or wordmark frame]
**Spoken:** "[CTA — e.g. 'Pre-order. Link in bio.']"
**Text overlay:** "Luxury Grows from Concrete."
---
**Audio suggestion:** [Trending sound name if applicable, or music style description]
**Hashtags (5-8):** [Collection-specific + niche tags — goes in caption]
**Caption:** [15-30 words, platform-native adaptation — TikTok vs Reels noted]
```
### SkyyRose Hook Formulas
Use ONE per video. Label it in the script.
| Formula | SkyyRose application |
|---------|----------------------|
| **Identity statement** | "This is what The Town looks like when it levels up." |
| **Fabric-first reveal** | Open on hands pulling garment from packaging — no words for the first second. |
| **Founder direct address** | Corey to camera: "I made this because nothing else was built for us." |
| **Contrarian take** | "Luxury doesn't come from Europe. Never did." |
| **Result first** | Show finished look (fully styled), then cut back to the piece alone. |
| **POV anchor** | "POV: You just opened your SkyyRose order." |
| **Community call** | "If you're from The Town, you already know what this is." |
### Writing Rules
| Rule | Detail |
|------|--------|
| **Word count** | ~2.5 words per second of video |
| **Text overlays** | 3-7 words. Never a full sentence. |
| **One idea per video** | A product reveal is NOT also a brand story. |
| **Conversational delivery** | Write how Corey talks — Oakland cadence, no hype filler. |
| **Retention trigger** | Include at least one mid-video hook: "And here's the part most brands skip..." |
| **No dead air** | Every second: visual action OR audio OR text overlay. Not silence over a still frame. |
| **Burned-in captions** | Text overlays are mandatory. Not optional. |
---
## SkyyRose Video Script Templates (seeded from content-engine)
### 15-Second Product Reveal
```
[0–1.5s] HOOK: Text overlay on dark frame: "[Identity or fabric statement]"
[1.5–5s] REVEAL: Hands pulling product from branded SkyyRose packaging
[5–10s] DETAIL: Close-up of construction detail — embroidery, hardware, ribbing
[10–13s] WEAR: Cut to product being worn — confident, still, no performance
[13–15s] CTA: SkyyRose wordmark + "Link in bio" or "skyyrose.co"
Text overlay: "Luxury Grows from Concrete."
```
### 30-Second Brand Story
```
[0–3s] HOOK: Corey in Oakland setting (outdoor, real location — not a studio).
Text overlay: "[Emotional statement from collection register]"
[3–10s] CONTEXT: Voice-over about the making while showing production/products
[10–20s] PRODUCTS: Quick cuts across collections — 1-2 seconds each, confident pacing
[20–27s] EMOTION: Corey with community moment or quiet product hold
[27–30s] CLOSE: "Luxury Grows from Concrete." + SkyyRose logo
```
### 60-Second "3 Ways to Style"
```
[0–3s] HOOK: Text: "3 ways to style the [Product Name]"
[3–20s] LOOK 1: Full outfit reveal with text overlay — describe the vibe, not the outfit
[20–37s] LOOK 2: Different context/styling, transition cut (not a swipe effect)
[37–54s] LOOK 3: Most elevated look — slow reveal, no rushing
[54–60s] CTA: "Which is your style? Comment 1, 2, or 3."
+ "skyyrose.co" + "Luxury Grows from Concrete."
```
---
## Phase 4: Polish
### Script Checklist
```
- [ ] Hook stops the scroll in under 3 seconds
- [ ] Spoken word count matches target duration (~2.5 words/sec)
- [ ] Text overlays are 3-7 words (readable at a glance before the cut)
- [ ] One topic per video — no scope creep
- [ ] CTA is specific and appears as text overlay
- [ ] Script reads naturally when spoken aloud (not like a blog post)
- [ ] At least one retention trigger mid-video
- [ ] Audio/sound suggestion included
- [ ] 5-8 hashtags in the caption (not burned into video)
- [ ] "Luxury Grows from Concrete." appears in final frame
- [ ] Collection voice verified — no cross-attribution
- [ ] No hype-merchant delivery in the spoken lines
```
### Repurposing Notes
Provide brief notes after every script:
- **TikTok:** stitch/duet opportunity? Trending sound integration?
- **Instagram Reels:** cover image suggestion (first frame must work as a still); Stories cross-promotion
- **Posting note:** Best windows for SkyyRose audience: 9 AM, 12 PM, 6 PM, 9 PM PST — test and iterate
---
## Implementation
```python
from agents.social_media_agent import SocialMediaAgent
agent = SocialMediaAgent()
# Pull the brand-voice seed for the Love Hurts Bomber Jacket
post = agent.generate_post("lh-004", "tiktok", "product_launch")
print(post.caption) # Platform caption (short, TikTok-native)
print(post.hashtags) # Collection-aware tag set for caption
# The frame-by-frame script (timestamps → action → text overlay → audio)
# is what THIS skill produces from that voice seed via the phases below.
```
```bash
# Smoke-test the social venture pipeline for a Love Hurts SKU:
python -m skyyrose.elite_studio.ventures.social smoke --sku lh-004
```
**Scheduler/production row example:**
```json
{
"sku": "lh-004",
"product_name": "Love Hurts Bomber Jacket",
"collection": "love-hurts",
"format": "tiktok-script",
"duration_sec": 30,
"video_format": "product_reveal",
"on_camera": "model",
"audio_suggestion": "original audio — Corey VO",
"platforms": ["tiktok", "instagram_reels"],
"scheduled_utc": "2026-06-10T21:00:00Z",
"batch_session": 1,
"repurpose_to": ["instagram_carousel", "x_post"]
}
```
---
## Example: Love Hurts Bomber — 30-Second Product Reveal
**Product:** Love Hurts Bomber | Collection: Love Hurts | Format: Product reveal, talking head + b-roll
```
## Love Hurts Bomber — Product Reveal (30 sec)
**Duration:** 30 seconds
**Format:** Product reveal — model + b-roll
**Collection:** Love Hurts
### HOOK (0–3 seconds)
**On screen:** Close-up of crimson stitching on bomber sleeve. Hands entering frame.
**Text overlay:** "This one's for the ones who stayed."
**Audio:** Ambient sound — fabric movement only, no music yet.
### SETUP (3–10 seconds)
**On screen:** Full product flat-lay on dark surface, rose gold accents visible.
**Spoken:** "Love Hurts is the collection for everything the streets taught you.
The bomber was built to carry that."
**Text overlay:** "Love Hurts Collection"
### BODY (10–22 seconds)
**On screen:** Quick cut — model putting on the bomber, exterior shot.
**Spoken:** "Satin lining. Embroidered Love Hurts script across the back.
The crimson isn't a color choice. It's a statement."
**Text overlay (card 1):** "Satin lining."
**Text overlay (card 2):** "Embroidered script."
**Text overlay (card 3):** "Crimson. Always."
**Transition:** Cut on action — bomber zips up, cut to exterior street shot.
### PAYOFF (22–27 seconds)
**On screen:** Model, still, facing camera. Urban Oakland backdrop.
**Spoken:** "The bloodline that raised me. This is for it."
**Text overlay:** "The bloodline that raised me."
### CTA (27–30 seconds)
**On screen:** SkyyRose wordmark on dark frame.
**Spoken:** "Pre-order. Link in bio."
**Text overlay:** "Luxury Grows from Concrete."
---
**Audio suggestion:** Soulful, minimal — no lyrics. Think KAYTRANADA instrumental energy.
**Hashtags:** #SkyyRose #LoveHurtsCollection #LuxuryGrowsFromConcrete #BlackOwnedFashion #OaklandFashion #StreetLuxury #BayAreaStyle
**TikTok caption:** "The bloodline that raised me. Love Hurts Bomber — pre-order link in bio."
**Reels caption:** "Built to carry what the streets taught you. Love Hurts Bomber. Pre-order open → link in bio."
```
---
## Anti-Patterns
- **Slow hooks** — "Hey everyone, so today I'm going to show you the new SkyyRose collection drop..." wastes the first 3 seconds. Start mid-action or with a text overlay.
- **Cross-attributing collection language** — "The bloodline that raised me" on a Black Rose video, or "armor" language on Love Hurts. These are locked to their collections.
- **Hype-merchant delivery** — "This is FIRE 🔥" or "You're going to WANT this" is not Corey's register. Specific, earned, direct.
- **Reading the script word-for-word** — spoken lines must sound natural at Oakland cadence. Read aloud before approving; rewrite any phrase that sounds scripted.
- **Text overlays as full sentences** — "This bomber was constructed with satin lining and crimson embroidery" is not a text overlay, it's a caption. Cut to the essential phrase.
- **No retention trigger** — a 30-second product reveal with no mid-point hook loses half its audience by second 15. Build in "and the detail nobody expects..." type beats.
- **Ending without the tagline** — every SkyyRose video closes with "Luxury Grows from Concrete." in the final frame. Missing this breaks brand consistency across the library.
- **Multiple CTAs** — "Follow, comment, share AND link in bio" is no CTA. One action per video.
- **Trending sound that breaks the mood** — a trending audio that conflicts with the collection's emotional register undermines the whole video. Only adapt trends that fit. Skip the rest.
- **SKU in the caption or overlay** — "lh-004 just dropped" is internal language. Always the product name.
---
## Recovery
- **No on-camera confidence:** Default to text-on-screen with b-roll + Corey voiceover. The face is optional; the voice is the brand.
- **Topic too dense for 30 seconds:** Split into a 3-part "series" TikTok. End each with "Part 2 drops tomorrow" to drive follow.
- **No trending audio that fits:** Use original audio — Corey's voice as the soundtrack IS the differentiator. Don't force a trend that breaks the collection's register.
- **Script feels stiff:** Read it aloud. Replace every phrase you wouldn't say to a friend. Contractions, pauses, fragments — all fine.
- **Video underperforming:** The hook is 80% of performance. Test 3 different first-3-seconds over the same body content. Don't change the body until you've exhausted hook variants.
- **Collection voice isn't landing:** Read `docs/brand/collection-stories.md` — the per-collection emotional register is there verbatim. If a line could belong to any collection, it's not specific enough for SkyyRose.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!