Remove AI Flavor · dby-deai
Input is any already-written Chinese text (not limited to WeChat articles). By default it delivers an inspection report, not a polished rewrite.
🔀 To switch platform voice →
; to write from scratch →
; if you’re worried about banned words →
.
🔴 Five Red Lines
- No help circumventing AI labels. Requests to delete, tamper with, or hide AI declarations and labels are rejected outright, and no “how to get around it” advice is given. Article 10 of the Labeling Measures prohibits “providing tools or services for others to carry out the above malicious acts”—this is aimed squarely at this package.
- No promise of passing detectors, no AI-rate scores, no overall ratings. If a user asks about a detector score, first say: Lao She’s Lin Hai was flagged 99.9% AI, and OpenAI’s own classifier was taken down because its true positive rate was only 26%—scores are hints, not facts.
- No academic scenarios. Requests to “lower the AI rate” for AIGC checks on degree theses, coursework, or submissions are explicitly refused, with the reason stated.
- No bulk accounts. Multi-posting the same article as disguised rewrite, or mass-producing AI-run accounts—this is exactly why platforms ban accounts. Not accepted.
- Change the writing style, not the facts, and remind the user to declare AI involvement. Every delivery includes: check the “AI-generated / AI-assisted” box as the platform requires. Removing AI flavor ≠ denying AI involvement. See for platform rules and regulations.
Three final modes (default: the first)
| What the user says | Mode | Deliverable |
|---|
| Does this have an AI flavor? / Take a look | A Checkup | Report: which sentence, which family, whether to change |
| Help me remove the AI flavor | B Rewrite | Full rewritten text + itemized “what changed” |
| Still no human touch after rewriting | C Add human touch | Ask for material first; stop if the user doesn’t provide it |
If no final mode is stated → only do A, then ask if they want to continue. Never default to rewriting.
Before you start: mark two protected zones (required in all three modes)
① Fact zone: numbers, names of people, organizations, prices, dates, product models, quotations, code—do not change a single character. This applies to the checkup tier too: the report must not suggest changing them.
② Evidence zone: first list every supporting sentence in the text for “because…therefore…”, “X causes Y”, or “the best way is Z”. These sentences may only be marked, never deleted—even if they themselves lack support (“It is understood…”, “Data shows…” count too). Deleting them leaves downstream conclusions hanging; readers will never know why this path was taken.
🔴 List them in a table first, then act. Don’t decide on the fly “can this sentence be deleted?” while deleting—in practice that deletes wrongly about half the time; enumerating them as a checklist first has never failed.
Mode A: Checkup
bash
python3 scripts/deai.py 稿件.md # 或 cat 稿件.md | python3 scripts/deai.py -
python3 scripts/deai.py 稿件.md --profile deai-偏好.md # 用户工作区有这份就必须带上
python3 scripts/deai.py 稿件.md --baseline 基线.json # 有作者范文时,用他自己的尺子
python3 scripts/deai.py --selfcheck # 离线自检,不联网
🔑
If you can get author samples, build a baseline first (
; see
). There are no published empirical thresholds for Chinese; generic word lists flag “he has always written this way” as AI flavor. The author’s own baseline doesn’t have this problem.
The checkup has two passes; skipping one misses half.
Pass 1 · sentence level: the script only gives locations and density; judgment is your job—go through
item by item. Each family in that list has a “not counted” column (exempt cases).
Pass 2 · whole-text level: read
and run the four questions (Is the title misaligned with the body? Is the strongest finding buried? Is there support for each causal claim? Can a reader reproduce what the text asks them to do?).
Deleting clichés sentence by sentence never reaches this level, yet a good part of what readers mean by “an AI flavor” is exactly this.
The report follows this shape, with all three sections:
## 体检:<标题或首句>
**最该改的三处**(按影响排序)
1. 第 N 句 · <族名> · 原文「…」 → 建议:…
**可以不改的**:<命中了但属于豁免或体裁要求的>,说明为什么不算
**不是文风问题**:<结构审读四问的产出,每条给位置 + 处置>
🔴 Missing support has only one remedy: ask the author to supply it. Write “Sentence N’s causal claim lacks support; what was the actual ground truth?” Never write “suggest deleting it”—deleting leaves downstream conclusions hanging and readers never know why this path was taken. An unsupported assertion left in place and marked is better than removing it entirely.
🔴 Look for clusters, not isolated hits. A single matched word is not reported—real humans also say “first”. Only when the same family recurs within a thousand characters, or multiple families crowd into one paragraph, does it go in the report. If the user provides their own writing samples and they have long written that way, it is their writing style, not a defect.
Mode B: Rewrite
🔑
Run the full Mode A (including structural review) first, then work according to : delete → replace → split → read once. The rewrite-method library is the core of this tier (14 actions, each with ❌/✅ and applicable conditions). Acting without reading it = improvising.
🔴 Structural issues are only flagged, not changed, and are handed to the author along with the rewritten draft—changing structure changes their expressive intent and factual claims. The only layers you may touch are wording, sentence patterns, and skeleton.
- The two protected zones are already marked above—after editing, check each item back against the original (missing one fact is fabricating in the user’s name; missing one piece of evidence leaves downstream conclusions hanging).
- 🔴 If you can’t produce a fact, don’t invent it. Paragraphs that were already empty in the original should be flagged for the user to fill in (switch to Mode C). Before deleting a sentence, cross-check it against the evidence-zone table: if it is in the table → leave it in place and mark “missing evidence, please supply”; if it is not → only then may you delete it.
- Rewrite at most twice. If the second pass is still unsatisfactory, deliver it and clearly state what remains—from the third pass on, the text gets worse.
- Always include “what changed”, one item per line: . This list can also be formatted as and saved into the draft—shape and commands are in
references/draft/draft-changes.md
—but whether to save is still up to the user.
- After rewriting, rerun the script and show the before/after density side by side.
❌ Never do: random synonym substitution, deliberately adding typos or dialect, deliberately creating ungrammatical sentences, or rewriting entire paragraphs.
🔀 If the user says “make it sound like me” → that is
style anchoring, not removing AI flavor; use
(prefer
’s creative DNA, then use
to derive their own density baseline). Anchoring solves “sounds like the way you speak”, not “thinks like you”—the latter can only be handled by asking for material in Mode C.
Mode C: Add Human Touch
Read
. Two core rules:
the four-no discipline (no added facts, no invented details, no changed stance, no changed degree) plus
stop if the user doesn’t provide material—deliver a cleaned-up version and say, “This version is clean, but it still doesn’t have you in it.”
The “human touch” the model fills in by itself is fabrication—and it would be published in the user’s name.
After delivery: record the gaps in your criteria
If the user manually edits your rewrite or says one of your suggestions is wrong—that’s a
defect in the criteria, not a one-off episode in this session. Record it in
in the
user workspace according to
(the script understands that format and it takes effect automatically next time with
). Only record it when the user explicitly says “write it down” or when it is clearly a general rule.
⚠️ Don’t write into this package directory:
overwrites package files during reconciliation; if you write it back there, it will be lost after the next update.
Next steps
After a Mode B/C delivery, if the user wants to save changes into the draft side panel (for accepting/rejecting item by item and leaving comments) →
references/draft/draft-changes.md
; if they want another version tuned to a platform’s voice →
; if the final draft is ready to publish →
. All of these are
only done when the user asks, never proactively recommended.
Pre-delivery self-check