dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
论文方案(编排层)+ DSH 论文插件 V3:真源唯一 · 双模式(用户模式默认封闭)· 五种写作模式(行为差异化)· 确定性意图判据 · 可复跑自检(插件 20/20 · 出厂审查 6/6 · 编排层 53/53)。
本仓库是一个整包(不是"插件壳 + 外置资产"):files 已含 bin(CLI)· references(判据资产与期刊体系)· plugin(DSH 插件半体、MCP 服务端)· SKILL.md(技能手册)。
npm i -g dsh-paper-studio(或把本仓库作为 bundle 装进 profile)⇒ paper-studio 命令、paper-studio-mcp 服务端、以及全部判据资产一次到位。dsh plugin --profile <p> add github:liuhaolong16/dsh-paper-studio(等价,整棵树)。DSH_PAPER_STUDIO_ROOT → 包内自带(<pkg>/plugin/dist 往上两级)→ ~/.agents/skills/paper-studio → ~/.dsh/skills/paper-studio → ~/paper-studio → /opt/paper-studio。plugin/ 单目录不支持,且会显形失败(缺资产即退出码 1),不会静默降级。把「论文方案」(=论文框架 + 方法论 + 工作流)做成可编排、可机检、可在对话里直接用的一套东西:
一个 CLI 编排层(bin/studio.cjs + 唯一真源 references/pipeline.json)+ 一个 DSH 插件(plugin/,对话驱动、无面板、双模式、五种写作模式)。
判据不在这里:门、体裁、模板、篇幅预算、教训都在
references/的真源文件里,本仓只做编排与桥接。
--selftest 与 audit 会把"文档覆盖、规则表重复、真源单一所有者、门元数据、工具自检、数字漂移"六项自动核一遍。bin/ CLI 编排层(studio.cjs 及各子工具,全部自带 --selftest)
references/ 真源:pipeline.json(门/阶段/契约)· templates.json(章节骨架与预算)
market-parity.md(市面对齐取证与缺口)· plugin-spec-v3.md(V3 规格)
audit-2026-10-14.md(出厂审查报告)· aris-read-report.md(已读/未读如实报告)
plugin/ DSH 插件 V3(免编译 ESM):dist/plugin.js · skill/SKILL.md · hub/ · selftest.mjs
docs/ 快速上手
SKILL.md 技能说明(触发语 · 子命令用法 · 红线)
node bin\studio.cjs route "给这篇稿子做投稿前体检" :: 判任务类型 + 链路 + 必过门
node bin\studio.cjs sections --genre research :: 章节骨架(含篇幅预算与"必答问题")
node bin\studio.cjs audit :: 出厂审查(完整性/重复性/数字一致性 6 项)
node bin\studio.cjs selftest :: 编排层自检
:: 作为 bundle 装进 DSH profile(本地路径安装用 link: 规格)
plugin_manager install_bundle target="link:<本仓路径>/plugin"
装完宿主会注册两个工具:
| 工具 | 作用 |
|---|---|
paper_studio | 唯一使用入口。action=modes 取五模式菜单(用宿主的可点击选项呈现)· action=intent 确定性判意图(该启/不该启/拿不准)· 其余 action 桥接 CLI 并返回退出码 |
paper_dev | 开发者模式:list/read/write/unlock/seal。用户模式默认封闭,write 被拒并给解锁指引;写入仅限白名单资产根,越界拒收 |
环境变量:DSH_PAPER_STUDIO_ROOT(指向本仓根,未设时按 ~/.agents/skills/paper-studio → ~/.dsh/skills/paper-studio → ~/paper-studio → /opt/paper-studio 顺序找)· DSH_PAPER_HUB(状态目录,默认 ~/.dsh/paper-studio)。
node plugin\selftest.mjs :: 20 项:注册形态 · 严格 JSON Schema · 真封闭 · 越界拒收 · 五模式差异化 · 意图夹具 · 端到端跑 CLI
node bin\studio.cjs audit :: 6 项:文档覆盖 · 规则表重复 · 真源单一所有者 · 门元数据 · 工具自检实跑 · 数字漂移
node bin\studio.cjs selftest :: 编排层 53 项
references/pipeline.json 的 assets 段登记了作者本机的资产路径(论文方法本体仓、Python 解释器等)。换机器时按你的布局改这几项,或用环境变量覆盖。LICENSE(MIT)与 NOTICE.md(三分类口径:机制/思想不受著作权保护 · 本方实现 MIT · 本仓不含逐字复印的上游正文)。当前状态(2026-10-14 复核):两端均已公开可读,三端 commit 一致。 可见性判据:
git -c credential.helper= clone <url>且配一个已知公开仓做对照(只用"clone 成功"判公开会被 git 凭据助手污染);另用匿名 API 复核(GitHubapi.github.com/ Giteeapi/v5均 200)。
作者所在网络无法直连 github.com 的 git over HTTPS(实测:curl https://github.com/... 超时;但 https://api.github.com 200 正常)。因此 GitHub 侧的同步采用由 GitHub 自己拉取的方式,而不是本机推上去:
.github/workflows/sync-from-gitee.yml,会每 6 小时(以及手动 dispatch 时)由 Actions 运行器把 Gitee 的 main 镜像过来 —— 无需任何额外凭据(用运行器自带的 GITHUB_TOKEN)。为什么不用"本机直推":本机没有可用代理 /
gh/ SSH 密钥,且逐文件走 API 需把 530 KB 内容经模型上下文传输(约十几万 token)——代价不可接受,故不采用。
research-paper-playbook真源 references/pipeline.json / references/templates.json 里不含任何本机绝对路径,只放 __LOCAL__/<key> 占位符
(证据纪律:对外文本不得含路径分隔符)。真值放在用户主目录(既不入 git 也不进 npm 包):
mkdir -p ~/.dsh/paper-studio
cp references/local-paths.example.json ~/.dsh/paper-studio/local-paths.json # 然后按你的机器填
# 或:export DSH_PAPER_LOCAL_PATHS=/path/to/your/local-paths.json
为什么放主目录而不是包内:npm 打包时
files字段优先于.npmignore,放在包内的本机表排除不掉、会随包发给别人(装上就继承别人的绝对路径)。
需要填的 key:playbook_root · playbook_skill · writer_skill · polish_skill · python_exe · phrase_bank。
取不到时不会静默变成空串——运行时会明确提示"该值是未解析的本机路径占位符",并给出上面这一步。