| name | deai |
| version | 1.0.0 |
| description | 润色师:10维AI痕迹检测与自然化改写。迭代修复直到达标。
触发词:"降重"、"去AI味"、"润色"、"deai"、"AI痕迹"。
|
| allowed-tools | ["Read","Edit","Write","Bash","Grep","Glob","Agent","AskUserQuestion"] |
/deai — 润色师
设计哲学
好的中文学术论文读起来像一个人在认真讲一件事,内容铺开、论证扎实、一气呵成。
而不是一个 AI 在列提纲、贴标签、堆括号。
润色的目标不是"换个说法",而是让每一段读起来像作者亲手写的——
有自己的思考节奏,有对读者的体贴,有对技术的真正理解。
Step 0:加载配置
CONFIG=""
for candidate in ".thesis/config.json" "../.thesis/config.json" "../../.thesis/config.json"; do
if [ -f "$candidate" ]; then
CONFIG="$(cd "$(dirname "$candidate")" && pwd)/$(basename "$candidate")"
break
fi
done
if [ -z "$CONFIG" ]; then
echo "ERROR: 未找到 .thesis/config.json"
echo "请先运行 /thesis-init 初始化论文项目"
exit 1
fi
echo "CONFIG: $CONFIG"
THESIS_DIR=$(python3 -c "import json; print(json.load(open('$CONFIG'))['thesis_dir'])")
CHAPTERS_DIR=$(python3 -c "import json; print(json.load(open('$CONFIG'))['chapters_dir'])")
BUILD_CMD=$(python3 -c "import json; print(json.load(open('$CONFIG'))['build_command'])")
WORKSPACE=$(python3 -c "import json; print(json.load(open('$CONFIG'))['workspace_dir'])")
echo "THESIS_DIR: $THESIS_DIR"
echo "CHAPTERS_DIR: $CHAPTERS_DIR"
echo "WORKSPACE: $WORKSPACE"
如果 preamble 输出 ERROR,立即停止并提示用户运行 /thesis-init。
Step 0.5:确定目标
使用 AskUserQuestion 确认:
- 目标章节(c1-c6,或"全文")
- 质检档位:
- Quick:只查维度 1-4(高频AI词)
- Standard:查维度 1-6(+ 结构性问题)
- Exhaustive:查全部 8 维(+ 段落间交叉检测)
默认推荐 Standard。
Step 1:读取目标章节
从 $CHAPTERS_DIR 读取指定的 tex 文件全文。统计基础指标:
- 总行数、总段落数
\xsection 数量、\xsubsection 数量
\begin{equation} 数量
\begin{itemize} / \begin{enumerate} 数量
Step 2:8 维 AI 痕迹扫描
对目标章节逐段扫描,按以下 8 个维度检测。每检测到一处,记录:维度编号、行号、原文片段、问题描述。
维度 1:程式化衔接词
高频词表:
- 过渡类:首先、其次、再次、最后、此外、另外、与此同时、在此基础上
- 总结类:综上所述、综上、由此可见、不难发现、显而易见
- 强调类:值得注意的是、需要指出的是、特别地、尤其是
阈值:同一 \xsubsection 内出现 ≥3 个不同的高频词 → 标记
改写原则:删除衔接词,用句子间的因果、转折、递进等逻辑关系本身来衔接。不是把"首先"换成"第一",而是让内容的逻辑自然推进。
维度 2:句式骨架重复
检测方法:提取每段的主干结构(主语+谓语+宾语模式),检查连续 3 段内是否出现相同骨架 ≥2 次。
典型重复模式:
- "本文提出了 X,用于解决 Y"(连续多段)
- "X 呈现出 N 个特点:第一…第二…第三…"
- "为了解决 X 问题,本文设计了 Y 方法"
改写原则:变换叙述视角。同样是介绍方法,可以从"问题出发"、从"现象出发"、从"对比出发",不必每段都从"本文提出"出发。
维度 3:模板化总结句
模式库:
- "本节/本章证明了…显著优于…"
- "实验结果表明…具有显著优势"
- "得到了充分的验证/证实"
- "从根本上解决了…问题"
- "为…奠定了坚实基础"
- "取得了一定的成果"
- "系统地开展了…工作"
改写原则:用具体数字和事实替代空洞总结。"实验证明本方法显著优于基线" → "在任务A上指标提升 X%,在任务B上提升 Y%"。
维度 4:空洞修饰词
词表:显著地、有效地、充分地、系统地、深入地、全面地、创新性地、合理地
检测条件:修饰词后面没有跟具体数据或证据 → 标记
改写原则:要么删掉修饰词("有效地提升了性能" → "提升了性能"),要么补上具体数据("显著提升" → "提升 16%")。
维度 5:机械化段落开头
检测:连续 2 段以上用相同模式开头。
高频开头模式:
- "具体而言,…"
- "从 X 角度来看,…"
- "在此基础上,…"
- "针对…问题,本文/本章提出…"
- "为了解决…,我们设计了…"
改写原则:每段开头应该有变化。可以从现象切入、从数据切入、从对比切入、从问题切入,而不是每段都从"本文提出"切入。
维度 6:AI 套话收尾
模式库:
- "存在深化空间 / 进一步优化的空间"
- "为后续研究奠定了基础 / 提供了新思路"
- "具有重要的理论意义和实际应用价值"
- "分工明确,共同驱动/推动…"
- "以上内容共同构成了…的理论支撑"
改写原则:收尾要具体。说清楚"具体哪个问题还没解决"、"具体下一步要做什么实验",而不是用万金油套话收束。
维度 7:括号注释堆砌
核心原则:只有本文提出的核心算法/方法需要在首次出现时标注英文全称,其他术语不需要括号注释。
需要标注全称的(仅限首次出现):
- 本文提出的核心算法和方法(通过 /thesis-init 或 /terminology 配置)
不需要标注全称的:其他所有非核心术语。领域内通用概念和标准算法——读者要么已知,要么看英文标题即可理解,不需要在正文中用括号注释英文全称。直接写中文名或缩写即可。
检测规则:
- 同一段内出现 ≥2 个"中文(English Full Name, ABBR)"格式的括号注释 → 标记
- 非核心术语出现括号英文注释 → 标记为"非必要括注"
- 核心算法的缩写在首次定义后再次出现括号注释 → 标记为"重复括注"
改写原则:
- 核心算法:首次出现保留"中文全称(English Full Name, ABBR)",后续直接用缩写
- 非核心术语:删除括号英文注释,只保留中文名或缩写
- 例:"中心化训练分布式执行(Centralized Training with Decentralized Execution, CTDE)" → 直接写"CTDE"或"中心化训练分布式执行"
维度 8:小标题碎片化
检测:连续出现的 \xsubsection 或 \textbf{(N)} 小标题,每个标题下正文不足 15 行(约半页)。
问题本质:把本该用段落展开论述的内容切成碎片,每块贴个标题就算交代了,显得单薄、取巧。
好的状态:一个 section 下铺开写 2-3 页连贯叙述,读者感受到的是"这个人真的想清楚了,从头到尾讲给你听",而不是"列了个提纲,每条写两句就下一条"。
修复策略:
- 相邻的短小节(各 <15 行)合并为一个节
- 去掉子标题,用段落内的逻辑衔接
- 合并后每段充实到 4-7 句
验收:同一 section 下不出现连续 3 个以上 <15 行的子标题。
维度 9:标题中英混杂
检测:\xsection 或 \xsubsection 的第一个参数(中文标题)中包含英文单词、英文缩写或英文括号注释。
典型模式:
\xsection{你的方法名 (ABBR) 机制} — 括号内夹英文缩写
\xsubsection{子模块名 (English Name)} — 括号内夹完整英文名
\xsubsection{Soft Actor-Critic (SAC) 算法原理} — 开头就是英文
规则:中文标题必须是纯中文。英文名称放在第二个参数(英文标题)里,不要混进第一个参数。本文核心方法的缩写如果已经在正文中定义过,标题中也不需要出现。
改写原则:
{你的方法名 (ABBR) 机制} → {你的方法名机制}
{Soft Actor-Critic (SAC) 算法原理} → {SAC算法原理} 或 {最大熵强化学习算法原理}
- 极短的通用缩写(SAC、MDP)在标题中可保留,但不加括号注释
维度 10:正文伪标题(黑体标签)
检测:正文段落中使用 \textbf{xxx。} 或 \textbf{xxx:} 格式充当伪小标题。
典型模式:
\textbf{重要性目标。}将权重学习重构为…
\textbf{稳定性约束。}尽管监督式回归…
\textbf{关键实现细节。}本小节说明…
问题本质:这些黑体文字在视觉上像标题但不在目录中,读者会困惑"这到底是标题还是正文"。它们通常是 AI 生成时用来组织思路的标签,写进正文后显得膈应。
排除:表格中的 \textbf{}(表头加粗、最优值加粗)不算伪标题,不需要处理。
修复策略:
- 删除
\textbf{} 标记
- 如果伪标题有引导作用,改为普通文字融入段首:"在重要性目标的定义上,…"
- 如果伪标题的内容在后文已体现,直接删除
Step 3:生成扫描报告
输出格式:
AI 痕迹扫描报告 — c4.tex
══════════════════════════════════════
AI 痕迹分数:6.5/10(10=严重,0=无痕迹)
扫描档位:Standard(维度 1-6)
──────────────────────────────────────
检测到 N 处问题:
[维度1] 行 42: "首先…其次…最后…" 三连
→ 建议:删除序数词,用因果逻辑自然推进
[维度3] 行 128: "实验结果表明本方法显著优于基线方法"
→ 建议:改为具体数字 "在任务A上提升 X%"
[维度8] 行 200-250: §4.1 下三个子节各仅 12 行
→ 建议:合并为一个节,铺开叙述
──────────────────────────────────────
Step 4:分类与确认
将所有检测结果分为两类:
- AUTO-FIX:机械性替换,无需判断
- 删除重复的括号注释(维度 7)
- 删除明确的空洞修饰词(维度 4 中无数据支撑的"显著地"等)
- 删除"综上所述"等纯过渡废话(维度 1 中的总结类)
- ASK:需要作者判断的改写
- 段落重写(维度 2/5/6)
- 小标题合并(维度 8)
- 涉及内容调整的总结句改写(维度 3)
对 AUTO-FIX 项直接执行。对 ASK 项,使用 AskUserQuestion 批量展示,每项给出原文和改写建议,让作者选择 A) 按建议改 / B) 跳过。
Step 5:执行改写
对作者确认的每一处:
- 读取原文上下文(前后各 5 行)
- 生成改写文本,遵循以下原则:
- 保持学术严谨性,不降低专业度
- 保留所有技术事实和数据
- 不改
\label{}、\ref{}、\cite{}、\begin{}、\end{} 等 LaTeX 命令
- 不一次性替换超过 30 行——拆成多次 Edit
- 每改一处立刻写入文件
- 每条改写遵循"中文论文好段落"标准:
- 每段 4-7 句,聚焦一个论点
- "现象 → 解释 → 结论"自然收束
- 技术叙述顺序:问题 → 方案(先说为什么需要,再说怎么设计)
- 实验分析:指标 → 原因 → 佐证 → 影响
Step 6:重新扫描验证
改写完成后,对修改过的段落重新执行 Step 2 扫描。
- 如果分数下降 ≥2 分 → 改写有效,继续
- 如果分数下降 <2 分 → 部分改写可能引入新的模式化表达,需要二次调整
迭代上限:最多 3 轮。3 轮后仍不达标 → 输出当前状态,建议作者人工审阅剩余项。
Step 7:输出改写报告
降重完成 — c4.tex
══════════════════════════════════════
AI 痕迹分数:6.5 → 3.2(下降 3.3)
──────────────────────────────────────
AUTO-FIX:N 处(括号注释删除 X 处,空洞修饰词 Y 处)
作者确认改写:M 处
跳过:K 处
迭代轮数:2
──────────────────────────────────────
改动文件:$CHAPTERS_DIR/c4.tex
改动行数:约 XX 行
══════════════════════════════════════
改写参考标准
好的中文学术段落长什么样
结构:每段 4-7 句,一个完整论点。
节奏:不是"定义→公式→解释"的三段式循环,而是有起伏的叙述——
先说一个你观察到的现象,再解释背后的机制,然后用数据佐证,最后点明这意味着什么。
衔接:段与段之间靠内容的逻辑关系衔接,不靠"首先/其次/最后"的序号词。
上一段的结论自然引出下一段的问题,读者感觉是"顺着读下来的",而不是"跳到下一条了"。
公式后的解释:每个关键公式后面至少说清两层:
- 这个公式在数学上做了什么(形式层)
- 这对实际效果意味着什么(直觉层)
实验分析:不是"A 比 B 高了 X%"就完了,而是:
- 报数字(A 在任务 T 上得分 Y,比 B 高 X%)
- 解释为什么(因为 A 的某个机制在 T 的某个特性下起了作用)
- 给佐证(消融实验/可视化/其他任务的对比印证)
- 说影响(这说明我们的设计假设是正确的 / 这个场景下还有局限)
高频替换对照表
| 需要替换 | 替换方式 |
|---|
| 存在深化空间 | 存在两个不足 / 直接说不足是什么 |
| 呈现出 X 个特点/方面 | 直接陈述那些特点 |
| 值得注意的是 | 删除,直接说内容 |
| 综上所述 | 删除,或换为具体总结 |
| 不难发现 | 删除,直接说结论 |
| 由此可见 | 改为具体的因果表达 |
| X 个维度 | 说清楚具体是哪几个 |
| 损失地形 | 损失函数的变化趋势 |
| 本文提出了 X,用于解决 Y | 为了解决 Y,我们设计了 X / 直接描述 X 的工作机制 |
| 分工明确,共同… | 说具体分工内容 |
| 得到了充分的验证 | 实验证明…(具体数字) |
| 取得了一定的成果 | 删除,直接说成果 |
| 系统地开展了 | 删除,直接说做了什么 |
| 从根本上解决了 | 显著缓解了 / 在实验范围内验证了 |
安全红线
- ❌ 不改
\label{}、\ref{}、\caption{}、\cite{} 内部标识符
- ❌ 不删实验数据(表格数值、图文件名)
- ❌ 不改公式内容(
\begin{equation} 内部)
- ❌ 不一次性替换超过 30 行
- ✅ 每改一处立刻 Edit 写入
- ✅ 改写后保持原段落的技术含义不变
收尾协议(完成后必须执行)
每次 skill 执行完毕后,无论结果如何,必须执行以下四步:
0. 编译验证(修改 tex 文件后必须执行)
- 进入论文工程目录:
cd "$THESIS_DIR"
- 执行编译:
$BUILD_CMD
- 检查编译结果:0 errors = 通过,有 error = 立即定位修复
- 记录编译状态到进度文件
2. 更新问题清单 $WORKSPACE/issues.md
- 本次发现的新问题:追加到"待处理"区,格式为
- [ ] **编号** 位置 — 问题描述 → 建议skill
- 本次解决的问题:从"待处理"移到"已解决",标注完成时间
- 未变化的问题:不动
3. 更新进度文件 $WORKSPACE/progress.md
- 在"完成记录"区追加一行:
- YYYY-MM-DD HH:MM /skill名 — 执行摘要(N项修改/N个问题)
- 如果任务看板中有对应任务项,更新其状态(勾选
[x])
4. 保存报告(如有输出)
- 报告保存到
$WORKSPACE/reports/ 目录
- 文件名格式:
YYYYMMDD-skill名-目标.md(如 20260322-review-chapter-c4.md)
Completion Status
- DONE — 所有检测项已处理,AI 痕迹分数下降达标
- DONE_WITH_CONCERNS — 完成但部分项作者选择跳过,分数未达理想值
- BLOCKED — 目标文件不存在或无法读取
- NEEDS_CONTEXT — 需要作者确认改写方案