{"id":"4187c97e-6943-45f2-94ca-4dda31541daa","shortId":"r6qmkU","kind":"skill","title":"tiktok-launch-video","tagline":"Produce a 9:16 TikTok-native launch video for a product, feature, or campaign using HyperFrames. Idiomatic TikTok pacing, burned-in captions, hook-in-1s structure. Optionally hand off to TikTok Ads to launch as a Spark/in-feed ad.","description":"# TikTok Launch Video\n\nProduce a TikTok-native launch video using [HyperFrames](https://hyperframes.heygen.com) — programmatic HTML/CSS video, deterministic, agent-friendly.\n\nThis skill is opinionated: it forces the **TikTok grammar** (9:16, hook < 1s, burned-in captions, fast cuts, native text overlays) instead of porting a 16:9 landscape video to vertical.\n\n## Usage\n\n`/tiktok-launch-video https://example.com/launch` — pulls context from a launch page\n`/tiktok-launch-video \"we're shipping AI brand guardrails for marketers\"` — short brief\n`/tiktok-launch-video` — interview the user\n\n## Prerequisites\n\nRun once on this machine:\n\n```bash\nnode --version            # ≥ 22\nffmpeg -version | head -1 # ≥ 6\n```\n\nIf either fails, ask the user to install Node 22+ and FFmpeg before continuing.\n\n## Steps\n\n### 1. Gather product context\n\nTry sources in this order — stop at the first one that gives you enough to write the script. Don't redo work the user has already done.\n\n**1a. Local file** — read `.agents/product-marketing-context.md` or `.claude/product-marketing-context.md` if present.\n\n**1b. Cogny MCP context tree** — if the `cogny` MCP server is connected (check via tools — `mcp__cogny__get_context_tree_overview` or any `mcp__cogny__*` tool), query it:\n\n```\nmcp__cogny__get_context_tree_overview          # see what's documented\nmcp__cogny__search_context query=\"<product>\"   # pull customer / pricing / positioning nodes\nmcp__cogny__read_context_node node_id=\"…\"      # drill into the most relevant nodes\n```\n\nThe context tree usually contains things public scraping can't: real customer names, ICP, pricing tiers, current quarter goals, what's been launched recently, what's on the roadmap. **Check it before falling back to web scraping.**\n\n**1c. Public web** — if a URL was passed and 1a/1b didn't give you enough, `WebFetch` the page and extract product name, value prop, core benefit, target user, one concrete proof point.\n\n**1d. User brief** — if a short brief was passed, use it directly.\n\nAfter 1a–1d, ask the user only for what's still missing from the **TikTok hook checklist** below.\n\n**TikTok hook checklist** (what you actually need before you can write the script):\n\n1. Who is the target viewer in 5 words? (e.g. \"B2B marketers running paid ads\")\n2. What pattern interrupt opens the video? (POV, reveal, contrarian claim, demo flash, \"wait for it\")\n3. What's the *one* claim or moment that makes someone stop scrolling?\n4. What's the proof? (a number, a screenshot, a customer name, a before/after)\n5. What's the CTA? (link in bio, comment a keyword, search the product, follow)\n\nDon't proceed without all five. If you're guessing, ask.\n\n### 1.5 Capture brand identity\n\nMake this look like the user's brand, not a stock template. Ask for one of:\n\n- A **site URL** (we'll extract colors / fonts / voice from the page)\n- A **repo path** containing `tailwind.config.*` or `globals.css` with CSS variables\n- An existing `brand-kit.json` (`.agents/brand-kit.json` / `.claude/brand-kit.json` / project root)\n- Manual input: 3 hex colors (background, text, primary) + a font family + a one-sentence voice description\n\nProduce a `brand-kit.json` with at minimum: `colors.background`, `colors.foreground`, `colors.primary`, `colors.accent`, `type.family`, `voice.register`. Save it to the HyperFrames project root.\n\nFor full schema, extraction patterns, and voice → composition mapping see [`references/brand-identity.md`](references/brand-identity.md).\n\nThe composition template reads these as CSS variables (`--bg`, `--fg`, `--primary`, `--accent`, `--font-display`) — so once the kit is wired, the same template renders on-brand for any user.\n\n### 2. Pick the idiomatic format\n\nDon't invent a format. Pick one of these — all are proven on TikTok and map cleanly to HyperFrames:\n\n| Format | When to use | Structure |\n|--------|-------------|-----------|\n| **POV** | Relatable role-based pain | \"POV: you're a [role]\" → pain → punchline reveal of product |\n| **Build-in-public** | Founder/early launches | \"I built X in Y days because Z\" → quick demo → result |\n| **Contrarian take** | Strong opinion, category creation | \"Everyone says X. They're wrong because Y\" → demo |\n| **Before / After** | Workflow improvement | \"This used to take 4 hours\" → cut → \"Now it takes 30 seconds\" |\n| **List-tease** | Multi-feature reveal | \"3 things [tool] does that no one talks about\" → 1, 2, 3 → CTA |\n\nPick **one**. Confirm with the user before writing.\n\n### 3. Write the script (TikTok grammar)\n\nWrite a beat sheet, not prose. Each beat is one card or moment. Constraints:\n\n- **Total length**: 9–22 seconds. Default to **15s** unless the user explicitly wants longer.\n- **Beat 1 (0.0–1.0s)**: Hook. Big text. No logo. No intro. The viewer must not swipe.\n- **Beats 2–N**: ~1.0–2.5s each. Every beat earns its time or gets cut.\n- **Final beat (last 1.5–2s)**: CTA. Concrete verb. Not \"learn more\" — \"Search [name] on TikTok\", \"Comment WAITLIST\", \"Tap the link\".\n- **Captions**: Every spoken word is burned in as text. Max 6 words per caption card.\n- **Voice / register**: First person, conversational, no marketing voice. Read it out loud — if it sounds like a press release, rewrite.\n\nHand the beat sheet back to the user and **wait for confirmation** before composing. One round of revisions is normal.\n\n### 4. Scaffold the HyperFrames project\n\nUse the CLI. Don't try to handcraft `package.json`.\n\n```bash\n# In the user's working directory, or a videos/ subdirectory if they prefer\nnpx -y hyperframes@latest init <product-slug>-tiktok --yes\ncd <product-slug>-tiktok\n```\n\nThis creates `index.html`, `meta.json`, `hyperframes.json`, plus `CLAUDE.md` / `AGENTS.md` with framework rules. Read `CLAUDE.md` once — it documents the `data-*` attribute conventions and the `window.__timelines` registration this skill depends on.\n\n### 5. Compose the video (9:16, kinetic)\n\nEdit `index.html` to be a 1080×1920 composition. The pattern below is the minimum viable TikTok-native composition — adapt the copy, keep the structure.\n\nKey rules (these come from HyperFrames, do not skip):\n\n- Every timed element needs `class=\"clip\"` plus `data-start`, `data-duration`, `data-track-index`.\n- The composition root has `data-composition-id`, `data-width`, `data-height`, `data-duration`.\n- Animations go on a paused GSAP timeline registered as `window.__timelines[\"<composition-id>\"]`.\n- No `Date.now()`, no `Math.random()`, no `fetch()` — renders must be deterministic.\n\nReference composition: see [`references/composition-template.html`](references/composition-template.html).\n\nA few TikTok-specific styling rules to follow:\n\n- **Type**: 110–160px for hooks, 70–90px for body captions. Bold, tight letter-spacing.\n- **Safe area**: keep the bottom 320px and top 220px clear — that's where TikTok's UI sits.\n- **Color**: high contrast. Black background + white text + one accent (cyan, lime, or magenta). Avoid pastels.\n- **Motion**: every card enters with a 0.25–0.4s `y` or `scale` tween. Cuts are hard, not crossfades.\n- **No stock footage feel**: if the script calls for \"demo\", capture the actual product UI (`hyperframes capture <url>`) and crop into the 9:16 frame instead of using a generic stock clip.\n\n### 6. Lint\n\n```bash\nnpx hyperframes lint\n```\n\nFix every error. Warnings are usually safe but read them.\n\n### 7. Render\n\n```bash\nnpx hyperframes render --output launch.mp4\n```\n\nA 15s composition typically renders in 30–90 seconds depending on the machine. Output is H.264 MP4, 1080×1920, 30fps.\n\n### 8. Sanity-check before declaring done\n\nOpen the file, scrub through it once. Then check:\n\n- Hook is fully visible by **0.8s**?\n- Captions readable at the size they'll be viewed (phone, no sound)?\n- Nothing important in the bottom 320px?\n- CTA is on screen for ≥ 1.5s at the end?\n- Total length between 9 and 22 seconds?\n\nIf any check fails, edit and re-render. Do not ship a video that fails any of the above.\n\n### 9. (Optional) Hand off to TikTok Ads\n\nIf the user wants to run this as a paid in-feed ad (not an organic post), use the TikTok Ads MCP to set up the campaign skeleton. Don't auto-launch.\n\n```\ntiktok_ads__tool_list_advertisers\ntiktok_ads__tool_get_pixels(advertiser_id)              # confirm tracking\ntiktok_ads__tool_create_campaign(...)                   # objective: TRAFFIC or VIDEO_VIEWS, status: DISABLE\ntiktok_ads__tool_create_ad_group(...)                   # placement: TIKTOK only; daily budget; status: DISABLE\n# Upload the rendered MP4 manually in TikTok Ads Manager — the MCP doesn't currently\n# upload creatives. Then:\ntiktok_ads__tool_create_ad(...)                         # status: DISABLE\n```\n\nAll entities should be created `DISABLE`. Print a summary and tell the user exactly which IDs to enable in TikTok Ads Manager once they've reviewed the creative.\n\nFor organic posting: just hand them `launch.mp4` and tell them to upload via the TikTok app (organic uploads are not API-supported).\n\n## Output format\n\nWhen you finish, print:\n\n1. Path to the rendered MP4\n2. The beat sheet you used (so the user can iterate)\n3. One-line summary of length, format chosen, and aspect ratio\n4. (If applicable) the TikTok Ads campaign / ad group / ad IDs created in DISABLE state\n\n## Common mistakes\n\n1. **16:9 footage stretched to 9:16** — re-shoot or use HyperFrames overlays. Don't stretch.\n2. **Logo intro** — TikTok punishes anything that looks like a TV ad. The hook is the first frame.\n3. **Voiceover with no captions** — 80%+ of TikTok is watched muted. Captions or it doesn't exist.\n4. **Generic CTA** — \"learn more\" never works on TikTok. Tell the viewer the exact next action.\n5. **Over-rendering** — 4K output makes no difference; TikTok recompresses to ~720p anyway.\n6. **Putting the CTA only at the end** — half of viewers are gone by then. Restate the offer at ~60% of runtime too.\n\n## Related\n\n- `/reddit-launch-video` — same pattern for Reddit's idiomatic format\n- `/linkedin-launch-video` — same pattern for LinkedIn\n- `/video-to-gif` — convert the rendered MP4 into a feed-ready GIF\n- `/ad-copy-writer` — generate the headline / caption that ships *with* the video","tags":["tiktok","launch","video","claude","code","marketing","skills","cognyai","agent-skills","ai-agents","claude-code","claude-skills"],"capabilities":["skill","source-cognyai","skill-tiktok-launch-video","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-claude-skills","topic-cluade-mcp","topic-cursor","topic-geo","topic-growth-hacking","topic-llm","topic-marketing","topic-mcp","topic-seo"],"categories":["claude-code-marketing-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cognyai/claude-code-marketing-skills/tiktok-launch-video","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cognyai/claude-code-marketing-skills","source_repo":"https://github.com/cognyai/claude-code-marketing-skills","install_from":"skills.sh"}},"qualityScore":"0.474","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 48 github stars · SKILL.md body (10,104 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:58:08.027Z","embedding":null,"createdAt":"2026-04-25T12:56:04.159Z","updatedAt":"2026-05-18T18:58:08.027Z","lastSeenAt":"2026-05-18T18:58:08.027Z","tsv":"'-1':137 '/ad-copy-writer':1571 '/launch':102 '/linkedin-launch-video':1555 '/reddit-launch-video':1547 '/tiktok-launch-video':99,109,120 '/video-to-gif':1560 '0.0':736 '0.25':1068 '0.4':1069 '0.8':1176 '1':154,367,688,735,1394,1440 '1.0':737,754 '1.5':451,769,1201 '1080':918,1152 '110':1016 '15s':727,1136 '16':8,76,92,911,1102,1441,1447 '160px':1017 '1920':919,1153 '1a':185,337 '1a/1b':301 '1b':194 '1c':292 '1d':324,338 '1s':32,78 '2':382,579,689,752,1400,1458 '2.5':755 '22':133,148,723,1211 '220px':1038 '2s':770 '3':398,502,679,690,700,1411,1476 '30':670,1141 '30fps':1154 '320px':1035,1195 '4':411,664,841,1423,1493 '4k':1513 '5':374,425,906,1509 '6':138,796,1111,1523 '60':1542 '7':1127 '70':1020 '720p':1521 '8':1155 '80':1481 '9':7,75,93,722,910,1101,1209,1233,1442,1446 '90':1142 '90px':1021 'accent':559,1055 'action':1508 'actual':359,1092 'ad':39,45,381,1239,1253,1261,1275,1280,1289,1301,1304,1320,1331,1334,1357,1428,1430,1432,1469 'adapt':932 'advertis':1278,1284 'agent':64 'agent-friend':63 'agents.md':885 'agents/brand-kit.json':496 'agents/product-marketing-context.md':189 'ai':113 'alreadi':183 'anim':981 'anyth':1463 'anyway':1522 'api':1386 'api-support':1385 'app':1380 'applic':1425 'area':1031 'ask':142,339,450,467 'aspect':1421 'attribut':896 'auto':1272 'auto-launch':1271 'avoid':1060 'b2b':377 'back':288,825 'background':505,1051 'base':612 'bash':130,855,1113,1129 'beat':708,713,734,751,759,767,823,1402 'before/after':424 'benefit':317 'bg':556 'big':740 'bio':432 'black':1050 'bodi':1023 'bold':1025 'bottom':1034,1194 'brand':114,453,462,575 'brand-kit.json':495,519 'brief':119,326,330 'budget':1310 'build':625 'build-in-publ':624 'built':631 'burn':26,80,791 'burned-in':25,79 'call':1087 'campaign':19,1267,1292,1429 'caption':28,82,786,799,1024,1178,1480,1487,1575 'captur':452,1090,1096 'card':716,800,1064 'categori':645 'cd':876 'check':206,284,1158,1170,1215 'checklist':352,356 'chosen':1419 'claim':392,403 'class':951 'claude.md':884,890 'claude/brand-kit.json':497 'claude/product-marketing-context.md':191 'clean':600 'clear':1039 'cli':848 'clip':952,1110 'cogni':195,201,210,218,223,233,243 'color':477,504,1047 'colors.accent':526 'colors.background':523 'colors.foreground':524 'colors.primary':525 'come':941 'comment':433,781 'common':1438 'compos':834,907 'composit':543,549,920,931,965,970,1002,1137 'concret':321,772 'confirm':694,832,1286 'connect':205 'constraint':719 'contain':259,486 'context':104,157,197,212,225,235,245,256 'continu':152 'contrarian':391,641 'contrast':1049 'convent':897 'convers':805 'convert':1561 'copi':934 'core':316 'creat':879,1291,1303,1333,1341,1434 'creation':646 'creativ':1328,1364 'crop':1098 'crossfad':1079 'css':491,554 'cta':429,691,771,1196,1495,1526 'current':271,1326 'custom':238,266,421 'cut':84,666,765,1075 'cyan':1056 'daili':1309 'data':895,955,958,961,969,973,976,979 'data-composition-id':968 'data-dur':957,978 'data-height':975 'data-start':954 'data-track-index':960 'data-width':972 'date.now':992 'day':635 'declar':1160 'default':725 'demo':393,639,655,1089 'depend':904,1144 'descript':516 'determinist':62,1000 'didn':302 'differ':1517 'direct':335 'directori':861 'disabl':1299,1312,1336,1342,1436 'display':562 'document':231,893 'doesn':1324,1490 'done':184,1161 'drill':249 'durat':959,980 'e.g':376 'earn':760 'edit':913,1217 'either':140 'element':949 'enabl':1354 'end':1205,1530 'enough':171,306 'enter':1065 'entiti':1338 'error':1119 'everi':758,787,947,1063,1118 'everyon':647 'exact':1350,1506 'example.com':101 'example.com/launch':100 'exist':494,1492 'explicit':731 'extract':311,476,539 'fail':141,1216,1228 'fall':287 'famili':510 'fast':83 'featur':17,677 'feed':1252,1568 'feed-readi':1567 'feel':1083 'fetch':996 'ffmpeg':134,150 'fg':557 'file':187,1164 'final':766 'finish':1392 'first':166,803,1474 'five':445 'fix':1117 'flash':394 'follow':439,1014 'font':478,509,561 'font-display':560 'footag':1082,1443 'forc':71 'format':583,588,603,1389,1418,1554 'founder/early':628 'frame':1103,1475 'framework':887 'friend':65 'full':537 'fulli':1173 'gather':155 'generat':1572 'generic':1108,1494 'get':211,224,764,1282 'gif':1570 'give':169,304 'globals.css':489 'go':982 'goal':273 'gone':1535 'grammar':74,705 'group':1305,1431 'gsap':986 'guardrail':115 'guess':449 'h.264':1150 'half':1531 'hand':35,821,1235,1369 'handcraft':853 'hard':1077 'head':136 'headlin':1574 'height':977 'hex':503 'high':1048 'hook':30,77,351,355,739,1019,1171,1471 'hook-in-1s':29 'hour':665 'html/css':60 'hyperfram':21,57,533,602,844,871,943,1095,1115,1131,1453 'hyperframes.heygen.com':58 'hyperframes.json':882 'icp':268 'id':248,971,1285,1352,1433 'ident':454 'idiomat':22,582,1553 'import':1191 'improv':659 'in-fe':1250 'index':963 'index.html':880,914 'init':873 'input':501 'instal':146 'instead':88,1104 'interrupt':385 'interview':121 'intro':745,1460 'invent':586 'iter':1410 'keep':935,1032 'key':938 'keyword':435 'kinet':912 'kit':566 'landscap':94 'last':768 'latest':872 'launch':3,12,41,47,54,107,277,629,1273 'launch.mp4':1134,1371 'learn':775,1496 'length':721,1207,1417 'letter':1028 'letter-spac':1027 'like':458,816,1466 'lime':1057 'line':1414 'link':430,785 'linkedin':1559 'lint':1112,1116 'list':673,1277 'list-teas':672 'll':475,1184 'local':186 'logo':743,1459 'longer':733 'look':457,1465 'loud':812 'machin':129,1147 'magenta':1059 'make':407,455,1515 'manag':1321,1358 'manual':500,1317 'map':544,599 'market':117,378,807 'math.random':994 'max':795 'mcp':196,202,209,217,222,232,242,1262,1323 'meta.json':881 'minimum':522,926 'miss':347 'mistak':1439 'moment':405,718 'motion':1062 'mp4':1151,1316,1399,1564 'multi':676 'multi-featur':675 'must':748,998 'mute':1486 'n':753 'name':267,313,422,778 'nativ':11,53,85,930 'need':360,950 'never':1498 'next':1507 'node':131,147,241,246,247,254 'normal':840 'noth':1190 'npx':869,1114,1130 'number':417 'object':1293 'offer':1540 'on-brand':573 'one':167,320,402,469,513,590,685,693,715,835,1054,1413 'one-lin':1412 'one-sent':512 'open':386,1162 'opinion':69,644 'option':34,1234 'order':162 'organ':1256,1366,1381 'output':1133,1148,1388,1514 'over-rend':1510 'overlay':87,1454 'overview':214,227 'pace':24 'package.json':854 'page':108,309,482 'paid':380,1249 'pain':613,619 'pass':299,332 'pastel':1061 'path':485,1395 'pattern':384,540,922,1549,1557 'paus':985 'per':798 'person':804 'phone':1187 'pick':580,589,692 'pixel':1283 'placement':1306 'plus':883,953 'point':323 'port':90 'posit':240 'post':1257,1367 'pov':389,608,614 'prefer':868 'prerequisit':124 'present':193 'press':818 'price':239,269 'primari':507,558 'print':1343,1393 'proceed':442 'produc':5,49,517 'product':16,156,312,438,623,1093 'programmat':59 'project':498,534,845 'proof':322,415 'prop':315 'prose':711 'proven':595 'public':261,293,627 'pull':103,237 'punchlin':620 'punish':1462 'put':1524 'quarter':272 'queri':220,236 'quick':638 'ratio':1422 're':111,448,616,651,1220,1449 're-rend':1219 're-shoot':1448 'read':188,244,551,809,889,1125 'readabl':1179 'readi':1569 'real':265 'recent':278 'recompress':1519 'reddit':1551 'redo':178 'refer':1001 'references/brand-identity.md':546,547 'references/composition-template.html':1004,1005 'regist':802,988 'registr':901 'relat':609,1546 'releas':819 'relev':253 'render':572,997,1128,1132,1139,1221,1315,1398,1512,1563 'repo':484 'restat':1538 'result':640 'reveal':390,621,678 'review':1362 'revis':838 'rewrit':820 'roadmap':283 'role':611,618 'role-bas':610 'root':499,535,966 'round':836 'rule':888,939,1012 'run':125,379,1245 'runtim':1544 'safe':1030,1123 'saniti':1157 'sanity-check':1156 'save':529 'say':648 'scaffold':842 'scale':1073 'schema':538 'scrape':262,291 'screen':1199 'screenshot':419 'script':175,366,703,1086 'scroll':410 'scrub':1165 'search':234,436,777 'second':671,724,1143,1212 'see':228,545,1003 'sentenc':514 'server':203 'set':1264 'sheet':709,824,1403 'ship':112,1224,1577 'shoot':1450 'short':118,329 'sit':1046 'site':472 'size':1182 'skeleton':1268 'skill':67,903 'skill-tiktok-launch-video' 'skip':946 'someon':408 'sound':815,1189 'sourc':159 'source-cognyai' 'space':1029 'spark/in-feed':44 'specif':1010 'spoken':788 'start':956 'state':1437 'status':1298,1311,1335 'step':153 'still':346 'stock':465,1081,1109 'stop':163,409 'stretch':1444,1457 'strong':643 'structur':33,607,937 'style':1011 'subdirectori':865 'summari':1345,1415 'support':1387 'swipe':750 'tailwind.config':487 'take':642,663,669 'talk':686 'tap':783 'target':318,371 'teas':674 'tell':1347,1373,1502 'templat':466,550,571 'text':86,506,741,794,1053 'thing':260,680 'tier':270 'tight':1026 'tiktok':2,10,23,38,46,52,73,350,354,597,704,780,874,877,929,1009,1043,1238,1260,1274,1279,1288,1300,1307,1319,1330,1356,1379,1427,1461,1483,1501,1518 'tiktok-launch-video':1 'tiktok-n':9,51,928 'tiktok-specif':1008 'time':762,948 'timelin':987 'tool':208,219,681,1276,1281,1290,1302,1332 'top':1037 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-claude-skills' 'topic-cluade-mcp' 'topic-cursor' 'topic-geo' 'topic-growth-hacking' 'topic-llm' 'topic-marketing' 'topic-mcp' 'topic-seo' 'total':720,1206 'track':962,1287 'traffic':1294 'tree':198,213,226,257 'tri':158,851 'tv':1468 'tween':1074 'type':1015 'type.family':527 'typic':1138 'ui':1045,1094 'unless':728 'upload':1313,1327,1376,1382 'url':297,473 'usag':98 'use':20,56,333,606,661,846,1106,1258,1405,1452 'user':123,144,181,319,325,341,460,578,697,730,828,858,1242,1349,1408 'usual':258,1122 'valu':314 'variabl':492,555 've':1361 'verb':773 'version':132,135 'vertic':97 'via':207,1377 'viabl':927 'video':4,13,48,55,61,95,388,864,909,1226,1296,1580 'view':1186,1297 'viewer':372,747,1504,1533 'visibl':1174 'voic':479,515,542,801,808 'voice.register':528 'voiceov':1477 'wait':395,830 'waitlist':782 'want':732,1243 'warn':1120 'watch':1485 'web':290,294 'webfetch':307 'white':1052 'width':974 'window.__timelines':900,990 'wire':568 'without':443 'word':375,789,797 'work':179,860,1499 'workflow':658 'write':173,364,699,701,706 'wrong':652 'x':632,649 'y':634,654,870,1071 'yes':875 'z':637","prices":[{"id":"5ed8d4d2-a70c-48e5-805c-f8961894ef38","listingId":"4187c97e-6943-45f2-94ca-4dda31541daa","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cognyai","category":"claude-code-marketing-skills","install_from":"skills.sh"},"createdAt":"2026-04-25T12:56:04.159Z"}],"sources":[{"listingId":"4187c97e-6943-45f2-94ca-4dda31541daa","source":"github","sourceId":"cognyai/claude-code-marketing-skills/tiktok-launch-video","sourceUrl":"https://github.com/cognyai/claude-code-marketing-skills/tree/main/skills/tiktok-launch-video","isPrimary":false,"firstSeenAt":"2026-04-25T12:56:04.159Z","lastSeenAt":"2026-05-18T18:58:08.027Z"}],"details":{"listingId":"4187c97e-6943-45f2-94ca-4dda31541daa","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cognyai","slug":"tiktok-launch-video","github":{"repo":"cognyai/claude-code-marketing-skills","stars":48,"topics":["agent-skills","ai-agents","claude-code","claude-skills","cluade-mcp","cursor","geo","growth-hacking","llm","marketing","mcp","seo","vibe","windsurf"],"license":null,"html_url":"https://github.com/cognyai/claude-code-marketing-skills","pushed_at":"2026-05-07T20:57:53Z","description":"Marketing skills for Claude Code — SEO audits and implementation, ad analysis, ad optimization. Free skills need no account. $9/mo for live Search Console, Bing & LinkedIn data.","skill_md_sha":"42940ccaf465a20e6caba3912fc03ecb39948076","skill_md_path":"skills/tiktok-launch-video/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cognyai/claude-code-marketing-skills/tree/main/skills/tiktok-launch-video"},"layout":"multi","source":"github","category":"claude-code-marketing-skills","frontmatter":{"name":"tiktok-launch-video","description":"Produce a 9:16 TikTok-native launch video for a product, feature, or campaign using HyperFrames. Idiomatic TikTok pacing, burned-in captions, hook-in-1s structure. Optionally hand off to TikTok Ads to launch as a Spark/in-feed ad."},"skills_sh_url":"https://skills.sh/cognyai/claude-code-marketing-skills/tiktok-launch-video"},"updatedAt":"2026-05-18T18:58:08.027Z"}}