让 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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
beex-labs/dsh-knowledge
让 AI 读懂代码并沉淀文档,后续开发自动带上
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目