DeepSeek Harness Hub
← 返回列表

phantomSuying/dsh-module-driven-develop

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

🧩 dsh-plugin-module-driven-dev

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/30 · 已提供中文文档

面向模块驱动开发的DSH插件:将需求分解为模块树,为每个模块分配独立代理进行生成,并在任何变更时基于设计完整重新生成。

综合分
28.8
GitHub 分
28.8
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add phantomSuying/dsh-module-driven-develop
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

🧩 dsh-plugin-module-driven-dev

DeepSeek Harness 的模块驱动开发(MDD)插件

把任意需求递归拆解成模块树,让每个模块由独立 agent 完成设计与代码生成,由主 agent 统一调度、集成、调试;设计或需求一旦变更,从设计出发全量重新生成。

DSH plugin
Version
Skill
Stars
License

目录

- 特性
- 示例项目
- 安装
- 使用
- 工作原理
- 项目结构
- 开发
- 许可证

✨ 特性

| # | 特性 | 实现方式 |
|---|------|----------|
| 1 | 编程插件 | 技能驱动的软件开发工作协议,覆盖拆解、设计、实现、集成、调试、变更管理全流程 |
| 2 | 需求递归拆解 | 需求 → 模块 → 子模块,逐层拆解直到每个叶子模块小到单个 agent 可独立完成设计与实现(终止规则见 references/decomposition.md) |
| 3 | 独立 agent 生成代码 | 每个叶子模块由独立子 agent 一次性完整生成;带子模块的模块 agent 自动成为下一层主 agent 递归派单;主 agent 统一调度、集成、调试(references/agent-protocol.md) |
| 4 | 设计变更 ⇒ 代码全量重生成 | 设计文档是唯一事实来源;修订号 +1 即触发:旧代码整体归档、目录清空、按新设计从零重新生成,禁止在旧代码上打补丁 |
| 5 | 需求调整递归传播 | 主 agent 派"变更分析师"子 agent 定位受影响模块(含沿依赖图的间接传播);各模块 agent 自主判断是否继续下发到子模块 agent,最后重新设计 + 重新生成 |

🎯 示例项目:auth-service

一个用本插件端到端开发出来的真实项目——小型 JWT 认证服务(Python 3.12 / FastAPI + SQLite),完全由 MDD 流程产出。

| 模块 id | Python 包 | 职责 |
|---------|-----------|------|
| common/contracts | authsvc_contracts | 公共 DTO(pydantic)、业务异常、规则常量 |
| common/config | authsvc_config | 环境变量配置加载(AUTH_* 前缀) |
| core/security | authsvc_security | PBKDF2-SHA256 密码哈希、JWT 签发/验证、token 哈希 |
| data/db | authsvc_db | SQLite 连接(WAL、外键)与 users/sessions schema |
| data/user-store | authsvc_user_store | 用户表存取 |
| data/session-store | authsvc_session_store | 会话生命周期(创建/查询/吊销) |
| auth/service | authsvc_auth | 认证业务编排:注册/登录/刷新/登出/me |
| api/routes | authsvc_api | FastAPI HTTP 层:路由、依赖注入、统一异常处理 |

仓库里的 .mdd/ 工作区完整记录了全过程:

- manifest.md — 模块树:8 个叶子模块 + root、依赖图无环、状态 integrated、revision 1;
- designs/ — 9 份设计文档(每模块 + root),含契约表、依赖引用、验收标准、修订历史;
- logs/schedule.md — 派单流水:5 个拓扑批次(B1–B5)独立子 agent,随后 P4 集成与 P5 冒烟;
- logs//report.md — 各模块交付报告。

实测验证:

- ✅ 169 个测试用例全部通过(模块单测 + API 端到端,exit 0);
- ✅ 15/15 项 HTTP 冒烟检查通过——注册、重复注册 409、登录、错误密码 401、/me、refresh token rotation(防重放)、登出吊销、校验错误。

克隆下来看看——每个设计决策、派单和测试都记录在 .mdd/ 里。

📦 安装

