victorzhong0110/dsh-code-reference ↗★ 1
dsh-code-reference
Code reference & reuse-survey plugin for DeepSeek Harness (DSH): search local code + GitHub/npm before building, evaluate reuse vs rewrite, ask the user, architecture-level reuse. 开发前检索本地与开源可复用代码并询问用户的复用调查插件。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:victorzhong0110/dsh-code-reference说明文档
阅读完整 README ↗dsh-code-reference
DeepSeek Harness (DSH) 代码参考检索与工程规范插件:在厘清需求之后自动调查本地与开源的可复用代码,把"候选清单 + 价值权衡"呈现给用户并询问是否需要复用(可选择复用哪个候选/改造/不复用直接开发);也支持配置为不询问、直接优先复用。
除"内容级"复用(相似的函数/组件/项目)外,还支持架构级复用:扫描本地已有的业务系统,判断新系统的整体架构能否直接复用(例如要做图书馆检索系统时,本地某个政务文件管理系统可能与其共享"检索与索引/用户与权限/文档与存储/管理后台"等能力,可直接以它为骨架)。
定位:候选发现器,不是自动决策器。 所有匹配度与架构相似度均为关键词/文件名/能力标签重叠的启发式信号,用于生成候选清单供用户选择;数据模型、边界与非功能需求兼容性必须由人工确认。
核心工作流
用户提出开发需求(新组件 / 新项目 / 大型重构)
→ 澄清需求(范围/语言/约束)
→ reuse_survey:自动调查(本地代码库 + 本地系统架构画像 + GitHub 等开源平台)并评估价值权衡
→ 向用户呈现候选清单 + 价值对比,询问是否复用
(用户选择:以本地系统为骨架 / 复用某个本地候选 / 复用某个开源项目 / 改造 / 直接开发)
→ 按用户选择执行(复用 → 改造 → 引入依赖 → 从零实现)
- 小任务豁免(模型工作流规则):改单个按钮、修复空指针/拼写缺陷、变量重命名等小型改动(预估 安全默认说明:仓库自带的
.code-reference-policy.json未设置remoteSearch(代码缺省为true,个人试用即可外发需求关键词)。企业环境必须使用上方模板(remoteSearch: false+requireTests: true)并纳入代码审查。
GitHub API 限流与 Token
未认证的 GitHub 搜索 API 约 10 次/分钟。设置环境变量可显著提高配额(5000 次/小时):
export DSH_GITHUB_TOKEN=ghp_xxxxxxxx # 或 GITHUB_TOKEN
插件会自动在 api.github.com 请求上附加 Authorization: Bearer,不会附加给 npm 等其他域名。Token 请勿写入政策文件或提交进 git(参见 SECURITY.md 威胁模型)。
测试与 CI
- 单元测试:
node --test test/core.test.mjs test/decision.test.mjs(67 个用例,node:test 零依赖)——core:纯函数、扫描边界(SKIP_DIRS/大小/fileBudget/扩展名)、远程 API mock(Token 携带与隔离、多档重试、端到端评估);decision:政策优先级(reuseMode/remoteSearch)、询问超时、no-candidates、auto-fallback、用户选择映射、scope="skip"程序化豁免、宿主加载冒烟 - CI:GitHub Actions(Node 20/22,actions 按 commit SHA 固定)自动运行语法检查 + 单测 + 政策 JSON 校验
安装
一键安装(dsh plugin add,推荐新用户)
本仓库声明了 dsh.bundle manifest,可用 DSH 官方插件机制安装(任何目录下):
git clone --branch v4.2.0 --depth 1 https://github.com/victorzhong0110/dsh-code-reference.git
dsh plugin --profile web add ./dsh-code-reference