跳到正文
dsh-market 浏览插件 GitHub EN

liangl1985/work-personal-secretary#work-personal-secretary

DSH 工作秘书集成体的本体:做安装引导(Python / WPS / 工作区环境探针、安装同仓库分发的子插件)与配置底座(生成指令层、记忆种子、技能、设置),并在界面里提供独立的「工作秘书」设置分区,自带宿主侧安装与检查逻辑。

Star 数 ★ 1 分类 通知与集成 收录于 2026-09-19

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add github:liangl1985/work-personal-secretary#path:/modules/work-personal-secretary

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

README

定位:工作秘书集成体的本体插件。一个集成体、一个设置入口;五个子插件各自独立。 本体的第一大功能是安装器(环境检查 → 依赖补齐 → 子插件安装 → 配置底座), 第二大功能是把 DSH 底层配置(指令层 / 记忆种子 / 技能 / 设置)在安装时分步落地。

这个模块做什么

能力 状态
设置左侧独立分区「工作秘书」 ✅ 本版提供
安装与检查(环境检查 / 依赖补齐 / 子插件安装 / 配置底座) ✅ 本版提供
核心配置(首次配置引导:目录与岗位 → 保存即执行一次生成) ✅ 本版提供
配置(把五个子插件的设置集中到本分区读写;原「能力配置」) ✅ 本版提供
随包说明网页(安装引导页 / 使用说明页,设置页内可展开) ✅ 本版提供
关于与致谢(集成体版本 · 五个子插件 · 第三方来源 · 免责边界) ✅ 本版提供

为什么是独立分区,而不是宿主「插件配置」页

DSH 的设置 → 插件 → 插件配置页只列宿主平面插件(终端 / Agent 循环 / Subagent / 网页搜索)。 用户插件要出现在其中,需自行贡献 settings.plugin.item。本集成体选择注册独立的 settings.section 分区:既不会与宿主插件混淆,也比在插件列表里翻找直观。

安装

dsh plugin --profile <profile> add <本模块目录>

宿主侧改动需重启 DSH 才加载;仅客户端改动刷新页面即可(客户端 bundle 按 revision 缓存, 故每次改动都会升 package.json 的版本号,界面里的 BUILD 常量与它同步维护)。

目录结构

work-personal-secretary/
├── package.json          # dsh.bundle.patch 指向 cordis.patch.yml;dsh.client.inject 声明客户端包
├── cordis.patch.yml      # 中性部署默认层(不含个人路径/称呼)
├── lib/index.js          # 宿主半入口:子插件清单 + 版本读取 + 路由接线(零运行时依赖)
├── lib/probe.js          # 七项只读环境探针
├── lib/install.js        # 子插件安装引擎(原子替换 + 逐文件 SHA256 校验)
├── lib/basedeck.js       # 配置底座引擎:指令层 / 记忆种子 / 技能 / 设置 / 目录 + 两个结构生成器
├── lib/preflight.js      # 可用性检查(环境就绪 / 目录合法可写 / 同工作区 / 目标无冲突)
├── lib/identity.js       # 「使用者身份」条目写入(区间替换 + 目录锁 + 备份 + 逐字节校验 + 回滚)
├── lib/domain.js         # 五个预置岗位正文 + 生成通道(promptEnhancer → llm 降级)
├── lib/md.js             # Markdown → HTML(随包说明网页渲染;转义 + 链接白名单)
├── lib/settings.js       # 本体设置命名空间
├── lib/settings-api.js   # 配置页宿主侧:设置只读枚举 / 白名单写入 / 专家打分预览
├── client/index.js       # 客户端半:手写 loader bundle,注册 settings.section 分区
├── defaults/             # 随包单一真相源:install.zh-CN.md(安装引导)· use.zh-CN.md(使用说明)
├── scripts/              # 七套自测脚本(不依赖宿主运行时)
├── CHANGELOG.md
├── NOTICE                # 集成体包含的子插件与第三方致谢
├── LICENSE
└── README.md

不引入构建步骤:客户端半是手写的 window.__ModuleLoader__.load({ id, factory }) bundle, 只依赖宿主注入的 react;与集成体现有模块(dsh-work-memory)写法一致。

配置项

cordis.patch.yml 是中性部署默认层,提供以下可选项;个性化可在该 profile 的 cordis.patch.yml 或设置页用户层按 id 覆盖:

配置项 默认 说明
selfCheckOnStartup false 启动时做一次只读环境探测并在日志里给出结论
repoRoot '' 集成体仓库目录(子插件安装的来源)。留空 = 自动探测集成体仓库目录;也可在此显式指定
workspace '' 配置底座的目标工作区(AGENTS.md 指令层与 .dsh/skills 的落点)。留空 = 由记忆镜像目录反推;反推结果可能是知识库 vault(会把 AGENTS.md 与技能写进真相源)→ 建议显式指定
obsidianDir '' 知识库根目录(Obsidian vault 根)。留空 = knowledgeDeck 显式 none(不猜路径);填了之后镜像建议值改为 <知识库根>/00_全局记忆

默认约定

首装即生效的语言与协作两条,唯一载体是记忆种子 defaults/global-memory.seed.md(随包,首装时写入使用者记忆库的全局记忆),可由使用者改写:

  1. 语言:回答与推理使用简体中文;代码、命令、路径、包名、API/字段名、日志与报错原文等保留英文原样,不刻意翻译。
  2. 协作:主对话负责拆解、派单、核对与对外沟通,具体工作交专家子代理执行;涉密或敏感内容由主上下文直接处理。

为什么不再写进指令模板(2026-09-30 使用者定):同一套措辞此前同时出现在「指令模板 + 记忆种子」两处,属重复维护;现由记忆层单一承担(每轮注入)。若希望它具备指令层的更强约束(DSH 每轮作为指令注入、优先级高于技能文档),请在使用者自己的工作区 AGENTS.md 块外自行声明——块外内容安装器一律不动。

设计约定

  • 中性:发布件不含任何个人身份、称呼、私有路径或记忆数据;
  • 零运行时依赖:宿主 peer 缺失时不影响加载;
  • 不写死版本:宿主半从自身 package.json 读取版本;子插件版本由后续的安装器探测(不在界面里写死);
  • 设置分层:cordis.patch.yml 是部署默认层,个性化只走设置页用户层;
  • 安装安全:子插件以原子替换就位(临时目录 → 逐文件 SHA256 校验 → 替换,旧目录保留到最后); 装前备份 profile 的 package.json(写后校验 JSON 与 BOM),备份只保留最近 10 份,失败自动回滚。

分期路线

期 内容
P0 本体骨架 + 设置独立分区 + 关于与致谢(本版)
P1 环境自检 + 依赖补齐
P2 子插件从仓库内置副本安装(离线可用,装后逐文件 SHA256 校验)
P3 配置底座:AGENTS.md 标记块合并 · 记忆种子 · 技能 · 设置用户层 · 目录
P4 能力配置:把子插件设置集中到本分区读写(子插件命名空间保持独立)
P5 收尾:第三方 vendor 落库、根级 NOTICE、统一 v1.0.0、发布清单与 CI
P6 设置界面改版:四页签 / 核心配置执行链 / 配置页按 12.1 收窄 / 两个结构生成器 / 随包说明网页(1.1.3)

许可

MIT。集成体包含的五个子插件与第三方来源见 NOTICE 及各子模块的 NOTICE。

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。