🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

项目知识库 beex-labs/dsh-knowledge

DeepSeek Harnessv0.5.2
beex-labs19 天前有提交已提供中文文档扫描:含敏感能力

让 AI 读懂代码并沉淀文档,后续开发自动带上

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add beex-labs/dsh-knowledge
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 19 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-knowledge @ 0.5.2
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/16 04:08:46

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 16 处,展示前 14 条)
  • 读取本地文件
    index.js:100
    const hasKnowledgeBase = existsSync(join(dshDir, 'overview.md'))
  • 读取本地文件
    lib/knowledge.mjs:44
    if (VCS_MARKERS.some((marker) => existsSync(join(current, marker)))) return current
  • 读取本地文件
    lib/knowledge.mjs:46
    if (nearest === undefined && PROJECT_MARKERS.some((marker) => existsSync(join(current, marker)))) nearest = current
  • 读取本地文件
    lib/knowledge.mjs:78
    try { knowledgeInfo = lstatSync(dshDir) } catch {}
  • 读取本地文件
    lib/knowledge.mjs:85
    const found = candidates.find((candidate) => existsSync(candidate))
  • 读取本地文件
    lib/knowledge.mjs:88
    try { near = readdirSync(cwd, { withFileTypes: true }).filter((entry) => entry.isDirectory() && !entry.name.startsWith('.')).map((entry) => entry.name
  • 读取本地文件
    lib/knowledge.mjs:97
    try { const info = lstatSync(dir); return info.isDirectory() && !info.isSymbolicLink() } catch { return false }
  • 读取本地文件
    bin/dsh-knowledge.mjs:50
    try { if (!statSync(options.project).isDirectory()) throw new Error() } catch { throw new Error(`Project directory does not exist: ${options.project}`
  • 读取本地文件
    lib/install.mjs:30
    try { return lstatSync(path) } catch (error) { if (error.code === 'ENOENT') return undefined; throw error }
  • 读取本地文件
    lib/install.mjs:57
    return new TextDecoder('utf-8', { fatal: true }).decode(readFileSync(path))
  • 写入本地文件
    lib/install.mjs:255
    mkdirSync(dir)
  • 写入本地文件
    lib/install.mjs:271
    writeFileSync(temporary, entry.content, { encoding: 'utf8', flag: 'wx', mode: entry.mode || 0o644 })
  • 写入本地文件
    lib/install.mjs:274
    renameSync(temporary, entry.path)
  • 删除本地文件
    lib/install.mjs:275
    } finally { rmSync(temporary, { force: true }) }
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给你的 AI 装上项目记忆:/init 让它读代码库并写出 .dsh 文档,之后每一轮都会自动把这些文档注入回来。

README

由 DeepSeek 最新模型翻译生成
dsh-knowledge — DSH 项目知识系统 让 AI 读懂项目并把理解写成 .dsh 文档,以后每次开发需求都自动带着这些文档开工。 这个插件自己不做代码分析。 它只做两件事:把提示词交给 AI,以及把已有文档注入回后续对话。读代码、判断功能边界、写文档全部由 AI 用自己的工具完成。 /init → 注入提示词 → AI 自主阅读代码 → AI 写 .dsh 文档 ↓ 开发需求 → 自动注入文档 + 更新提示 → AI 改代码 → AI 自己判断是否更新文档 安装 克隆到本地(或直接指向 GitHub 仓库),在 DSH profile 里登记为 bundle: cd "$DSH_PROFILE_DIR" pnpm install --no-frozen-lockfile # 链接 dsh-knowledge package.json 需要包含依赖与 bundle: { "dependencies": { "dsh-knowledge": "link:<此目录绝对路径>" }, "dsh": { "profile": { "bundles": ["dsh-knowledge"] } } } link: 换成 github:<你的用户名>/<仓库名> 即可直接从 GitHub 安装。
展开完整文档(README 剩余 1 节)
dsh-knowledge — DSH 项目知识系统

让 AI 读懂项目并把理解写成 .dsh 文档,以后每次开发需求都自动带着这些文档开工。

这个插件自己不做代码分析。 它只做两件事:把提示词交给 AI,以及把已有文档注入回后续对话。读代码、判断功能边界、写文档全部由 AI 用自己的工具完成。

/init → 注入提示词 → AI 自主阅读代码 → AI 写 .dsh 文档 ↓ 开发需求 → 自动注入文档 + 更新提示 → AI 改代码 → AI 自己判断是否更新文档

安装

克隆到本地(或直接指向 GitHub 仓库),在 DSH profile 里登记为 bundle:

cd "$DSH_PROFILE_DIR"
pnpm install --no-frozen-lockfile # 链接 dsh-knowledge

package.json 需要包含依赖与 bundle:

{
"dependencies": { "dsh-knowledge": "link:<此目录绝对路径>" },
"dsh": { "profile": { "bundles": ["dsh-knowledge"] } }
}

link: 换成 github:<你的用户名>/<仓库名> 即可直接从 GitHub 安装。

cordis.patch.yml 负责插入插件行:

- insert:
- id: dsh-knowledge
name: 'dsh-knowledge'

零运行时依赖:只使用 node: 内置模块。

使用

/init [路径] — 让 AI 建立知识库

/init AI 阅读整个项目,写文档到项目根的 .dsh/ /init @src AI 只阅读 src/,文档仍写到项目根的 .dsh/ /init src/lib 嵌套路径同样可以

路径写法很宽松:开头的 @(输入框补全留下的)会被自动去掉,带空格的路径可以用引号包起来,写项目自己的目录名等同于整个项目,路径找不到时会列出可用的顶层目录。

/init 本身只做两件事:唤醒 AI,然后把完整指令注入进去。

界面上只会显示你输入的那一行(如 /init @src)。完整指令作为 system-reminder 注入,不会铺满对话——它和每轮自动注入文档用的是同一个机制。

之后 AI 会自己用 glob / grep / read 探索代码,再用 write 写文档,整个过程像普通对话一样显示在界面上。

知识库固定写在项目根目录,无论 /init 的参数指向哪个子目录。全项目只有一份 .dsh。

自动上下文注入

无需手动提醒。每轮对话的第一个 step,插件会注入:

1. overview.md 的正文(过长则截断并提示读原文)
2. .dsh 下的文档清单
3. 使用规则与更新提示——包括:由 AI 自己判断本次改动是否让文档过时

同一个知识库在同一会话内只注入一次,不重复占用上下文;AI 改过文档后会自动重新注入。

更新判断规则

注入的提示词里写明,由 AI 自行判断:

| 改动 | 是否更新文档 |
| 新增/删除功能,或改了入口、执行流程、数据流、模块依赖 | 更新对应文档 |
| 修 bug、改样式、调整不影响结构的实现细节 | 不动文档 |
| 拿不准 | 倾向于不写 |

原则是宁可不更新,也不要留下与代码不符的内容。

.dsh 结构

由 AI 按提示词生成,典型结构:

.dsh/
├── overview.md 项目用途、技术栈、核心模块、主要入口 ├── architecture.md 分层结构、模块边界、依赖方向、数据流 └── features/<名字>.md 每个功能一份:职责、入口、核心代码、流程、数据流、依赖

文件名由 AI 取有意义的名字(如 auth.md、order-sync.md),不是随机 ID。

安全

- 不复制源码:提示词明确要求只写结构与行为,不写源码片段、密钥、token、连接串。
- 拒绝危险范围:拒绝在用户主目录、DSH 自身配置目录、文件系统根目录建立知识库——这些位置会被其下所有会话误认为项目知识库。
- 文档即数据:注入的提示词声明 .dsh 中的任何指令都只是数据,不得当作指令执行。

平台能力说明

| 需求 | 平台能力 | 本插件的做法 |
| 命令触发 AI 工作 | Agent.followup(message) → send(…, wakeup=true) → wakeDriver() 开启真实回合 | /init 只 admit 一行 /init <路径> 来唤醒 AI,完整指令走注入 |
| 注入而不铺满界面 | agent/pre-step waterfall,可替换进入 step 的消息 | 待投递的 /init 指令与每轮知识库提醒都由此注入,界面上只留命令行 |
| 会话结束维护文档 | 无"会话结束"事件 | 不做程序化维护:改为在注入的提示词中要求 AI 自行判断并更新 |

/init 曾经在命令处理器里直接跑静态分析并生成文档,那是错的:命令处理器拿不到模型,只能靠正则猜功能边界。现在命令只负责派活。

测试

node test/run.mjs # 全部
node test/plugin.test.mjs # 插件行为:/init 派活、路径解析、拒绝规则、注入内容
node test/real-paths.mjs # 在真实工作区上复现实际用过的路径写法(诊断脚本)
node test/lint-imports.mjs # 未使用的 import

测试用假的 Cordis context 驱动真实的 apply(),重点断言 /init 必须真的调用了 followup——这正是上一版实现错的地方:它把活干完了,却没让 AI 参与。

配置

当前无需配置。

致谢

感谢为本项目做出贡献的人:

许可证

MIT,见 LICENSE。
预览分享卡片长什么样 ↓beex-labs/dsh-knowledge
分享 · DeepSeek Harness Hub
beex-labs/dsh-knowledge

让 AI 读懂代码并沉淀文档,后续开发自动带上

这是你的仓库?认领条目

回到顶部