dsh-tongwen:九档收纳与双份交接的 DSH 记忆插件

前言

在 DSH 里做多轮任务时,产物往往散落在工作区各处,下一 session 要靠聊天记录或人工整理才能接上。常见做法是自建文件夹约定或手写 README,但路径不统一、机器可读与用户可读各写一套,跨会话协作仍要人当中转。dsh-tongwen(书同文·车同轨)把「一个盘」当成档案馆:只收纳、只登记、只报告,不改文件内容;同一类进固定类型目录,所有会话走同一套交接格式。下面介绍它是什么、怎么装、怎么用。

这是什么

dsh-tongwen 是维护者 wx-holmes 发布的 DSH 插件,社区目录分类为「记忆」。简介:书同文·车同轨 — 九档统一收纳、机器/用户双份交接与会话变更报告。当前 package 版本为 0.3.21,许可证 MIT。

  • 书同文:同类进同一类型目录,物理名 ASCII 小写短横线,中文仅作显示名。
  • 车同轨:机器版交接给 DSH 读,用户版给人读,路径与格式固定。

插件以当前 dsh 进程权限运行;安装前请自行查看 GitHub 源码 与许可证。

九档与五条硬规则

顶层只有九个白名单目录,常量不可增删;需要新分类时在档内建二级目录,不新增第十档。空档不删,用到才建目录。

# 目录 中文名 放什么
1 handoff/ 交接 交接文件、索引、方向谱系、未闭环项、项目白板、请求信箱
2 created/ 创造 dsh 干活产出的东西
3 downloads/ 下载 联网拉回来的东西
4 incoming/ 外来 投喂或外部导入
5 scratch/ 临时 中间产物、可弃草稿
6 archive/ 归档 软删落点、版本备份、恢复
7 logs/ 日志 只追加的审计
8 config/ 配置 插件版本、快照、清单
9 self/ 自身 AI 自己的文件;只收纳和报告,不解析内容

五条硬规则(摘要):

  1. 顶层只有 9 档,不新建。
  2. 写文件前路径不确定,先调 locate / inspect_handoff 查证,不猜。
  3. 每次任务结束,机器版和用户版交接同时产出。
  4. 删除一律软删进 archive/trash/;scratch/ 真删要先问你。
  5. 本次方向与上次冲突时挂起问你,不自行选择。

核心功能:十五个工具

交接与任务

工具 干什么
locate 按关键词找已有实例,返回候选(档、类型、实例名、交接路径)
inspect_handoff 读一份交接:结构化字段 + 原文,可读历史版本
list_handoffs 列出实例,可按类型/状态/时间筛、分页
update_handoff 整节替换机器版交接第 3~6 节,自动留旧版备份
begin_task 登记任务:定档、定类型、定实例名,返回幂等键
end_task 结束任务:校验产物、写双份交接、版本化、更新索引、写审计
heartbeat 报一次心跳
restore 从 archive/trash 或 archive/versions 恢复文件
archive_handoff 交接实例整份软删进 archive/trash,并从索引摘掉

跨会话

工具 干什么
project_upsert 建或更新项目白板(目标、参与会话、分工、决定、当前一棒、待办、优先级 P0–P3);status: "done" 时移入 projects/done/
project_read 读一块白板(已归档的也能读)
project_list 列出所有白板(带优先级;已归档标 archived)
inbox_send 给某会话或 any 广播留一条请求
inbox_list 看自己的信箱(默认未处理)
inbox_close 标记请求处理完

交接文件形态

每个实例两份,固定名,按日期分目录;旧版进 archive/versions/:

handoff/
├── machine/YYYY-MM-DD/<实例>.machine.md    # 六节:身份 / 产物清单 / 目标与状态 / 方向锚点 / 事实 vs 假设 / 建议入口
└── user/YYYY-MM-DD/<实例>.user.md          # 五段大白话,含「别当真」

用户版不出现字段名、哈希、ID 或路径。

跨会话协作

一个会话干活、另一个接着干,靠三样:

  1. 项目白板 handoff/projects/<项目id>.md — project_upsert / project_read;优先级 P0–P3,默认 P2;做完 status: "done" 自动进 handoff/projects/done/。
  2. 请求信箱 handoff/inbox.jsonl — 只追加;inbox_send / inbox_list / inbox_close。
  3. 开场简报 — 每轮系统提示带交接根目录、总目录、当前一棒、项目数、待处理请求等。

begin_task 可加 project: "<项目id>";end_task 可加 next: [{to:"any", request:"..."}] 排下一棒。

handoff/README.md 为交接总目录,启动与归档后自动重写,按权重七段(文件 → 插件 → 工具 → A 盘 → 在办 → 清单 → 已归档);新会话先读这一页。

安装与启用

在本插件目录执行(资料原文命令):

dsh plugin --profile <profile> add <本目录绝对路径>

或用插件管理器:

plugin_manager { action: "install_bundle", target: "<本目录绝对路径>" }

装完重启 dsh 才会生效。换机器后第一件事是改根路径配置(见下节)。

配置

cordis.patch.yml 中 root 决定九档建在哪:

- insert:
    - id: tongwen
      name: dsh-tongwen
      config:
        # 改成你自己的目录。留空("")则落在 <用户主目录>/tongwen。
        # 填的路径建不出来时也会自动回退到 <用户主目录>/tongwen,并在简报里说一句。
        root: "A:\\tongwen"

不要直接填盘根(如 "A:\\"),Windows 上对盘根创建会报 EPERM。其余运行参数在 config/plugins/tongwen-tonggui/settings.json(插件只读),字段与默认值见仓库 lib/config.js。

selfScan.scope 可选 handoff(默认)或 self,决定会话变更笔记统计范围;切换时会重建基线并在笔记中注明。

典型用法

  1. 任务开始:路径不确定时先 locate 或 inspect_handoff;需要新实例则 begin_task(可挂 project)。
  2. 任务结束:end_task 产出 machine/user 双份交接,更新索引与审计;需要接力时用 next 或 inbox_send。
  3. 多会话:project_upsert 维护白板与 P 级;对方 session 靠开场简报与 inbox_list 接棒。
  4. 误删:restore 从 trash 或 versions 找回;整份交接废弃用 archive_handoff。

仓库提供四套冒烟脚本(均在临时目录跑,不碰真实盘根):

node scripts/smoke-core.mjs
node scripts/smoke-tools.mjs
node scripts/smoke-session.mjs
node scripts/smoke-cross-session.mjs

或 npm run smoke 一次跑齐。

适用场景与注意

适合:希望 DSH 任务产物有固定九档结构、每次任务有机器/用户双交接、多 session 用白板与信箱协作而不靠人转述的开发者。

注意:插件不评价、不解析 self/ 内容;软删与版本在 archive/;与上次任务方向冲突时会挂起询问。DeepSeek Harness 生态是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-tongwen 用九档白名单和固定双份交接,把「收纳 + 登记 + 报告」做成可复现约定;十五个工具覆盖任务生命周期与跨会话白板、信箱。进一步了解:

  • 目录页:https://www.skillhub.cn/plugins/wx-holmes/dsh-tongwen
  • 源码与 README:https://github.com/wx-holmes/dsh-tongwen
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