@yangdcm/dsh-expert-team 1.3.6 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,92 @@
3
3
  本包遵循[语义化版本](https://semver.org/lang/zh-CN/)。dsh 宿主版本线的对应关系写在
4
4
  `package.json` 的 `engines.dsh` 与 `dsh.compatibility` 里,插件市场按它判断"这个插件跟你的宿主兼不兼容"。
5
5
 
6
+ ## 1.3.8
7
+
8
+ **定位前置 + 真实画布截图**(纯文档/资产版本 —— `lib/`、`client.js` 零改动)。
9
+
10
+ ### README:新增「为谁而做」
11
+
12
+ 放在**最显眼的位置**(顶部一句话组队交付 + 关键指标行之后、图 1 之前):明确"**给中小团队与个人接单者的一支
13
+ 「完整技术部」**",并用一张「技术部岗位 → 角色 id → 在这个流程里做什么」的对照表把 12 个角色映射到真实岗位
14
+ (产品经理 `pm` / 架构师 `architect` / 调研 `researcher` / UI·UX `ui` / 后端 `backend` / 前端 `frontend` /
15
+ 数据 `dba` / 安全 `sec` / 评审 `reviewer` / 测试 `qa` / 运维 `devops` / 文档 `docs`),
16
+ 外加"**你**(lead)只拍板产品级与范围级决策"与典型场景。节尾一句**简短诚实边界**:它不是人类团队。
17
+ 中英两版**信息对等**,口径克制(未使用"替代团队""比人强"这类说法)。
18
+
19
+ ### hero.svg:新增定位 tagline
20
+
21
+ 标题下方**独占一带**(新的 B2)写成「给中小团队与个人接单者的一支「完整技术部」」;
22
+ 横幅高度 `260 → 300`,分带表扩成 6 带(B1 标题 / B2 tagline / B3 副标题 / B4 命令框·指标 / B5 进度条 / B6 页脚),
23
+ 注释与重叠自检脚本的 BANDS 同步更新 ⇒ 加完这一行仍是 **0 部分相交、0 跨带**(21 元素 / 210 对比较)。
24
+
25
+ ### 新增真实截图 `docs/images/canvas.png`(全屏画布)
26
+
27
+ - 素材:真实 `dsh web` 里掀开「🧑‍🔬 专家团」全屏画布后的截图(源 1280×800)。展示阶段条与进度、
28
+ 团队编制(谁在跑、用哪个模型)、`人 / 事 / 料 / 盘` 四个视角。
29
+ - 裁切:用 macOS 自带 `sips` 去掉**私人信息** —— 左侧工作区/会话侧栏(x < 275)与底部合成器 + 费用页脚
30
+ (含余额/token 账,y > 545):`sips -c 545 1005 --cropOffset 0 275`,产物 **1005×545**。
31
+ - 核验(不靠肉眼):① 用 1×1 BMP 探针抽样 11 个点,裁图 `(x,y)` 与源图 `(x+275,y)` 逐字节相同;
32
+ ② 再用 Node `zlib` **直接解 PNG 字节**确认裁图 `(0,0)` == 源图 `(275,0)`(`27,27,28`)⇒ 偏移精确、无像素改动。
33
+ - 在 README 中作为**图 2**(`Figure 2`)放在「看一眼它在干什么」**首位**(比三张窄浮层截图更有冲击力),
34
+ 其后四张图号顺延为图 3–6;中英同步。
35
+
36
+ ### README:新增「依赖与推荐插件」
37
+
38
+ 在「安装」之后新增一节,把"依赖"讲清楚:**必需:无** —— `package.json` **无 `dependencies` 字段**,
39
+ `lib/` 只 import 同目录文件与 Node 内建,`client.js` 只 `require('react')`(宿主提供),
40
+ 只要求宿主 dsh ≥ 0.1.5-rc.1。Hindsight(跨项目记忆)、`dsh-cost-meter`(费用视图)、
41
+ `dshmarket`(市场安装 / 备份恢复)一律写成**推荐或可选 + 缺了会怎样**:
42
+ **不报错、团队照常交付**;并点明团队自身的跨 run 学习走本地 `LEARNINGS.md`,**与 Hindsight 无关**。
43
+ 另说明活动流工具名的**中文兜底**(`TOOL_LABEL` / `TOOL_LABEL_FAMILIES`:`browser_*` → 已操作浏览器 等)。
44
+ 顶部关键指标行附近加一行指针指向该节。中英对等。
45
+
46
+ ## 1.3.7
47
+
48
+ **修掉 1.3.6 两张手绘矢量图的文字重叠,并让 npm 页面也能显示 README 图片。**
49
+
50
+ 纯文档/资产版本 —— `lib/`、`client.js` **零改动**,无依赖变化,`files` 字段未动。
51
+
52
+ ### 两张 SVG:改为**分带布局**(band layout)
53
+
54
+ 上一版的问题不是"画得不好",而是**两条信息共用了同一 y 带**:
55
+
56
+ - `hero.svg`:指标行与副标题同带 ⇒ 大数字 `12` **压在副标题尾部**;副标题/页脚在深底上对比度偏低。
57
+ - `pipeline.svg`:「硬门」徽标与图例行同带 ⇒ 徽标**压住图例第三项**「同一阶段内并行扇出」,
58
+ 「确认门」徽标也飘在图例那一行而不是它注记的方框上方。
59
+
60
+ 改法:每张图先把垂直空间切成**互不重叠的带**,每个元素**只能落在自己的带内**,带范围写进文件注释便于后续修改。
61
+
62
+ - `hero.svg` 带表:B1 标题 `[44,84]` · B2 副标题 `[88,114]` · B3 命令框(左 x≤600)/ 指标(右 x≥636)`[118,178]`
63
+ · B4 进度条 `[190,210]` · B5 页脚 `[218,246]`。指标整体下移,数字与图注留 7px 净空;
64
+ 副标题 `#94a3b8 → #c7d2fe`、页脚 `→ #a5b4fc`(深底对比度)。
65
+ - `pipeline.svg` 带表:B1 标题 `[30,60]` · B2 副标题 `[62,82]` · B3 图例 `[86,104]` · **B4 门徽标 `[110,136]`(独占一带)**
66
+ · B5 阶段行 `[140,212]` · B6 并行扇出 `[212,330]` · B7 角色 chip `[334,382]` · B8 工件脚注 `[400,440]`。
67
+ 两个徽标各自落在**它注记的方框正上方**(硬门 → 规格评审 `x 428..532`;确认门 → 方案确认 `x 548..652`,
68
+ 徽标 x 区间被断言**包含于**对应方框);阶段行下移 24px,全图高度 `430 → 460`;阶段间箭头的线段改为在箭头**起点**处结束,
69
+ 不再与箭头包围盒相交。
70
+
71
+ 信息量未减:9 阶段、硬门/确认门的区分(规格评审=硬门;方案确认=确认门,默认开启、可在设置里关)、
72
+ DAG 并行扇出、角色 chip、工件脚注全部保留。
73
+
74
+ ### 类级防复发:**真重叠自检**(这一环上一轮缺失)
75
+
76
+ 上一轮只做了"矩形不越界"的几何自检,**抓不到"文字压文字"**。本次补上一次性自检脚本(`/tmp`,不提交):
77
+
78
+ - 对每个 `<text>`/`<rect>`/`<path>` **估算包围盒**(CJK/全角按 `1.0em`、拉丁/数字按 `0.6em`,高 `1.2×font-size`,
79
+ 上 `0.9` / 下 `0.3` 于基线;`path` 按 `M/H/V/L/l/v` 逐段追踪绝对坐标);
80
+ - **两两检测"部分相交"**(完全包含=父子/背景关系,允许并单独列出);
81
+ - **校验元素不跨带**(强制分带布局);另做 x 越界与"徽标在对应方框正上方"的语义断言。
82
+
83
+ 有效性验证:脚本先对 **1.3.6 的两张图**运行,**复现了报告里的两处重叠**(坐标级:副标题 `64,95.4→682.8,112.2` × `12` `636,94.8→669.6,128.4`;
84
+ `rect@446,88` × 图例第三项 `420,96.1→519,109.3`);修复后两张图 **0 部分相交、0 跨带**(hero 190 对、pipeline 3403 对比较)。
85
+
86
+ ### npm 页面上的 README 图片
87
+
88
+ `files` 未含 `docs/` ⇒ README 里的**相对**路径在 npm 页面渲染不到。改为**绝对地址**
89
+ `https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/<file>`(中英各 6 处),
90
+ `LICENSE` 链接同样改为绝对地址。这样 GitHub、npm、以及将来插件市场的抽图都能用,且**不必**动 `files`(不增大产物)。
91
+
6
92
  ## 1.3.6
7
93
 
8
94
  **文档与素材:README 重写成"能一眼看懂它在干什么"的结构,并补上手绘矢量图。**
package/README.en.md CHANGED
@@ -3,10 +3,10 @@
3
3
  English | [中文](README.md)
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@yangdcm/dsh-expert-team)](https://www.npmjs.com/package/@yangdcm/dsh-expert-team)
6
- [![license](https://img.shields.io/npm/l/@yangdcm/dsh-expert-team)](LICENSE)
6
+ [![license](https://img.shields.io/npm/l/@yangdcm/dsh-expert-team)](https://github.com/yangdcm/dsh-expert-team/blob/main/LICENSE)
7
7
  [![CI](https://github.com/yangdcm/dsh-expert-team/actions/workflows/ci.yml/badge.svg)](https://github.com/yangdcm/dsh-expert-team/actions/workflows/ci.yml)
8
8
 
9
- ![expert-team: one sentence in, a gated team delivery out](docs/images/hero.svg)
9
+ ![expert-team: one sentence in, a gated team delivery out](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/hero.svg)
10
10
 
11
11
  > **One sentence in, a gated team delivery out.** `/team build a payments module with login`
12
12
  > assembles a 12-role expert team and runs
@@ -20,7 +20,36 @@ A plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
20
20
  |---|---|---|---|---|
21
21
  | own persona / `toolFilter` / `maxDepth: 1` | 1 hard gate + 1 approval gate | incl. a 136-entry mutation catalog and several ratchets | `dependencies: {}` | no bundler, no `prepare` hook |
22
22
 
23
- ![The 9-phase gated pipeline](docs/images/pipeline.svg)
23
+ > Zero runtime dependencies. Recommended: also install **Hindsight** (cross-project memory) — see [Dependencies and recommended plugins](#dependencies-and-recommended-plugins).
24
+
25
+ ## Who it is for
26
+
27
+ **A complete engineering department for small teams and solo builders** — no hiring, no assembling a team:
28
+ one sentence spins up the twelve seats (product, architecture, research, UI/UX, backend, frontend, data,
29
+ security, review, QA, devops, docs) and delivers through a 9-phase gated pipeline. Implementers edit your
30
+ codebase directly, and everything is logged as reviewable artifacts.
31
+
32
+ | Department seat | Agent | What it does in the pipeline |
33
+ |---|---|---|
34
+ | Product manager | `pm` | Clarifies the ask, writes `SPEC.md`, **front-loads** boundaries and prohibitions |
35
+ | Architect | `architect` | Approach and module split, dependency DAG, `AUTHORITY.md` as the single source |
36
+ | Technical research | `researcher` | Trade-offs with sources; conclusions, not a running commentary |
37
+ | UI/UX | `ui` | Interface structure and interaction |
38
+ | Backend / frontend | `backend` / `frontend` | **Only implementers touch code**, each editing its own files |
39
+ | Data | `dba` | Schema, migrations, queries |
40
+ | Security audit | `sec` | Privilege escalation, injection, secrets and dependency risk |
41
+ | Code review | `reviewer` | Independent review — **cannot approve its own work** |
42
+ | QA | `qa` | Coverage gaps, boundary cases, acceptance criteria |
43
+ | DevOps | `devops` | Build, release, environments and configuration |
44
+ | Technical docs | `docs` | README, manual, changelog |
45
+ | **You** | lead | You only decide product-level and scope-level questions; the team drives the rest |
46
+
47
+ **Typical uses**: internal tools and product iteration in small companies · freelance and outsourced delivery ·
48
+ solo developers shipping a complete project · any long task where "someone independent must verify" matters.
49
+
50
+ <sub>One honest boundary: this is **not** a human team — product-level and scope-level decisions remain yours.</sub>
51
+
52
+ ![The 9-phase gated pipeline](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/pipeline.svg)
24
53
 
25
54
  <sub>Figure 1: the 9-phase gated pipeline. `spec-review` is a **hard gate** — if the SPEC.md
26
55
  "boundaries and prohibitions" section is empty, the run does not advance (`lib/interception.js`).
@@ -67,26 +96,30 @@ answer them:
67
96
 
68
97
  ## What it looks like in action
69
98
 
70
- ![Quality-gate violations surfaced live](docs/images/panel-gate.png)
99
+ ![The full-screen canvas: phase bar, progress and roster](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/canvas.png)
100
+
101
+ <sub>Figure 2: **the full-screen canvas**. Look at the phase bar and progress, the roster (who is running, on which model), and the four views (people / tasks / artifacts / board) — one layer above the floating panel.</sub>
71
102
 
72
- <sub>Figure 2: **gate violations**. Look at the banner at the top — the violation and its refusal reason
103
+ ![Quality-gate violations surfaced live](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/panel-gate.png)
104
+
105
+ <sub>Figure 3: **gate violations**. Look at the banner at the top — the violation and its refusal reason
73
106
  (e.g. "SPEC.md's boundary section has entered `implement` but still has no 'expected rejection' row")
74
107
  is decided by `lib/interception.js`, hooked onto the host's `tools/post-execute` waterfall, and surfaced
75
108
  immediately. This is code, not a prompt reminder.</sub>
76
109
 
77
- ![Members, models and task detail](docs/images/panel-live.png)
110
+ ![Members, models and task detail](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/panel-live.png)
78
111
 
79
- <sub>Figure 3: **the roster**. Look at the member list — who is running, on which model, and what it is doing;
112
+ <sub>Figure 4: **the roster**. Look at the member list — who is running, on which model, and what it is doing;
80
113
  expand a member for its tasks and artifacts. Models are configurable per role; heterogeneous models are used for cross-checking.</sub>
81
114
 
82
- ![Phase progress and artifact preview](docs/images/panel-flow.png)
115
+ ![Phase progress and artifact preview](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/panel-flow.png)
83
116
 
84
- <sub>Figure 4: **phases and artifacts**. Look at the phase bar and the preview pane — the current phase, the phases
117
+ <sub>Figure 5: **phases and artifacts**. Look at the phase bar and the preview pane — the current phase, the phases
85
118
  already passed, and the actual body of the artifact written in that phase (artifacts are the single source of truth; the overlay is just a view of them).</sub>
86
119
 
87
- ![The expert-team section inside the official settings page](docs/images/settings.png)
120
+ ![The expert-team section inside the official settings page](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/settings.png)
88
121
 
89
- <sub>Figure 5: **settings**. Look at the official `Settings → Expert team` page — 18 settings, Chinese labels,
122
+ <sub>Figure 6: **settings**. Look at the official `Settings → Expert team` page — 18 settings, Chinese labels,
90
123
  **saved on change and applied immediately** (caps, rounds, the tier gate and the oscillation detector are recomputed
91
124
  in-process). Values live in the host namespace `expert-team`, so they travel with the plugin market's backup/restore.</sub>
92
125
 
@@ -186,6 +219,52 @@ pnpm install && dsh web
186
219
  [Troubleshooting](#troubleshooting) section for the easiest trap to fall into: **do not** use the id
187
220
  `expert-team` when creating a preset.
188
221
 
222
+ ## Dependencies and recommended plugins
223
+
224
+ **Required**: none. This plugin has **zero runtime dependencies** (`package.json` has no `dependencies` field;
225
+ `lib/` imports only sibling files and Node built-ins, and `client.js` only `require('react')`, which the host
226
+ provides). It only requires the host `DeepSeek Harness >= 0.1.5-rc.1` (web profile). Everything below is optional:
227
+ **the whole team workflow runs without them** — they exist so that things like cross-project memory and a cost view
228
+ actually materialise.
229
+
230
+ ### Recommended: Hindsight long-term memory (cross-project / cross-session)
231
+
232
+ ```sh
233
+ dsh plugin --profile web add @vectorize-io/hindsight-coding-agents
234
+ ```
235
+
236
+ - **Why**: before clarify the skill recalls knowledge recorded by other projects with
237
+ `hindsight_search_knowledge_pages`, and at deliver time it records this run's experience with
238
+ `hindsight_ingest_document` (titles "专家团经验 · <runId>" / "项目知识 · <cwd name>").
239
+ - **Without it**: **no error, the team still delivers** — those tools simply do not exist, so the model cannot call
240
+ them and cross-project memory does not happen. The team's **own** cross-run learning lives in local files
241
+ (`$DSH_HOME/expert-team/LEARNINGS.md`, `<workspace>/team/LEARNINGS.md`) and is **independent of Hindsight**.
242
+ - **Note**: Hindsight's memory configuration lives outside dsh (service address / token / bank name); installing the
243
+ plugin is only half the setup.
244
+
245
+ ### Optional: session cost display
246
+
247
+ ```sh
248
+ dsh plugin --profile web add dsh-cost-meter
249
+ ```
250
+
251
+ The floating panel's "current model" line ends with "会话费用见 `dsh-cost-meter`". **Without it you only lose the
252
+ cost view**; no team feature is affected.
253
+
254
+ ### Only when you install / restore through the plugin marketplace
255
+
256
+ ```sh
257
+ dsh plugin --profile web add dshmarket
258
+ ```
259
+
260
+ `dshmarket` **does not ship with the host dsh**; the README's option two (plugin marketplace) needs it first.
261
+
262
+ > Also, tool names in the activity feed have a **Chinese fallback**: `browser_*` → `已操作浏览器`,
263
+ > `mcp_connector_*` → `已操作连接器`, `dsh_im_*` → `已发文件`, and anything unrecognised shows 「已执行操作」
264
+ > (see `TOOL_LABEL` / `TOOL_LABEL_FAMILIES` in `lib/command.js`). With `dsh-browser` / `dsh-mcp-connector` /
265
+ > `@xmanrui/dsh-im` installed, the feed shows their real tool names and arguments instead:
266
+ > **display only — nicer with them, nothing in the team flow depends on them.**
267
+
189
268
  ## Quick start
190
269
 
191
270
  ```
package/README.md CHANGED
@@ -3,10 +3,10 @@
3
3
  [English](README.en.md) | 中文
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@yangdcm/dsh-expert-team)](https://www.npmjs.com/package/@yangdcm/dsh-expert-team)
6
- [![license](https://img.shields.io/npm/l/@yangdcm/dsh-expert-team)](LICENSE)
6
+ [![license](https://img.shields.io/npm/l/@yangdcm/dsh-expert-team)](https://github.com/yangdcm/dsh-expert-team/blob/main/LICENSE)
7
7
  [![CI](https://github.com/yangdcm/dsh-expert-team/actions/workflows/ci.yml/badge.svg)](https://github.com/yangdcm/dsh-expert-team/actions/workflows/ci.yml)
8
8
 
9
- ![专家团:一句话组队交付](docs/images/hero.svg)
9
+ ![专家团:一句话组队交付](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/hero.svg)
10
10
 
11
11
  > **一句话组队交付**:`/team 做一个带登录的支付模块` —— 自动组建 12 角色专家团,走
12
12
  > 澄清 → 调研 → 设计 → 规格评审 → 方案确认 → 实现 → 审查 → 测试 → 交付 的门控流水线,
@@ -18,7 +18,35 @@
18
18
  |---|---|---|---|---|
19
19
  | 各带人设 / `toolFilter` / `maxDepth: 1` | 含 1 道硬门 + 1 道确认门 | 含 136 条变异目录与多组棘轮 | `dependencies: {}` | 无 bundler、无 `prepare` 钩子 |
20
20
 
21
- ![9 阶段门控流水线](docs/images/pipeline.svg)
21
+ > 零运行时依赖。推荐同时装 **Hindsight**(跨项目记忆)—— 见[依赖与推荐插件](#依赖与推荐插件)
22
+
23
+ ## 为谁而做
24
+
25
+ **给中小团队与个人接单者的一支「完整技术部」** —— 不用招人、不用攒团队:一句话拉起产品、架构、调研、
26
+ UI/UX、前后端、数据、安全、评审、测试、运维、文档这 12 个岗位,按 9 阶段门控流程交付,
27
+ 实现者直接改你的代码库,全程留痕成可复核的工件。
28
+
29
+ | 技术部岗位 | 角色 | 在这个流程里做什么 |
30
+ |---|---|---|
31
+ | 产品经理 | `pm` | 澄清需求、写 `SPEC.md`,把边界与禁止项**前置** |
32
+ | 架构师 | `architect` | 方案与模块划分、依赖 DAG、`AUTHORITY.md` 单源 |
33
+ | 技术调研 | `researcher` | 取舍与出处,给结论不给流水账 |
34
+ | UI/UX | `ui` | 界面结构与交互 |
35
+ | 后端 / 前端 | `backend` / `frontend` | **只有实现者动代码**,各改自己那份文件 |
36
+ | 数据 | `dba` | schema / 迁移 / 查询 |
37
+ | 安全审计 | `sec` | 越权、注入、密钥与依赖风险 |
38
+ | 代码评审 | `reviewer` | 独立评审,**不能自批自过** |
39
+ | 测试 | `qa` | 覆盖缺口、边界用例、验收判据 |
40
+ | 运维 | `devops` | 构建、发布、环境与配置 |
41
+ | 技术文档 | `docs` | README / 手册 / 变更记录 |
42
+ | **你** | lead | 只拍板产品级与范围级决策,其余由团队推进 |
43
+
44
+ **典型场景**:中小公司内部工具与产品迭代 · 个人接单 / 外包交付 · 独立开发者做完整项目 ·
45
+ 任何"需要有人独立验证"的长任务。
46
+
47
+ <sub>一句诚实边界:它**不是**人类团队 —— 产品级与范围级决策仍由你拍板。</sub>
48
+
49
+ ![9 阶段门控流水线](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/pipeline.svg)
22
50
 
23
51
  <sub>图 1:9 阶段门控流水线。「规格评审」是**硬门** —— SPEC.md 的「边界与禁止项」没填就不放行(`lib/interception.js`);「方案确认」是默认开启的**确认门**(`identity.keepPlanGate`,可在设置里关掉);「实现」阶段按依赖 DAG **并行扇出**,多个实现者同时开工、各自只改自己那份文件。</sub>
24
52
 
@@ -59,21 +87,25 @@ $ /team 做一个带登录的支付模块
59
87
 
60
88
  ## 看一眼它在干什么
61
89
 
62
- ![质量门禁违规实时可见](docs/images/panel-gate.png)
90
+ ![全屏画布:阶段条与团队编制](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/canvas.png)
91
+
92
+ <sub>图 2:**全屏画布**。看阶段条与进度、团队编制(谁在跑、用哪个模型)、以及 `人 / 事 / 料 / 盘` 四个视角 —— 比浮层更完整的一层视图。</sub>
63
93
 
64
- <sub>图 2:**门禁违规**。看顶部那条横幅 —— 违规项与拒绝理由(例如"SPEC.md 的边界章节已进入 `implement` 但仍无任何一行填写")由 `lib/interception.js` 挂在宿主 `tools/post-execute` 上当场判出后推出,不是提示词提醒。</sub>
94
+ ![质量门禁违规实时可见](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/panel-gate.png)
65
95
 
66
- ![成员模型与任务详情](docs/images/panel-live.png)
96
+ <sub>图 3:**门禁违规**。看顶部那条横幅 —— 违规项与拒绝理由(例如"SPEC.md 的边界章节已进入 `implement` 但仍无任何一行填写")由 `lib/interception.js` 挂在宿主 `tools/post-execute` 上当场判出后推出,不是提示词提醒。</sub>
67
97
 
68
- <sub>图 3:**角色编制**。看成员列表 —— 谁在跑、用哪个模型、当前在做什么;展开任一成员可看它的任务与产物。模型可按角色分别配置,异构模型用于交叉验证。</sub>
98
+ ![成员模型与任务详情](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/panel-live.png)
69
99
 
70
- ![阶段推进与工件预览](docs/images/panel-flow.png)
100
+ <sub>图 4:**角色编制**。看成员列表 —— 谁在跑、用哪个模型、当前在做什么;展开任一成员可看它的任务与产物。模型可按角色分别配置,异构模型用于交叉验证。</sub>
71
101
 
72
- <sub>图 4:**阶段与工件**。看阶段条与预览区 —— 当前阶段、已过阶段、以及该阶段真正写下的工件正文(工件是唯一真源,浮层只是它的视图)。</sub>
102
+ ![阶段推进与工件预览](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/panel-flow.png)
73
103
 
74
- ![官方设置页里的专家团分节](docs/images/settings.png)
104
+ <sub>图 5:**阶段与工件**。看阶段条与预览区 —— 当前阶段、已过阶段、以及该阶段真正写下的工件正文(工件是唯一真源,浮层只是它的视图)。</sub>
75
105
 
76
- <sub>图 5:**设置**。看官方 `设置 →「专家团」` 这一页 —— 18 个设置项、中文标签、**改动即保存并即时生效**(上限/轮次/档位门/振荡检测在进程内重算);值存在宿主命名空间 `expert-team`,随插件市场的备份/恢复一起走。</sub>
106
+ ![官方设置页里的专家团分节](https://raw.githubusercontent.com/yangdcm/dsh-expert-team/main/docs/images/settings.png)
107
+
108
+ <sub>图 6:**设置**。看官方 `设置 →「专家团」` 这一页 —— 18 个设置项、中文标签、**改动即保存并即时生效**(上限/轮次/档位门/振荡检测在进程内重算);值存在宿主命名空间 `expert-team`,随插件市场的备份/恢复一起走。</sub>
77
109
 
78
110
  ## 它为什么可靠
79
111
 
@@ -154,6 +186,45 @@ pnpm install && dsh web
154
186
  **排障**:预设丢了、或被同名预设占住 —— **重启一次 `dsh web` 即自愈**(插件加载会重铺),也可跑一次 `/team <任务>`。
155
187
  细节见下面「排障」一节,其中包含那条最容易踩的坑:**不要**用 `expert-team` 这个 id 去「创建 preset」。
156
188
 
189
+ ## 依赖与推荐插件
190
+
191
+ **必需**:无。本插件**零运行时依赖**(`package.json` 无 `dependencies` 字段;`lib/` 只 import 同目录文件与 Node 内建,
192
+ `client.js` 只 `require('react')`,由宿主提供),只要求宿主 `DeepSeek Harness ≥ 0.1.5-rc.1`(web profile)。
193
+ 下面这些**不装也能跑完整个团队流程**,装上是为了让「跨项目记忆」「费用显示」这类事真正兑现。
194
+
195
+ ### 推荐:Hindsight 长期记忆(跨项目 / 跨会话)
196
+
197
+ ```sh
198
+ dsh plugin --profile web add @vectorize-io/hindsight-coding-agents
199
+ ```
200
+
201
+ - **为什么**:专家团的 skill 会在 clarify 前用 `hindsight_search_knowledge_pages` 召回其它项目落库的知识、
202
+ 在 deliver 时用 `hindsight_ingest_document` 把本次经验落库(标题「专家团经验 · <runId>」/「项目知识 · <cwd 名>」)。
203
+ - **不装会怎样**:**不报错、团队照常交付** —— 只是这些工具不存在、模型调不到,跨项目记忆这一环不生效。
204
+ 团队**自身**的跨 run 学习走本地文件(`$DSH_HOME/expert-team/LEARNINGS.md`、`<工作区>/team/LEARNINGS.md`),**与 Hindsight 无关**。
205
+ - **注意**:Hindsight 的记忆配置在 dsh 之外(服务地址/令牌/库命名),装完还要配它自己。
206
+
207
+ ### 可选:会话费用显示
208
+
209
+ ```sh
210
+ dsh plugin --profile web add dsh-cost-meter
211
+ ```
212
+
213
+ 浮层「在用模型」那一行尾部写着「会话费用见 `dsh-cost-meter`」。**不装只是少了费用视图**,不影响任何团队功能。
214
+
215
+ ### 只在你要用「插件市场」安装 / 备份恢复时
216
+
217
+ ```sh
218
+ dsh plugin --profile web add dshmarket
219
+ ```
220
+
221
+ `dshmarket` **不随宿主 dsh 发布**;README 的「方式二:插件市场」需要先装它。
222
+
223
+ > 另外,活动流里的工具名有**中文兜底**:`browser_*` → `已操作浏览器`、`mcp_connector_*` → `已操作连接器`、
224
+ > `dsh_im_*` → `已发文件`,认不出的显示「已执行操作」(见 `lib/command.js` 的 `TOOL_LABEL` / `TOOL_LABEL_FAMILIES`)。
225
+ > 装了 `dsh-browser` / `dsh-mcp-connector` / `@xmanrui/dsh-im` 之后,活动流里出现的就是它们真实的工具名与参数:
226
+ > **纯显示,装了更清楚,不装不影响团队功能。**
227
+
157
228
  ## 快速上手
158
229
 
159
230
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yangdcm/dsh-expert-team",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "description": "dsh「专家团」bundle:一句自然语言自动组建/持久化一支 12 角色多智能体团队,共享工作区协议 + 阶段门控编排 + 结构化交接 + 质量门禁/自动调度,实现者直接改代码并产出持久工件;带 live 团队浮层(质量门禁/覆盖率/工件预览)。 · Role-based multi-agent expert team for DeepSeek Harness: one sentence in, a staged and gated team delivery out.",
5
5
  "type": "module",
6
6
  "license": "MIT",