Skip to content
Legal
Skill

/de-ai-polish

检测并修订中文文章正文中的模板腔、姿态腔、隐藏排比、分析型例证同构、重复语义骨架、假排名、固定节拍和其他 AI 化表达,同时保护作者事实、既有标题层级、必要功能性列举、法律术语、Markdown 图片与既有声音。文章完成初稿后、用户要求“去 AI 腔/更像真人/按作者样本改写/检查排比或口吻”时必须使用;无作者样本时只做最小清理,不得凭空注入第一人称、比喻、短句金句或经历,也不得借去 AI 之名重做文章结构。

BOOST
From plugin
legal-skills
73766 skills
Install
$ npx -y skills add cat-xierluo/legal-skills --skill de-ai-polish --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/de-ai-polish

Context preview

The summary Claude sees to decide when to auto-load this skill.

检测并修订中文文章正文中的模板腔、姿态腔、隐藏排比、分析型例证同构、重复语义骨架、假排名、固定节拍和其他 AI 化表达,同时保护作者事实、既有标题层级、必要功能性列举、法律术语、Markdown 图片与既有声音。文章完成初稿后、用户要求“去 AI 腔/更像真人/按作者样本改写/检查排比或口吻”时必须使用;无作者样本时只做最小清理,不得凭空注入第一人称、比喻、短句金句或经历,也不得借去 AI 之名重做文章结构。

SKILL.md

de-ai-polish.SKILL.md
name: de-ai-polish
license: MIT
description: 检测并修订中文文章正文中的模板腔、姿态腔、隐藏排比、分析型例证同构、重复语义骨架、假排名、固定节拍和其他 AI 化表达,同时保护作者事实、既有标题层级、必要功能性列举、法律术语、Markdown 图片与既有声音。文章完成初稿后、用户要求“去 AI 腔/更像真人/按作者样本改写/检查排比或口吻”时必须使用;无作者样本时只做最小清理,不得凭空注入第一人称、比喻、短句金句或经历,也不得借去 AI 之名重做文章结构。
metadata:
  author: 杨卫薪律师(微信ywxlaw)
  homepage: https://github.com/cat-xierluo/legal-skills
  version: "3.2.6"

De AI Polish

核心立场

去 AI 化不是禁词替换,也不是给文本注入“公众号人设”。按以下优先级处理:

1. **作者事实与判断来源**:不编造经历、感受、材料和立场变化; 2. **段落功能与信息结构**:保护分类、步骤、责任分配和必要重复; 3. **自然表达**:删除姿态、模板、语义稀释和机器节拍; 4. **声音校准**:只有用户提供或明确选择样本时才匹配 voice。

判断一句话时先问它承担什么功能,再问它是否像 AI。词表只用于召回,不能替代通读。

职责边界:只修正文,不接管标题结构

`de-ai-polish` 负责正文句子和段落内部的语言表达,不负责文章的信息架构。二级、三级标题及其他 Markdown ATX 标题属于 WeChat Article Writer 或原写作流程的职责范围。

因此默认执行以下边界:

  • 保留源稿全部标题行的文字、层级、编号和顺序;不新增、删除、改名、升降级或重排标题;
  • 内部段落功能标注、临时分组和问题归纳只用于分析,不能变成成稿里的新标题或编号;
  • 正文存在隐藏列表时,在原有标题框架内通过合并、承接、因果、时间或场景重组处理,不为每个分析分组另设小标题;
  • 标题本身若有明显模板腔,在报告中标记并建议交给 WeChat Article Writer 处理,本 Skill 不直接修改;
  • 用户若另行要求调整标题体系,先完成去 AI 正文修订,再把标题任务交给相应写作 Skill,不把两项职责混成一次改写。

使用模式

/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`。
  • 使用作者样本或本机私有 anchor:读取 `references/personal-style-guide.md`。
  • 选择本机私有 anchor:先读取 `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 为准。

启动闸门

1. 判定场景

