---
name: viral
description: Route "what is working and will mine work" for TikTok, Instagram Reels and YouTube Shorts — breakouts in a niche with the hook of the first 3 seconds and the format (vidIQ), a draft checked by measured facts and an eight-criterion rubric into a band per platform with three fixes, the platforms' rules for length, AI labels, reach and money with source and date, and a publish pack for the finished video; then the picked format goes to the mode that makes it.
---
# Viral radar

FlashBoards user skill, version 1.2.3 (2026-10-13).

On the board, read these guides with `list_skills` and `get_skill` when the assistant exposes them; otherwise use the hosted index through an available read-only retrieval tool. Use that runtime’s actual model discovery, current page context and guarded board actions for execution. Keep native readiness, approval and cost gates; do not claim a guide was read when retrieval is unavailable.

Read related guides with `get_skill({skillId:"<id>"})` or the [hosted index](https://pub-78da82d51ed14147ac554d38094b0c0b.r2.dev/user-skills/1.2.3/index.html). Reading a guide does not start or authorize a paid generation.

Work on the person's own niche, posts and drafts. The example runs below are measurements of public posts on 2026-10-12: never present them as the person's results.

Slots: {topic} — the niche, format or hook in a few words · {platforms} — tiktok, instagram, youtube_shorts · {draft} — the person's video · {audience} — who it is for.

## Three questions, three sources

"Viral" is three different questions. Never answer one with the tool of another.

| The question | What answers it | Go to |
|---|---|---|
| What is working in my niche, and where? | Observation: posts that did many times better than their own account's usual, with the hook, the format and the pacing. `vidiq_research`: one or two paid searches; the same question within 12 hours is free. | `viral-works` |
| Will my draft work? Which version is stronger? | A reading of the craft: measured facts and two frame sheets, an eight-criterion rubric, then a band per platform and three fixes from `get_draft_verdict`. No vidIQ. | `viral-score` |
| How long, what label, will it be paid, does AI hurt reach? | The rulebook: every rule with its source and date, `get_platform_rules`. Free. | `viral-rules` |
| It is finished: what goes where? | Versions per platform, the caption and the checks; the person uploads it, or `social` drafts it for their approval where this client offers it. | `viral-publish` |

"How did my post do" and "why did that one blow up" (a post against its account's usual at the same age, a scene-by-scene of a post) are not available here yet: say so, and offer `viral-works` for the post's niche.

## The honest rules

1. **Never promise views.** No tool here forecasts a number of views, and none on the market is validated on organic TikTok, Reels or Shorts; published research says views follow the author's history more than the clip. A draft gets a **band** (low, mid or high) and fixes. A band is not a forecast: say so once, in the words of the verdict's `calibration` line.
2. **A number comes with what it is measured against**: "9× their usual 40K", "3 of 6 posts". Copy it from the tool; never round a multiplier into "went viral".
3. **A rule comes with its source and date**, as `get_platform_rules` gives them. If the answer says the rulebook needs a re-check, say that too.
4. **Structure from the reference, words of your own.** A breakout shows a hook type, a format and a length; never copy its lines, title or look.
5. **One search per question.** vidIQ research is paid by the person per call (5 vidIQ credits; the description of `vidiq_research` names the price), charged only when vidIQ answers. The same tool and input within 12 hours comes back `cached: true` and costs nothing. Name the price once before the first search.
6. **From seeing to making.** When the person picks a breakout, name its format in plain words and the FlashBoards mode that makes it, and offer to make their version with that mode's guide:

| The format | Make it with |
|---|---|
| A talking head, to camera, a selfie, a storytime, a voice-over | `reels` |
| An animated character, a cartoon, an AI-generated skit | `toon` |
| UGC, a review, an unboxing, a product shot | `ad` |
| A cinematic scene, a film moment, a narrative sequence | `animate` |
| A music video, a lip-sync to a song | `musicvideo` |
| A podcast, an interview, a long video | `youtube` |
| A motion-graphics explainer | `motion` |

## Classify

| The job | Go to |
|---|---|
| "What's working", "ideas", "trends", "hooks that work", "what format should I try", a niche named without a file | `viral-works` |
| A video from the person: "check this", "will it work", "which one is better" | `viral-score` |
| "Do I need an AI label", "will it be monetized", "how long should it be", "is AI hurting my reach" | `viral-rules` |
| A finished video: "post it", "versions for TikTok and YouTube", "write a caption" | `viral-publish` |
| A link to a published post: "how did it do", "why did it blow up" | not here yet: say so; `viral-works` for its niche |
| A YouTube video's title or thumbnail: title ideas with scores, a score for the person's title or the current thumbnail | `youtube-packaging` |
| A YouTube channel, the person's or another's: what works on it, its growth, its best videos | `youtube-checkup` |

## Example run (reference only — never reuse its posts or numbers as the person's)

- 2026-10-12, "AI animated character talking to camera", lens format, 2 a platform: 6 breakouts — TikTok 4255× and 4× their usual, Reels 18× and 131×, Shorts 36× and 8.4×; templates "ai generated animated character short", "ai avatar speaking on camera".
- An 8-second talking reel: 0 cuts, first word at 0.12 s; scores 1 / 2 / 2 / 1 / 2 / 0 / 2 / 1 → high on all three platforms (TikTok 75%, Reels 71%, Shorts 78% of the weighted rubric); fixes: the first second, pacing, captions.

## Execute through MCP or on the board

Use the person's FlashBoards account; never ask for a personal provider key or run the source's local scripts. Discover `get_account`, `list_generation_models` and the tools of this client first: a published guide does not prove a feature is deployed.

**Headless, no open board.** Quote with `estimate_generation_cost` (skill models: `estimate_skill_model`), then run `generate_image`, `generate_video`, `generate_audio` or `run_skill_model` with one stable `generationAttemptId` per logical attempt. Pass `maxCostUsd` only when the current operation and selected model support it; otherwise use the quoted cost and the person's explicit approval with the supported controls. Never silently ignore an unsupported spending cap; make one `get_generation` check after `retryAfterSeconds`. Pass the person's own results by `generationId`: images in `referenceGenerationIds`, `firstFrameUrl` and `endFrameUrl`, audio in `referenceAudioUrls` or `targetAudioUrl`, videos in `referenceVideoGenerationIds`. They are read on the server; signed result links do not work as public URLs. Every `generationId` a tool returns stays valid: a later read of the same result gives a different string, and both work. Film frames and gallery pictures go in by `previewHandle`: `referencePreviewHandles` of the generation tools, a `{previewHandle}` source of `arrange_images`, `crop_image` and `pad_image`, and `describe_media`. New files come from `show_media_upload_picker` as receipts. The person's character comes in as its sheet, by `generationId` or as an upload; there is no search by name. If the person names a character without the sheet, ask for it or make one with `character-sheet`; do not scan recent results for it. Free server steps: `trim_video`, `concat_videos`, `conform_video`, `replace_video_audio`, `extract_video_frame`, `extract_video_audio`, `detect_video_cuts`, `crop_image`, `pad_image`, `arrange_images`, `cut_audio_span`, `concat_audio_tracks`, `mix_audio_tracks`, `fit_audio_duration`, `add_audio_reverb`. Check every result with `describe_media` (a question about an image; `model`, `mode` and `sourceRange` only for a video) and `transcribe_media` for speech. Both checks are paid: `describe_media` costs a fraction of a cent for an image and about 2–4 ¢ for a short video (more for a long one), `transcribe_media` under 1 ¢ a minute — count the checks you plan in the price you name before the first paid step. `describe_media` is not reliable about sound: it misses effects mixed under music and can hear voices or instruments that are not there. Check speech with `transcribe_media` and ask the person to listen for effects and music. Never repay an uncertain submission; reuse an attempt ID only for the identical request. Make each new `requestId` or `generationAttemptId` unique, for example the task, the date and a short random suffix: an ID used before, even in another chat, replays that earlier request or answers `REQUEST_ID_CONFLICT`.

**On the board.** Inspect with `list_board_sessions` and `get_board_snapshot` and carry the same `sessionId` and a fresh `activeBoardId` as `expectedBoardId`. Native cards: `execute_board_action` (`listNativeModels`, `setModel`), `prepare_board_generation` with ordered board items or owned outputs, then one `generate_on_board` within the authorized budget. Board media tools: `list_media_tools` → `start_media_tool` → `get_media_tool_run`. Put headless results on a board with `add_media_to_board`.

Keep mandatory safety settings and the live limits of each model. Prices, timings, endpoints and "free retry" claims in the sources are historical, not FlashBoards contracts. If a step this guide needs is not available or is refused (a tool error, `audio_not_configured`, a missing model or input), keep the finished assets, tell the person which step is blocked and why, and ask how to go on. A single generation that ends `failed` is not a blocked step: submit it once more with a new `generationAttemptId` (reworded if it may have hit the content checker), and stop to ask only if it fails again. A failed attempt is not always refunded, so the retry may be paid again and `maxCostUsd` caps each request on its own: count both against the budget the person approved. Never swap in another route on your own: no image model redrawing a layout or a frame, no `describe_media` in place of the frames it should check, no clip generated only to take its sound, no picture drawn where the guide takes a film frame.

## Source and related guides

- The owner's viral radar (flashboards-apps `.claude/skills/viral`, 2026-10-12); no Learn article yet.

Read: `viral-works`, `viral-score`, `viral-rules`, `viral-publish`, `social`, `reels`, `youtube`, `youtube-packaging`, `youtube-checkup`. Source experiments and demo materials are historical; use the person's own approved media.
