New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Remove the AI-script tells viewers hear in a TikTok spoken

TikTok Humanizer V3

by sergebulaev · MIT license · ★ 50 on GitHub · updated Sep 17

TikTok Humanizer V3 cover

Remove the AI-script tells viewers hear in a TikTok spoken script and caption: 2026 vocabulary by density, reveal bridges, staccato stacks, stacked triads, performed sincerity, written-not-spoken phrasing, "hey guys" filler; caps em…

---
name: tt-humanizer
description: "Remove the AI-script tells viewers hear in a TikTok spoken script and caption: 2026 vocabulary by density, reveal bridges, staccato stacks, stacked triads, performed sincerity, written-not-spoken phrasing, \"hey guys\" filler; caps em dashes. Includes --mode audit pre-film check (hook, completion design, caption fit) and --mode profile. Not for beating AI detectors (no edit reliably does). Not for writing from scratch (use tt-hook-scripter). Keywords: humanize script, de-AI, audit before filming."
---

# TikTok Humanizer V3

Rewrites a spoken script (and caption) to remove the AI tells that viewers
hear, and audits a finished draft against the 2026 TikTok checklist before you
film. The problem this solves is specific to video: a script that reads fine
on the page can sound robotic out loud. Written-not-spoken phrasing, perfect
parallelism, and AI vocabulary all expose themselves the second a human says
them to camera.

Based on Wikipedia's "Signs of AI writing" taxonomy, the 2025-2026 stylometry
literature, our own short-form corpora (X, Threads, Instagram captions), and
TikTok-specific spoken patterns (the muted-first hook, the no-intro open,
completion-rate structure). **V3 (2026-09):** recalibrated on 2026 evidence.

Overview

Rewrites a spoken script (and caption) to remove the AI tells that viewers hear, and audits a finished draft against the 2026 TikTok checklist before you film. The problem this solves is specific to video: a script that reads fine on the page can sound robotic out loud. Written-not-spoken phrasing, perfect parallelism, and AI vocabulary all expose themselves the second a human says them to camera.

