DSH 论文写作纪律守卫:检测 AI 机械句式与防御性措辞,守护润色前后的数字/引用/主张强度,对齐目标期刊写作风格。
- 语言
- JavaScript
- License
- MIT
- 分支
- master
安装
$ dsh plugin --profile web add dsh-plugin-writing-guard在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 xmutfyh/dsh-plugin-writing-guard:先查看仓库 https://github.com/xmutfyh/dsh-plugin-writing-guard 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
面向科研作者的写作纪律守卫:在 DSH 里写论文或改稿时,自动检测 AI 机械句式、防御性自黑与修改过程残留,并对润色前后的数字、引用、主张强度做完整性对比,守住 "语言可以改,证据不能改" 这条底线。
核心能力
- 修改过程残留检测:识别 "revised/as requested/本轮/审稿人要求/投稿前/修订稿" 等只在改稿语境里出现的词,rebuttal/cover_letter 等文档类型单独处理
- STYLE 去 AI 腔:识别 "不是X而是Y"、三连排比、破折号冒号滥用、delve/tapestry 等 LLM 高频词、抽象副词密度、空洞热词过载
- EVIDENCE 完整性锁:开启 original 后对比修改前后数字、百分数、p 值、\cite/\ref、DOI、主张强度、否定/零结果、scope 边界、证据状态(reported/observed/measured…)
- 期刊写作契合度:基于多篇目标期刊代表论文生成 Journal Profile,按章节报告句法/语态/引用/科学主张/修辞结构契合度百分比与置信度
- 作者风格漂移检测:基于作者历史论文统计句长/段长节奏指纹,检测新稿件的句长分布偏离
- 自动增量审计:监听 write/edit 写入论文文件(.md/.tex/.txt 且路径含论文特征或位于 01_manuscript 等知识库布局),按文件指纹对比,仅注入新增/已解决项,不重复刷屏
技术实现
- 语言: TypeScript
- 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-llm、Node.js 内置 fs/path/os
- 架构模式: Cordis 插件 + tools 钩子注入;监听
tools/pre-execute捕获修改前 preimage(exec.token 键控)、tools/post-execute触发审计,agent/turn-stopping维护每轮注入计数;通过dsh-llm的 createUserMessage 把审计结果作为 additionalContexts 注入下一轮 - 入口文件: src/index.ts(即 lib/index.js,构建产物已在 lib/ 提交)+ cordis.patch.yml(向 host composite 注入插件行)
适用场景
中英文论文作者在 DSH 里用 AI 协助改稿时,最怕两件事:AI 习惯性地加一堆 "正确但没必要" 的过渡词和防御性套话,以及润色完之后数字、引用、主张强度被悄悄改坏。这个插件适合在论文写作/修改流程里持续打底:边写边审、边改边查、越靠近投稿越要交给它做一次增量复查。它不重写文本,只把规则命中的位置、严重度、修改建议标出来,决定权始终在作者手里。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness | 0.1.0-rc.6+ | peerDependency 声明的最低版本,否则 cordis 钩子与 tools 事件不可用 |
| Node.js | >=18 | engines.node 约束 |
| 平台 | 跨平台 | 仅依赖 Node 标准库 fs/path/os,无原生模块 |
| @deepseek-ai/cordis | ^4.0.1 | 提供 Context、tools 事件注册 |
| @deepseek-ai/dsh-tools | ^0.1.0-rc.6 | defineTool 工具定义 |
| @deepseek-ai/dsh-llm | ^0.1.0-rc.6 | createUserMessage 注入上下文 |
安装方式
dsh plugin --profile web add github:xmutfyh/dsh-plugin-writing-guard
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| autoBrief | boolean | 是否在每轮自动注入写作纪律速查清单(开启前确认会打扰,默认关闭) | false |
| verboseByDefault | boolean | audit 输出是否默认列出每条建议(关闭则只输出摘要) | false |
| autoAuditOnWrite | boolean | 写入论文文件后是否自动审计并注入结果(监听 write/edit 命中论文路径) | true |
| autoAuditMinSeverity | low / medium / high | 自动审计的最低严重度,低于该等级不注入 | high |
| mode | conservative / balanced / strict | 预设模式,覆盖 autoAuditMinSeverity(conservative 仅高危、strict 含低危)。显式 autoAuditMinSeverity 优先 | — |
| maxAutoInjectPerTurn | number | 每个 agent 每轮最多自动注入次数(防止刷屏) | 2 |
| projectResidueTerms | string[] | 追加到默认内部词表的项目词,命中按 medium 报 | [] |
| stateFile | string | 增量审计状态文件路径,缺省 ~/.dsh/plugins/dsh-plugin-writing-guard/state.json | — |
常见问题
Q: 它会偷偷重写我的论文吗?
A: 不会。整篇重写不是它的职责,它只输出命中项的位置、严重度、修改建议,原文一字不动;所有规则都是确定性正则/统计,没有调用 LLM。
Q: 它和 "学术 Humanizer" 插件同时装会冲突吗?
A: 不会职责冲突。Humanizer 偏向把写好的文本丢给另一个模型重写,Writing Guard 偏向在写作/修改过程中持续检测风格与证据完整性,两者可以互补:先让 Writing Guard 守住底线,再让 Humanizer 做风格润色。
Q: 写作时不想被自动审计打扰,怎么关?
A: 在插件配置里把 autoAuditOnWrite 设为 false,需要时手动调用 writing_audit 工具即可;同时可调大 maxAutoInjectPerTurn 或把 autoAuditMinSeverity 调到 high。
Q: 修改前后的对比是怎么自动捕获的?
A: 插件监听 tools/pre-execute 钩子,用 exec.token 键控缓存 write/edit 前的文件内容;写入完成后在 tools/post-execute 里读取文件最新内容做对比。同一文件被并发编辑时不同 token 互不串扰;preimage 缺失时回退到持久化基线缓存(最多 20 个文件、总 4MB)。
Q: 配置项最大文件 512KB / 总 4MB 是瓶颈吗?
A: 对一般论文不会。基线缓存是"上一次观测到的全文",单文件超过 512KB 会跳过持久化(不截断,避免假完整性结果),本次编辑仍由 execution preimage 兜底;总文件数超过 20 个按时间戳淘汰最旧。
Q: 报错时怎么排查?
A: 状态写入失败会通过 ctx.logger.warn 上报(之前版本是静默吞错),日志里可看到具体失败原因;增量状态丢失后下次审计会把全部问题重新注入一遍,不会悄悄咽错。
上手难度
入门 — 装上即用,默认配置已覆盖 90% 场景;想做更精细的期刊贴合才需要配 Journal Profile。
已知问题与限制
- 仅支持文本文件审计:.docx/.doc/.pdf 会直接抛错,需先经 anydoc 转 Markdown
- 自动审计仅命中论文路径特征(路径含 manuscript/paper/回复/rebuttal 等中英文关键词,或位于 01_manuscript/02_reviews/08_response 等知识库目录),其他位置的文件不会被自动审计
- 英文论文路径特征使用正则词边界,避免 newspaper/synthesis/coverage/paperwork 等子串误判;中文相对宽松,子串匹配
- 频率类规则采用 "绝对次数 + 每千单位密度" 双门控,避免误伤术语;遇到低样本章节仍可能产生建议改动,最终由作者判断
- 期刊风格调整(Journal Fit)优先级永远低于科学完整性:原文只支持 "associated with" 时,任何 Journal Profile 都不能推动改成 "caused"
- 检测类规则为概率信号:命中即人工复核,专业术语与正当 limitations("样本量有限"、"结果可能不完全可靠")不会被规则误报
- 插件自身版本、指纹规则版本与 schemaVersion 写在 state.json,重启时若 fingerprintVersion 不匹配会清空 baselines(不制造假 resolved/added),升级后首次审计会重新建立基线
- 增量审计状态持久化采用 tmp + rename 原子写,避免并发覆盖;stateFile 路径为空串/空白会回退到默认路径,不会因配置错误导致静默失效
去 AI 腔 · 守住证据 · 写向目标期刊
Writing Guard 是面向 DeepSeek Harness 的科研论文写作守卫: 减少机械化、模板化和防御性的 AI 写作, 保护 AI 润色前后的科研事实与 scientific commitments, 并根据目标期刊代表论文校准 manuscript 的写作分布。
Less AI. More Evidence. Better Journal Fit.
Language can change. Evidence cannot.
Local · Deterministic · Zero Network · Zero LLM
STYLE / EVIDENCE / JOURNAL 三大支柱
-
去 AI 腔 / STYLE 识别并减少机械化、模板化、过度防御的 AI 写作,包括 revision residue、defensive writing、空洞热词与结构化套话。不是隐藏 AI,而是消除 AI 带来的坏写作。
AI 越强,越会写“正确但没必要”的句子。
-
守住证据 / EVIDENCE 数字、p 值、引用与 DOI 不能在润色中无声漂移;null finding 不能消失,correlation 不能变 causation,scope 和 evidence status 不能被悄悄改变。语言可以改,证据不能改。
-
写向目标期刊 / JOURNAL 从目标期刊代表论文中蒸馏 section-level 写作分布、科学主张模式与 rhetorical moves。不是只学“怎么措辞”,也比较目标期刊各章节通常“写什么、按什么顺序写”。
Quick Start
dsh plugin --profile web add dsh-plugin-writing-guard
dsh web
npm 已发布。也支持 GitHub / 本地源码安装,见下方完整安装说明。
How it works
写作规则 → Agent revision → automatic guard → targeted revision
Writing Guard 不是写完全文后一次性 Humanize,而是在 DSH 论文工作流中持续工作:
- 写作前加载
writing_rules - 写作 / 修改时由
writing_audit自动检查 - 修改后自动对比前后版本,保护 Scholarship / Epistemic invariants
STYLE — 去 AI 腔
检测范围:
- 修改过程残留:
revised、as requested、本轮、审稿人要求 - 防御性写作:concession stacking、limitation pre-emption、generic value claim、unnecessary epistemic retreat
- 机械化修辞:
不是X而是Y、rather than滥用、三连排比、破折号 / 冒号滥用 - LLM 高频词:
delve/tapestry/testament/leverage等(密度规则,单次不报警) - 中文套话与“的”字链、平均句长异常等
密度阈值按语言独立计算:英文按词数、中文按 CJK 字数,双门槛避免误伤术语。
EVIDENCE — Scholarship + Epistemic Lock
Writing Guard 在 AI 润色前后对比并保护:
- 数字、百分数、p 值、置信区间、单位
\cite/\ref、Figure/Table 编号、DOI- 因果力与证据力:
associated with不能被悄悄改成caused - 否定 / 零结果:
no significant difference不能消失或翻转 - scope 边界与 evidence status:不能从“观察到 / 报告”被改成直接声称
每个问题带 findingKind:INVARIANT / VIOLATION / CANDIDATE / ADVISORY,并输出完整性回归报告。
JOURNAL — 面向目标期刊写作
Writing Guard 从多篇目标期刊代表论文中按文章独立统计,生成 corpus-aware Journal Profile。
当前比较五类信号:
- 句法结构:句长、段长等
- 语态与人称:passive voice、first-person usage
- 引用:bibliographic citations、figure/table references
- 科学主张:claim density、causal/evidential strength、hedging、scope、null findings
- 修辞结构:rhetorical move coverage、canonical order、section-bound transition fit
Journal Fit 按章节输出,并同时报告 corpus size 与 confidence。
Scientific Integrity > Journal Fit
Journal Fit 采用五组权重:句法结构 20% / 语态人称 10% / 引用 15% / 科学主张 35% / 修辞结构 20%。
四个 DSH Tools
| 工具 | 用途 |
|---|---|
writing_rules | 返回写作纪律速查,写作前加载 |
writing_audit | 主审计入口:检查 STYLE 问题,比较 revision 前后的 Scholarship / Epistemic invariants,并可加载 Style Profile 与 Journal Profile |
writing_style_profile | 从作者历史论文学习风格指标,输出 JSON 供 audit 使用 |
writing_journal_profile | 从目标期刊代表论文蒸馏 Journal Profile,输出 JSON 供 audit 使用 |
Document-aware auditing
同一段文字在不同文档里含义不同。插件按文档类型应用规则:
| profile | 说明 | 例:as requested by the reviewer |
|---|---|---|
manuscript | 论文正文 | 🔴 修改过程残留,报警 |
rebuttal | 逐条回复信 | ✅ 正常表述,不报警 |
cover_letter | 投稿信 | 🔴 残留,报警 |
review / notes / unknown | 其他 | 保守处理 |
writing_audit 可通过 profile 参数指定,或从文件路径自动检测(rebuttal/cover_letter/manuscript 关键词)。
Automatic / incremental audit
插件监听 tools/post-execute:write / edit 写入论文类文件(.md / .tex / .txt)时自动审计,结果注入模型下一条请求。
- 按文件持久化审计状态,每次只注入增量(新增 / 已解决 / 仍存在)
- 无变化 → 不重复注入
- 自动捕获修改前文本,直接运行 Scholarship Lock + Epistemic Lock
完整安装说明
# 从 npm 安装(已发布,推荐)
dsh plugin --profile web add dsh-plugin-writing-guard
# 从 GitHub 安装(lib/ 已提交,无需构建)
dsh plugin --profile web add github:xmutfyh/dsh-plugin-writing-guard
# 或从 GitHub tarball 安装
dsh plugin --profile web add https://github.com/xmutfyh/dsh-plugin-writing-guard/archive/refs/heads/master.tar.gz
# 或从本地源码目录安装
dsh plugin --profile web add ./path/to/dsh-plugin-writing-guard
# 重启生效
dsh web
仓库:https://github.com/xmutfyh/dsh-plugin-writing-guard
Why not Humanizer / AI Detector?
| Writing Guard | Humanizer | AI Detector | |
|---|---|---|---|
| 写作前规则 | ✅ | ❌ | ❌ |
| 写作过程中检查 | ✅ | 通常 ❌ | ❌ |
| 自动监听论文修改 | ✅ | ❌ | ❌ |
| 整段重写 | ❌ | ✅ | ❌ |
| 风格问题定位(可解释) | ✅ | 部分 | 部分 |
| 本地规则检查(零网络零 LLM) | ✅ | 通常需 LLM | 视工具而定 |
Humanizer 是写完再改,Writing Guard 是边写边防。
Security & Privacy
- 所有规则本地运行:零网络、零 LLM、无子进程
- 插件只读取 Agent 正在写入的论文文件,并写入
~/.dsh/plugins/dsh-plugin-writing-guard/下的增量状态 - 不收集、不上传论文内容
- 详见 SECURITY.md
Tests
npm test
300+ 项确定性 TP / TN / boundary / regression 测试,覆盖:
- STYLE、Scholarship Lock、Epistemic Lock
- claim alignment、local citation integrity
- Journal Profile、Journal Fit
- Rhetorical semantics(中文 / medoid / transition)
CI 在每次 push / PR 自动执行 build + tests。
FAQ
这是 DSH 的论文去 AI 味插件吗?
可以这样理解,但 Writing Guard 与传统 Humanizer 不同。它主要在论文写作和修改过程中检测常见 AI 写作风格,而不是将全文交给另一个模型进行重写。
支持中文论文吗?
支持。规则同时覆盖中文和英文论文中常见的机械化表达、模板化过渡、修改过程残留和防御性写作;中英文分别按 CJK 字数 / 英文词数独立计算密度阈值。
支持 SCI / English academic writing 吗?
支持。writing_audit 可检查英文 manuscript 中的 revision residue、defensive writing、LLM-overused expressions 以及常见 AI-style sentence patterns。
Writing Guard 和 academic-humanizer 有什么区别?
academic-humanizer 更偏向对已有文本进行自然化编辑;Writing Guard 更偏向在 DSH 论文工作流中持续检查和预防。二者可以配合使用。
CHANGELOG
完整版本演化、修复记录与测试增量见 CHANGELOG.md。
License
MIT
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/xmutfyh/dsh-plugin-writing-guard)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。