DSP:AI 编程代理的代码结构长期记忆
用依赖图把代码库结构持久化到 .dsp/,让 AI 代理不再每次会话都重新扫描项目,省 token、加速导航、重构更安全。
技能完全本地运行:dsp-cli.py 仅在 .dsp/ 目录内读写,无网络调用、无敏感数据外发;UID 正则校验兼作路径安全防护,写前校验(resolve-before-write)降低半写风险;读取命令标记 read_only。扣分:remove-entity 的级联删除无内置确认或独立回滚机制(依赖用户 git),部分破坏性操作默认执行。
文档与脚本高度自洽:operations.md 各命令与 CLI 实现一一对应,错误经 stderr 输出并带修复提示(如 --toc 缺失提示),缓存有重建路径。静态评审上限 10 分:无已提交测试套件或可复核的关键路径执行证据,bootstrap 多子代理流程未经验证。
触发条件明确(.dsp/ 目录、DSP 关键词、建/改/删代码等五类场景),适用与不适用边界基本清晰,声明'DSP 不是人类文档'。扣分:无中文支持说明;效果依赖代理遵循大量流程纪律,对环境/代理能力的边界描述有限。
文档分层良好(SKILL.md + 三个 references),有详细操作语义、存储格式、FAQ 式导入模式说明,Apache-2.0 许可。重扣:README 明确声明仓库已弃用、不再维护,指向 dsp-codegen,维护责任与更新路径中断;未见版本号或 changelog。
核心任务(结构记忆、影响分析、导航)命令链完整、输出格式有明确约定(如 UID 取 stdout 末行),README 诚实披露 bootstrap 成本。静态上限 7:代表性输出未经验证,实际 token 节省与手动替代的对比仅有宣称,无实测证据。
仅有一手源码与详细规格文档(审计性较好),但无测试、无 CI 证据、无第三方执行或基准数据,'faster context, fewer tokens' 的核心主张不可独立复核。
- 仓库已声明弃用,维护已转移至 dsp-codegen;建议评估新版本而非依赖此目录
- remove-entity 等级联删除无确认步骤,务必在 git 干净状态下操作以便回滚
- .dsp/.cache/ 在 merge/rebase 后可能不一致,需手动 rebuild-cache
- 无测试与 CI 证据,所有可靠性结论来自静态阅读,未执行验证
- 无中文支持;引导大型项目成本较高(token 与时间),请评估性价比
这个 Skill 能做什么,适合哪些场景?
这个技能为 AI 编程代理提供基于图的结构性长期记忆。它在项目的 .dsp/ 目录中维护一张实体图:模块、函数、外部依赖各有一个稳定 UID,边记录导入关系和每条连接存在的原因。代理通过 dsp-cli.py 查询和更新这张图,用图遍历替代每次全库扫描。README 明确标注该项目已弃用,后续开发转移到了 dsp-codegen(兼容旧的 .dsp/ 图和 @dsp 标记)。
运行 Python 脚本 dsp-cli.py 在 .dsp/ 中读写纯文本实体图:create-object/create-function 建节点、create-shared 注册公共 API、add-import 记录依赖及 why、remove-*/move-entity/update-description 同步代码变更;提供 search、find-by-source、read-toc、get-children/get-parents、get-recipients(影响面分析)、get-path、detect-cycles、get-orphans、get-stats 等查询;源码中用 // @dsp <uid> 注释锚定身份;附带 git pre-commit/pre-push 钩子做图完整性检查;支持三波并行引导算法为存量项目建图。
- 在大型老项目(brownfield)上使用 AI 代理的团队,希望代理跨会话记住模块依赖和公共 API,而不是每任务花 5–15 分钟重新熟悉代码。
- 重构前想快速评估影响面的开发者:运行 get-parents 或 get-recipients 查看谁依赖将被修改的实体。
- 多根项目(如前后端分离)的维护者:每个根有自己的 TOC,作用域自动分配新实体。
- 想在提交前发现孤立实体和循环依赖的团队:安装随附的 git 钩子即可无 LLM 检查。
- 需要向代理解释某条依赖为何存在的场景:每个 import 边都带 why 字段,存在反向索引里。
这个 Skill 有哪些优点和局限?
- 把代理的结构性记忆跨会话持久化,图是纯文本、可 git 提交、可 diff 和评审。
- UID 与文件路径解耦,重命名/移动不破坏图身份。
- 内置反向索引缓存,get-recipients/get-parents 等反向遍历在大型图上仍快。
- 附带无需 LLM 的 git pre-commit/pre-push 钩子做图完整性检查。
- 兼容 Claude Code、Cursor、Codex,不锁定平台;有现成 dsp-boilerplate 快速起步。
- README 明确宣布项目已弃用,开发停止,继任者为 dsp-codegen(部分旧特性未迁移)。
- 大型存量项目引导需要真实投入:时间、token 和团队纪律。
- graph 的维护依赖代理严格遵守协议;merge/rebase 触碰 .dsp/ 时缓存可能合并出错,需手动 rebuild-cache。
- 每次代码变更都要多步 CLI 调用,对纯内部实现改动虽可跳过,但整体流程有额外开销。
- 源材料中没有提供测试套件或第三方评测的证据。
如何安装这个 Skill?
macOS/Linux:curl -fsSL https://raw.githubusercontent.com/k-kolomeitsev/data-structure-protocol/main/install.sh | bash(可加 cursor / claude / codex 参数指定代理,--global 装到用户级)。Windows:irm ...install.ps1 | iex。Codex 会话内:$skill-installer install https://github.com/k-kolomeitsev/data-structure-protocol/tree/main/skills/data-structure-protocol。项目级安装分别落到 .cursor/skills/、.claude/skills/、.codex/skills/。git 钩子用 ./hooks/install-hooks.sh(Windows 为 install-hooks.ps1)安装。注意:README 明确该仓库已弃用,作者推荐改用继任技能 dsp-codegen。
如何使用这个 Skill?
1) python dsp-cli.py --root . init 创建 .dsp/;2) 代理按 SKILL.md 协议工作:新建文件时 create-object + create-function --owner + create-shared,加导入时 add-import <importer> <imported> "why",删除/移动/改用途时调用对应 remove-*/move-entity/update-description 命令;3) 导航与查询:search "authentication"、find-by-source "src/auth/index.ts"、get-children <uid> --depth 2、get-recipients <uid> 做影响分析;4) 存量项目用三波并行引导算法建图,每文件只读一次;若 .dsp/ 被外部改动(如 merge/rebase),运行 rebuild-cache。触发条件:项目含 .dsp/ 目录,或用户提到 DSP、dsp-cli、结构映射。