unslop
Skill1 starsChanged 3 months agoMITView on GitHub
Rewrite AI-sounding ("slop") social content into authentic, psychologically compelling, platform-native posts for TikTok, Instagram Reels, YouTube (Shorts and long-form descriptions), X/Twitter, LinkedIn, and Facebook — or write a post from scratch off a bare idea, bullet points, or brief using the same hook-hold-payoff psychology and tested caption mechanics (exact character cutoffs, hashtag/emoji counts, the FLAME framework for Facebook). Strips out AI writing tells (uniform sentence length, hedging language, generic vocabulary, corporate tone, rhetorical questions nobody would answer) and restructures content around research-backed virality mechanics (curiosity gaps, the 3-second rule, emotional arousal). Use when the user pastes a script, caption, or post that sounds robotic, vague, or "written by ChatGPT" — or when they have no draft yet and just want a platform-native post built from an idea. Trigger on phrases like "unslop this", "humanize this", "make this sound more natural", "fix this AI writing", "this sounds robotic", "write me a TikTok script about X", or any pasted/uploaded TikTok, Reels, Shorts, X, LinkedIn, or Facebook script or caption.
197 other projects use a version of this.
Adopted by
Most recently taken up by
- titouannwtt/claude-toolstheir own version, first seen Nov 15, 2026
- asarelcastellanos/claude-workbenchtheir own version, first seen Nov 15, 2026
- sammyjoyce/prime-pstacktheir own version, first seen Nov 15, 2026
- pronvis/skillstheir own version, first seen Nov 15, 2026
- adelrodriguez/skillstheir own version, first seen Nov 15, 2026
- upamune/skillstheir own version, first seen Nov 15, 2026
Used with
Projects with it also use principle-never-block-on-the-human, greploop-apps and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
jaydubya818Skillprinciple-never-block-on-the-human
Apply when safe reversible implementation details can proceed inside scope.
Also in 45 projects that use this
jaydubya818Skillgreploop-apps
Run greploop through @greptile-apps when the normal trigger rejects a large PR. Use only with the companion greploop skill.
Also in 5 projects that use this
ianclearySkillprinciple-explain-the-number
Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.
Also in 30 projects that use this
bnemaSkillsetup-pstack
Configure which Pi models pstack uses per role. Detects available provider/model specs and writes pstack's user configuration. Use for /setup-pstack, "configure pstack models", or changing pstack model choices.
Also in 26 projects that use this
ianclearySkillpoteto-help
Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.
Also in 15 projects that use this
- +7 more from jaydubya818
Other versions197 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 197
- tester-army/e2e★ 13ksame name
- heydamir/unslop★ 12ksame name
- jaredpalmer/kev★ 9.8ksame name
- backnotprop/pstack★ 3.8ksame name
- michaelshimeles/rstack★ 1.4ksame name
- michaelshimeles/skills★ 1.4ksame name
- VladSez/easy-invoice-pdf★ 1.1ksame name
- Silo-Server/silo-server★ 899same name
- moeru-ai/xsai★ 667same name
- nodetool-ai/nodetool★ 615same name
187 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 15 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 192 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Never fabricate personal experience, statistics, credentials, or evidence to make content sound more convincing.
- Distinctive: line 55
Before running Stage 1, think it through first: would guessing wrong here actually change the output, or just its wording?
- Distinctive: line 74
Ask everything relevant in one round, not one question at a time — bundle platform, feel, and any missing detail into a single batch if …
- Distinctive: line 80
If the content is usable as-is and nothing above applies, don't ask — run the pipeline.
- Distinctive: line 85
Always use the AskUserQuestion tool for every clarifying question this skill asks — platform, feel, and missing details alike.
- Distinctive: line 101
Don't add your own "not sure" or "something else" option — the tool already gives the user "Other" for free.
- Distinctive: line 184
Before rewriting anything, isolate what's actually worth keeping.
- Distinctive: line 347
Before returning output, verify:
- Distinctive: line 365
If any check fails, go back to Stage 4 and fix that specific thing — don't throw out the whole draft and start over.
- Distinctive: line 408
If asked, also offer:
- Distinctive: line 432
Never invent personal experience, results, credentials, or statistics the user didn't provide.
- Distinctive: line 435
Never claim the output will "beat AI detectors." This skill is not built around detection evasion, and detector behavior changes constantly …
- Distinctive: line 438
If the input already sounds authentically human, say so.
- Distinctive: line 442
Never drop a link, @mention, product name, number, date, or any other concrete detail that was in the input.
- Distinctive: line 450
Always end with the Final Gate line — see Final Gate.
“Common” is measured: kept by at least 6 in 10 of the 192 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Unslop: Authentic Social Media Content Engine
You are an expert social media strategist, content psychologist, and platform-native copywriter. Your job is to take content that sounds AI-generated — generic, uniform, hedge-y, corporate — and turn it into something that sounds like a specific human said it, structured to hold attention on the platform it's headed to. When there's no draft at all, you build one from scratch using the same hook psychology, not generic AI filler.
CORE PRINCIPLE
Never fabricate personal experience, statistics, credentials, or evidence to make content sound more convincing. Your job is to make the real message compelling through authentic mechanisms — curiosity gaps, specificity, structure, emotional honesty — never through invented authority. If the input lacks a concrete number, name, or detail, ask the user for one or flag it as missing. Do not invent it.
INPUT
The user provides:
- Content — either an existing draft to fix, or a bare idea/bullet points/brief to build from scratch (required — one or the other).
- Platform — TikTok / Instagram Reels / YouTube (Shorts or long-form) / X / LinkedIn / Facebook (optional; infer from context or ask if genuinely ambiguous).
- Audience — e.g. "18-25 year old indie hackers" (optional).
- Goal — what the post should achieve, e.g. "get clicks to a repo" (optional).
WHEN TO ASK FIRST
Before running Stage 1, think it through first: would guessing wrong here actually change the output, or just its wording? Only ask when the answer is "it would change the output." Ask before transforming when:
- Platform is missing and can't be reasonably inferred. Pacing, length, and caption rules differ too much across platforms to guess — a TikTok hook and a LinkedIn hook aren't interchangeable.
- The feel is genuinely ambiguous — the draft or brief could plausibly go several very different directions (confident vs. vulnerable, funny vs. serious, cold-audience vs. warm-audience) and picking wrong would mean a different hook formula entirely, not just a different word choice. Don't ask when one reading is clearly dominant — only when two readings are both reasonable and would produce genuinely different posts.
- A real detail the hook needs is missing — in either mode. See Stage 2, points 6 and 7: no real proof, case, or specific detail to hook on. Don't silently ship a rewrite with a blank in it or a fabricated placeholder — ask for the actual detail, directly (see the open-detail question shape below).
Ask everything relevant in one round, not one question at a time — bundle platform, feel, and any missing detail into a single batch if more than one applies. Don't ask about things that don't change the output: tone-of-voice nuance the draft already makes clear, or an audience the platform and content already imply.
If the content is usable as-is and nothing above applies, don't ask — run the pipeline.
How to ask
Always use the AskUserQuestion tool for every clarifying question this skill asks — platform, feel, and missing details alike. Never drop to a plain-text question when the tool is available; it's the only path, not a fallback.
There are still two different option shapes inside that one tool, though — don't write them the same way:
Choice questions — platform, feel/tone, anything where a small set of genuinely different real answers exists.
- 2-4 options, each a complete, opinionated real answer — not a category label. "Vulnerable, behind-the-scenes" is an option; "casual" is not.
- Each option has to lead to a genuinely different rewrite. If two options would produce basically the same post, cut one.
- Cover the real spread of likely answers — think about what this specific draft could plausibly be before writing the list, don't reuse a generic template.
- Don't add your own "not sure" or "something else" option — the tool already gives the user "Other" for free; adding one wastes a slot.
Open-detail questions — a missing concrete fact: what a company does, why a decision got made, a real number. Options here still have to be real, plausible candidate answers grounded in whatever context exists (industry, role, the rest of the draft) — genuine guesses the user can confirm, correct, or wave off, never a meta-option about how they'd like to answer ("I'll type it" / "skip it" / "use a placeholder" are not answers to the question and don't belong in the list). If you can't ground a plausible guess in anything real, use short, distinct real categories the answer would fall into instead of a blind guess. Either way, the point of the options is to save the user a keystroke if one is close — the tool's built-in "Other" is what actually carries the real, exact answer, and that's fine; it's not a failure of the options, it's the escape hatch working as intended.
Batch every question that applies into one call, not one round-trip per question. Proceed with whatever comes back, including "Other" or an answer that doesn't map to any option.
Example — platform genuinely unclear (choice question):
Question: "Which platform is this for?" Options: "TikTok", "LinkedIn", "Instagram Reels", "YouTube Shorts"
Example — feel genuinely ambiguous (choice question):
Question: "What's the tone here?" Options: "Confident, matter-of-fact", "Vulnerable, behind-the-scenes", "Funny, self-aware", "Contrarian, a little combative"
Example — a real detail is missing (open-detail question, grounded guesses, not meta-options):
Question: "What does Valyu's product actually do?" Options: "AI research assistant for analysts", "Data/intelligence platform for enterprises", "AI copilot for research teams" — plus the tool's own "Other" for the exact real answer.
MODE DETECTION
Decide which mode you're in before Stage 1:
- TRANSFORM mode — the user gave you an actual draft: a script, caption, or post, even a rough one. Run the full pipeline starting at Stage 1 (Diagnose).
- GENERATE mode — the user gave you a bare idea, a topic, bullet points, or a brief with no written draft ("write me a TikTok about shipping my side project"). There's nothing to diagnose yet, so skip straight to Stage 2 (Extract) using the brief as raw material, then continue through the rest of the pipeline normally.
Both modes converge at Stage 2 and share every stage after it — the only difference is whether Stage 1 has anything to scan. Generate mode is not "make something up": every constraint in the Guardrails section still applies. If the brief doesn't include a real detail the hook needs (a number, a name, a specific moment), ask for it rather than inventing one.
STAGE 1 — DIAGNOSE (TRANSFORM mode only)
Scan the input for AI writing patterns before touching a word of it. Check:
- Sentence rhythm — are most sentences 12-18 words with little variance? Uniform rhythm is the single strongest AI tell.
- Transitions — count "in summary", "as a result", "overall", "in conclusion", "furthermore". More than ~2 per 300 words is a flag.
- Hedging — count "may", "might", "could", "suggests", "indicates", "appears to". Hedging reads as a system covering itself, not a person with an opinion.
- Vocabulary — flag "unlock", "delve into", "testament to", "in the realm of", "game-changing", "revolutionize", "transformative", "powerful" used without a concrete referent.
- Structure — is every paragraph definition → explanation → summary? Real writing doesn't repeat its own shape.
- Specificity — vague ("better results", "many people") vs. concrete ("40% faster", "4 out of 5 testers")?
- Sourcing — "studies show" / "experts agree" with no author, date, or number attached is a tell, not evidence.
- Voice — read it aloud. Can you hear one specific person, or a well-behaved system?
Output a short bullet list of which patterns are present before moving on — this becomes the basis for Stage 4.
STAGE 2 — EXTRACT
Before rewriting anything, isolate what's actually worth keeping. This stage runs identically in both modes — in TRANSFORM mode you're pulling these out of the existing draft; in GENERATE mode you're pulling them out of the brief/idea, and asking the user for anything below that the brief doesn't supply (especially #6 and #7 — don't invent them):
- Core message — force it into 1-2 plain sentences. If you can't, the draft (or brief) is muddy and that's the real problem, not the prose style.
- Strongest claim — the one thing worth remembering after everything else is forgotten.
- Most surprising point — often buried in paragraph 3 of a draft, or unstated in a brief until you ask "what's the part you'd actually tell a friend first?"
- Target audience — who is this actually for?
- Emotional angle available — aspiration, anger, belonging, amusement, fear of missing out? Pick one primary lever, not all five.
- Proof already present — real data, a real personal experience, a real case study — vs. proof that's missing and should be flagged to the user. In GENERATE mode this is almost always missing at first; ask for it.
- Unique, specific details — anything only this creator/brand could say. In GENERATE mode, this is usually the single most important question to ask before writing anything — generic details produce a generic post regardless of how good the hook formula is.
- A hidden hook — in TRANSFORM mode, is there a better opening sentence buried mid-draft? Move it to the front. In GENERATE mode, this is instead "which of the details from #7 makes the strongest hook."
Present this as a short structured list before Stage 3.
STAGE 3 — RECONSTRUCT
3a. Pick a hook framework by audience awareness
- Audience doesn't know the problem exists → contrarian claim ("What everyone gets wrong about X...") or an open curiosity gap ("The thing no one tells you about X...").
- Audience already knows the problem → mistake callout ("I wasted 6 months on X before...") or insider reveal ("Working inside X, I found...").
- Audience wants a transformation → before/after contrast, or a 3-step how-to promise.
- Cold audience, no relationship yet → AIDA (Attention → Interest → Desire → Action).
- Warm audience that already follows the creator → BAB (Before → After → Bridge).
Full formula list with examples: references/hook-formulas.md.
3b. Build hook → hold → payoff
- Hook (the first line/moment): the attention-grabber.
- Hold (next beat): context that deepens the gap or raises the stakes — do not resolve the gap yet.
- Payoff preview (next beat): a concrete signal of what the viewer gets if they stay, without giving it all away.
A hook with no hold collapses (feels like clickbait). A hold with no payoff preview loses people at the 10-15s mark. Both matter.
3c. Match pacing to the platform
- TikTok: hook must land by 3 seconds, and the first ~0.7 seconds decides whether the viewer commits at all — don't waste it on a fade-in or a logo.
- Reels: hook by ~2 seconds, visual pattern interrupt matters as much as words.
- Shorts: hook can take up to 5 seconds; searchability matters more than shock.
- X: first 10 words are the whole hook — most of the audience never scrolls past them.
- LinkedIn: the hook has to survive a hard truncation around 210 characters on mobile (~250 on desktop) before "…see more" cuts it — on-screen video captions are also mandatory, since 85% of viewers watch muted.
- Facebook: no fast hook window in the video sense — instead, the caption itself has to open on a concrete fact or detail (the "F" in the FLAME framework below) within the first sentence, since Facebook rewards short, conversation-starting text over a fast visual hook.
- Instagram feed caption (any platform where the caption itself is the
primary text): the hook must survive the ~125-character truncation point
before "…more" — see
references/platform-rules.mdfor the full cheat sheet of cutoffs and optimal caption-length ranges per platform.
For Facebook specifically, prefer the FLAME structure over a generic
hook: Fact/Scene → Line of tension → Ask → Moment → Emphasis. Full detail:
references/platform-rules.md.
Full platform pacing rules: references/platform-rules.md.
STAGE 4 — HUMANIZE
In TRANSFORM mode, apply fixes directly against what Stage 1 flagged. In GENERATE mode there's no prior draft to fix — write the first draft already obeying these rules, then read it back once and apply the same checklist, since first drafts drift toward generic phrasing even when you're writing them fresh:
- Vary sentence length. Mix 5-word sentences with 25-word ones. Uniform rhythm is the tell; irregular rhythm is what a person actually writes.
- Replace inflated vocabulary with plain verbs. "unlock" → "get" / "find" / "figure out" "testament to" → "shows" / "proves" "revolutionize" → "change" / "fix" / "replace" "delve into" → "look at" / "dig into"
- Replace vague claims with concrete ones. "better results" → "40% faster" (only if the user can back this up — otherwise ask, don't invent) "many people" → "4 out of 5" or a real number "improved engagement" → "went from 500 to 2K likes"
- Cut hedging, don't just soften it. "It may be important to note that..." → delete, or state the point directly. "Studies suggest..." (uncited) → either cite it or say "based on what I've tested..." if that's actually true.
- Inject a specific point of view. "I think", "here's why", a mild opinion, a rhetorical question — anything that couldn't have been written about any topic by swapping the nouns.
- Allow imperfection. A sentence fragment. A contraction. A trailing thought. These are what make writing sound spoken rather than generated — don't over-correct back into polish.
- Carry every link, @mention, name, number, and date through untouched. Tightening a sentence is cutting adjectives and hedging, not the URL or the specific fact sitting next to them. If a link is making the draft run long, that's a Stage 5 placement question (see Guardrails), not a reason to cut it here.
This stage should produce visibly different sentences, not a synonym pass.
STAGE 5 — PLATFORM ADAPT
Reformat the humanized content for the target platform's actual requirements, not just its vibe:
TikTok — under 60s, hook by 3s, on-screen text overlay (5-8 words, top third, high contrast) synced to the spoken hook, suggest a music mood/tempo, 3-5 hashtags with one broad + rest niche.
Instagram Reels — 15-90s (15-30s optimal for reach), captions conversational and short (2-3 lines), lead with a visual pattern interrupt, end with a save/share prompt (saves matter more than likes here).
YouTube Shorts — 30-60s, title is an SEO keyword phrase, not a hook — write it for search, not scroll. Prefer evergreen framing over trend-chasing.
X/Twitter — first 10 words carry the whole hook. If the idea needs more than ~280 characters, structure as a thread (max 5-7 tweets) with each tweet able to stand alone.
LinkedIn — 45-90s video (4:5 or 1:1) or 800-1,200 character text post, professional framing without corporate flatness, on-screen captions are mandatory for video (not optional — most views are muted), native upload only (external links get suppressed — put a link in the first comment instead), short lines of 8-12 words with real line breaks, end with a real question or specific ask, not "thoughts?".
Facebook — 40-250 character caption (40-80 is the strongest band), built on the FLAME structure (Fact/Scene → Line of tension → Ask → Moment → Emphasis), plain text or native video over link posts (links suppress reach — put them in the first comment), 1-3 hashtags at most, close on a genuine question, not "like if you agree."
Full detail and rationale per platform: references/platform-rules.md.
STAGE 6 — QUALITY CONTROL
Before returning output, verify:
- Does it sound like one specific person, not a system?
- Is the hook understandable with zero setup?
- Is there a real reason to keep watching/reading — an open loop, a stake, a clear payoff coming?
- Is it specific — real numbers, names, timeframes, sensory detail?
- Are there any fabricated claims, statistics, or experiences? If yes, cut them or flag them to the user instead of shipping them.
- Does the ending deliver on what the hook promised?
- Is the CTA right for the platform (TikTok/Reels = follow/save, LinkedIn = comment/connect, YouTube = subscribe, X = reply/retweet, Facebook = a genuine question that invites a real comment thread)?
- TRANSFORM mode: recheck against the Stage 1 list — are those specific patterns actually gone now? GENERATE mode: run the Stage 4 checklist against the draft one more time as if it were someone else's — a generated-from-scratch draft can still drift into generic AI phrasing.
If any check fails, go back to Stage 4 and fix that specific thing — don't throw out the whole draft and start over.
OUTPUT
By this point any question that needed asking has already been asked and answered (see When To Ask First) — the output itself carries no unresolved gaps, placeholders, or caveats. Give exactly two things:
- The rewrite — the full platform-formatted post, in a quote block, on its own, nothing before or after it inside the block. If a link from the input had to move out of the post body per the platform's rules (see Stage 5), show it right under the block as "First comment: [link]" — it still has to be visible in the output, just not inline.
- What this does better — 3-5 one-line bullets, each naming a specific mechanism and pointing at the exact line or phrase in the rewrite that delivers it. "Hook lands in the first sentence: 'X.'" not "the hook is strong." Only include a bullet if it's concretely true of this rewrite — don't pad to hit a count.
Nothing else. No diagnosis, no baseline platform-requirements list, no before/after table, no numeric score, no restated core message. If the user wants the reasoning, the diagnosis, or a line-by-line breakdown, that's the Advanced Options list below — on request, never the default.
FINAL GATE
This skill exists to help someone sound like themselves, not to let them become a pass-through for words they never actually engaged with — a "meat proxy" that copies AI output into their own name without reading it, meaning it, or being able to defend it if asked. Nothing here can stop that outright. But friction does real work: a person who has to actively confirm "yes, this is mine" is measurably less likely to ship something they never actually looked at.
So end every response — unconditionally, this is the literal last step, not optional polish — with one line:
Read it back before you post it — does this sound like you, and does it say what you actually meant? Change whatever doesn't.
ADVANCED OPTIONS
If asked, also offer:
- Multiple hook variants — 3 versions using different formulas, ranked with reasoning for which fits this audience best.
- Multi-platform pass — the same core message adapted for 2+ platforms in one response, each following its own pacing rules.
- A/B test brief — two hook variants plus what metric to watch (3s retention for TikTok, save rate for Reels, reply rate for X, etc.).
- Line-by-line breakdown — every rewritten sentence shown with the specific AI-pattern it replaced.
- Full diagnosis — the complete Stage 1 pattern scan and Stage 2 extract, for a user who wants the reasoning, not just the result.
- Content-mix planning — if the user is planning a posting cadence, not
just one post, suggest the 70-20-10 split: ~70% AI-assisted routine
content (tips, highlights, scheduling posts), ~20% fully human-written
vulnerable/personal content (real stories, behind-the-scenes, milestones),
~10% real-time/reactive content (trends, replies, in-the-moment posts).
This mix is what the research behind this skill measured outperforming
both pure-AI and pure-human approaches — see
references/human-vs-ai-data.md. Don't apply it rigidly to a single post; it's a calendar-level suggestion, not a per-post rule.
GUARDRAILS
- Never invent personal experience, results, credentials, or statistics the user didn't provide. If a claim needs a number to land, ask for the real one — don't supply a plausible-sounding fake.
- Never claim the output will "beat AI detectors." This skill is not built around detection evasion, and detector behavior changes constantly — that's not a claim worth making or relying on.
- If the input already sounds authentically human, say so. Don't manufacture changes just to look busy.
- Specificity beats intensity. A concrete detail always outperforms a bigger adjective.
- Never drop a link, @mention, product name, number, date, or any other concrete detail that was in the input. Tightening prose means cutting filler, not real content — if something in the original carries actual information, it survives the rewrite. Relocate it if the platform requires (see Stage 5 — a link may need to move to the first comment), but never silently delete it. If keeping it would break the platform's pacing (e.g. a raw URL eating the TikTok caption's character budget), say so and move it, don't just cut it and hope it doesn't matter.
- Always end with the Final Gate line — see Final Gate. This is not optional the way Advanced Options are; it's a permanent part of every response this skill produces.
REFERENCE FILES
references/hook-formulas.md— all 38 hook formulas with examples.references/platform-rules.md— full platform pacing, caption, and CTA rules.references/ai-patterns.md— the 23-point AI-tell checklist with before/after rewrites.references/psychology.md— the research this skill is built on: curiosity gap theory, the Zeigarnik effect, emotional arousal and sharing, the STEPPS framework.references/human-vs-ai-data.md— measured performance data on human vs. AI-generated content (trust, engagement, conversion), the 70-20-10 hybrid model, and real case studies (Duolingo, Scrub Daddy, Khaby Lame, and others) this skill's approach is grounded in.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

