ThunderForge 阶段性 PRD(v2

August 22, 2026 · View on GitHub

ThunderForge · 宇宙无敌雷霆霹雳炫光插件锻造炉dsh-thunderforge) 一站式 DSH 插件开发套件 · 单一 Bundle · MIT · 粘合层打通

本文档是唯一进度真相源:每个里程碑含目标 / 任务 / 交付物 / 验收标准 / 风险对策,完成即勾选。

0. 总体决策记录(已拍板,不再重议)

决策点结论依据
产品形态单一 dsh Bundle,dsh plugin add 一次装全用户决策 2026-08-22
payload 捕获不使用无许可上游组件;自研清洁室替代(已交付)许可审计:上游无 LICENSE
分发许可MIT 开源生态一致、摩擦最小
打通深度粘合层打通:不动各组件内部结构,靠统一入口/预设/数据格式串联风险低、上游可同步
命名ThunderForge(dsh-thunderforge雷霆风格

非目标:不做插件商店;不魔改 dsh 核心;v1 无 Web GUI。

合规底线:所有引入组件保留原许可证文本(LICENSES/);Apache-2.0 组件文件级保留 + NOTICE 标注修改;不引入 moeblack/dsh-payload-capture 的任何代码。


M0 — 地基与替代 ✅(2026-08-22 完成)

目标:项目骨架成型;无许可组件的替代品落地并验证。

已交付

#交付物说明
1规范研读LLM 适配器协议(GenerateOptions / StreamChunk / registerAdapter 语义)与打包规范(bundle manifest / patch 层序 / 子路径引用),来源为 MIT 的 dsh-plugin-dev-skills,合法
2Bundle 骨架package.jsondsh.bundle manifest + exports)、cordis.patch.yml(thunderforge-capture 插件行)、README、MIT LICENSE、LICENSES/README.md 合规台账(7 组件待引入 + 1 排除记录)、.gitignore、git init(main)
3thunderforge-capture清洁室自研:src/capture/core.js(清洗:密钥掩码/截断/循环容错;StreamChunk 聚合;存储:单次 JSON + index.jsonl 索引流 + 双维度轮转)+ src/capture/index.js(包装 ctx.llm.registerAdapter,原型链透传 resolveModel/listModels,双错误路径落盘,写盘异步化不打断模型流,dispose 自动还原补丁,HMR 安全)
4质量体系8 个单测全绿(掩码/聚合/失败路径/provider 过滤/轮转)+ 端到端冒烟(注册包装→分片原样透传→落盘→恢复原方法)

验收标准(全部达成)

  • node --test 8/8 通过
  • 冒烟:分片透传逐字节一致、密钥掩码生效、dispose 后不再包装
  • 零运行时依赖,ESM,Node ≥ 22.19
  • 清洁室声明 + 合规台账就位

M1 — 知识库合并分层 ✅(2026-08-22 完成)

目标:把两个开发知识库合法引入 bundle,agent 开发插件时按需加载,形成"架构标准 + 坑点手册"双层知识体系。

实施备注:1.1 调研结论落在 docs/notes/m1-skill-loading.md(依据本地官方源码 b150a551b); 挂载采用 ctx.skills.register() 内联注册 + 目录 resourceBase,入口层为自研 thunderforge-dev 索引技能。

任务

#任务细节
1.1技术调研:dsh 的 skill 加载机制确认 bundle 内 skills 的挂载方式(插件行 or 目录约定 or patch config),产出一段调研笔记入 docs/notes/
1.2引入 dsh-plugin-dev-skills(MIT)vendor 至 skills/arch-standard/,保留原 LICENSE 与版权头
1.3引入 dsh-plugin-guide(Apache-2.0)vendor 至 skills/pitfalls/,文件级保留原协议,NOTICE 记录任何修改
1.4合并策略:分层不打散两库内部结构原样保留(降低同步成本),新建 skills/thunderforge-dev/ 统一入口 skill:SKILL.md 索引两层(何时查架构、何时查坑点),复用上游 evals 方法做触发评测
1.5cordis.patch.yml 更新按 1.1 调研结论挂载 skills 行
1.6README 更新知识库使用说明

