dsh-topic-flow
一个 DeepSeek Harness(DSH)bundle,自动安装 选题工程师(AFP双线路) agent 预设——学术论文选题工程化辅助系统(Academic-Topic-Auto-Flow)v1.0,把模糊的研究兴趣工程化为可研究、可论证、可发表的选题路径。
能力
- 双线路路由:Step 1 问卷(
ask_user_question)分流——学位论文走 Track A,期刊论文走 Track B(额外询问目标期刊)。 - Track A 学位论文线(A1–A6):锁定研究单位(新/老单位判定与调整双轨制)→ 匹配研究维度(老单位标题投喂倒逼法 / 新单位 6 大密码本饱和式穷举)→ 划定研究界限(限定词)→ 文献校准与 GAP 提取(主题聚类 / 混淆·忽略·应用类 GAP)→ 确立问题链(主问题 + what/how/why/should 子问题)→ 选题设计报告。
- Track B 期刊论文线(B1–B11):期刊 DNA 分析(结构/语义/方法/雷区/绝活词五维)→ 选题势能分析(天势/地势/人势)→ 研究单位(人/物/理/事/模)→ 维度罗盘(3 对 6 向度)→ 限定词(WHEN/WHERE/WHICH + LEPEST)→ 研究视角 → 研究方法与数据方案 → 预设研究观点(借假修真)→ 标题结构骨架 → 逐词打磨(五类词表 + 绝活词控制线)→ 终稿审查与 CSSCI 评分(<60 Reject / 60–75 Revise / ≥75 Pass)。
- 双角色引擎:🟢 选题工程师执行推进;🔴 学术审计官(博导答辩组 / CSSCI 编辑)对每一步输出 Pass/Revise/Reject,Reject 不得进入下一步。
- 运行时协议:心跳信号、绝对步进(每阶段仪表盘 + STOP)、单位-领域隔离、反幻觉防火墙(缺信息标 [待验证])、Pull 交互。
- 交接模式:选题终局(A6/B11)后询问「继续撰写论文 / 保存报告结束会话」——继续则无缝切换为论文写作执行者,加载 academic-paper skill 承接选题设计报告,心跳协议自动暂停。
- 终局选题设计报告同步保存为工作区
选题设计报告.md,供后续论文写作/审稿 skill 复用。
安装
方式一:从 GitHub 直接安装(最简单)
使用方(安装了 dsh CLI):
dsh plugin add github:zhengdq2018-pixel/dsh-topic-flow
安装后重启任意 profile,新建会话时在预设选择器中选择「选题工程师(AFP双线路)」即可。
方式二:npm 包(官方标准)
发布方:
cd dsh-topic-flow
npm publish --access public # 或发布到你的私有 registry / GitHub Packages
使用方(安装了 dsh CLI):
dsh plugin add dsh-topic-flow
# 或者 scoped:dsh plugin add @yourname/dsh-topic-flow
安装后重启任意 profile,新建会话时在预设选择器中选择「选题工程师(AFP双线路)」即可。
安装是幂等的:如果对方
~/.dsh/.agent-presets/topic-flow/已存在(例如对方已手动改过),不会覆盖其修改。
方式三:直接分发 preset 目录(零依赖)
把包内的 preset/topic-flow/ 目录整体复制到对方机器:
mkdir -p ~/.dsh/.agent-presets
cp -R preset/topic-flow ~/.dsh/.agent-presets/
新建会话时即可在预设选择器中看到「选题工程师(AFP双线路)」。
自定义
- 改预设内容:编辑本地
~/.dsh/.agent-presets/topic-flow/,然后npm run sync(或在npm pack/npm publish时自动触发prepack)把最新版同步回包内。 - 改预设 id:默认
topic-flow;可在cordis.patch.yml的 installer 行配置presetId覆盖。 - 跳过自动安装:installer 行配置
installPreset: false。
目录结构
dsh-topic-flow/
├── package.json # dsh.bundle 元数据 + 发布配置
├── cordis.patch.yml # 注册 installer 插件行
├── lib/index.js # installer:preset/ -> ~/.dsh/.agent-presets/
├── preset/topic-flow/ # 预设本体(agent.cordis.yml + preset.yml + skills/)
├── scripts/sync-preset.mjs # 本地预设 -> 包内(prepack 自动执行)
└── LICENSE