| scene | 默认力度 | 重点 | 保护范围 | |---|---|---|---| | `legal_document` | 克制 | 姿态、过程、格式 | 最宽 | | `wechat_public_comment` | 较强 | 模板、节奏、语义稀释 | 标准 | | `chat_reply` | 最小 | 谄媚、协作痕迹 | 标准 | | `general` | 中等 | 全类 | 标准 |

法律文书中的正式语体、程序术语和固定结构默认保留。

2. 判定 voice 模式

| voice_mode | 使用条件 | 允许行为 | |---|---|---| | `cleanup_only` | 没有作者样本或用户未要求匹配声音 | 只清理和澄清;不得注入人设 | | `provided_sample` | 用户提供并授权本次使用的样本 | 提取十维 profile 后匹配 | | `local_anchor` | 用户明确要求使用本机个人声音,且配置与对应文件存在 | 按显式 ID 或本机默认 anchor 的深层 profile 校准 |

本机私有 anchor 不属于公共 Skill 内容。`default_voice_anchor_id` 只是 `local_anchor` 模式内部的缺省选择,不得把普通 `cleanup_only` 请求自动升级为个人声音。不得把样本正文、作者 profile、高辨识短语或本机注册表复制到公开配置、测试 fixture、日志或评测元数据中。

3. 写入运行计划

<!-- 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` 均在本机存在;
  • 本机 anchor 缺失时停止 voice 校准,回退到 `cleanup_only` 或请用户重新提供样本,不得假装已经读取;
  • 不得在改写后倒填 scene、voice 或 Protected Spans。

完整工作流

Step 1:通读、保护与作者证据

完整通读全文,不得只用正则或 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` 并逐字保护:

  • 法条、司法解释、案号、合同条款编号;
  • 当事人、机构、律所和公司全称;
  • 程序术语、直接引语和正式引证;
  • 数值、日期、比例、金额、期限和 URL;
  • 用户要求保留的其他字符串;
  • 整段 Markdown 图片语法及其所在整行。

同时为需要“作者在场”的关键判断填写 `references/personal-style-guide.md` 中的作者证据卡。材料不足时标记 `AUTHOR_MATERIAL_NEEDED`。不得把一般知识改成“我发现”,也不得编造真实案例或写作经历。

不要把全文反复出现的主题词、核心概念或普通术语登记成要求出现次数完全相同的 `protected_span`,例如文章主题本身的“抽象泄露”。这类词要保持名称一致并保留必要定义,但删除重复段落时允许出现次数下降。若在改写后发现快照误把通用词锁死,不得为了过门禁机械补回;应废弃该次候选,从只读源稿重新选择真实字节不变量并建立新快照,同时记录重启原因。

标题整行属于结构保护项。标题内即使命中模板词,也只记录 finding,不在本流程中改写。

Step 2:标注段落功能

给每段标一个主功能:`FACT / EXPERIENCE / JUDGMENT / MECHANISM / EXAMPLE / BOUNDARY / TRANSITION / SUMMARY`。

重点检查:

  • 连续三段是否都在转场或总结,没有新增事实和机制;
  • 每段首句是否用评价词宣布“这一项更重要”;
  • 下一段是否承接上一段对象,还是依靠框架提示重新启动;
  • 观点是否有来源,推断是否被写成事实。

功能标注只作为改写中间表示,不写入交付正文,也不得转写成新的二级、三级标题或编号。

在扫描和改写前,再建立候选外的**论证脊柱账本**。逐段记录不能被上位总结替代的唯一信息:

源稿锚点:可定位短片段
唯一载荷:该段新增的对象、区分、因果环节、例外、反方、比较、风险放大因素或认识边界
在全文中的作用:它把上一段推进到哪里
处理:逐项保留 / 合并但保留全部载荷 / 可删除的重复
改稿落点:最终段落位置

以下内容默认进入脊柱账本:提出核心区分的段落;把一个对象推进到下一条件或后果的中间环节;“风险并不均匀/为什么某一层更危险”一类分布判断;反例、例外、反方与跨领域比较;互不替代的多个放大因素;解释作者为何得出结论的材料或认识边界。

