按机核编辑文风写作并机检去 AI 痕迹
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add BroWhitebyte/dsh-plugin-baiguangda-style该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 21 处,展示前 20 条)
- 读取本地文件index.js:77
base = JSON.parse(readFileSync(new URL('./skill/scripts/thresholds.json', import.meta.url), 'utf8')) - 读取本地文件index.js:93
return JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')) - 发起网络请求client.js:65
const getJson = (path) => fetch(API + path, { credentials: 'same-origin' }).then(asJson) - 发起网络请求client.js:67
fetch(API + path, { - 读取本地文件skill/scripts/style_lint.js:15
const raw = fs.readFileSync(file, 'utf8'); - 读取本地文件skill/scripts/style_lint.js:55
TH = JSON.parse(fs.readFileSync(path.join(__dirname, 'thresholds.json'), 'utf8')) - 读取本地文件skill/scripts/style_lint.js:60
BL = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'corpus', 'baseline.json'), 'utf8')) - 读取本地文件src/resources.js:17
if (!existsSync(SKILL_DIR)) return null - 读取本地文件src/resources.js:18
const hit = readdirSync(SKILL_DIR).find((f) => f.startsWith(FULL_DOC_PREFIX) && f.endsWith('.md')) - 读取本地文件src/resources.js:31
return docs.filter((d) => existsSync(d.file)) - 读取本地文件src/resources.js:37
const st = statSync(file) - 读取本地文件src/resources.js:40
const text = readFileSync(file, 'utf8') - 读取本地文件src/resources.js:97
if (existsSync(c.dir)) return { dir: c.dir, source: c.label } - 读取本地文件src/lint.js:17
if (!existsSync(abs)) return { ok: false, error: `文件不存在:${abs}` } - 读取本地文件src/lint.js:18
const st = statSync(abs) - 读取本地文件src/lint.js:22
if (!existsSync(LINT_SCRIPT)) return { ok: false, error: `插件缺少校验脚本:${LINT_SCRIPT}(npm run sync 可重新同步)` } - 执行外部命令来自配置/变量src/lint.js:30
const proc = spawnSync(process.execPath, [LINT_SCRIPT, check.abs], { - 读取本地文件src/audit.js:13
RULES = JSON.parse(readFileSync(fileURLToPath(new URL('../skill/scripts/thresholds.json', import.meta.url)), 'utf8')).rules ?? {} - 写入本地文件src/preview.js:36
writeFileSync(file, text, 'utf8') - 删除本地文件递归src/preview.js:43
rmSync(dir, { recursive: true, force: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-skill@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
白广大风格写作插件:机核编辑的中文文风与结构判据,装进 DeepSeek Harness(4 A + 27 B 条机检,阈值按 444 篇语料标定)
README
由 DeepSeek 最新模型翻译生成dsh-plugin-baiguangda-style
白广大风格写作插件(v2.5.0)。把机核网资深编辑白广大的中文写作风格——文风与写作逻辑——装进 DeepSeek Harness:技能正文教模型怎么写,三个工具管写完怎么验,设置里还有一页:一个总开关管技能的挂与摘,三个配置项,外加贴一段稿子当场跑分数。资源随包携带,装到任何配置档都能独立工作。
v2.3.0:阈值按 444 篇全量语料重标定
把该账号全部文章(444 篇 / 80.2 万字)抓下来重算分布之后,机检改了五处:
| 项 | 旧 | 新 | 依据 |
| 短句占比 | 下限 2%、上限 10% | 下限 1%、上限 15% | 池化 6.0%,但逐篇中位 0%——一半文章一句 ≤10 字短句都没有,4.4% 是均值,照它写会变成每段撒钉子 |
| 段首连接词 | > 5% | > 18% | 按段落统计:中位 3.7%、p90 21.4%;旧值 3.1% 是句子口径 |
| 破折号 | <1 也告警 | 只报 >4 | 中位 1.03,半数文章不到 1 处 |
| 强判断 | > 0.4/千字 | > 1.0/千字 | 实测 p90 = 0.88 |
| 数字密度 | 年份 < 3 | 年份 < 1 | 短文常无年份,误报 |
另新增两条检测:
展开完整文档(README 剩余 1 节)
dsh-plugin-baiguangda-style
白广大风格写作插件(v2.5.0)。把机核网资深编辑白广大的中文写作风格——文风与写作逻辑——装进 DeepSeek Harness:技能正文教模型怎么写,三个工具管写完怎么验,设置里还有一页:一个总开关管技能的挂与摘,三个配置项,外加贴一段稿子当场跑分数。资源随包携带,装到任何配置档都能独立工作。
v2.3.0:阈值按 444 篇全量语料重标定
把该账号全部文章(444 篇 / 80.2 万字)抓下来重算分布之后,机检改了五处:
| 项 | 旧 | 新 | 依据 |
| 短句占比 | 下限 2%、上限 10% | 下限 1%、上限 15% | 池化 6.0%,但逐篇中位 0%——一半文章一句 ≤10 字短句都没有,4.4% 是均值,照它写会变成每段撒钉子 |
| 段首连接词 | > 5% | > 18% | 按段落统计:中位 3.7%、p90 21.4%;旧值 3.1% 是句子口径 |
| 破折号 | <1 也告警 | 只报 >4 | 中位 1.03,半数文章不到 1 处 |
| 强判断 | > 0.4/千字 | > 1.0/千字 | 实测 p90 = 0.88 |
| 数字密度 | 年份 < 3 | 年份 < 1 | 短文常无年份,误报 |
另新增两条检测:
- B22 AI 口头禅:说实话/说白了/说到底/值得一提的是/综上所述…全量语料合计 31 次 / 80 万字,密度约 0.04/千字;
- B23 导读腔:先把结论/先说结论/后面我会/总结一下,语料 0 处;
- B24 孤证数字:百分比/万亿级金额/次数 ≥3 处且句内无来源,提示补出处(全量语料误报率 4/60)。
还有一个细节:引号里的词不再计入检测。写文章讨论「先说」「说实话」这类词时,它们是被引用的对象,不该按作者口癖扣分——机检先剥掉 「」、“”、"" 里的内容再扫。
v2.5.0:去 AI 痕迹判据全表(4 A + 27 B)
机检由 skill/scripts/style_lint.js 实现,阈值读 skill/scripts/thresholds.json。
A 级(出现即回炉):A1 ASCII 直引号混排 | A2 元叙述(先说/再说)| A3「不是…而是…」| A4 黑名单(综上所述/值得注意的是/随着…的发展)。
B 级 27 条,按四层分:
| 层 | 判据 |
| 词法 | B1 签名超量 · B2 括号吐槽 · B5 数字密度不足 · B21 强度形容与自述框架 · B22 口头禅(说实话/说白了/说到底)· B25 冗余量词(一个/一种过密、「一个重要的变化」空壳) |
| 句法 | B3 句长落差与短句区间 · B6 破折号/括号密度 · B9 段首价值升华 · B11 段首连接词 · B16 自我限定腔 · B20 句号密度与逗号比 · B26 段落节奏(段长 p90/p10 < 4)· B27 连接词单一(单一词占 ≥70%) |
| 修辞 | B8 强判断金句 · B12 强对比 · B14 加粗金句 · B15 否定对举 · B18 辩证对冲与名词化强调 · B19 假设立论/正反重述/方法声明链 |
| 结构 | B4 无引用出处 · B7 段落长度均匀 · B10 小标题同义展开 · B13 对象漂移 · B17 句子功能层(标签句/元衔接/评价性短句/操作引导)· B23 导读腔 · B24 孤证数字 |
引号里的词不计入(「」、“”、"" 先剥掉再扫),避免"讨论『先说』这个词"被当成作者口癖。
配套命令
| 命令 | 作用 |
| npm test | 冒烟 24 项:机检解析、审计判据、路由、开关、合写切分、访谈识别 |
| npm run bench | 回归基准:7 个固定样本,容差 ±3 分、A 级须一致 |
| npm run corpus -- --stats <目录> | 按语料重算分布,写 skill/corpus/baseline.json;加 --apply 按 p90 重写阈值 |
| npm run corpus -- --crawl <目录> | 抓取该账号全部署名稿(约 5 次请求) |
设置页另有两块:批量试跑(最多 20 篇,出均分与区间)与阈值表(当前生效值 + 标定日期)。
为什么是「技能 + 工具」两层
市场上写作类插件分两派:一派只塞提示词(换个说法,模型还是原来那个模型),一派只做 lint(挑毛病,但不知道好文章长什么样)。
这个插件两头接上:
| 层 | 载体 | 解决的问题 |
| 怎么写 | skill/SKILL.md(40KB,12 章) | 标题公式、开头套路、节奏、语域三档、引用习惯、结尾、体裁变体、写作纪律 9.1—9.11 |
| 写完怎么验 | style_lint 工具 | A 级硬错误 / B 级阈值警告 / C 级体检 / 预估得分(≥85 可发布) |
| 逻辑站不站得住 | style_audit 工具 | 立论是否前置、段末是否落在物证上、核心对象是否回访、小标题是否序数外露 |
| 阈值出处 | style_rules 工具 | 按关键词回查工具层 / 负样本库 / 完整版节选,返回 文件:行号 |
| 手上没文件时 | 设置页「白广大风格」 | 贴一段文字直接跑机检 / 结构审计,改配置也不用碰 YAML |
机检只覆盖词法与阈值;8 项人工判据(可交换性测试、判断的证据成本、零容忍清单……)仍要人过。插件不假装能替你判断。
安装
1) 装进 profile
dsh plugin --profile web add "C:\path\to\dsh-plugin-baiguangda-style"
2) 重启 dsh web(bundle 层在启动时组合,热改不生效)
3) 验证:会话里应出现 baiguangda-writing-style 技能 + 3 个工具;「设置 → 白广大风格」出现一页(状态 + 配置 + 试跑)
不装配置档也能单独跑:
node test/smoke.mjs # 22 项断言:机检解析、审计判据、条文检索、权限声明、设置页路由、总开关、插件装配
npm run sync # 从工作区 skill 目录重新同步 skill/ 快照
node scripts/sync-skill.mjs "D:/path/to/skill" # 指定源
配置:设置页或 cordis.patch.yml
三个键在「设置 → 白广大风格」里直接改,也可以写在 cordis.patch.yml 的 config 里(两种写法等价;设置页写的是 profile 的插件配置层):
| 键 | 默认 | 说明 |
| enabled | true | 总开关。关掉后不注册技能、不挂三个工具,设置页仍保留——在那页点一下就能再打开,不用重启 |
| skillName | baiguangda-writing-style | 注册进技能目录的名字 |
| registerSkill | auto | auto 时若工作区/用户目录已有同名文件系统 skill 则跳过运行时注册;always 强制注册;never 只提供工具(旧的 true / false 仍然认) |
| maxLintIssues | 12 | style_lint 与设置页最多回显多少条 B 级警告(A 级全给),范围 0—50 |
为什么要 auto:DSH 技能注册是「同一层内项目条目优先于运行时条目」。文件系统里已有 .dsh/skills/baiguangda-writing-style 时,运行时注册的副本会被遮蔽——白注册一份,技能目录里还多出一行重复项。auto 会探测到这种情况并只提供工具,同时在日志里说明原因。
设置页(/api/baiguangda-style + client.js)
装好重启后,设置里多一项「白广大风格」。它做三件事,全程不用开终端:
| 区块 | 内容 |
| 总开关 | 第一行就是开关:关掉当场摘下技能与三个工具(工具从模型可选列表里消失),设置页留着;再打开当场挂回。改的是 profile 配置层,重启后保持 |
| 状态 | 版本、技能是插件注册还是让位给文件系统同名项(连路径一起给出)、资源目录、校验脚本路径、权限自述 |
| 配置 | 技能名 / 同名时谁先说 / 最多列几条 B 级警告;点「保存」写进 profile 配置层,改技能名与让位策略会就地重注册,不必重启(总开关关着时这几项置灰) |
| 试跑 | 贴一段中文稿,点「跑机检」出分数 + A/B 明细,点「跑结构审计」出节表与待看清单 |
总开关为什么单独说:关掉不是「把配置改成不注册」,而是当场调 disposer 把技能和工具摘下来——ctx.skills.register() 与 ctx.tools.register() 都返回精确的卸载函数,sync() 统一管挂与摘,所以开关不需要重启就生效,也不会在模型侧留下一个调不通的工具名。
实现上有两条约束,改代码时别踩:
1. 设置表单靠 schemastery Config + volatile 字段。dsh-settings 只允许 .extra('volatile', true) 的字段经 settings.update() 写入;loader entry 的 id(cordis.patch.yml 里是 baiguangda-style)必须等于命名空间名,模块还要导出 Config。schemastery 拿不到时 Config 是 undefined,插件照常工作,只是设置页降级。
2. client bundle 不是 ESM,是自注册脚本:window.__ModuleLoader__.load({ id: '<包名>', factory }),页面靠 ctx.get('slots') 往 settings.section 槽位注册。package.json 要有 dsh.client(platform: web)和 exports['./client'],否则 web 端不会加载它。
试跑要把文字落成临时文件才能喂给 style_lint.js——写入范围只限 os.tmpdir() 下带 baiguangda-style- 前缀的临时目录,跑完立即删除。这条边界写在 dsh.permissions.fs.write,test/smoke.mjs 会核对「只有 src/preview.js 动写盘」。
三个工具
style_lint(path, maxLintIssues?) # 机检:A/B/C 分级 + 得分 + 命中行号
style_audit(path) # 结构审计:节表 + 待看清单(≤12 条)
style_rules(topic, limit?) # 条文检索:关键词 → 段落 + 文件:行号
style_audit 的判定口径全部写在输出里,且分体裁:
- 论证体:查立论后置(首个判断句落在第 4 段之后)、段末未收束(结尾停在陈述且无数字/年份)、核心对象缺席、序数小标题、大节无判断句。
- 口述/访谈体(检出 ≥8 处 说话人: 标记):立论前置、段末收束、判断句密度三项不适用,自动跳过——访谈稿按论证体挑毛病只会挑出噪音。
- 年表小节(标题是 1995 这类纯年份):不参与论证判定。
权限声明(dsh.permissions)
DSH 目前不在运行时强制插件权限:插件以宿主用户身份在进程内跑,dsh.permissions 是一份自述——给安装者、审计者、市场审核看的,不是沙箱。
所以少写一条不会让插件跑不动,只会让读的人被骗。本包的做法是把声明钉进测试:node test/smoke.mjs 里有 5 条断言在比对「声明 vs 真实代码」,声明漂移就红。
| 声明键 | 值 | 含义 |
| fs.read | skill/、src/、index.js、ARG:path | 只读包内资源与被检稿件 |
| fs.write | $TMP/baiguangda-style-/* | 只写系统临时目录:设置页试跑那一份稿子,跑完即删;包内资源与 profile 一律不写 |
| process.spawn | 1 条:node skill/scripts/style_lint.js <ARG:path>,shell: false | 唯一子进程是本包自带的 CJS 校验脚本,不经 shell |
| http.routes | /api/baiguangda-style | 设置页的 status / config / lint / audit 四条接口:同源、不鉴权,只读写本插件自己的配置 |
| net | [] | 不联网 |
| env.read | DSH_HOME、USERPROFILE、HOME | 只用来定位技能目录,做同名探测 |
| secrets | [] | 不读任何 token / 凭证 |
| registers.tools | style_lint、style_audit、style_rules | 向 ctx.tools 注册的工具 |
| registers.skills | baiguangda-writing-style | 向 ctx.skills 注册的技能(auto 模式下可能让位给同名文件系统 skill) |
| registers.settings | baiguangda-style | 设置页的命名空间(ctx.settings 里的一条 entry) |
ARG:path 指调用方传入的路径,插件不对它做目录限制——要检哪个文件就传哪个,读的只是那一个文件。
目录
index.js 插件入口(Config 表单 + 技能 + 3 工具 + /api 路由) client.js 设置页(自注册脚本,settings.section 槽位) cordis.patch.yml bundle 组合层:id baiguangda-style src/resources.js 资源路径解析、frontmatter 剥离、同名 skill 探测 src/lint.js 调 style_lint.js + 解析文本报告 src/audit.js 结构性/论证性判据(词表 + 位置近似) src/rules.js 四份文档的关键词检索 src/config.js 配置归一(auto/always/never、B 级条数钳位) src/preview.js 试跑:文字 → 临时文件 → 机检 / 审计(跑完即删) skill/ 技能正文 + 工具层 + 负样本库 + 完整版节选 + corpus + style_lint.js scripts/sync-skill.mjs 从工作区 skill 同步快照(单一真源在 .dsh/skills) test/smoke.mjs 12 项冒烟断言
skill/scripts/package.json 声明 {"type":"commonjs"}:style_lint.js 是 CJS 脚本,而包本身是 ESM,靠这行就近生效。
已知边界
- 机检阈值来自 444 篇语料基线,天生偏向书面考据/评测;口播稿请按 SKILL.md 第十一节语域三档放宽。
- style_audit 是词表 + 段落位置判定,不做语义理解:命中只作「回去看一眼」的提示,不构成结论。
- 插件不联网、不写外部状态,只读稿件与包内资源。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
BroWhitebyte/dsh-plugin-baiguangda-style
按机核编辑文风写作并机检去 AI 痕迹
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目