User-Facing Text Cleanup
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
Detects and rewrites machine-sounding patterns in the body text of Chinese articles while keeping the author's facts, headings and legal terms intact.
SKILL.md written in Chinese; this summary is our English description.
$ npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cat-xierluo/legal-skills de-ai-polish --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cat-xierluo/legal-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/de-ai-polish .claude/skills/de-ai-polish && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "de-ai-polish" agent skill from https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polish into .claude/skills/de-ai-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "de-ai-polish", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polishType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cat-xierluo/legal-skills de-ai-polish --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cat-xierluo/legal-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/de-ai-polish .agents/skills/de-ai-polish && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "de-ai-polish" agent skill from https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polish into .agents/skills/de-ai-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "de-ai-polish", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cat-xierluo/legal-skills de-ai-polish --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cat-xierluo/legal-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/de-ai-polish .cursor/skills/de-ai-polish && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "de-ai-polish" agent skill from https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polish into .cursor/skills/de-ai-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "de-ai-polish", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cat-xierluo/legal-skills.git --path skills/de-ai-polish--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cat-xierluo/legal-skills de-ai-polish --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cat-xierluo/legal-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/de-ai-polish .gemini/skills/de-ai-polish && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "de-ai-polish" agent skill from https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polish into .gemini/skills/de-ai-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "de-ai-polish", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cat-xierluo/legal-skills de-ai-polishInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cat-xierluo/legal-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/de-ai-polish .github/skills/de-ai-polish && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "de-ai-polish" agent skill from https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polish into .github/skills/de-ai-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "de-ai-polish", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cat-xierluo/legal-skills de-ai-polish --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cat-xierluo/legal-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/de-ai-polish .opencode/skills/de-ai-polish && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "de-ai-polish" agent skill from https://github.com/cat-xierluo/legal-skills/tree/main/skills/de-ai-polish into .opencode/skills/de-ai-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "de-ai-polish", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
de-ai-polishDetects and rewrites machine-sounding patterns in the body text of Chinese articles while keeping the author's facts, headings and legal terms intact.
The skill reviews Chinese article text for patterns that read as machine-written: template phrasing, posturing, hidden parallel lists, repeated sentence skeletons, false rankings and fixed rhythm. It asks what each sentence is doing before asking whether it sounds like AI, and a word list is only used to find candidates, never to swap words mechanically.
There are two modes: detect, which is read-only and reports findings, and fix, which edits the file and runs a delivery check. The scene (legal document, WeChat commentary, chat reply or general) sets how strong the edits are. Without an author sample it does minimal cleanup and never adds first-person voice, metaphors or invented experiences; with a sample you supply, it can match the author's voice. Headings are never renamed or reordered. The skill text is in Chinese.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f844ebe. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
De-AI Polish for Chinese Articles loads about 2.9k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 55 tokens; SKILL.md has 451 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from cat-xierluo/legal-skills at commit f844ebe, republished under its MIT licence (© cat-xierluo). 451 words, ~2,867 tokens.
.claude/skills/de-ai-polish/SKILL.md (or your agent's skills folder). This skill also uses 63 other files; get the full folder from GitHub.去 AI 化不是禁词替换,也不是给文本注入“公众号人设”。按以下优先级处理:
判断一句话时先问它承担什么功能,再问它是否像 AI。词表只用于召回,不能替代通读。
de-ai-polish 负责正文句子和段落内部的语言表达,不负责文章的信息架构。二级、三级标题及其他 Markdown ATX 标题属于 WeChat Article Writer 或原写作流程的职责范围。
因此默认执行以下边界:
/de-ai-polish detect @article.md # 只检测并给出 finding
/de-ai-polish fix @article.md # 在原文件上修订并执行交付门禁detect 只读,不生成快照或修改文件。fix 必须执行完整工作流。
references/pollution-patterns.md。references/expression-transformations.md。references/sentence-rhythm-guide.md。references/personal-style-guide.md。assets/local-voice-anchors/config.json;用户明确给出 ID 时使用该 ID,否则只在用户已经选择 local_anchor 时读取 default_voice_anchor_id。随后读取同目录下 <voice_anchor_id>.md。整个目录只存本机材料,并由项目 .gitignore 排除。references/quality-scoring.md。不要一次加载无关参考文件。SKILL.md 负责流程,细节以对应 reference 为准。
| scene | 默认力度 | 重点 | 保护范围 |
|---|---|---|---|
legal_document | 克制 | 姿态、过程、格式 | 最宽 |
wechat_public_comment | 较强 | 模板、节奏、语义稀释 | 标准 |
chat_reply | 最小 | 谄媚、协作痕迹 | 标准 |
general | 中等 | 全类 | 标准 |
法律文书中的正式语体、程序术语和固定结构默认保留。
| voice_mode | 使用条件 | 允许行为 |
|---|---|---|
cleanup_only | 没有作者样本或用户未要求匹配声音 | 只清理和澄清;不得注入人设 |
provided_sample | 用户提供并授权本次使用的样本 | 提取十维 profile 后匹配 |
local_anchor | 用户明确要求使用本机个人声音,且配置与对应文件存在 | 按显式 ID 或本机默认 anchor 的深层 profile 校准 |
本机私有 anchor 不属于公共 Skill 内容。default_voice_anchor_id 只是 local_anchor 模式内部的缺省选择,不得把普通 cleanup_only 请求自动升级为个人声音。不得把样本正文、作者 profile、高辨识短语或本机注册表复制到公开配置、测试 fixture、日志或评测元数据中。
<!-- skill-lint:constraint SCENE-DECLARED-BEFORE-REWRITE -->
<!-- skill-lint:constraint VOICE-MODE-DECLARED-BEFORE-REWRITE -->
fix 模式在改写前创建候选外 run-plan.json:
{
"schema_version": 2,
"scene": "wechat_public_comment",
"voice_mode": "local_anchor",
"voice_anchor_id": "my-writing-anchor-v1",
"protected_spans": []
}约束:
cleanup_only 的 voice_anchor_id 必须为 null;provided_sample 使用本次稳定样本 ID,不写样本正文;local_anchor 使用稳定 slug 作为 voice_anchor_id:显式 ID 优先;未给 ID 时,从 assets/local-voice-anchors/config.json 读取 default_voice_anchor_id。并要求注册项及同目录 <voice_anchor_id>.md 均在本机存在;cleanup_only 或请用户重新提供样本,不得假装已经读取;完整通读全文,不得只用正则或 grep 检测。先理解文章要解决的问题、核心判断、目标读者和现有语气。
在任何改写前生成双快照:
python3 scripts/protected_markdown_gate.py snapshot \
--input <源文件.md> \
--output <临时目录>/de-ai-protected-lines.json
python3 scripts/heading_preservation_gate.py snapshot \
--input <源文件.md> \
--output <临时目录>/de-ai-heading-lines.json
python3 scripts/delivery_gate.py snapshot \
--input <源文件.md> \
--run-plan <临时目录>/run-plan.json \
--output <临时目录>/de-ai-delivery-manifest.json<!-- skill-lint:constraint PROTECTED-SPANS-PRESERVED -->
<!-- skill-lint:constraint PRESERVE-MARKDOWN-IMAGE-LINES -->
<!-- skill-lint:constraint PRESERVE-MARKDOWN-HEADING-LINES -->
把以下内容写入 protected_spans 并逐字保护:
同时为需要“作者在场”的关键判断填写 references/personal-style-guide.md 中的作者证据卡。材料不足时标记 AUTHOR_MATERIAL_NEEDED。不得把一般知识改成“我发现”,也不得编造真实案例或写作经历。
不要把全文反复出现的主题词、核心概念或普通术语登记成要求出现次数完全相同的 protected_span,例如文章主题本身的“抽象泄露”。这类词要保持名称一致并保留必要定义,但删除重复段落时允许出现次数下降。若在改写后发现快照误把通用词锁死,不得为了过门禁机械补回;应废弃该次候选,从只读源稿重新选择真实字节不变量并建立新快照,同时记录重启原因。
标题整行属于结构保护项。标题内即使命中模板词,也只记录 finding,不在本流程中改写。
给每段标一个主功能:FACT / EXPERIENCE / JUDGMENT / MECHANISM / EXAMPLE / BOUNDARY / TRANSITION / SUMMARY。
重点检查:
功能标注只作为改写中间表示,不写入交付正文,也不得转写成新的二级、三级标题或编号。
在扫描和改写前,再建立候选外的论证脊柱账本。逐段记录不能被上位总结替代的唯一信息:
源稿锚点:可定位短片段
唯一载荷:该段新增的对象、区分、因果环节、例外、反方、比较、风险放大因素或认识边界
在全文中的作用:它把上一段推进到哪里
处理:逐项保留 / 合并但保留全部载荷 / 可删除的重复
改稿落点:最终段落位置以下内容默认进入脊柱账本:提出核心区分的段落;把一个对象推进到下一条件或后果的中间环节;“风险并不均匀/为什么某一层更危险”一类分布判断;反例、例外、反方与跨领域比较;互不替代的多个放大因素;解释作者为何得出结论的材料或认识边界。
更短、更整齐的上位总结不能替代这些载荷。若源稿先区分风险分布,再解释中间层为何更容易取信,随后列出三个放大因素,改稿不能只留下“法律风险更高”。改写后的每个 逐项保留 项都必须有可定位落点;找不到落点就回到源稿恢复机制,而不是在报告中解释已经概括。论证脊柱账本只约束正文,不进入读者正文。
开始前先声明本轮覆盖范围和未覆盖范围。
读取 references/pollution-patterns.md,扫描姿态、对比、过渡、大词、模糊频次、黑话、强加口语、格式和过程残留。频次只触发复核,不自动决定修改。
独立扫描:
最典型 / 最容易 / 也容易 / 类似的还有等伪装排比;不要把所有“有多个项目”的正文都归为功能性列举。先回答两个问题:读者是否需要逐项执行、核对、比较或追踪?项目的顺序、数量或独立边界是否承担文章承诺?
以下结构默认保留显式序号和平行句式:
若多个项目只是共同证明一个判断,读者不需要逐项操作,它们属于分析型例证组,不能因为“怕遗漏”就自动扩成连续的“一是、二是、三是”同构段落。按以下顺序处理:
references/expression-transformations.md 的“关系证据卡”,除关系两端各自的锚点外,还必须抄录关系本身的源稿锚点;关系层不得成为内容扩写许可。不得为了让两个条款“连起来”,新增源稿没有出现的交易联系、履行地点、付款里程碑、程序路径、经营限制、技术使用后果或其他专业分析变量。用户若同时要求补充专业内容,应交给上游写作/研究流程;本 Skill 只在报告中标记 AUTHOR_MATERIAL_NEEDED。
关系证据卡、材料充足度、标题或导航保护、扫描范围和评测结论都属于候选外信息。它们只能改变正文的处理结果,不能成为正文内容。最终稿不得出现“按源稿”“源稿的导航仍保留”“材料不足以相连”“不是若干项检查任务”等面向编辑者或评测者的解释;材料不足时,直接保留独立例子或压缩列举,把 AUTHOR_MATERIAL_NEEDED 只写入报告。
“换词重复、同功能段落、连续同构、能力边界候选、门禁或阈值”等评测语言也不得进入正文。它们是扫描概念,不是文章概念。
“都属于合同风险”“都要结合具体合作”“都需要判断”“都发生在合作偏离或履行阶段”只是宽泛同类项,不是可写入的关系。真实关系必须满足至少一项:源稿明确用同一个具体变量同时约束两端;一端会改变另一端的解释、效果或处理顺序;源稿明确给出两端的冲突或相互作用。若只有一组关系通过证据卡,就只使用这一组,不为满足数量或段落节奏继续配对。
两端分别有锚点仍不够。例如源稿分别讨论违约金和管辖,不能因此补成“违约发生后进入诉讼,管辖继续影响程序”;源稿分别讨论知识产权使合作难以继续、解除条件影响退出,也不能自动合成“围绕合作继续或退出”的共同关系。除非源稿本身把两端放进同一关系句,否则让它们在同一段各自成立即可。
一个实用判断是:删去某一项会不会破坏分类或操作完整性?会,通常是功能性列举;只会减少一个论据,通常是分析型例证组。这个判断优先于项目数量和原稿是否已有序号。
不要为避免“排比”把“一是、二是、三是”改成“最典型、最容易、也容易”。如果内容本来就是列表,恢复序号;如果作者希望叙事,则必须按真实场景、因果或时间重组,不能只改段首。
恢复正文中的显式序号不等于新增标题。原稿没有小标题时,不得把每一项升级为 ## 或 ###;原稿已有标题时,标题行原样保留。
保护列举形式不等于认可分类逻辑。若各项不在同一分类尺度、粒度不一致,或两套“N 分法”被强行宣称一一对应,标记 STRUCTURE_REVIEW 并说明错位;除非用户同时授权论证重构,否则去 AI 流程只报告,不擅自发明新分类。
在既有标题框架内按问题选择操作:
不要把禁词替换成固定同义词。不要为了长短句变化拆坏条件、例外和结论之间的联系。具体操作读取 references/expression-transformations.md。
不得把“重写整段”扩大为重做章节导航。正文改得再自然,只要标题行被新增、删除、改名、升降级或重排,就属于越界修复。
cleanup_only:保留源稿已有语气,不新增第一人称、反问、比喻、对话感和短句配额。provided_sample:读取授权样本,提取十维 profile 和反例;只匹配适合当前场景的维度。local_anchor:读取指定的本机私有 anchor;学习判断来源、不确定性、段落动力和功能性列举,不复制原句、事实或场景专属主语。作者样本不能弥补内容不足。Voice Calibration 只调整表达,不制造事实深度。
声音校准也不得提高判断强度。逐项比较源稿与改稿的确定性:我不这么看 / 我仍有保留 / 可能 / 未必 / 取决于不能被改成这个判断错了 / 下得太早 / 必然 / 决定 / 一定会;源稿没有频率范围时,不新增“已经不算少见、越来越多、通常如此”。VoiceAnchor 提供的是判断方式,不是把文章立场写得更响亮的许可证。
启用 provided_sample 或 local_anchor 时,改写后运行新增重合门禁。它只拦截相对源稿新出现的长连续重合,不把源稿本来已有的共同表述算成复刻,也不在默认输出中打印私有短语:
python3 scripts/voice_anchor_copy_gate.py \
--source <源文件.md> \
--final <最终文件.md> \
--sample <作者样本或本机 anchor.md> \
--min-chars 14改写后单独执行一轮反向检查:
JUDGMENT / MECHANISM / CONSEQUENCE / SUMMARY,只允许一个 SUMMARY,其他段落必须提供新的对象或机制。发现修复伪影时回到 Step 2—5,不得继续同义替换。
对“工具能力 → 转折或限制 → 人的判断/经验/责任”这类高频骨架,再运行启发式复检。脚本同时观察显式主语,以及“初稿/外观/措辞完整/填空/规则复述/建议自洽”等隐式能力端。
原始候选只用于扩大召回,不是删除配额。紧跟“第 N 层/第 N 种/第 N 步”等显式导航标签的说明项单独列为 functional_navigation_item,不计入普通正文硬阈值;这些段落本来就承担逐项区分功能。豁免只保护分类结构,不保护同义复唱:若五项都以同一个“表面可做—仍需人类判断”收束,仍须人工改写为各自的对象、条件、机制或后果。
公众号评论对普通正文使用四道硬门禁:全文计数候选不超过 6,单节不超过 2,相邻同功能候选最多 1 个,最后一节最多 1 个。不要为了降计数,把包含具体对象、判断来源、条件和后果的段落压成无主语摘要;独立机制应保留,重复的是段落功能和收束方向,不是文章讨论“错误、限制或判断”本身。脚本失败必须继续修订,不能用报告中的人工归并覆盖;脚本通过后仍须人工检查功能性导航项是否真的各有机制。
python3 scripts/semantic_repetition_gate.py \
--file <最终文件.md> \
--max-count 6 \
--max-per-section 2 \
--max-final-section 1 \
--max-adjacent 1只在正文改写完成后运行:
python3 scripts/fix_punctuation.py <文件路径>脚本必须跳过 YAML、代码块、行内代码、URL、Markdown 链接和 Markdown 图片整行。图片行发生任何变化都视为失败。
读取 references/quality-scoring.md,按自然度、节奏感、专业度、个性度和精炼度评分。解释口径:
cleanup_only 下评价是否保住源稿声音,在 voice 模式下评价 profile 匹配;<!-- skill-lint:constraint QUALITY-SCORE-GATE-PASSED -->
生成绑定最终文件 SHA-256、scene、voice mode、anchor ID 和分数的 score-receipt.json,再运行:
python3 scripts/protected_markdown_gate.py verify \
--manifest <临时目录>/de-ai-protected-lines.json \
--final <最终文件.md>
python3 scripts/heading_preservation_gate.py verify \
--manifest <临时目录>/de-ai-heading-lines.json \
--final <最终文件.md>
python3 scripts/delivery_gate.py verify \
--manifest <临时目录>/de-ai-delivery-manifest.json \
--final <最终文件.md> \
--score-receipt <临时目录>/score-receipt.json
python3 scripts/style_regression_gate.py <最终文件.md>只有图片保护、标题保护、交付绑定以及假排名、编辑过程泄漏、框架启动语和压缩金句逃逸回归门禁均退出 0;启用 voice 时新增重合门禁退出 0;语义骨架复检和人工关系层复扫没有未处理项,才可交付。
每条 finding 至少包含:
锚点:原文位置或短片段
段落功能:该句本应承担什么
主污染类型:七类之一
问题:为什么像模板、隐藏列表或修复伪影
读者影响:会造成何种理解或信任问题
处理:删除 / 合并 / 直接陈述 / 补足 / 恢复结构 / 作者补料不要只报“命中某词”。保留项写明功能和理由。
AUTHOR_MATERIAL_NEEDED,不要声称已经获得真情实感。© cat-xierluo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 63 other files (scripts, references, assets) in skills/de-ai-polish of cat-xierluo/legal-skills.
Open the folder on GitHubat commit f844ebe
De-AI Polish for Chinese Articles next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| De-AI Polish for Chinese Articles this skillcat-xierluo/legal-skills | 721 | — | ~2.9k | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 24k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Chinese Text Humanizerop7418/Humanizer-zh | 19k | — | ~2k | Automated safety check: Pass | MIT | |
| Natural Japanese Business Writingcoji/natural-japanese | 1.9k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Zero Slop Prose Editoriflytek/skillhub | 5.2k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Web Novel AI-Trace Removerzenstory-ai/oh-story-claudecode | 7.4k | 1 repos | ~2.6k | Automated safety check: Pass | MIT |
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
op7418/Humanizer-zh
Edits Chinese articles, comments and documents to remove filler, repetition and template phrasing while keeping the facts, the level of certainty and the author's voice.
coji/natural-japanese
Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.
iflytek/skillhub
Audits and rewrites formulaic, AI-sounding prose while keeping facts, voice and format, using a local Python scorer and inspect-only, rewrite or embedded-gate modes.
zenstory-ai/oh-story-claudecode
Rewrites AI-sounding Chinese web novel text so it reads naturally, changing as little as possible and keeping plot, names and numbers intact.
epoko77-ai/im-not-ai
Rewrites Korean text written by AI so it reads like a human wrote it, detecting translationese and other AI patterns while leaving the content untouched.
cat-xierluo/legal-skills
Converts a lawyer's ordinary complaint or a described case into the Supreme People's Court's elements-style Word template, with layout checks on the result.
cat-xierluo/legal-skills
Analyzes raw lecture transcripts for verbal tics, pacing, time use and promise follow-through, with optional slide-by-slide comparison and cross-session tracking.
cat-xierluo/legal-skills
Finds GitHub projects mentioned in articles or screenshots and stars them, tracks updates to your starred repos, and builds an HTML dashboard to browse them.
cat-xierluo/legal-skills
Sets up or incrementally updates AGENTS.md and CLAUDE.md for legal professionals, with a minimal safety baseline and a check that a new session loads and follows the rules.
cat-xierluo/legal-skills
Chinese-language skill that organizes a case file into a multi-role mock trial with judge, parties and clerk, producing a transcript, issue review and a to-strengthen list.
cat-xierluo/legal-skills
Creates SVG illustrations for a Markdown article as animated SVG, static SVG or PNG files, and places them in the text at planned positions.
Works with
Categories
Detects and rewrites machine-sounding patterns in the body text of Chinese articles while keeping the author's facts, headings and legal terms intact. The skill reviews Chinese article text for patterns that read as machine-written: template phrasing, posturing, hidden parallel lists, repeated sentence skeletons, false rankings and fixed rhythm. It asks what each sentence is doing before asking whether it sounds like AI, and a word list is only used to find candidates, never to swap words mechanically.
De-AI Polish for Chinese Articles fits situations like: polishing a finished Chinese draft that reads as machine-written; checking an article for hidden lists, fake rankings and repeated sentence patterns; rewriting a draft to match an author's own writing sample.
Run `npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a claude-code`. Or copy the skill folder (skills/de-ai-polish in cat-xierluo/legal-skills) into .claude/skills/de-ai-polish in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a codex`. Or copy the skill folder (skills/de-ai-polish in cat-xierluo/legal-skills) into .agents/skills/de-ai-polish in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cat-xierluo/legal-skills --skill de-ai-polish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/de-ai-polish, .gemini/skills/de-ai-polish, .github/skills/de-ai-polish and .opencode/skills/de-ai-polish in your project.
Going by SKILL.md and its folder, De-AI Polish for Chinese Articles needs the command-line tools its instructions call (python3).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
De-AI Polish for Chinese Articles is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 11k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with De-AI Polish for Chinese Articles: User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 24k stars), Chinese Text Humanizer (op7418/Humanizer-zh, 19k stars), Natural Japanese Business Writing (coji/natural-japanese, 1.9k stars) and Zero Slop Prose Editor (iflytek/skillhub, 5.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cat-xierluo (a GitHub user) maintains it in cat-xierluo/legal-skills, which has 721 GitHub stars. The repository holds 62 skills in this directory. The repository was last updated on October 10, 2026.
Source: cat-xierluo/legal-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.