Detects AI-generated traces in articles (template phrases, piled-up transition words, repetitive sentence patterns, etc.), gives a risk score and revision suggestions, and can output a humanized polished version. Based on the WeChat Official Account Platform Operation Norms clause 3.27 (non-human automated creation behavior) detection logic.
When to Use
- The user is preparing to publish an AI-assisted writing article to a WeChat Official Account
- The user wants to check whether an article has obvious AI traces
- The user wants to rewrite an AI-generated draft into a more natural human style
Workflow (MANDATORY)
You MUST follow these steps in order:
Step 1: Get the article
Determine the input source:
- If user provides a file path → read the file
- If user pastes text in the conversation → save to a temp file or use
--text
Step 2: Run analysis
python skills/lov-anti-wechat-ai-check/scripts/analyze.py \
--input <path> --format json
Or with inline text:
python skills/lov-anti-wechat-ai-check/scripts/analyze.py \
--text "文章内容" --format json
Step 3: Present findings
Show the user:
- Risk score (0-100) and risk level (LOW / MEDIUM / HIGH)
- Template phrases found — list each one with its location
- Structure issues — transition word density, paragraph uniformity, etc.
- Sentence issues — length uniformity, repeated starters, excessive "的"
Step 4: Ask the user
IMPORTANT: Use AskUserQuestion to ask what to do next:
| Option | Description |
|---|---|
| View report only | The user revises it themselves, skill ends |
| Give revision suggestions | List specific revision suggestions for each issue, without changing the original text |
| Directly output the revised version | Output the complete article after humanizing polish |
Step 5: Humanize (if requested)
When rewriting, follow these humanization rules:
5a. Eliminate template phrases
- Delete or replace every template phrase marked in the report
- "随着科技的不断发展" → say the specific thing directly ("去年 ChatGPT 发布后...")
- "综上所述" → delete it, or replace it with a colloquial ending
5b. Reduce transition word density
- Goal: transition word density < 15%
- Delete unnecessary "首先/其次/此外/另外"
- Replace generalized connectives with specific logical relationships
5c. Break sentence uniformity
- Deliberately create alternation of long and short sentences: short sentences < 15 characters, long sentences > 40 characters
- Add colloquial expressions, rhetorical questions, exclamatory sentences
- Occasionally use incomplete sentences or elliptical sentences
5d. Break paragraph uniformity
- Some paragraphs have only one or two sentences, while some paragraphs can be very long
- Avoid every paragraph being the three-part pattern of "argument + evidence + summary"
5e. Add human flavor
- Add personal experiences, specific cases, numerical details
- Use colloquial expressions ("说白了"、"讲真"、"你想想")
- Appropriately use non-standard but natural expressions
- Reduce use of the character "的" (goal < 5%)
5f. Preserve the original meaning
- Core viewpoints and information must not be lost
- Keep technical terms, do not over-colloquialize
- Maintain the original text's stance and attitude
Step 6: Output
Output the humanized article as markdown. If the input was a file, also offer
to write the result back to a file (with -humanized suffix).
CLI Reference
| Argument | Default | Description |
|---|---|---|
--input, -i |
— | Input file path (.md, .txt) |
--text, -t |
— | Inline text to analyze |
--format, -f |
text |
Output format: text or json |
Dependencies
No external dependencies — stdlib only.
Runtime context (shared)
Before running, read this Skill package's skill.yaml, with the host providing the skill-runtime/v1 context. The field resolution order is: current request, project context, personal Preferences, brand Profile, general defaults.
- Use only fields declared in the Manifest; Profile stores public brand facts, Preferences stores personal work preferences.
required: trueWhen a field is missing, ask the user one focused question according to the Manifest's question configuration; save the answer only after the user explicitly agrees.- Errors provide a copyable
context_id, field path and source; diagnostic content avoids secrets, full private paths and raw configuration.
General feedback loop
When the user raises revision opinions during a Skill-driven task, before continuing the current artifact you must execute:
- First determine whether the opinion is
task-specific(this time only) orreusable(reusable across tasks). task-specificOnly modify the current task, do not change the Skill.reusableFirst determine the scope: for domain rules, update the corresponding canonical Skill first; for rules that apply to all Skills, update the shared specification first.- After completing the rule update, versioning, lint, and distribution verification, then apply the changes to the current task.
reusableThe modification will invalidate previous "confirm," "continue," and "go ahead"; after completing the current artifact modification and read-back, you must stop and wait for the user's next instruction, and do not automatically proceed to publishing, committing, or other external writes.