交付物

skills/ 三目录 + 调研笔记 + 更新后的 patch/README/LICENSES 台账状态。

验收标准

  • 注册链路验证:apply 后三层技能(thunderforge-dev / dsh-plugin-dev / dsh-plugin-guide)正确注册,resourceBase 目录有效(test/skills.test.mjs)
  • 入口技能触发评测集就绪(12 正例 + 6 负例,改编自两个上游);live agent 触发评测需 dsh 运行时,推迟到 M3 环境补跑
  • 两份上游 LICENSE 完整在库(skills/arch-standard、skills/pitfalls 原样 vendor,未修改上游正文)
  • 未修改上游正文(仅新增索引层)

风险与对策

风险对策
skill 挂载机制与预期不符1.1 前置调研,最坏情况 fallback:bundle 附带安装脚本把 skills 复制到约定目录
两库内容冲突不仲裁正文,索引层标注"以架构标准层为准/坑点层为补充"

工作量估计:1–2 天。


M2 — 脚手架内化 + 调试埋点 ✅(2026-08-22 完成)

目标:脚手架从外部 CLI 内化为 agent 工具;生成的插件骨架天生可调试、可冒烟、被 capture 覆盖——第一个核心闭环。

实施偏差(已记录台账):create-dsh-plugin 与 dsh-plugin-starter 未 vendor——模板改为依据 dsh-plugin-dev(MIT)的 examples/references 规范自研为零依赖形态(骨架无需安装依赖即可通过冒烟), 注册模式文件级标注上游参考。降低引入体量的同时规避了对上游模板结构的长期跟踪。

任务

#任务细节
2.1引入 create-dsh-plugin(MIT)提取 tool / events / webui 三类模板逻辑
2.2引入 dsh-plugin-starter(MIT)提取 tests + CI 模板(--verify 冒烟)
2.3thunderforge-scaffold 插件defineTool 注册 scaffold 工具(依据 dsh 工具开发规范),agent 对话式调用;模板选择/命名/输出目录作为工具参数
2.4调试埋点生成的骨架预置:标准事件命名、debug 清单文件、thunderforge-capture 配置行、smoke 测试模板
2.5smoke 工具生成后即可 --verifynode --test + 加载校验
2.6版本对齐锁定 @deepseek-ai/dsh-tools 等依赖版本策略(follow dsh-base 或 pin),补 Schemastery Config schema

交付物

src/scaffold/ + 模板目录 + 更新 patch 行。