更短、更整齐的上位总结不能替代这些载荷。若源稿先区分风险分布,再解释中间层为何更容易取信,随后列出三个放大因素,改稿不能只留下“法律风险更高”。改写后的每个 `逐项保留` 项都必须有可定位落点;找不到落点就回到源稿恢复机制,而不是在报告中解释已经概括。论证脊柱账本只约束正文,不进入读者正文。

Step 3:两轮独立扫描

开始前先声明本轮覆盖范围和未覆盖范围。

词汇与模板层

读取 `references/pollution-patterns.md`,扫描姿态、对比、过渡、大词、模糊频次、黑话、强加口语、格式和过程残留。频次只触发复核,不自动决定修改。

结构与段落层

独立扫描:

  • 连续相同虚词、疑问词、被动式和短段;
  • 每两三段固定出现的短句金句;
  • 同一对象的同义词轮换;
  • 显式列表被改成隐藏列表;
  • `最典型 / 最容易 / 也容易 / 类似的还有`等伪装排比;
  • 一组分析例子是否被编辑者逐项扩成同长度、同功能、同收束方式的段落;
  • 同一语义关系是否只换了主语、动词或转折词后跨段、跨节重复,例如反复写“工具能完成表层任务,但判断仍需由人作出”;
  • 标题承诺“N 层、N 种、N 步”后,正文结构是否被错误打散。

Step 4:先判定列举功能,再决定保护或重组

不要把所有“有多个项目”的正文都归为功能性列举。先回答两个问题:读者是否需要逐项执行、核对、比较或追踪?项目的顺序、数量或独立边界是否承担文章承诺?

以下结构默认保留显式序号和平行句式:

  • 分类、层级、步骤、清单、责任分配;
  • 法条、合同条款和固定格式;
  • 为核对输入、输出、主体或条件而设置的平行结构。

若多个项目只是共同证明一个判断,读者不需要逐项操作,它们属于**分析型例证组**,不能因为“怕遗漏”就自动扩成连续的“一是、二是、三是”同构段落。按以下顺序处理:

1. 先找源稿已经存在的关系:共同条件、相互影响、冲突、时间先后、风险分配、审查路径或责任主体; 2. 在候选外填写 `references/expression-transformations.md` 的“关系证据卡”,除关系两端各自的锚点外,还必须抄录**关系本身的源稿锚点**; 3. 关系本身的锚点必须在同一处源稿中同时提到两端,或明确让同一个具体变量约束两端。只有 A 的材料和 B 的材料、没有原文连接句时,关系不成立; 4. “必要推论”只允许换一种说法复述源稿已经存在的关系,不能凭专业常识补出

Read more
Ships withlegal-skills

面向法律人的 Skills 集合。

Get the whole plugin

Other skills on legal-skills.

agent-email
Skill

agent-email

Agent 专用邮箱统一管理:让 Claude Code、Codex 等平台的 Agent 用一套命令收发邮件、整理收件箱、分发任务。支持网易 ClawEmail(claw.163.com)和腾讯 Agent Mail(QQ…

apple-smart-schedule
Skill

apple-smart-schedule

把一句自然语言(机票/高铁/开庭/会议/截止日期/聚会/看病等)或一张票据截图,自动变成苹果「日历」事件 + 一串按事件类型智能提前的「提醒事项」。在 macOS 上运行、经 iCloud 同步到 iPhone/iPad。当用户说「帮我加个日程/提醒」「机票…

case-dashboard
Skill

case-dashboard

律师案件看板。本地零依赖看板服务(案件总览、任务三态看板、期限预警、进度写回)+周研判分析。当用户说"打开看板/dashboard/案件面板/看下案件进度/给我案件周报研判"时使用。案件状态写入与上下文管理用 case-progress(/progress…

case-progress
Skill

case-progress

案件进度与状态台账管理。案件 case.yaml 的唯一写入引擎(新增任务、推进任务、登记期限、更新案件阶段、校验、存量迁移),Agent 会话的进度加载与写回契约,以及案件进度监控对账。当用户或 Agent…

code2patent
Skill

code2patent

从已开发代码项目中提取技术实现证据,围绕候选专利方案生成算法/软件类说明书式技术交底书,并以“权利要求布局卡 →…