Integrating humanizer into the Agent Skill System — and the Missing Chinese Piece
AI-generated text sucks in a specific way. Not always — but when it does, the patterns are predictable. Wikipedia's WikiProject AI Cleanup has been cataloging these for years, and the humanizer project distills them into 29 concrete patterns.
We just wove humanizer through our entire agent skill system. Here's what we did, why, and the v2 iteration that fixed the biggest pitfall: anti-slop that strips professionalism.
The Problem
Our blogging pipeline generates bilingual posts: EN draft first, then translated to ZH. The EN draft comes straight from an LLM, carrying all the classic tells.
Our job-hunting greeting pipeline has the same issue but in a different flavor: sycophantic tone creeping into boss greetings, four-character idiom clusters pretending to be eloquent, "在当今...时代背景下" boilerplate openings.
Phase 1: Integrate humanizer (Six Skills Modified)
We embedded humanizer references into six skills:
Blog pipeline
blog-source-content: EN draft → humanizer pass → translate. Catch the most common AI tells — inflating significance ("marks a pivotal moment"), stacking promotional adjectives, vague attributions to unnamed "experts," chatbot pleasantries ("I hope this helps!"), and filler phrases — before they get baked into the Chinese translation.blog-repo-analysis: Same treatment — repo analysis posts are notorious for significance inflation ("groundbreaking", "nestled at the intersection of").blog-pre-commit-audit: Added a voice check alongside the existing spelling, grammar, and factuality review — run humanizer on the EN draft, run zh-anti-slop on the ZH draft, verify neither carries AI tells.
Job-hunting pipeline
boss-greeting: Hard constraints against the most damaging AI tells in professional communication: sycophantic tone ("Great question!", "You're absolutely right!"), chatbot artifacts ("I hope this helps!", "Let me know if..."), filler phrases, excessive hedging, and generic positive conclusions ("Exciting times lie ahead").lead-writer: Same principle at top level for multi-channel consistency.
Phase 2: The Professionalism Problem
Then we hit a wall. Our first zh-anti-slop draft used a uniform casual voice. The examples were problematic:
One was the enumeration rewrite: in technical blogs, listing three reasons is legitimate. The AI pattern is the mechanical framing ("第一…第二…第三…") — not the enumeration itself.
Another was the buzzword rewrite ("多层次的AI能力矩阵,实现了…全面升级" → "用AI串了一整套流程"): stripping buzzwords is right. Replacing "multi-layered AI capability matrix enabling paradigm upgrade" with "we strung together a pipeline" is wrong. The rewrite threw out the architecture claim with the buzzwords.
The root cause: no distinction between removing tells and removing substance. A real technical achievement wrapped in buzzwords ("标志着公司技术架构的关键转折点") needs unwrapping — the "主导了平台从MVP到1.0的系统重构" stays.
Phase 3: Related Work Audit
Before rebuilding, we audited what already existed:
Show-Chan97/Humanizer-zh (5★): Straight 1:1 translation of humanizer's 29 English patterns into Chinese. Useful as a reference baseline but adds zero Chinese-specific patterns. It translates "em dash overuse" and "curly quotation marks" — patterns that barely apply to Chinese prose.
devswha/patina (42★): This is the real find. A multi-language (Korean → English → Chinese → Japanese) anti-AI writing orchestrator with:
- Trigger / exclusion conditions per pattern — prevents over-fitting. "三个以上四字成语" triggers, but formal political documents where this is genre convention are excluded.
- Semantic risk labels (HIGH/MEDIUM/LOW) + preservation notes — directly solves the professionalism problem. A HIGH-risk pattern like significance inflation comes with explicit instructions: "replace '标志着里程碑式突破' with specific data, don't delete the positive assessment."
- Burstiness guidance — after breaking parallel structures or idiom clusters, vary sentence lengths intentionally so the fix doesn't create new mechanical patterns.
- Two-phase pipeline — structure first (fix paragraph templates), then sentence/vocabulary.
- Several patterns we missed: 虚假细化 (fake re-qualification — "其实更准确地说..." with no new info), 结论信号词滥用 (mechanical "综上所述" / "总而言之"), 结构性重复 (identical paragraph templates across sections), 修辞性疑问段首 (rhetorical questions as paragraph hooks).
brandonwise/humanizer (66★): OpenClaw port, same 29 patterns — confirms this is a well-distributed skill across agent platforms, not a one-off.
Phase 4: zh-anti-slop v2
The rebuild:
Framework: Adopted patina's trigger/exclusion/semantic-risk/burstiness structure. Every pattern now has:
- Trigger conditions (when to activate)
- Exclusion conditions (when to skip)
- Semantic risk label + preservation instructions
- Burstiness guidance where relevant
Voice tiering:
| Tier | When | Example |
|---|---|---|
| professional (default) | Tech blogs, boss greetings, lead docs | "系统用了分布式架构,支持横向扩展" |
| casual | Personal opinion, social media | "分布式这事,说实话就是多挂几台机器" |
| formal | Reports, official docs | "该系统采用分布式架构设计" |
For our pipelines, professional is the default. Boss greetings use professional register in conversational flow — not casual register.
20 patterns across 6 categories:
- Structure: repetitive paragraph templates, 总分总 overuse, rhetorical question openings
- Content: significance inflation, media coverage inflation, verb-stacking, promotional language, vague attributions, formulaic challenges and boilerplate openings
- Language: buzzword stacking, idiom stacking, over-normalized grammar, parallel structure overuse, synonym cycling, verbose preposition structures
- Style: connective abuse, boldface and list-ification, officialese
- Communication: chatbot artifacts, cutoff disclaimers, sycophantic tone
- Filler and hedging: filler phrases, stacked hedging, empty conclusions, fake re-qualification, conclusion signal words
Plus the dedicated entry for "发挥着越来越重要的作用" — the single most overused Chinese AI phrase.
How They Work Together
EN draft → humanizer pass → cleaned EN
↓
translate to ZH
↓
cleaned ZH → zh-anti-slop pass (professional tier) → final ZH
At audit: the pre-publish quality check verifies both locales — EN draft free of English AI tells, ZH draft free of Chinese AI tells. Both preserving professional substance.
What We Learned
-
Anti-slop is not anti-substance. The hardest line to draw: a technical claim wrapped in buzzwords needs unwrapping, not deletion. The trigger/exclusion/risk framework makes this operational rather than subjective.
-
Chinese AI writing has its own fingerprint. Idiom stacking, four-character phrase clusters, boilerplate era-setting openings, and officialese — these are as diagnostic as English AI vocabulary. No existing tool covered them systematically.
-
Patina is worth studying as architecture, not just content. Its two-phase pipeline, semantic preservation system, and burstiness guidance are design patterns we should adopt more broadly — not just for anti-slop but for any LLM-output refinement pipeline.