跳到主内容

dsh-plugin-writing-guard

17Star1Fork2Issue0Watching

DSH 论文写作纪律守卫:检测 AI 机械句式与防御性措辞,守护润色前后的数字/引用/主张强度,对齐目标期刊写作风格。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
master
academic-paperacademic-writingai-detectionai-writingdeepseek-harnessdefensive-writingdsh-pluginevidence-based-writing

安装

命令web profile
$ 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 Harness0.1.0-rc.6+peerDependency 声明的最低版本,否则 cordis 钩子与 tools 事件不可用
Node.js>=18engines.node 约束
平台跨平台仅依赖 Node 标准库 fs/path/os,无原生模块
@deepseek-ai/cordis^4.0.1提供 Context、tools 事件注册
@deepseek-ai/dsh-tools^0.1.0-rc.6defineTool 工具定义
@deepseek-ai/dsh-llm^0.1.0-rc.6createUserMessage 注入上下文

安装方式

dsh plugin --profile web add github:xmutfyh/dsh-plugin-writing-guard

配置项

配置类型说明默认值
autoBriefboolean是否在每轮自动注入写作纪律速查清单(开启前确认会打扰,默认关闭)false
verboseByDefaultbooleanaudit 输出是否默认列出每条建议(关闭则只输出摘要)false
autoAuditOnWriteboolean写入论文文件后是否自动审计并注入结果(监听 write/edit 命中论文路径)true
autoAuditMinSeveritylow / medium / high自动审计的最低严重度,低于该等级不注入high
modeconservative / balanced / strict预设模式,覆盖 autoAuditMinSeverity(conservative 仅高危、strict 含低危)。显式 autoAuditMinSeverity 优先—
maxAutoInjectPerTurnnumber每个 agent 每轮最多自动注入次数(防止刷屏)2
projectResidueTermsstring[]追加到默认内部词表的项目词,命中按 medium 报[]
stateFilestring增量审计状态文件路径,缺省 ~/.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 路径为空串/空白会回退到默认路径,不会因配置错误导致静默失效

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/xmutfyh/dsh-plugin-writing-guard)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录