验收标准

  • 工具级验证:thunderforge_scaffold 注册合规(defineTool 编译后 schema 校验),三类模板生成 → 生成即冒烟全部通过(test/scaffold.test.mjs,每模板真实 spawn node --test
  • 骨架预置调试埋点:thunderforge.debug.json(capture 索引流 + 事件前缀 + 冒烟命令)、生成 README 含 capture 接入指引
  • 模板测试 + CI 模板随骨架产出(test/smoke.test.mjs + .github/workflows/ci.yml)
  • 领域失败返回规范错误值(INVALID_PLUGIN_NAME / TARGET_EXISTS 不抛异常)
  • 依赖锁定:@deepseek-ai/dsh-tools@0.1.1-rc.2、schemastery@3.18.1(精确 pin,与本地源码版本一致);capture/skills 补齐 Schemastery Config schema
  • 真实 dsh 运行时端到端(对话触发 → 安装 → 模型调用落 capture)——推迟至 M3 发布验收(本机无 dsh 运行时)

风险与对策

风险对策
dsh-tools 处于 rc,API 变动仅用稳定面(defineTool/Config),变动面薄封装
上游模板与 dsh 版本漂移模板头标注基线版本,CI 冒烟兜底

工作量估计:2–3 天。


M3 — 调试器合并 + dev preset + 完整闭环 ✅(2026-08-22 完成)

目标:调试器双数据源合并、开发环境一键切换,跑通 PRD v1 定义的完整旅程并准备发布。

实施备注:

  • dsh-replay 的解码引擎(zstd 容器 + chunk-row 展开,MIT)vendor 为 src/debugger/session-log.js; 瀑布展示与双数据源对齐为自研(src/debugger/align.js)。
  • dsh-trajectory-debug 未 vendor(Web UI 宿主形态与本套件模型工具形态不匹配),概念参考已记台账。
  • dshp 核心(MIT)vendor 为 src/profile/dshp/;dev preset 生成器为增补,沿用其"只新建、不触碰既有 profile"保护原则。
  • 本机存在真实 ~/.dsh 会话日志,最大会话 11919 事件 / 8 turns / 76 toolCalls 已实际解码验证。

任务

#任务细节
3.1引入 dsh-trajectory-debug(MIT)轨迹瀑布 / 确定性回放 / 断点
3.2引入 dsh-replay(MIT)时间旅行回放(session.jsonl.zstd)
3.3thunderforge-debugger粘合:session 日志 + capture 的 index.jsonl 双数据源对齐(按 ts/seq 关联),脚手架项目优先展示
3.4引入 dshp(MIT)profile 列表/克隆/diff + 导出
3.5dev preset一键切换"开发环境"profile:干净安装被测插件 + 冒烟
3.6发布GitHub 公开仓库 + npm publish + dsh plugin add github:owner/dsh-thunderforge 验证 + 发布清单文档

交付物

src/debugger/src/profile/、preset 文件、发布产物。

验收标准(端到端,PRD v1 旅程全通)

  • 创建:thunderforge_scaffold 三模板生成即冒烟通过(M2 已验,28 项全量测试含盖)
  • 开发:三层知识库注册可用(M1 已验);live 触发评测仍需带模型的 dsh 会话(见"遗留")
  • 调试:thunderforge_debugger 在真实会话(1.2 万事件)上输出 turns/steps/toolCalls 概览与对齐瀑布;capture 行带文件引用
  • 环境验证:thunderforge_profile create-dev-preset 生成 tf-dev-m3 干净 profile(防覆盖守卫 + 只新建原则)
  • 真实 CLI 验收:dsh --profile tf-dev-m3 --dump-config 层加载(见下方"运行时验收记录")
  • 上游 LICENSE 台账闭环(附录 A 更新:2 vendor / 1 概念参考 / 2 改自研)

运行时验收记录

  • 本机 dsh CLI:npm 本地安装 @deepseek-ai/dsh@0.1.1-rc.2(npx 首跑下载停滞,改本地安装)
  • 结果:见仓库 docs/notes/m3-runtime-acceptance.md

遗留(发布后跟进)

  • live skill 触发评测(需带模型 API 的 dsh 会话)
  • 全链路:对话 → scaffold → 安装进 dev preset → 模型调用 → capture 落盘 → waterfall 对齐(需模型 API key)

工作量估计:3–4 天。


附录 A · 组件台账(随里程碑滚动更新)

组件许可证引入里程碑状态
dsh-plugin-dev-skillsMITM1已引入 skills/arch-standard(原样)
dsh-plugin-guideApache-2.0M1已引入 skills/pitfalls(原样,含上游 LICENSE/NOTICE)
create-dsh-pluginMITM2改为自研模板(依据 dsh-plugin-dev 规范,台账注明参考)
dsh-plugin-starterMITM2改为自研 tests/CI 模板
dsh-trajectory-debugMITM3待引入
dsh-replayMITM3待引入
dshpMITM3待引入
dsh-payload-capture排除,已由 thunderforge-capture 替代

附录 B · 打通接口预留(粘合层契约)

接口提供方消费方状态
index.jsonl 捕获索引流(seq/ts/model/ok/durationMs)thunderforge-capturethunderforge-debugger已交付并打通(waterfall 对齐验证)
thunderforge.debug.json 埋点清单(capture 索引 + 事件前缀 + 冒烟命令)thunderforge-scaffoldthunderforge-debugger / 开发者已交付
骨架调试埋点约定(事件命名 <plugin>/ + debug 清单)thunderforge-scaffoldthunderforge-debugger已交付
dev preset 声明(package.json bundles + link + patch 层)thunderforge-profile用户 / dsh CLI已交付并经真实 CLI 验证(tf-dev-m3)