方式 A:一键安装(profile 插件包,推荐)

本包是自包含的 Cordis bundle:index.js 通过 import.meta.url 自动定位包内 skills/ 目录并注册技能 provider——无任何写死的绝对路径,任意机器、任意安装来源都可用:

一条命令装进 profile(web 或其他 profile 名),重启 dsh 后生效
dsh plugin --profile web add git+https://github.com/phantomSuying/dsh-module-driven-develop.git

安装后该 profile 下所有 agent 会话的技能目录都会包含 module-driven-dev。

方式 B:复制技能目录(无需 pnpm / profile)

DSH 从固定技能根目录发现技能(/.dsh/skills、~/.dsh/skills、~/.agents/skills):

安装到当前项目(本目录会话立即可用)
.\scripts\install.ps1 -Scope Project

安装到用户级(所有项目可用)
.\scripts\install.ps1 -Scope User

方式 C:从打包产物安装

npm pack
dsh plugin --profile web add C:\path\to\dsh-plugin-module-driven-dev-1.1.0.tgz

验证

新会话中让 agent 列出可用技能(或直接说"使用模块驱动开发模式"),应能看到 module-driven-dev。

🚀 使用

直接在对话中对 agent 说:

- "用模块驱动开发实现 \" → 主 agent 执行 P0–P5:拆解模块树(.mdd/manifest.md)→ 逐模块设计(.mdd/designs/)→ 派独立子 agent 生成代码(.mdd/code/)→ 主 agent 集成、构建、调试。
- "把 \ 的设计改成 …" → 设计变更:修订号 +1 → 旧代码归档 → 按新设计全量重新生成。
- "需求调整:\" → 变更分析师子 agent 定位受影响模块(含沿依赖图的传播),模块 agent 递归决定是否继续下发,最后重新设计 + 重新生成 + 重新集成。

所有产物在 .mdd/ 下(布局见 references/workspace-layout.md)。

🧠 工作原理

dsh-plugin-module-driven-dev        ← Cordis bundle(补丁层,本身不执行)
└─ cordis.patch.yml 插入一行:
skill-mdd-provider            ← 加载树条目(id)
name: dsh-plugin-module-driven-dev
└─ index.js               ← 自定位插件(import.meta.url → ./skills/)
└─ ctx.skills provider:module-driven-dev
└─ 发现 → module-driven-dev(技能本体 SKILL.md)
└─ 主 agent 协议:P0 启动 → P1 拆解 → P2 设计
→ P3 独立 agent 生成 → P4 集成 → P5 调试 → P6 变更

技能是"产品",provider 行是让它被发现的基础设施。

📁 项目结构

dsh-plugin-module-driven-develop/
├── index.js                 # 自包含技能 provider(可移植,无绝对路径)
├── cordis.patch.yml         # Bundle patch:把 index.js 挂进 host 组合
├── package.json             # Bundle 元数据(dsh.bundle.patch)
├── scripts/
│   └── install.ps1          # 技能目录安装脚本(Project / User 两种作用域)
├── test-provider.mjs        # 技能 provider 功能测试
└── skills/
└── module-driven-dev/   # 插件核心:技能 bundle
├── SKILL.md                    # 主 agent 工作协议(六大阶段)
└── references/
├── decomposition.md        # 拆解算法与叶子终止条件
├── agent-protocol.md       # 子 agent 调度协议 + 派单提示词模板
├── workspace-layout.md     # .mdd/ 工作区约定
└── templates/
├── module-design.md    # 模块设计文档模板
├── module-manifest.md  # 模块树 manifest 模板
└── change-request.md   # 需求变更请求模板

🛠 开发

npm pack                                        # 构建可分发的 tgz
node test-provider.mjs                          # 验证技能 provider(发现 + 加载)
.\scripts\install.ps1 -Scope Project            # 本地安装技能用于测试

provider 刻意零依赖:除 Node 内置模块外没有任何运行时依赖,因此可装到任何环境。

📄 许可证

MIT © 2026 phantomSuying

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群