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

成员管理 SMPcosy/dsh-member-manager

DeepSeek Harness
SMPcosy3 天前有提交已提供中文文档扫描:含敏感能力

为团队搭建部门工号与任务派发流程

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add SMPcosy/dsh-member-manager
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 3 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
  • 发起网络请求
    lib/client.js:1187
    const res = await fetch(API + path, init);
  • 发起网络请求
    lib/client.js:7691
    const res = await fetch(url, { headers: { accept: "application/json" } });
  • 读取本地文件
    src/host/company-runtime.mjs:438
    const raw = await readFile(path.join(dataDir, "company.json"), "utf8");
  • 读取本地文件
    src/host/company-runtime.mjs:985
    const raw = await readFile(path.join(dataDir, "registry.json"), "utf8");
  • 读取本地文件
    src/host/company-runtime.mjs:1174
    const raw = await readFile(path.join(dataDir, "registry.json"), "utf8");
  • 读取本地文件
    src/host/company-runtime.mjs:1457
    marker = JSON.parse(await readFile(markerPath, "utf8"));
  • 删除本地文件
    src/host/company-runtime.mjs:1487
    await rm(markerPath, { force: true });
  • 删除本地文件
    src/host/company-runtime.mjs:1501
    await rm(markerPath, { force: true });
  • 写入本地文件
    src/host/company-runtime.mjs:1509
    await writeFile(markerPath + ".failed", JSON.stringify({ ...marker, attempts: nextAttempts, error: message, failedAt: new Date().toISOString() }, null
  • 删除本地文件
    src/host/company-runtime.mjs:1510
    await rm(markerPath, { force: true });
  • 写入本地文件
    src/host/company-runtime.mjs:1513
    await writeFile(markerPath, JSON.stringify({ ...marker, attempts: nextAttempts, lastError: message, lastTriedAt: new Date().toISOString() }, null, 2),
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件,用来搭一套可运行的公司组织架构:部门、员工工号、M/P 双通道、DAG 任务图调度、审计与成本归属,另有一层花名册覆盖显示名、角色、技能和模型覆盖。零运行时依赖。

README

由 DeepSeek 最新模型翻译生成
📇 DSH Member Manager / 成员管理 一个 DeepSeek Harness 插件,给公司组织装上可运行的骨架 —— 部门、工号、M/P 双通道、DAG 派发、审计与成本归因。 给 DeepSeek Harness(DSH)加一层可运行的公司化组织:部门与工号、M/P 双通道等级、工单派工与验收、任务图(DAG)并行派发、审计与成本归因;名册覆盖层负责显示名 / 岗位 / 职责 / 技能 / 模型覆盖。 dsh-member-manager · v0.5.1 · MIT · Node ≥ 22.19 · 零运行时依赖 新手先看 docs/28-新手使用教程.md。 点击下方标题可查看 中文 或 English。 Click a heading below to view English or 中文 . 🀄 中文(默认打开) 简介 DSH 有个约束:成员名不可改、不可删。本插件在这之上维护一层名册覆盖层(显示名 / 岗位 / 职责 / 技能 / 模型覆盖),再往上提供公司化运行时:部门编号、员工工号、M/P 双通道等级、工单与派工凭证、任务图(DAG)并行派发、审计与 token 成本归因。
展开完整文档(README 剩余 1 节)
📇 DSH Member Manager / 成员管理

一个 DeepSeek Harness 插件,给公司组织装上可运行的骨架 —— 部门、工号、M/P 双通道、DAG 派发、审计与成本归因。

给 DeepSeek Harness(DSH)加一层可运行的公司化组织:部门与工号、M/P 双通道等级、工单派工与验收、任务图(DAG)并行派发、审计与成本归因;名册覆盖层负责显示名 / 岗位 / 职责 / 技能 / 模型覆盖。

dsh-member-manager · v0.5.1 · MIT · Node ≥ 22.19 · 零运行时依赖

新手先看 docs/28-新手使用教程.md。

点击下方标题可查看 中文 或 English。
Click a heading below to view English or 中文 .

🀄 中文(默认打开)

简介

DSH 有个约束:成员名不可改、不可删。本插件在这之上维护一层名册覆盖层(显示名 / 岗位 / 职责 / 技能 / 模型覆盖),再往上提供公司化运行时:部门编号、员工工号、M/P 双通道等级、工单与派工凭证、任务图(DAG)并行派发、审计与 token 成本归因。

- 数据目录 ~/.dsh/storages/member-manager/(名册与公司化数据格式稳定,可跨版本升级)
- 入口:设置 →「成员管理」面板;对话里的 member_(16 个)与 company_(14 个)工具

界面一览

组织架构

组织架构:管理层 → 部门/小组 → 成员拓扑,按会话(任务)切换(独立演示渲染)

工作流面板

工作流面板:成员工作状态、任务板与统计(独立演示渲染)

工作网看板

工作网调度看板:排队 / 已路由 / 执行中 / 已完成 / 异常 五条泳道,异常泳道含异常记录与清理(独立演示渲染)

截图来自 demo/ 的独立演示页(demo/.html,不连 DSH,数据为 mock);真实面板请在 DSH 设置 →「成员管理」打开。

快速开始

1. 安装(见「安装」;当前用本地 link 或 tgz)。
2. 重启 DSH(插件不支持热重载)。
3. 设置 →「成员管理」→「总架构」。
4. 「新建部门」→ 输入一句话(如「新建市场部,编制 5 人」)→「创建预览」→「创建」。
5. 对话里派活:company_order(或 company_plan 提交任务图)→ company_assign → 员工 company_accept / company_report → company_review。

核心能力

| 能力 | 说明 |
| 组织 | 部门编号 D01…(模板可自定义)、编制、接单范围、借调策略、职责描述;仅空部门可删除 |
| 员工 | 工号 E0001…、M/P 双通道等级(可并存)、岗位/职责/技能/模型覆盖、停用/调岗;v0.4 追加推理强度 / 派生方式 spawn·fork / 子代理深度 / 工具黑白名单 / 会话策略 |
| 总架构 | 管理层(虚拟聚合节点,M 通道)→ 部门图框 → 员工卡;管理层可重命名,编号规则与等级目录可「自定义」 |
| 员工中心 | 全量员工列表,按部门/等级排序,支持部门、停用与名册关联状态筛选;行内显示「名册·已登记 / 未登记 / 已停用」徽章,可单个或批量登记 |
| 名册关联 | 公司员工与 registry.json 双向关联:缺省「员工 id 即名册 target」(12 名历史员工零迁移),需要别名时写显式 rosterTarget;登记沿用「只补空字段、绝不覆盖」,refresh 才回填;member_list 附带公司关联、member_diagnose 报告 rosterLinks,CLI scripts/roster-link.mjs 可 --list / 按部门 / 单员工登记 |
| 人事管理 | 行内展开详情:公司化资料(3 列:显示名/岗位、技能/模型选择器、职责 ≤8 条)+ 通道 / 晋升 / 停用 / 调岗 |
| 部门弹层 | 两个页签(部门架构图 / 成员详情),内可招聘,页签行有「部门编辑」(名称/编号/编制/描述/接单范围/借调策略) |
| 工作网 | 右侧栏,只在点「工作网」按钮时打开,绝不自动弹出:上半部五泳道任务看板(待派/已路由/执行中/已完成/异常)+ KPI + 调度器状态 + 部门产能条,卡片点开详情、派工、验收、升级、取消,点详情外任意处收起;异常泳道只显示当前卡住的工单,历史异常归入「异常记录」区(可手动清理),无卡单时显示「重启进度」按钮;下半部管理层 → 部门 → 员工拓扑(工号/等级/任务/用量),空闲折叠,2s 刷新;公司化关闭时回退任务视图 |
| 派工闭环 | order → 五级路由回退(显式部门 / 规则表 / 部门接单范围 / 技能 / 兜底)→ attempt(派工凭证)→ accept → report → review;attemptId 防串单、重派先吊销旧 attempt、派工失败回滚重派、重启后冷恢复、终态订单孤儿 attempt 自动回收;忙碌门禁(E_EMPLOYEE_BUSY)防止同一员工被连派两单;调度器按优先级 + 依赖 + 部门产能派工,满编部门不再饿死其它部门 |
| 并行派发(DAG) | company_plan 一次提交任务图(≤50 任务),用 key 互相声明依赖;无依赖同层并行派发,下游等上游 done 自动放行;内置环检测等 6 类校验(E_PLAN_EMPTY / TOO_LARGE / TASK_INVALID / DUP_KEY / BAD_REF / CYCLE);company_status({group}) 按批次汇总 done/running/pending/failed |
| 成本 & 审计 | token/请求按员工 / 部门 / 工单归因(GET /company/costs);audit.jsonl append-only、加载时重放对账 |
| 隔离与降级 | 员工会话继承宿主标准工具;公司管理工具(company_)走同步 guard + 执行体会话反查(v5.24 起不再收窄工具面);越权 E_TOOL_LINE,缺宿主服务 E_NO_AGENTS,开关关闭 E_DISABLED,均不影响名册功能 |

M/P 双通道与编号

| 通道 | 默认等级目录 | 默认等级 |
| M 管理 | M1 主管 / M2 经理 / M3 高级经理 / M4 总监 / M5 副总裁 | manager → M2 |
| P 技术 | P1 初级工程师 / P2 工程师 / P3 高级工程师 / P4 资深工程师 / P5 技术专家 / P6 首席专家 | staff → P3、window → P1 |

- 同一员工可同时拥有 M 与 P 等级:channels:[{channel,level}],至少一个;manager 必含 M、window 仅 P。
- 晋升:同通道逐级 ±1;跨通道需显式目标等级且 role 跟随(window 不可转 M)。
- 编号模板:默认 E{seq:4} / D{seq:2},占位符 {seq} {seq:N} {dept} {channel} {level};优先级 company.json 持久值 > 配置 > 内置默认。
- 历史数据 boot 时自动补号补通道(非法等级回退默认),不丢员工。

安装

方式 A:npm(dsh-member-manager)

dsh plugin --profile desktop add dsh-member-manager@0.5.1

方式 B:本地源码

dsh plugin --profile desktop add link:"<本仓库绝对路径>"

方式 C:从旧包升级(dsh-plugin-member-manager → dsh-member-manager)

node scripts/migrate-old-plugin.mjs # 1) dry-run,不动任何文件
node scripts/migrate-old-plugin.mjs --apply # 2) 备份 profile → 改写三处登记 → 写迁移标记
3) 重启 DSH:首次启动消费标记,把名册迁移成公司化组织(只迁 active 成员、只补空档案、幂等)

旧包名有转发包(compat/dsh-plugin-member-manager,0.3.1)可继续安装并转发到本包;两个包不要同时启用(重复注册工具/路由,共用数据目录)。

卸载

删除 profile 三处登记(dependencies、dsh.profile.bundles、cordis.yml;或 dsh plugin --profile desktop remove dsh-member-manager)后重启 DSH。数据保留在 ~/.dsh/storages/member-manager/,可手动删除。

与旧插件 dsh-plugin-member-manager 的关系

本包是旧插件的重命名升级版。两者同源:从同一份代码 fork 而来,数据目录、名册文件格式和 16 个名册工具名保持一致;区别是包名 / 插件 id 改为 dsh-member-manager,并新增公司化运行时(部门 / 工号 / 双通道 / 工单 / DAG 并行 / 审计 / 成本)与 14 个 company_ 工具。

| 维度 | 旧包 dsh-plugin-member-manager | 新包 dsh-member-manager |
| 数据目录 | ~/.dsh/storages/member-manager/ | 相同(升级不迁移、不丢数据) |
| 名册文件 | registry.json(成员 / 小组 / 技能 / 模型覆盖 / 备份) | 相同格式,直接读写 |
| 名册工具 | 16 个 member_ / group_manage / skill_list / model_list | 同名保留,旧脚本可继续用 |
| 公司化数据 | 无 | 新增 company/(部门 / 员工 / 工单 / 审计 / 成本) |
| 面板 | 组织架构 · 已停用 · 未登记 · 工作流 · 维护 | 总架构 · 员工中心 · 工作流 · 备份与更新 |
| 维护状态 | 停止更新 | 唯一维护版本 |

名册里的「小组」在新版只作覆盖层与迁移来源(面板以部门组织为主);company/ 数据旧包不存在,升级后为空,由「一键迁移」或面板自行建立。

不能同时启用

新旧包共用一个 DSH profile 时会重复注册 25 个名册工具与 16 条 HTTP 路由,并写入同一个数据目录,属未定义行为。切换前必须先移除旧包。

三种切换方式

| 方式 | 命令 | 适用场景 |
| 一键迁移(推荐) | node scripts/migrate-old-plugin.mjs → --apply → 重启 | 已装旧包,并希望把名册迁成公司化组织 |
| 只切插件 | node scripts/switch-to-dsh-member-manager.mjs → --apply → 重启 | 已装旧包,只换包,公司化组织稍后自建 |
| 手工 | 删除 profile 三处旧登记(dependencies / dsh.profile.bundles / cordis.yml)与旧 node_modules 链接,再按「安装」加新包,重启 | 喜欢自己动手 |
两个脚本默认都走 dry-run,加 --apply 时先把 package.json / cordis.yml 备份到 ~/.dsh/backups/;回滚用 node scripts/rollback-to-dsh-plugin-member-manager.mjs --apply。

旧包名转发包

compat/dsh-plugin-member-manager(v0.3.1)保留旧包名,仍可安装:它只依赖新包,并把 host / client 入口 export 转发,cordis.patch.yml 仍插入旧 id。用于「CI / 脚本里写死旧包名」的过渡期;同样不能与新包同装,过渡完请移除。

npm 上的处理

npm 没有包名重定向。发布新包后,建议对旧包执行 npm deprecate dsh-plugin-member-manager@ "已更名为 dsh-member-manager,请安装新包";旧用户先 dsh plugin --profile desktop remove dsh-plugin-member-manager(或跑上面的切换脚本),再安装新包。

使用

第一次用? 先读 docs/28-新手使用教程.md——从建部门到验收,五分钟跑通第一单,不需要懂代码。

- 对话:member_list / member_add 管理名册;company_hire / company_admin 建公司组织;company_order 起单,company_plan 起任务图。
- 面板:总架构(新建部门、编号/等级自定义、部门编辑、开发模式预设徽章与部门弹层「开发模式」页签)· 员工中心 · 工作流 · 备份与更新。套用「游戏开发模式」后,部门卡显示模式徽章,弹层第三页签展示 7 个岗位槽位(自动匹配在职员工)与 7 阶段流水线(目标 / 负责人 / 参与 / 交付物 / 验收门禁),可切换或清除。
- 同步核心成员:面板「同步核心成员」按钮,或调用 member_sync(HTTP 路由拿不到 Agent 凭证,需工具触发一次)。
- HTTP:GET /api/dsh-member-manager/{health,state,skills,overrides,models,orgmap,workflow,update,backups}、POST …/op;公司化只读 GET …/company/{overview,org,board,costs,orders,presets}、写 POST …/company/op。

配置项

| 字段 | 默认 | 说明 |
| dataDir / registryFile | ~/.dsh/storages/member-manager / {dataDir}/registry.json | 数据目录与名册文件 |
| scanLocalSkills / extraSkillRoots | true / [] | 是否扫盘补技能目录、追加扫描根 |
| backups | {enabled:true,keep:20,dailyKeep:7} | 名册自动备份保留策略 |
| workflow | {enabled:true,persistMs:5000,retentionHours:6,tasksPollMs:3000} | 工作流采集 |
| update | {enabled:true,checkOnBoot:false,autoStage:false,allowOnlineApply:false} | 分阶段自更新(不在运行中替换自身) |
| enabled / company.enabled | true | 公司化总开关 |
| company.autoBoot / company.provider | true / "spawn" | 非阻塞自动 boot;派工 subagent provider(写错 → NO_PROVIDER) |
| company.autoLinkRoster | true | 新建部门 / 新增员工后自动登记名册(名册可用时 best-effort;失败不阻塞创建) |
| company.defaultSessionPolicy / managerActsAsStaff | "per_task" / false | 会话策略;经理是否可被派活 |
| company.defaultOrderMode / requireManagerReview | "async" / true | 下单模式;是否需要经理验收 |
| company.limits | 见下 | {maxConcurrentPerProvider:4,maxTemps:4,budgetTokensPerDay:5000000,attemptTimeoutMs:1800000,lostReportGraceMs:120000,staleAttemptMs:3600000,schedulerIntervalMs:5000};当前仅校验与展示,并发/预算闸门尚未强制 |
| company.departments / routingRules / toolPolicies | [] / [] / {} | 种子部门 / 下单路由 / 分线工具策略 |
| company.levels / numbering | 内置 M1–M5、P1–P6 / E{seq:4}、D{seq:2} | 等级目录 / 编号模板(非法回退默认 + warning) |

工具

名册工具(16 个,覆盖层,兼容保留)

member_list member_add member_rename member_remove member_set_role member_set_skills member_set_model group_manage member_sync member_diagnose member_backup member_group_from_text member_workflow member_update skill_list model_list

公司化工具(14 个)

| 工具 | 线 | 作用 |
| company_order | 窗口 | 下单:{type,title,dept?,priority?,deps?,acceptance?,clientOrderId?,mode?} |
| company_plan | 窗口 | 一次提交任务图(DAG):{group?,tasks:[{key?,type,title,deps?,priority?,dept?,detail?,project?,acceptance?}]}。同层无依赖的任务并行派发,下游等上游 done 自动放行;返回 {group,count,parallel,layers,orders} |
| company_status | 窗口 | 查询工单/员工/部门视图:{orderId?,group?};带 group 时附该批次的 done/running/pending/failed 汇总 |
| company_ask | 窗口 | 催办:{orderId,question} |
| company_cancel | 窗口 | 取消工单:{orderId} |
| company_assign | 经理 | 派工:{orderId,employeeId} → {attemptId,sessionId} |
| company_review | 经理 | 验收:{orderId,pass}(通过 / 打回) |
| company_borrow | 经理 | 借调共享员工:{orderId,sharedEmployeeId} |
| company_escalate | 经理 | 升级转 owner:{orderId,reason?} |
| company_report | 经理/员工 | 回报(必带 attemptId):{orderId?,attemptId,status,summary,artifacts?,acceptanceResults?} |
| company_accept | 员工 | 接受派工:{attemptId} |
| company_ask_help | 员工 | 求助并转发经理:{attemptId,question?} |
| company_hire | OWNER | 新增员工:{id,displayName?,department?,role?,kind?,code?,channel?,level?,channels?,title?,duties?,model?,provider?}(成功即自动登记名册,见 company.autoLinkRoster) |
| company_admin | OWNER | 控制面:{action,args},17 个 action——createDepartment createEmployee updateDepartment promoteEmployee setChannels setNumbering setManagementName setCompanyName setLevels updateEmployeeProfile importRosterProfiles linkEmployeeRoster syncEmployeesRoster unlinkEmployeeRoster setRoutingRules applyDepartmentPreset clearDepartmentPreset |

线隔离:OWNER 14 / 经理 12 / 员工 5 / 窗口 5(白名单见 src/host/company-compat.mjs)。越权 → E_TOOL_LINE;宿主缺 agents/subagents → E_NO_AGENTS。

开发与测试

npm run check # 语法校验(lib/ src/ scripts/ compat/)
npm test # 655 tests / 655 pass
npm run verify # 22 项交付自检(元数据/文件/语法/导出契约/面板字样/游戏开发模式预设/公司与名册关联/自动登记/测试不污染用户目录)

- 结构:lib/ 插件入口与客户端 bundle · src/shared/ 纯函数内核 · src/host/ 运行时 · test/ 测试 · docs/ 契约与独立审阅 · demo/ 独立演示页与截图 · scripts/ 切换 / 回滚 / 迁移 / 验证。
- 零运行时依赖,仅使用 Node 内置模块与宿主注入服务。

数据与限制

- 数据:registry.json(名册)· company/company.json + company/audit.jsonl + company/ledger/(公司化)· backups/(自动备份)· boot.log · workflow-stats.json · pending-migration.json(迁移标记);脚本备份写 ~/.dsh/backups/。
- 已知限制:并发/预算闸门当前仅校验未强制;成本为进程内计数(重启清零);工程验证以 Windows 11 + Node 24 为主;历史文档中的旧包名保留。

许可证

MIT(见 LICENSE);第三方许可见 THIRD-PARTY-NOTICES.md;历史版本见 CHANGELOG.md。

🌐 English

概览

给 DeepSeek Harness(DSH)加一层可运行的「公司」:部门与员工编号、M/P 双职业通道、工单派发与接受/回报/验收、任务图(DAG)并行派发、审计轨迹与成本归集。名册覆盖层保存显示名、职位、职责、技能,以及按成员覆盖的模型。

- 版本 0.5.1 · MIT · Node ≥ 22.19 · 零运行时依赖
- 数据:~/.dsh/storages/member-manager/
- 入口:设置 →「Member Manager」面板;member_(16 个)和 company_(14 个)宿主工具

截图

组织架构图

组织架构图:管理层 → 部门/小组 → 成员,可按会话/任务切换(独立演示渲染)。

工作流面板

工作流面板:成员工作状态、任务板和统计(独立演示渲染)。

工作看板

工作看板(调度看板):排队 / 已路由 / 运行中 / 完成 / 异常 五条泳道;异常泳道带异常历史 + 一键清除(独立演示渲染)。

截图来自 demo/ 下的独立演示页面(demo/.html,未连接 DSH,使用模拟数据);真实面板请从 DSH 设置 →「Member Manager」打开。

快速开始

1. 安装(见安装),然后重启 DSH(不支持热重载)。
2. 设置 →「Member Manager」→ 整体架构。
3. 「新建部门」→ 一句话描述(例如「创建市场部,编制 5 人」)→「创建预览」→「创建」。
4. 从聊天派发:company_order(任务图用 company_plan)→ company_assign → 员工 company_accept / company_report → company_review。

功能

| 领域 | 你能得到什么 |
| 组织 | 部门编码 D01…(模板可自定义)、编制、受理、借用策略、章程;只有空部门才能删除 |
| 员工 | 员工编码 E0001…、M/P 双通道(可同时启用)、职位/职责/技能/模型覆盖、停用/调动;v0.4 新增推理强度 / 成员服务商 spawn·fork / 最大深度 / 工具允许-拒绝 / 会话策略 |
| 整体架构 | 虚拟管理层节点(M 通道)→ 部门框 → 员工卡片;可重命名管理层、自定义编号和层级目录 |
| 员工中心 | 完整员工列表,按部门/层级排序,支持部门筛选和停用筛选 |
| 花名册关联 | 公司员工与 registry.json 双向关联:默认「员工 id 即花名册目标」(12 名存量员工零工作量迁移),只有需要别名时才显式指定 rosterTarget;注册只填空白字段(绝不覆盖),refresh 回填;member_list 带公司关联,member_diagnose 报告 rosterLinks |
| 人员 | 内联详情:公司档案分 3 列(显示名/职位、技能/模型选择器、职责 ≤8 项),外加通道 / 晋升 / 停用 / 调动 |
| 工作网 | 右侧边栏,只有点击「工作网」按钮才会打开 —— 从不自动打开:上半部分是五列任务看板(排队 / 已路由 / 运行中 / 已完成 / 异常),带 KPI、调度器状态和容量条;点击卡片打开订单抽屉,可分配 / 审核 / 升级 / 取消,点击详情外的任意位置即关闭;异常列只显示当前卡住的订单 —— 历史异常放在「异常历史」区域(带手动清除按钮),没有卡住订单时显示「重启进度」按钮;下半部分是「管理层 → 部门 → 员工」拓扑(编号 / 级别 / 任务 / 用量),空闲项折叠,每 2 秒刷新;公司运行时关闭时回退到任务视图 |
| 调度循环 | 订单 → 五步路由回退(显式部门 / 路由规则 / 部门接收 / 技能 / 容量回退)→ 尝试 → 接受 → 上报 → 审核;attemptId 拦截过期上报,重新分配会吊销旧尝试,派发失败会回滚并重试,重启时冷恢复孤儿尝试(包括终态订单下的孤儿);忙碌守卫(E_EMPLOYEE_BUSY)阻止同一员工同时被分配两个订单;调度器遵循优先级 + 依赖 + 部门容量,部门饱和后不再拖住队列其余部分 |
| 并行派发(DAG) | company_plan 提交任务图(≤50 个任务),依赖基于 key;同层任务并行执行,上游到达 done 后下游自动释放;内置环检测,另有 5 项校验(E_PLAN_EMPTY / TOO_LARGE / TASK_INVALID / DUP_KEY / BAD_REF / CYCLE);company_status({group}) 按批次汇总 done/running/pending/failed |
| 成本与审计 | Token/请求按员工 / 部门 / 订单归集(GET /company/costs);只追加的 audit.jsonl 在加载时重放 |
| 隔离 | 员工会话继承宿主工具;company_ 管理工具使用同步守卫 + 会话查找(自 v5.24 起不再收窄工具面);E_TOOL_LINE、E_NO_AGENTS、E_DISABLED 不会破坏花名册功能 |

M/P 通道与编号

| 通道 | 默认级别 | 默认级别 |
| M(管理) | M1 Supervisor / M2 Manager / M3 Senior Manager / M4 Director / M5 VP | manager → M2 |
| P(专业) | P1 Junior Engineer / P2 Engineer / P3 Senior Engineer / P4 Staff Engineer / P5 Expert / P6 Principal Expert | staff → P3, window → P1 |

- channels:[{channel,level}] —— 至少一个;manager 必须包含 M,window 仅限 P。
- 晋升:通道内 ±1 级;切换通道需要显式目标级别和匹配的角色。
- 编号:E{seq:4} / D{seq:2},支持 {seq} {seq:N} {dept} {channel} {level};优先级为持久化的 company.json > 配置 > 内置默认值。
- 加载旧数据会回填编号和通道,不丢弃员工。

安装

方式 A —— npm(dsh-member-manager)

bash
dsh plugin --profile desktop add dsh-member-manager@0.5.1

方案 B — 本地源码 bash
dsh plugin --profile desktop add link:"<repo path>"

方案 C — 从旧包升级 bash
node scripts/migrate-old-plugin.mjs # 1) dry-run, writes nothing
node scripts/migrate-old-plugin.mjs --apply # 2) back up profile, rewrite 3 registrations, write the migration marker

3) restart DSH: the marker is consumed on first boot and the roster is migrated into the company org (idempotent)

旧名下的一个 shim 包(compat/dsh-plugin-member-manager,0.3.1)会重新导出本包。切勿同时启用两者。

卸载:移除三个配置档注册项(或执行 dsh plugin --profile desktop remove dsh-member-manager),然后重启。数据仍保留在 ~/.dsh/storages/member-manager/ 下。

与旧版 dsh-plugin-member-manager 的关系

本包是旧插件的更名继任者。它从同一套代码库分叉而来:数据目录、registry.json 格式和 16 个 roster 工具名都没有变化。不同之处在于包名 / 插件 id(dsh-member-manager)、新的公司运行时(部门、员工编码、M/P 双通道、订单、DAG 派发、审计、成本)以及 14 个 company_ 工具。

| 方面 | 旧包 | 新包 |
| 数据目录 | ~/.dsh/storages/member-manager/ | 相同 — 原地升级,不迁移任何数据出去 |
| Roster 文件 | registry.json(成员 / 分组 / 技能 / 模型覆盖 / 备份) | 格式相同,直接读写 |
| Roster 工具 | 16 个 member_ / group_manage / skill_list / model_list | 保留同名 |
| 公司数据 | 无 | 新增 company/(部门 / 员工 / 订单 / 审计 / 成本) |
| 面板 | 组织 · 已退役 · 未注册 · 工作流 · 维护 | 整体架构 · 员工中心 · 工作流 · 备份与更新 |
| 维护状态 | 不再更新 | 唯一仍在维护的版本 |

roster 中的「分组」现在只作为兼容层和迁移来源;面板以部门为中心。company/ 是新增的,初始为空 — 用一步迁移或从面板填充。

切勿同时启用两者

同一个 DSH 配置档里装两个包,会把 25 个 roster 工具和 16 条 HTTP 路由各注册两次,并写入同一个数据目录 — 行为未定义。请先移除旧包。

三种切换方式

| 方式 | 命令 | 适用场景 |
| 一步迁移(推荐) | node scripts/migrate-old-plugin.mjs → --apply → 重启 | 已安装旧包,且想把 roster 迁移进公司组织 |
| 仅替换包 | node scripts/switch-to-dsh-member-manager.mjs → --apply → 重启 | 已安装旧包,只想换包 |
| 手动 | 删掉三个旧的配置档注册项(dependencies、dsh.profile.bundles、cordis.yml)和旧的 node_modules 链接,然后按 Installation 一节安装,重启 | 你更愿意手动操作 |

两个脚本默认都是 dry-run,在 --apply 之前会把 package.json / cordis.yml 备份到 ~/.dsh/backups/。回滚用 node scripts/rollback-to-dsh-plugin-member-manager.mjs --apply。

旧名下的 shim 包

compat/dsh-plugin-member-manager(v0.3.1)让旧名仍可安装:它依赖新包,重新导出 host / client 入口,而它的 cordis.patch.yml 仍然插入旧 id。这个包只用于过渡期,适合 CI 或脚本里硬编码旧名的情况;不能和新包同时启用。

在 npm 上

npm 没有包名重定向。发布之后,把旧包标记为废弃:npm deprecate dsh-plugin-member-manager@* "renamed to dsh-member-manager, please install the new package"。旧用户应先执行 dsh plugin --profile desktop remove dsh-plugin-member-manager(或运行切换脚本),再安装新包。

用法

- 聊天:member_list / member_add 管理名册;company_hire / company_admin 管理组织;company_order 派发任务,company_plan 派发任务图。
- 面板:整体架构 · 员工中心 · 工作流 · 备份与更新;「同步核心成员」按钮或 member_sync 把核心团队成员导入名册;员工中心显示名册关联徽标(已关联 / 未关联 / 已退役),可按关联状态筛选,并把单个员工或整个部门注册进名册(只填充空白字段;refresh 会覆盖)。部门可以套用内置的「游戏开发模式」预设:卡片上显示模式徽标,部门弹窗的第三个标签页列出 7 个角色槽位(自动匹配当前员工)和 7 阶段流水线(目标 / 负责人 / 参与者 / 交付物 / 验收关卡),并提供切换和清除操作。
- HTTP:GET /api/dsh-member-manager/{health,state,skills,models,orgmap,workflow,backups},POST …/op;公司只读接口 GET …/company/{overview,org,board,costs,orders,presets},写接口 POST …/company/op。

配置(要点)

dataDir · registryFile · scanLocalSkills · extraSkillRoots · backups · workflow · update · enabled · company.autoBoot · company.autoLinkRoster · company.provider("spawn") · company.defaultSessionPolicy / managerActsAsStaff · company.defaultOrderMode / requireManagerReview · company.limits(只做校验和展示;并发 / 预算闸门尚未强制执行;包含 schedulerIntervalMs: 5000) · company.departments / routingRules / toolPolicies · company.levels / numbering。

工具名册(16 个):member_list member_add member_rename member_remove member_set_role member_set_skills member_set_model group_manage member_sync member_diagnose member_backup member_group_from_text member_workflow member_update skill_list model_list。

公司(14 个):company_order company_plan company_status company_ask company_cancel company_assign company_review company_borrow company_escalate company_report company_accept company_ask_help company_hire company_admin(17 个动作:createDepartment createEmployee updateDepartment promoteEmployee setChannels setNumbering setManagementName setCompanyName setLevels updateEmployeeProfile importRosterProfiles linkEmployeeRoster syncEmployeesRoster unlinkEmployeeRoster setRoutingRules applyDepartmentPreset clearDepartmentPreset)。

工具行:OWNER 14 / manager 12 / staff 5 / window 5。

开发与测试 bash
npm run check # syntax check
npm test # 655 tests / 655 pass
npm run verify # 22 delivery self-checks

数据与限制

registry.json、company/{company.json,audit.jsonl,ledger/}、backups/、boot.log、workflow-stats.json、pending-migration.json;脚本备份放在 ~/.dsh/backups/。已知限制:并发与预算门禁只做校验,成本计数器在进程内(重启即重置),工程验证以 Windows 11 + Node 24 优先。

许可

MIT —— 见 LICENSE 和 THIRD-PARTY-NOTICES.md;发布历史见 CHANGELOG.md。
预览分享卡片长什么样 ↓SMPcosy/dsh-member-manager
分享 · DeepSeek Harness Hub
SMPcosy/dsh-member-manager

为团队搭建部门工号与任务派发流程

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部