--- name: tiktok-video-quality-editor description: Repeatable TikTok/YouTube Shorts/Reels video editing and upload-metadata quality system for Sam's Dishrated, Creature Beach, CHARIAD/Rick, and short-form posts. Use when creating, reviewing, remediating, drafting, scheduling, or posting short-form videos from raw footage, Drive clips, exports, or automation outputs; especially when checking for static openings, repetitive concepts, weak captions/descriptions, missing playlists, missing pinned comments, bad crops, generic overlays, source reuse, or whether an edit is good enough to post. --- # TikTok Video Quality Editor ## Prime rule Optimize for “would a stranger keep watching?” not “did the file export?” A technically valid MP4 is a failure if it feels repetitive, static, generic, badly cropped, or captioned like automation. Do not post by default. Create/review the edit package first, then submit only when the request or standing workflow explicitly allows posting and the gates below pass. Sam/Hermes 2026-05-31 correction: every posted video should be optimized toward a 100/100 dashboard score. Score each candidate before upload and again after publishing/proof with 10 points each for: channel fit/audience promise; first-second hook; story arc; footage truth/clarity; on-screen text/captions; title strength; description/hashtags/CTA; production quality/pacing; analytics response/retention signal; anti-bot uniqueness/human feel. Pull free YouTube Studio/API/platform metrics when available; otherwise mark analytics unavailable and improve from creative evidence. The next day's scorecard must change the next batch decisions. Immediate production focus from Sam/Hermes: on-screen text and storylines are the weak points. YouTube UI overlap is a recurring failure, so every publishable package must include text-safe frame proof and explicit storyline proof. ## Required workflow 1. **Identify the account and lane** - Dishrated: food process, rating, reveal, score, app CTA. - Creature Beach: aquarium/weird creature, beach find ID, shell/product mystery, animal attitude, subscribe/follow CTA. 2. **Check source uniqueness before editing** - Read `tiktok-marketing/video-post-ledger.json` and recent evidence folders. - Reject exact source reuse unless Sam explicitly approved it. - Also reject same-feeling reuse: same source family + same formula + same viewer promise. - “New export,” “new caption,” or “different crop” is not new content. - Reject source footage that already has visible text/UI/screens/baked-in captions. Sam wants clean strong footage only, not clips with existing text placed into another Short. - Do not confuse "use only the good stuff" with "there is not enough content." Sam has provided many strong Creature Beach folder/Drive clips. Mine the good folders aggressively, select the strongest unused source files, and target 5 Creature Beach posts/day when upload/account access allows. 3. **Pick the best moving hook first** - Start on motion/surprise/action. Never lead with a frozen photo, static establishing shot, slow pan with no subject, or black/blank frame. - Trim into the best moment immediately; context can come later. - If no strong first second exists, skip/escalate instead of forcing a post. - For YouTube Shorts, the first frame/first second must earn "chose to view" instead of a swipe: obvious subject/action, clear reveal, or a readable spot-it game without needing the caption. 4. **Build one clear watch reason** - Use one hook concept per video: rating reveal, weird creature reveal, side-eye/attitude contest, beach mystery, “would you eat/buy this?”, before/after/process, or subscribe-for-next-find. - Do not stack generic labels. Avoid “nice clip + caption.” - Creature Beach Shorts, including aquarium Shorts, default to 4-6 distinct clips/shots with a visible story arc: hook/question, setup/context, detail/reveal, payoff/reaction, optional second beat/CTA/loop. Do not schedule a single pretty clip with no on-screen story unless Sam explicitly requests that format. - Apply Sam's Kallaway/Hook Machine reference before editing Creature Beach: generate/select the hook first, define the viewer promise and payoff, then choose 4-6 clean shots that deliver that promise. The clip selection serves the hook; do not start from random pretty footage and invent a caption after. 5. **Caption, description, and overlay like a full publishing package** - On-screen hook: 3–8 words, human, punchy, safe-zone placed. - TikTok/Reels caption: searchable natural-language copy, not a tiny throwaway line. Include the subject, series/category, viewer promise, comment prompt, and 3–6 specific hashtags. - YouTube Shorts description: use the available description area meaningfully. Do not stop at one sentence. Include a 2-line hook, an “about this video” paragraph with natural SEO keywords, links/next steps, playlist/series routing, a comment prompt, and focused hashtags. - YouTube Shorts playlisting: every upload needs at least one relevant playlist recommendation, and usually 2–3 when the channel supports it. - Pinned comment: include a real engagement prompt or routing comment for every YouTube Short package. - Avoid templated phrases, brand jargon, “discover the magic,” over-explaining, or repeated formula names. 6. **Export and inspect proof** - Use 9:16, preferably 1080×1920, H.264, 30fps, `+faststart`. - Run `scripts/tiktok_video_gate.py` on every final MP4. - Inspect contact sheet/proof frames visually before posting. - Confirm important text stays in the upper-middle safe zone: roughly `x=8-72%`, `y=18-58%`. Avoid bottom 30%, right 22%, and top 10-14% for important text. - Keep captions to max 2 lines, 4-6 words per line, large bold high-contrast type with stroke/shadow. Use one text idea per beat. - For real phone/Drive footage, `video_made_with_ai` must be false. - Request `autoAddMusic: yes` through Postiz when direct-posting, but do not claim exact TikTok sound proof unless verified. 7. **Post only after gates pass** - Use `tiktok-marketing/post-video.js --copy-reviewed` for real submissions. - Verify Postiz readback and public/release proof when available. - If proof is queued/missing, report that honestly; queued is not done. - For YouTube Shorts, prefer the fastest reliable posting path: direct/API or one-pass browser uploads when possible, with minimal targeted Studio verification. Avoid duplicate Studio edit tabs and repeated screen-by-screen checks when content-table/public URL proof can verify the result. - Save the 100-point pre-upload scorecard, the upload proof, and the after-publish scorecard. Do not repeat a format unless score/analytics prove it worked. - Save explicit proof lines: `Text safe-zone checked: pass/fail` and `Storyline present: hook/setup/tension/payoff/CTA`. If either fails, revise or escalate; do not publish. ## Required upload metadata package Every future short-form video package must include complete platform metadata, even when Sam only asks for the MP4: - **YouTube title:** clear searchable title with the subject/category. - **YouTube description:** substantial useful copy, not filler. Structure it as: first two lines hook/context; short “About this video” paragraph; relevant links or next steps; playlist/series line; comment prompt; 3–6 focused hashtags. Use more of the available space when there is real context, but do not pad to hit a character count. - **Playlists:** list the exact playlists the video should be added to. For CHARIAD/Rick-style sailing content, default suggestions include CHARIAD Racing, Sailing & Racing Shorts, Meet the Team, Leadership Lessons from Sailing, and Behind the Scenes when relevant. - **Pinned comment:** one question or next-video prompt that drives comments or routes viewers deeper. - **TikTok/Reels caption:** keyword-rich but native; include the subject, series/category, comment prompt, and 3–6 hashtags. - **Related video/series routing:** recommend a related video, playlist, or “watch next” route when available. Do not mark a video publish-ready if the metadata is only a short caption plus hashtags. ## Hard fail gates Do not post or schedule if any are true: - First 2 seconds are still photos, frozen frames, black/blank frames, or boring static footage. - Important on-screen text appears in the bottom 30%, right 22%, or top 10-14% UI-risk zones. - Captions exceed 2 lines, are too small, lack stroke/shadow/contrast, or stack multiple text ideas at once. - Opening frame is blurry, badly cropped, too distant, or visually unclear. - Source footage already contains visible text, UI, screenshots, screen recordings, or baked-in captions, unless Sam explicitly approved that source. - For YouTube Shorts, the first second does not clearly answer why a stranger should keep watching. - Creature Beach subject is tiny/distant unless the edit frames it as an obvious game with a fast visual clue or reveal. - Same source package/family was recently used without explicit approval. - Same viewer-facing formula was recently used enough that Sam would say “this is the same video again.” - Overlay text is generic, unreadable, too high, too low, or default/AI-template looking. - Caption sounds like automation or repeats recent captions. - No visible subject/action/reveal by second 2. - Creature Beach lacks a subscribe/follow/next-weird-find angle when appropriate. - Creature Beach output drops to one post by default because the agent is over-conservative, even though strong unused folder/Drive clips are available. - Creature Beach Short has fewer than 4 distinct clips/shots or lacks large readable on-screen story text, unless Sam explicitly approved a single-clip format. - Dishrated lacks process, rating/reveal, score, or app/use-case angle when appropriate. - Postiz/API says accepted but no downstream listing/public proof exists and the final report calls it done. - A YouTube batch repeats the same narrow concept multiple times before the first version has shown traction, unless Sam explicitly requested that test. - The source is merely technically usable instead of genuinely strong/clean/interesting; skip weak filler and escalate. ## Brand-specific standards ### Dishrated Prefer: - process/action first: bite, sizzle, pour, cut, crunch, plating, score reveal; - “Would you eat this?” / “Rate this before we do” / “This score surprised me” hooks; - final Dishrated score/end-card or clear rating moment; - caption mentions trying/scoring food with Dishrated when natural. Avoid: - repeated beef bowl/steak/old meal reuse; - only final plate beauty shots; - no recipe/process; - captions that just describe the food. ### Creature Beach Prefer: - aquarium/weird creature hooks, animal attitude, shell ID mystery, beach find ranking, product/drop voting; - strong motion/surprise in first second; - punchy generic animal wording instead of exact zoo/location naming; - follow/subscribe CTA tied to the next weird creature/find. Avoid: - repeated zoo side-eye/council/security variants unless Sam asked for the series; - static shell table clips without a game/story; - generic pretty-shell posts; - AI-generated-looking visuals or default template fonts. ## Required review note Every final edit package should include a short `quality-gate.json` or note answering: 1. What is the first-second motion/surprise? 2. What makes this concept different from the last 5 posts for this account? 3. What is the one watch reason? 4. Is the crop readable on a phone? 5. Is overlay text inside TikTok safe zones and non-generic? 6. Does the caption sound human and different from recent captions? 7. Are source package and MP4 new, or is reuse explicitly approved? 8. What proof exists: contact sheet, ffprobe, Postiz readback, public URL/releaseId? 9. For YouTube Shorts, what is the viewed-vs-swiped-away hook, and what loop/payoff should hold retention? 10. If this is Creature Beach, is the creature/action readable on a phone in the first second? 11. If this is Creature Beach, list the 4-6 source clips/shots and exact on-screen story text beats. 12. Is the upload metadata complete: YouTube title, full description, playlists, pinned comment, TikTok/Reels caption, hashtags, and related-video routing? 13. What is the 100-point self-score, with 10 points each for channel fit, first-second hook, story arc, footage truth, captions/text, title, description/CTA, pacing, analytics response, and anti-bot human feel? 14. What analytics were checked, or why are analytics marked unavailable? ## Channel corrections from 2026-05-31 - Dishraters: add one specific taste/texture reason before the score so viewers have something concrete to argue with. - Golf Is Everything: open with the mistake/tension first, then the fix; cut repeated result frames. - Creature Beach: stop simple animal montages; make each video a contest, mystery, or question with a final payoff. - Dogflix: one intentional upload at a time; truthful captions, visible story, human pacing, and draft/private gate unless Sam approves public. ## Channel storyline templates - Creature Beach: clue -> bigger clue -> reveal/payoff -> `Did you guess right?` - Dishraters: rating tension -> food proof -> one taste/texture reason -> score reveal -> `Would you rate it higher?` - Golf Is Everything: mistake/tension -> one fix cue -> result proof -> `Try this next swing.` - Dogflix: visible dog action -> truthful setup -> small emotional/behavior payoff; no invented context and no batchy generic uploads. ## Resources - `scripts/tiktok_video_gate.py`: deterministic first-pass QA helper. It creates proof frames/contact sheet, runs ffprobe/freezedetect, and writes a JSON review stub. Passing this script is not enough; visual inspection is still required. - `references/editing-patterns.md`: hook/caption/concept patterns and anti-repetition examples.