What you get

  • Rewritten script that sounds spoken, not written
  • A diff showing what changed and why
  • Caption char count (flagging over 2,200) when a caption is included
  • Per-beat tell density (markers per script beat or caption paragraph; 3+
  • Reader-read confidence"sounds human", "mixed", "sounds read" (a
Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/tiktok-skills --skill tt-humanizer -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/sergebulaev/tiktok-skills/tar.gz/edffc4f7b663 \ | tar -xz -C ~/.claude/skills --strip-components=4 tiktok-skills-edffc4f7b663/.codex-marketplace/tiktok-skills/skills/tt-humanizer
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/f079f67f0e4a197a1cec/tt-humanizer.zip" -OutFile "$env:TEMP\tt-humanizer.zip"; Expand-Archive "$env:TEMP\tt-humanizer.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md16.5 KB
  • references/3 files · 26.1 KB
  • sub-skills/3 files · 11.2 KB
Read the files here
sergebulaev/edffc4f7 files
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text300 lines

TikTok Humanizer V3

Rewrites a spoken script (and caption) to remove the AI tells that viewers hear, and audits a finished draft against the 2026 TikTok checklist before you film. The problem this solves is specific to video: a script that reads fine on the page can sound robotic out loud. Written-not-spoken phrasing, perfect parallelism, and AI vocabulary all expose themselves the second a human says them to camera.

Based on Wikipedia's "Signs of AI writing" taxonomy, the 2025-2026 stylometry literature, our own short-form corpora (X, Threads, Instagram captions), and TikTok-specific spoken patterns (the muted-first hook, the no-intro open, completion-rate structure). V3 (2026-09): recalibrated on 2026 evidence. Vocabulary is scored by density, em dashes are capped instead of banned, forced rhythm is now a tell instead of a fix, and there is an over-correction guard.

What this skill does not do: it does not make text "pass" GPTZero, Pangram, Turnitin or Originality. Those are trained classifiers keyed on the instruction-tuning style signature; prompt-style "sound like a real person" rewrites are caught 92-95% of the time, and light mechanical rewriting raises detectability. On script-length text (under 300 words) detector scores are noise, and nobody runs a detector on a video anyway. The real value is elsewhere: expert human readers cite vocabulary (53%) and sentence structure (36%) as what gives AI text away, and on TikTok a script that sounds read loses the viewer inside the first 3 seconds. This skill removes what those viewers react to.

What changed in V3

Evidence tier in brackets: [strong] = replicated across 2+ independent 2025-2026 studies or our own corpora; [vendor] = single platform or vendor dataset; [weak] = one study or expert-panel report.

  • Vocabulary moved from a delete-list to density scoring. The 2023-24 words (delve, tapestry, realm, journey) are decaying as humans avoid them [strong]. The durable 2026 markers are common words (significant, crucial, notably, comprehensive, insights, robust, leverage, foster, landscape, nuanced, streamline, elevate) plus grammar: nominalisations and "-ing" clause openers at 5.3x the human rate [strong]. Spoken, they are worse: nobody says "leveraging" to a camera. One marker in a script beat is not a verdict. Three is.
  • Em dash is no longer a tell. GPT-5.4 emits 1.43 per 1,000 words, below the 3.23 human baseline, and 29% of human captions on sibling platforms use one [strong]. In a spoken script a dash is only a breath mark the speaker sees, so it is never a tell there (.. reads better on a teleprompter). In the caption: cap at about 1 per 100 words. On an on-screen card (3-7 words): at most one, and a card rarely needs one. Replace the excess with a comma, colon, .. or a line break. Never a period.
  • Forced burstiness is the #1 2026 tell, not the fix. Mechanical long/short alternation is a learnable humanizer fingerprint [weak], and "Short. Punchy. Done.", "No X. No Y. Just Z.", one-word lines for drama and "The result?" reveals are the current top reader-cited tells [strong]. Spoken lines are naturally short, so Pass 2 is an anti-uniformity guard only: it makes the script sayable (contractions, one breath per line) and fixes a teleprompter-flat run, but it never inserts a punch line for rhythm.
  • Rule of three is still a tell, at density. Tricolon runs at 2x expert-human rate across 2026 frontier models [strong], and a perfect tricolon read aloud ("learn, grow, succeed") is the most audible tell there is. Stacked, perfectly parallel or hollow triads get scrubbed. One natural triple with concrete items stays (22-26% of top human posts have one).
  • Fingerprint injection was half wrong. Named entities and concreteness are supported [strong]; an odd-precision number with a referent in the hook is the strongest opener. Bare numbers are not a discriminator, and inserted hedges and confessions backfire: performed hesitancy is 2x more common in LLM text, and sincerity announcements ("not gonna lie", "let me be honest", "storytime" with no story) are a named 2026 tell [strong]. Pass 3 asks for a flat, dated, uncomfortable fact instead.
  • Over-correction guard. Humanizer output has its own fingerprint [weak]. Pass 4 checks whether Passes 1-3 introduced the very patterns they were meant to remove. Edits are proportional to real problems. When in doubt, leave it.

When to use

  • Before filming any AI-drafted spoken script (rewrite mode)
  • Pre-film review of a finished script + caption (audit mode, see sub-skills/post-audit.md)
  • When a script "reads fine but sounds off" when you say it out loud

Input

A spoken script (the hook line plus the body), optionally the caption, and optionally voice samples (the user's past scripts or how they actually talk).

Output

  • Rewritten script that sounds spoken, not written
  • A diff showing what changed and why
  • Caption char count (flagging over 2,200) when a caption is included
  • Per-beat tell density (markers per script beat or caption paragraph; 3+ triggered a rewrite)
  • Reader-read confidence: "sounds human", "mixed", "sounds read" (a viewer-tell estimate, not a detector score)

Modes

# Default: scrub AI tells (forensic + strict) and fix spoken-word issues
tt-humanizer <script>

# Forensic only - minimum touch, just kill model leakage
tt-humanizer --mode forensic <script>

# Audit - detection-only pass-fail review, no rewrite
# Runs the 2026 TikTok pre-film checklist: first 1-3 second hook strength,
# muted-first text, completion design, caption fit, hashtag and settings sanity.
# Returns Blockers + Warnings + suggested fixes. See sub-skills/post-audit.md.
tt-humanizer --mode audit <script>

# Profile - build/update the user's Voice & Brand Profile. See the section below.
tt-humanizer --mode profile

The four passes

Pass 1 - SCRUB (score, then delete or replace)

Apply the tiered catalogs in references/scrub-rules.md. The unit of judgement is the script beat (or caption paragraph), not the word: count markers per beat, rewrite the beat at 3+, leave a single marker alone unless it is a reveal bridge, negative parallelism, a sincerity marker, dead filler, or forensic leakage.

  • Forensic (always on): real model leakage no human says. AI tool markers (oaicite, contentReference, turn0search0), knowledge-cutoff disclaimers ("As of my last update"), template blanks ([Your Name]), chat wrappers ("Certainly!", "I hope this helps"), and em dashes above the cap in the caption or on an on-screen card.
  • Strict (default on): what viewers hear. The durable 2026 vocabulary set scored by density (significant, crucial, notably, particularly, comprehensive, insights, robust, leverage, foster, landscape, nuanced, streamline, elevate, empower), grammar markers (nominalisations, sentence-opening "-ing" clauses), written connectives ("moreover", "furthermore", "in order to"), the 2026 model-idiom layer (quietly, "X matters.", compound, "a signal", "the work", "built different", "let that sink in"), reveal bridges on a single hit ("The result?", "Here's what nobody tells you", "Stop X, start Y", "plot twist:"), all forms of negative parallelism, stacked or perfectly parallel triads, dead filler ("hey guys", "without further ado", "in this video I will"), and dead closers, both spoken ("thanks for watching", "don't forget to subscribe") and caption-level ("What do you think?", "Drop your thoughts below").
  • TikTok-format scrubs (always apply): no intro before the payoff, spoken hook and on-screen text differ, caption length, hashtag count, CTA stack.
Pass 2 - RHYTHM (make it sayable, never manufactured)

Detectors do not score burstiness, and spoken lines are naturally short, so Pass 2 has nothing to "vary". Its jobs are: make the script sound spoken, remove manufactured drama-rhythm, and un-flatten only a run that reads teleprompter-flat. It never adds a punch line as a tactic.

  • Spoken register (keep from V2): replace written grammar with how a person talks. Contractions, natural fragments, one breath per line. "It is something that you should consider" becomes "you should try this". This is register, not rhythm; it applies to every line.
  • Read-aloud test: flag any line that needs two breaths or trips the tongue. Split at the natural breath, never at a dramatic pause.
  • Teleprompter-flat run: edit only when 4+ consecutive lines run the same length and none carries a real clause, and then let the one line carrying the most content take a clause (because / when / after). Never insert a short punch line between long ones; the inserted punch is the humanizer fingerprint.
  • Banned outright (rewrite as a spoken sentence): "The X? Y." reveals; "No X. No Y. Just Z."; "All the X. None of the Y."; "Simple. Effective. Easy." adjective stacks; one-word lines for drama ("Still." "Exactly."); pseudo- Socratic Q&A ("Why? Because..."); "Short. Punchy. Done." staccato runs. Fragment runs are the tell, on the page and out loud.
  • Natural spoken fragments ("three takes. that's it.") are register and stay. A run of them staged for drama is the tell. In the caption, cap standalone fragments at 2.
  • Never alternate long/short/long/short across the script. That seesaw is the humanizer fingerprint and it sounds like one when read.

The check is "would a person say this, and did I add a staccato pattern", not a variance number.

Pass 3 - ADD (human fingerprints)

Require where the content allows:

  • One odd-precision number WITH a named referent in the hook: who, what, when, or what it cost ("47 minutes on the third take", "$12 at the hardware store", not "a few takes" and not "47"). A bare number is not a fingerprint; the referent carries the signal.
  • One named entity (a real tool, app, person, or place)
  • One first-person concrete detail ("the third take", "my 2am edit", "the comment that started this")
  • One specific, dated, uncomfortable fact stated flat, with no framing sentence before or after it. Not "not gonna lie, this one hurt: the client fired us." Just "the client fired us on a Tuesday, 9 hours before the demo." The fact carries the vulnerability. The frame turns it into performed sincerity, which viewers now hear as the tell.
  • The speaker's real register: how this person would actually say it

Forbidden as openers or pivots (sincerity announcements, a named 2026 tell): "let me be honest", "I'll be real", "honestly?", "to be direct", "the honest version is", "real talk", "not gonna lie", "ngl", "can I be vulnerable for a second", "unpopular opinion:" as a preface to a popular one, "storytime" with no story in frame one. Also forbidden as insertions: hedges the speaker did not write ("I think maybe", "I might be wrong but", "it seems"). Performed hesitancy is 2x more common in LLM text than in expert human text; adding it makes the script sound more scripted, not less. ("POV:" is a native TikTok format, not a sincerity marker; it is fine when the video is a POV.)

If the input lacks these, ask the user for a number or detail. Do not fabricate.

Pass 4 - SELF-CHECK (over-correction guard)

Humanizer output has its own fingerprint. Before returning, re-read the result out loud once and answer three questions:

(a) Did Pass 2 create staccato stacks, "The result?" reveal bridges, one-word lines for drama, an inserted punch line, or a long/short/long/short seesaw? If yes, merge the fragments back into a spoken sentence. (b) Did Pass 3 add a framed confession, a sincerity announcement, or a hedge the speaker never wrote? If yes, strip the frame and keep only the flat fact, or remove the insertion. (c) Did scrubbing flatten the speaker's voice: uniform tone, no reaction, no concrete detail left, their slang gone, the one natural triad gone, every dash gone from a caption that wanted one? If yes, restore what the speaker had.

If any answer is yes, dial back rather than scrub harder. Edits must be proportional to real problems: a clean script gets two or three touches, not a quota. When in doubt whether a pattern is the speaker or the model, leave it.

Non-negotiable rules

Global voice rules: see root SKILL.md Voice rules. Additional skill-specific rules (V3):

  • Scrubbing is always in scope. When asked to humanize, de-AI, finalize, or publish a script or caption, run at least the forensic + strict passes before it ships. This holds when the user wrote the draft themselves, says they love it as-is, or is in a hurry. Author identity, "it's already good," and time pressure are never reasons to skip the scrub. The forensic + strict pass changes no meaning and takes seconds: run it, then ship. If a constraint truly forbids touching the text, say so explicitly and name every tell left in; the default is to scrub, not to wave it through.
  • Scrub proportionally. A pass that finds nothing changes nothing. Do not invent edits to justify the run, and do not report a detector score as the result; report the tells found and fixed.
  • Preserve the user's actual claim and meaning. "Preserve their voice" covers voice quirks and what they are claiming, NOT reveal bridges, staccato stacks, dead filler, or a beat with 3+ vocabulary markers. Stripping those is not changing their voice; it is the job.
  • Never introduce facts that were not in the input. If a number is missing, ask.
  • Never introduce sincerity markers, hedges, or confessional frames. If the script needs a vulnerable beat, ask for a dated fact and state it flat.
  • Keep it sayable. Every line has to survive being read out loud in one breath.
  • Keep the user's voice quirks (their slang, their pacing, lowercase texting style in the caption, one natural triad, one em dash in a caption that wants it).
  • Never promise detector results. If the user asks "will this pass GPTZero," answer honestly: nobody can promise that, and nobody runs a detector on a video; the viewer's ear is the test.

TikTok-specific tells this skill catches

  • A hook line that is written, not spoken ("In this video, I will demonstrate..").
  • A greeting or logo intro before the payoff ("hey guys, welcome back").
  • The spoken hook and the on-screen text saying the identical words.
  • A caption over 2,200 chars, or a 12-hashtag wall.
  • Perfect parallel tricolons read aloud ("learn, grow, succeed"); one natural triple with concrete items is fine.
  • A "call to action" stacked five deep.
  • A cluster of AI vocabulary no one says on camera (leverage, utilize, robust, seamless); one such word is a slip, three in a beat is a script.
  • Staccato drama ("No script. No plan. Just vibes.") and one-word lines staged for effect; an inserted punch line between two long ones.
  • "Not gonna lie" / "storytime" framing around what should be a plain fact.

Example

See references/examples.md for worked before/after rewrites of spoken scripts.

Files

  • SKILL.md - this file (rewrite scrubber + audit-mode entry)
  • references/scrub-rules.md - V3 catalogs by tier, density scoring, em dash cap, spoken-word fixes, rhythm rules, forbidden insertions
  • references/examples.md - worked before/after script rewrites
  • references/audit-checklist.md - the pre-film checklist with thresholds
  • sub-skills/post-audit.md - pre-film audit workflow (detection-only, no rewrite)
  • sub-skills/voice-profile.md - build/update the user's Voice & Brand Profile (--mode profile)
  • sub-skills/illustration.md - optional Pixfaro image workflow

Voice profile mode (--mode profile)

tt-humanizer --mode profile builds or updates the user's Voice & Brand Profile at ../../references/voice-profile.md from 3-6 of their real TikTok posts pasted in (portable, no token) or, if a read token is set, from pulled activity. Once filled, every writing skill in this bundle drafts in the user's voice automatically. See sub-skills/voice-profile.md. Triggers: "build my voice profile", "learn my voice".

  • tt-hook-scripter - generates hooks that already pass the humanizer
  • tt-caption-writer - generates captions that already pass the humanizer
1---
2name: tt-humanizer
3description: "Remove the AI-script tells viewers hear in a TikTok spoken script and caption: 2026 vocabulary by density, reveal bridges, staccato stacks, stacked triads, performed sincerity, written-not-spoken phrasing, \"hey guys\" filler; caps em dashes. Includes --mode audit pre-film check (hook, completion design, caption fit) and --mode profile. Not for beating AI detectors (no edit reliably does). Not for writing from scratch (use tt-hook-scripter). Keywords: humanize script, de-AI, audit before filming."
4---
5 
6# TikTok Humanizer V3
7 
8Rewrites a spoken script (and caption) to remove the AI tells that viewers
9hear, and audits a finished draft against the 2026 TikTok checklist before you
10film. The problem this solves is specific to video: a script that reads fine
11on the page can sound robotic out loud. Written-not-spoken phrasing, perfect
12parallelism, and AI vocabulary all expose themselves the second a human says
13them to camera.
14 
15Based on Wikipedia's "Signs of AI writing" taxonomy, the 2025-2026 stylometry
16literature, our own short-form corpora (X, Threads, Instagram captions), and
17TikTok-specific spoken patterns (the muted-first hook, the no-intro open,
18completion-rate structure). **V3 (2026-09):** recalibrated on 2026 evidence.
19Vocabulary is scored by density, em dashes are capped instead of banned,
20forced rhythm is now a tell instead of a fix, and there is an over-correction
21guard.
22 
23**What this skill does not do:** it does not make text "pass" GPTZero,
24Pangram, Turnitin or Originality. Those are trained classifiers keyed on the
25instruction-tuning style signature; prompt-style "sound like a real person"
26rewrites are caught 92-95% of the time, and light mechanical rewriting raises
27detectability. On script-length text (under 300 words) detector scores are
28noise, and nobody runs a detector on a video anyway. The real value is
29elsewhere: expert human readers cite vocabulary (53%) and sentence structure
30(36%) as what gives AI text away, and on TikTok a script that sounds read
31loses the viewer inside the first 3 seconds. This skill removes what those
32viewers react to.
33 
34## What changed in V3
35 
36Evidence tier in brackets: [strong] = replicated across 2+ independent
372025-2026 studies or our own corpora; [vendor] = single platform or vendor
38dataset; [weak] = one study or expert-panel report.
39 
40- **Vocabulary moved from a delete-list to density scoring.** The 2023-24 words
41 (delve, tapestry, realm, journey) are decaying as humans avoid them [strong].
42 The durable 2026 markers are common words (significant, crucial, notably,
43 comprehensive, insights, robust, leverage, foster, landscape, nuanced,
44 streamline, elevate) plus grammar: nominalisations and "-ing" clause openers
45 at 5.3x the human rate [strong]. Spoken, they are worse: nobody says
46 "leveraging" to a camera. One marker in a script beat is not a verdict.
47 Three is.
48- **Em dash is no longer a tell.** GPT-5.4 emits 1.43 per 1,000 words, below
49 the 3.23 human baseline, and 29% of human captions on sibling platforms use
50 one [strong]. In a spoken script a dash is only a breath mark the speaker
51 sees, so it is never a tell there (`..` reads better on a teleprompter). In
52 the caption: cap at about 1 per 100 words. On an on-screen card (3-7 words):
53 at most one, and a card rarely needs one. Replace the excess with a comma,
54 colon, `..` or a line break. Never a period.
55- **Forced burstiness is the #1 2026 tell, not the fix.** Mechanical
56 long/short alternation is a learnable humanizer fingerprint [weak], and
57 "Short. Punchy. Done.", "No X. No Y. Just Z.", one-word lines for drama and
58 "The result?" reveals are the current top reader-cited tells [strong].
59 Spoken lines are naturally short, so Pass 2 is an anti-uniformity guard
60 only: it makes the script sayable (contractions, one breath per line) and
61 fixes a teleprompter-flat run, but it never inserts a punch line for
62 rhythm.
63- **Rule of three is still a tell, at density.** Tricolon runs at 2x
64 expert-human rate across 2026 frontier models [strong], and a perfect
65 tricolon read aloud ("learn, grow, succeed") is the most audible tell there
66 is. Stacked, perfectly parallel or hollow triads get scrubbed. One natural
67 triple with concrete items stays (22-26% of top human posts have one).
68- **Fingerprint injection was half wrong.** Named entities and concreteness are
69 supported [strong]; an odd-precision number with a referent in the hook is
70 the strongest opener. Bare numbers are not a discriminator, and inserted
71 hedges and confessions backfire: performed hesitancy is 2x more common in
72 LLM text, and sincerity announcements ("not gonna lie", "let me be honest",
73 "storytime" with no story) are a named 2026 tell [strong]. Pass 3 asks for
74 a flat, dated, uncomfortable fact instead.
75- **Over-correction guard.** Humanizer output has its own fingerprint [weak].
76 Pass 4 checks whether Passes 1-3 introduced the very patterns they were meant
77 to remove. Edits are proportional to real problems. When in doubt, leave it.
78 
79## When to use
80 
81- Before filming any AI-drafted spoken script (rewrite mode)
82- Pre-film review of a finished script + caption (audit mode, see
83 `sub-skills/post-audit.md`)
84- When a script "reads fine but sounds off" when you say it out loud
85 
86## Input
87 
88A spoken script (the hook line plus the body), optionally the caption, and
89optionally voice samples (the user's past scripts or how they actually talk).
90 
91## Output
92 
93- Rewritten script that sounds spoken, not written
94- A diff showing what changed and why
95- Caption char count (flagging over 2,200) when a caption is included
96- Per-beat tell density (markers per script beat or caption paragraph; 3+
97 triggered a rewrite)
98- Reader-read confidence: "sounds human", "mixed", "sounds read" (a
99 viewer-tell estimate, not a detector score)
100 
101## Modes
102 
103```bash
104# Default: scrub AI tells (forensic + strict) and fix spoken-word issues
105tt-humanizer <script>
106 
107# Forensic only - minimum touch, just kill model leakage
108tt-humanizer --mode forensic <script>
109 
110# Audit - detection-only pass-fail review, no rewrite
111# Runs the 2026 TikTok pre-film checklist: first 1-3 second hook strength,
112# muted-first text, completion design, caption fit, hashtag and settings sanity.
113# Returns Blockers + Warnings + suggested fixes. See sub-skills/post-audit.md.
114tt-humanizer --mode audit <script>
115 
116# Profile - build/update the user's Voice & Brand Profile. See the section below.
117tt-humanizer --mode profile
118```
119 
120## The four passes
121 
122### Pass 1 - SCRUB (score, then delete or replace)
123 
124Apply the tiered catalogs in `references/scrub-rules.md`. The unit of
125judgement is the **script beat (or caption paragraph), not the word**: count
126markers per beat, rewrite the beat at 3+, leave a single marker alone unless
127it is a reveal bridge, negative parallelism, a sincerity marker, dead filler,
128or forensic leakage.
129 
130- **Forensic** (always on): real model leakage no human says. AI tool markers
131 (oaicite, contentReference, turn0search0), knowledge-cutoff disclaimers ("As of
132 my last update"), template blanks ([Your Name]), chat wrappers ("Certainly!",
133 "I hope this helps"), and em dashes above the cap in the caption or on an
134 on-screen card.
135- **Strict** (default on): what viewers hear. The durable 2026 vocabulary set
136 scored by density (significant, crucial, notably, particularly,
137 comprehensive, insights, robust, leverage, foster, landscape, nuanced,
138 streamline, elevate, empower), grammar markers (nominalisations,
139 sentence-opening "-ing" clauses), written connectives ("moreover",
140 "furthermore", "in order to"), the 2026 model-idiom layer (quietly, "X
141 matters.", compound, "a signal", "the work", "built different", "let that
142 sink in"), reveal bridges on a single hit ("The result?", "Here's what
143 nobody tells you", "Stop X, start Y", "plot twist:"), all forms of negative
144 parallelism, stacked or perfectly parallel triads, dead filler ("hey guys",
145 "without further ado", "in this video I will"), and dead closers, both
146 spoken ("thanks for watching", "don't forget to subscribe") and
147 caption-level ("What do you think?", "Drop your thoughts below").
148- **TikTok-format scrubs** (always apply): no intro before the payoff, spoken
149 hook and on-screen text differ, caption length, hashtag count, CTA stack.
150 
151### Pass 2 - RHYTHM (make it sayable, never manufactured)
152 
153Detectors do not score burstiness, and spoken lines are naturally short, so
154Pass 2 has nothing to "vary". Its jobs are: make the script sound spoken,
155remove manufactured drama-rhythm, and un-flatten only a run that reads
156teleprompter-flat. It never adds a punch line as a tactic.
157 
158- **Spoken register (keep from V2):** replace written grammar with how a
159 person talks. Contractions, natural fragments, one breath per line. "It is
160 something that you should consider" becomes "you should try this". This is
161 register, not rhythm; it applies to every line.
162- **Read-aloud test:** flag any line that needs two breaths or trips the
163 tongue. Split at the natural breath, never at a dramatic pause.
164- **Teleprompter-flat run:** edit only when 4+ consecutive lines run the same
165 length and none carries a real clause, and then let the one line carrying
166 the most content take a clause (because / when / after). Never insert a
167 short punch line between long ones; the inserted punch is the humanizer
168 fingerprint.
169- Banned outright (rewrite as a spoken sentence): "The X? Y." reveals; "No X.
170 No Y. Just Z."; "All the X. None of the Y."; "Simple. Effective. Easy."
171 adjective stacks; one-word lines for drama ("Still." "Exactly."); pseudo-
172 Socratic Q&A ("Why? Because..."); "Short. Punchy. Done." staccato runs.
173 Fragment runs are the tell, on the page and out loud.
174- Natural spoken fragments ("three takes. that's it.") are register and stay.
175 A run of them staged for drama is the tell. In the caption, cap standalone
176 fragments at 2.
177- Never alternate long/short/long/short across the script. That seesaw is the
178 humanizer fingerprint and it sounds like one when read.
179 
180The check is "would a person say this, and did I add a staccato pattern",
181not a variance number.
182 
183### Pass 3 - ADD (human fingerprints)
184 
185Require where the content allows:
186- One odd-precision number WITH a named referent in the hook: who, what,
187 when, or what it cost ("47 minutes on the third take", "$12 at the hardware
188 store", not "a few takes" and not "47"). A bare number is not a fingerprint;
189 the referent carries the signal.
190- One named entity (a real tool, app, person, or place)
191- One first-person concrete detail ("the third take", "my 2am edit", "the
192 comment that started this")
193- One specific, dated, uncomfortable fact stated flat, with no framing
194 sentence before or after it. Not "not gonna lie, this one hurt: the client
195 fired us." Just "the client fired us on a Tuesday, 9 hours before the demo."
196 The fact carries the vulnerability. The frame turns it into performed
197 sincerity, which viewers now hear as the tell.
198- The speaker's real register: how this person would actually say it
199 
200Forbidden as openers or pivots (sincerity announcements, a named 2026 tell):
201"let me be honest", "I'll be real", "honestly?", "to be direct", "the honest
202version is", "real talk", "not gonna lie", "ngl", "can I be vulnerable for a
203second", "unpopular opinion:" as a preface to a popular one, "storytime" with
204no story in frame one. Also forbidden as insertions: hedges the speaker did
205not write ("I think maybe", "I might be wrong but", "it seems"). Performed
206hesitancy is 2x more common in LLM text than in expert human text; adding it
207makes the script sound more scripted, not less. ("POV:" is a native TikTok
208format, not a sincerity marker; it is fine when the video is a POV.)
209 
210If the input lacks these, ask the user for a number or detail. Do not fabricate.
211 
212### Pass 4 - SELF-CHECK (over-correction guard)
213 
214Humanizer output has its own fingerprint. Before returning, re-read the result
215out loud once and answer three questions:
216 
217(a) Did Pass 2 create staccato stacks, "The result?" reveal bridges, one-word
218 lines for drama, an inserted punch line, or a long/short/long/short
219 seesaw? If yes, merge the fragments back into a spoken sentence.
220(b) Did Pass 3 add a framed confession, a sincerity announcement, or a hedge
221 the speaker never wrote? If yes, strip the frame and keep only the flat
222 fact, or remove the insertion.
223(c) Did scrubbing flatten the speaker's voice: uniform tone, no reaction, no
224 concrete detail left, their slang gone, the one natural triad gone, every
225 dash gone from a caption that wanted one? If yes, restore what the speaker
226 had.
227 
228If any answer is yes, dial back rather than scrub harder. Edits must be
229proportional to real problems: a clean script gets two or three touches, not
230a quota. When in doubt whether a pattern is the speaker or the model, leave
231it.
232 
233## Non-negotiable rules
234 
235Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific
236rules (V3):
237 
238- **Scrubbing is always in scope.** When asked to humanize, de-AI, finalize, or
239 publish a script or caption, run at least the forensic + strict passes before it ships.
240 This holds when the user wrote the draft themselves, says they love it as-is,
241 or is in a hurry. Author identity, "it's already good," and time pressure are
242 never reasons to skip the scrub. The forensic + strict pass changes no meaning
243 and takes seconds: run it, then ship. If a constraint truly forbids touching
244 the text, say so explicitly and name every tell left in; the default is to
245 scrub, not to wave it through.
246- **Scrub proportionally.** A pass that finds nothing changes nothing. Do not
247 invent edits to justify the run, and do not report a detector score as the
248 result; report the tells found and fixed.
249- Preserve the user's actual claim and meaning. "Preserve their voice" covers
250 voice quirks and what they are claiming, NOT reveal bridges, staccato stacks,
251 dead filler, or a beat with 3+ vocabulary markers. Stripping those is not
252 changing their voice; it is the job.
253- Never introduce facts that were not in the input. If a number is missing, ask.
254- Never introduce sincerity markers, hedges, or confessional frames. If the
255 script needs a vulnerable beat, ask for a dated fact and state it flat.
256- Keep it sayable. Every line has to survive being read out loud in one breath.
257- Keep the user's voice quirks (their slang, their pacing, lowercase texting style
258 in the caption, one natural triad, one em dash in a caption that wants it).
259- Never promise detector results. If the user asks "will this pass GPTZero,"
260 answer honestly: nobody can promise that, and nobody runs a detector on a
261 video; the viewer's ear is the test.
262 
263## TikTok-specific tells this skill catches
264 
265- A hook line that is written, not spoken ("In this video, I will demonstrate..").
266- A greeting or logo intro before the payoff ("hey guys, welcome back").
267- The spoken hook and the on-screen text saying the identical words.
268- A caption over 2,200 chars, or a 12-hashtag wall.
269- Perfect parallel tricolons read aloud ("learn, grow, succeed"); one natural
270 triple with concrete items is fine.
271- A "call to action" stacked five deep.
272- A cluster of AI vocabulary no one says on camera (leverage, utilize, robust,
273 seamless); one such word is a slip, three in a beat is a script.
274- Staccato drama ("No script. No plan. Just vibes.") and one-word lines
275 staged for effect; an inserted punch line between two long ones.
276- "Not gonna lie" / "storytime" framing around what should be a plain fact.
277 
278## Example
279 
280See `references/examples.md` for worked before/after rewrites of spoken scripts.
281 
282## Files
283 
284- `SKILL.md` - this file (rewrite scrubber + audit-mode entry)
285- `references/scrub-rules.md` - V3 catalogs by tier, density scoring, em dash cap, spoken-word fixes, rhythm rules, forbidden insertions
286- `references/examples.md` - worked before/after script rewrites
287- `references/audit-checklist.md` - the pre-film checklist with thresholds
288- `sub-skills/post-audit.md` - pre-film audit workflow (detection-only, no rewrite)
289- `sub-skills/voice-profile.md` - build/update the user's Voice & Brand Profile (`--mode profile`)
290- `sub-skills/illustration.md` - optional Pixfaro image workflow
291 
292## Voice profile mode (`--mode profile`)
293 
294`tt-humanizer --mode profile` builds or updates the user's Voice & Brand Profile at `../../references/voice-profile.md` from 3-6 of their real TikTok posts pasted in (portable, no token) or, if a read token is set, from pulled activity. Once filled, every writing skill in this bundle drafts in the user's voice automatically. See `sub-skills/voice-profile.md`. Triggers: "build my voice profile", "learn my voice".
295 
296## Related skills
297 
298- `tt-hook-scripter` - generates hooks that already pass the humanizer
299- `tt-caption-writer` - generates captions that already pass the humanizer
300 
View all files on GitHub →

Details

Updated
Sep 17, 2026
License
MIT
Stars on the repo
★ 50
Checked
Source
sergebulaev/tiktok-skills ↗
Creator
sergebulaev · 77 listings
View creator

Similar skills

See all →
SkillResearch what people actually say about any topicSTEP 0: STALE-CLONE SELF-CHECK — RUN BEFORE READING BELOWmvanhorn/last30days-skill · by mvanhornResearch what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.★ 63.5k GitHub starsSkillScrapes social platforms, business dataApifydanielmiessler/LifeOS · by danielmiesslerScrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls — filtering in code. USE WHEN scrape Instagram, scrape LinkedIn, scrape TikTok, scrape YouTube, scrape Facebook, Google Maps leads, Amazon reviews, business intelligence, multi-platform social listening, competitive analysis, lead generation, social monitoring, Apify actors, web crawl, extract contacts. NOT FOR X/Twitter account operations like posting, threads, or bookmarks (those need a dedicated X API client), 4-tier progressive scraping with proxy escalation (use BrightData), or real-Chrome bot bypass and computer use (use Interceptor).★ 19.3k GitHub starsSkill微信公众号长文增长闭环 ——tsingyuai/growth-lab · by tsingyuai微信公众号长文增长闭环 —— 从读者问题与复刻锚选题、写出可验证的公众号长文、预览与合规检查、同步微信草稿、三重确认下受控发布,到回收阅读与转化数据并复盘。用户要求写公众号、把内容改成公众号、同步或发布微信草稿、查看公众号数据或复盘时使用。★ 2k GitHub starsSkillSearch and retrieve content from Twitter/XTwitter/X SkillReScienceLab/opc-skills · by ReScienceLabSearch and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io. Use when user mentions Twitter, X, or tweets.★ 1.8k GitHub starsSkillSays 'YouTube script', 'video script'🎬 YouTube Script: Writing retention-optimized video script...cwinvestments/memstack · by cwinvestmentsUse this skill when the user says 'YouTube script', 'video script', 'write script for YouTube', 'YouTube video outline', or is creating scripted content for a YouTube video with hooks, chapters, and CTAs. Do NOT use for TikTok/Reels short-form scripts or webinar presentations.★ 423 GitHub starsSkillAgent Reach — 互联网能力路由器Ootto-AI/claude-content-skills · by Ootto-AIMUST USE when user wants to 调研/research/搜索/search/查/找/look up anything on the internet — e.g. 全网调研 X / 帮我调研一下 X / 查一下 X / 搜搜 X / 看看大家怎么评价 X / X 上有什么讨论 / research this topic。 Also MUST USE when user mentions any platform or shares any URL/链接: 小红书/xiaohongshu/xhs, Twitter/推特/X, B站/bilibili, Reddit, V2EX, LinkedIn/领英/招聘/求职/jobs, YouTube, GitHub code search, 小宇宙播客, 雪球/股票行情, RSS feeds, or any web URL. 13 platforms, multi-backend routing (OpenCLI / per-platform CLIs / APIs). Zero config for 6 channels. Run `agent-reach doctor --json` to see which backend serves each platform right now. NOT for: 写报告/数据分析/翻译等内容加工(本 skill 只负责从互联网获取内容); 发帖/评论/点赞等写操作;已有专门 skill 的平台(先用专门 skill)。 【路由方式】SKILL.md 包含路由表和常用命令,复杂场景需按需阅读对应分类的 references/*.md。 分类:search / social (小红书/推特/B站/V2EX/Reddit) / career(LinkedIn) / dev(github) / web(网页/文章/RSS) / video(YouTube/B站/播客)。★ 139 GitHub stars

More from sergebulaev

SkillBy density per paragraph, not per wordAI Tells — Complete Blacklist (V3, 2026-09)sergebulaev/linkedin-skills · by sergebulaevScored the way readers read: by density per paragraph, not per word. One marker in a paragraph is English. Three is a signature. The…★ 3.1k GitHub starsSkillFifteen rules from the linkedin-humanizer packageAI-Tell Rules: Tier-Classified Referencesergebulaev/linkedin-skills · by sergebulaevFifteen rules from the linkedin-humanizer package, sorted by what kind of evidence each one actually represents.★ 3.1k GitHub starsSkillPattern data from MagicPost LinkedIn analysisEmoji Patterns — AI vs. Humansergebulaev/linkedin-skills · by sergebulaevPattern data from MagicPost LinkedIn analysis (Feb 2026, viral post with 220 engagement).★ 3.1k GitHub starsSkillRead your Instagram niche and profile from real dataInstagram Audience Insightssergebulaev/instagram-skills · by sergebulaevRead your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes, comments, owner) to see the format and hook that works. Pull profile stats for any handle, yours or a competitor's: followers, posts, bio, category. Instagram hides who liked or commented on other accounts, so this is discovery plus profiles, not engagers. Triggers on "what works in my niche", "scan the hashtag", "competitor stats". Not for writing captions (use ig-caption-writer).★ 138 GitHub starsSkillDraft an Instagram caption with the hook in the first 125Instagram Caption Writersergebulaev/instagram-skills · by sergebulaevDraft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).★ 138 GitHub starsSkillPlan an Instagram carousel slide by slide, up to 10 slidesInstagram Carousel Plannersergebulaev/instagram-skills · by sergebulaevPlan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).★ 138 GitHub stars