SKILL.md
tiktok-video-publishing
A format-execution skill — configure the TikTok VIDEO publish for reach + discovery + compliant disclosure and write the search-optimized caption. The agent configures the publish + writes the caption; the video FILE is an input; WoopSocial publishes via postType=VIDEO and auto-discloses AI on TikTok.
The POV: the publish config is the most controllable reach layer
The script gets filmed once, but the publish config is set at upload and is the most controllable reach/ SEO layer. Four levers: the caption is search (TikTok is a search engine; only the first ~100–150 chars show — lead with the primary keyword, not a teaser); duet/stitch ON is free distribution (others remixing your video grows its engagement cluster); the cover frame wins the profile grid + search; and disclosure (the isBrandedContent/isYourBrand flags) keeps you compliant. The video file is an input — this skill makes it land correctly and get found.
Read these first
- brand-profile — voice/niche (and the search phrasing the audience uses).
- goals-and-kpis — the goal (reach / saves / shop conversions).
- the script/video (often from tiktok-script) — the topic to optimize the caption around.
The framework: REACH
(Depth: references/the-reach-framework.md.)
- R — Rank the caption: lead-load the primary keyword (first ~100 chars) → value-prop → secondary
keywords + niche hashtags; long-tail; mirror in on-screen text.
- E — Engage-open settings:
allowComment/allowDuet/allowStitchON for reach (restrict only
for genuine brand-safety).
- A — Attract with the cover: a legible title-card
coverimage (the video's cover/thumbnail) that
wins the profile grid + search.
- C — Confirm disclosure:
isBrandedContent/isYourBrandtruthfully, #ad up front; AI
auto-disclosed on TikTok but prohibited AI uses stay prohibited; branded content can't be private.
- H — Handle mode + specs + validate:
privacyLevelfrom platform-inputs;DIRECT_POSTvs
MEDIA_UPLOAD (trending sound); 1080×1920 9:16, ≤1GB, cap from maxVideoPostDurationSec; validate; no update → delete+recreate.
The reality (verify-quarterly)
Caption-as-search (first ~100 chars, long-tail, Google surfacing, hashtag lift, pinned-comment = native); duet/stitch/comments as reach levers; cover wins profile grid + search; privacy + disclosure (branded vs your-brand, AI labels/prohibited uses, branded-can't-be-private); specs + length + DIRECTPOST vs MEDIAUPLOAD (trending sound): references/video-publishing-2026-reality.md. Caption-SEO formula, reach-settings defaults, the full VIDEO publish-config block + worked examples: references/publish-config-and-recipes.md.
Honest scope (never violate)
- The agent configures the publish + writes the caption. The **video FILE is filmed by a human or made
by the video skills (veo-3/luma/kling + edited) — WoopSocial doesn't film/edit/generate video.**
- WoopSocial publishes via
postType=VIDEO(raw-bytes upload) and auto-discloses AI on TikTok.
No update → edit = delete + recreate (only while NOT_STARTED).
- Native/human: pinned comment + replies (no comment surface) and licensed trending sound (use
MEDIA_UPLOAD). Disclosure truthful; prohibited AI uses stay prohibited; branded content can't be private. Never promise the FYP/virality; never fabricate metrics (native analytics only). (Scope, distinctions + connections: references/scope-and-connections.md.)
Distinct from its siblings (route correctly)
tiktok-video-publishing (this) = the VIDEO publish-config + search caption (duet/stitch/cover apply; autoAddMusic ignored) · tiktok-script = writes the VIDEO SCRIPT (the content) · tiktok-photo-mode = the PHOTO carousel (autoAddMusic applies; duet/stitch/cover don't) · reels-script/youtube-shorts = other video formats · caption-writer/hook-writer = generic copy.
Where this connects
Reads first: brand-profile, goals-and-kpis, the script/video (tiktok-script). Content inputs (external to WoopSocial): tiktok-script, the video cluster (veo-3/luma/kling) + editing, image-prompt/ideogram/nano-banana (cover frame), hook-writer/caption-writer. Publish: scheduling-and-queue → WoopSocial (postType=VIDEO), platform-specs-and-validation (validate + field rules), content-calendar. Engage/reuse/measure: community-management (pinned comment + replies), content-recycling (→ Reels/Shorts), analytics-and-reporting, experimentation-and-ab-testing (A/B caption/cover). Filming/editing, trending sound, and comments stay external/native.
Definition of done
A search-optimized caption (primary keyword lead-loaded, value-prop, secondary keywords + niche hashtags, mirrored in on-screen text); reach settings open (comment/duet/stitch ON unless brand-safety); a legible title-card cover frame; truthful disclosure flags with #ad up front (and AI auto-disclosed, prohibited AI uses excluded, branded never private); the full WoopSocial VIDEO config (postType VIDEO, privacyLevel from platform-inputs, postMode chosen, specs right) validated before publish; the video file produced externally, WoopSocial publishing postType VIDEO with AI auto-disclosure, edits via delete+recreate, trending sound/pinned comment/replies left native, nothing fabricated and no promised FYP; correctly distinguished from tiktok-script and tiktok-photo-mode.