dsh-pstack 0.2.0-beta.3 → 0.2.1

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.
Files changed (39) hide show
  1. package/README.md +35 -16
  2. package/README.zh.md +36 -17
  3. package/assets/pstack-config-entry.png +0 -0
  4. package/cordis.patch.yml +12 -0
  5. package/dist/client.mjs +2448 -0
  6. package/dist/client.mjs.map +1 -0
  7. package/dist/index.mjs +1 -1
  8. package/dist/{paths-BT77khwm.mjs → paths-yji9SNak.mjs} +0 -1
  9. package/dist/pstack/docs/harness/dsh.md +7 -7
  10. package/dist/remote.d.mts +27 -0
  11. package/dist/remote.mjs +235 -0
  12. package/dist/role-catalog.d.mts +35 -0
  13. package/dist/role-catalog.mjs +122 -0
  14. package/dist/role-config-a4JpVdc-.mjs +379 -0
  15. package/dist/role-manifest-79cnFfDM.mjs +112 -0
  16. package/dist/role-manifest-8OERX9-s.d.mts +90 -0
  17. package/dist/role-wire-CAJsVA6e.d.mts +54 -0
  18. package/dist/roles.d.mts +18 -0
  19. package/dist/roles.mjs +293 -0
  20. package/dist/script.mjs +1 -1
  21. package/dist/skills/authored/decision-audit/SKILL.md +21 -17
  22. package/dist/skills/authored/decision-audit/SKILL.zh.md +21 -17
  23. package/dist/skills/authored/decision-audit/references/recover-commit.md +3 -3
  24. package/dist/skills/authored/decision-audit/references/recover-commit.zh.md +3 -3
  25. package/dist/skills/authored/decision-write/SKILL.md +11 -9
  26. package/dist/skills/authored/decision-write/SKILL.zh.md +11 -9
  27. package/dist/skills/authored/decision-write/references/land.md +3 -3
  28. package/dist/skills/authored/decision-write/references/land.zh.md +3 -3
  29. package/dist/skills/authored/decision-write/references/scope.md +16 -0
  30. package/dist/skills/authored/decision-write/references/scope.zh.md +16 -0
  31. package/dist/skills/authored/docs-drift/SKILL.md +120 -0
  32. package/dist/skills/authored/docs-drift/SKILL.zh.md +120 -0
  33. package/dist/skills/authored/setup-project-docs/SKILL.md +14 -9
  34. package/dist/skills/authored/setup-project-docs/SKILL.zh.md +14 -9
  35. package/dist/skills/authored/setup-project-docs/references/decision-conventions.md +3 -1
  36. package/dist/skills/authored/setup-project-docs/references/decision-conventions.zh.md +3 -1
  37. package/dist/subagent.d.mts +27 -20
  38. package/dist/subagent.mjs +71 -448
  39. package/package.json +34 -3
package/README.md CHANGED
@@ -15,13 +15,13 @@
15
15
  <p align="center">
16
16
  <a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/v/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm version" /></a>
17
17
  <a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/dm/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm downloads" /></a>
18
- <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-0.2.2--alpha.2-1f6feb?style=flat-square" alt="dsh 0.2.2-alpha.2" /></a>
18
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-%3E%3D0.2.1--rc.5-1f6feb?style=flat-square" alt="dsh >=0.2.1-rc.5" /></a>
19
19
  <a href="https://github.com/cursor/plugins/tree/main/pstack"><img src="https://img.shields.io/badge/pstack-0.15.36-d97706?style=flat-square" alt="pstack 0.15.36" /></a>
20
20
  </p>
21
21
 
22
22
  <p align="center">
23
23
  <a href="https://github.com/l246804/dsh-pstack/blob/main/LICENSE"><img src="https://img.shields.io/github/license/l246804/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="license" /></a>
24
- <a href="https://bundlephobia.com/result?p=dsh-pstack"><img src="https://img.shields.io/bundlephobia/minzip/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669&label=minzip" alt="minzip size" /></a>
24
+ <a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/unpacked-size/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="unpacked size" /></a>
25
25
  <a href="https://www.jsdocs.io/package/dsh-pstack"><img src="https://img.shields.io/badge/jsdocs-reference-080f12?style=flat-square&colorA=080f12&colorB=1fa669" alt="JSDocs" /></a>
26
26
  </p>
27
27
 
@@ -30,7 +30,7 @@
30
30
  <tr>
31
31
  <td align="center"><strong>58</strong><br /><sub>pstack skills</sub></td>
32
32
  <td align="center"><strong>23</strong><br /><sub>playbooks</sub></td>
33
- <td align="center"><strong>4</strong><br /><sub>native tools</sub></td>
33
+ <td align="center"><strong>5</strong><br /><sub>native tools</sub></td>
34
34
  <td align="center"><strong>2</strong><br /><sub>agent presets</sub></td>
35
35
  <td align="center"><strong>5</strong><br /><sub>bundled scripts</sub></td>
36
36
  </tr>
@@ -42,17 +42,18 @@
42
42
  <a href="#capabilities">Capabilities</a> ·
43
43
  <a href="#skills-directory">Skills directory</a> ·
44
44
  <a href="#optional-dsh-plugins">Optional DSH plugins</a> ·
45
- <a href="#compatibility">Compatibility</a>
45
+ <a href="#compatibility">Compatibility</a> ·
46
+ <a href="#friendly-links">Friendly Links</a>
46
47
  </p>
47
48
 
48
- `dsh-pstack` ports [pstack](https://github.com/cursor/plugins/tree/main/pstack) to [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). It keeps the upstream pstack skills, playbooks, and reference documents. Four native tools replace the interfaces that DSH lacks, while an adaptation layer maps Cursor's tool names, subagent fields, model slugs, and paths to DSH.
49
+ `dsh-pstack` ports [pstack](https://github.com/cursor/plugins/tree/main/pstack) to [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). It keeps the upstream pstack skills, playbooks, and reference documents. Five native tools fill the gaps in DSH's interfaces, while an adaptation layer maps Cursor's tool names, subagent fields, model slugs, and paths to DSH.
49
50
 
50
51
  Most upstream pstack skills declare `disable-model-invocation: true`. `poteto-mode` routes to those hidden skills by name, but DSH's `skill` tool only exposes the model-visible catalog. DSH also has no equivalents for Cursor's model slugs, `subagent_type`, `readonly`, and Bun scripts. dsh-pstack handles those differences in the plugin layer. You can start with `/poteto-mode` after installation.
51
52
 
52
53
  See [`pstack/README.md`](./pstack/README.md) for the full capability map, gaps, and acceptance status.
53
54
 
54
55
  > [!IMPORTANT]
55
- > This release targets DSH `0.2.2-alpha.2` or newer and requires Node.js `>=24.21.1`. `engines.dsh` is the range `>=0.2.2-alpha.2`: newer DSH versions are assumed compatible, and the requirement is only raised after a fix to the port is needed. See [Compatibility](#compatibility) before installing or upgrading.
56
+ > Requires DSH `>=0.2.1-rc.5` and Node.js `>=24.21.1`. Newer DSH versions remain supported by default; only confirmed incompatibilities are listed in [Compatibility](#compatibility).
56
57
 
57
58
  ## Quick start
58
59
 
@@ -72,7 +73,7 @@ See [`pstack/README.md`](./pstack/README.md) for the full capability map, gaps,
72
73
  /setup-pstack
73
74
  ```
74
75
 
75
- This command reads the providers, models, and reasoning efforts available in the current deployment. It writes them to `$DSH_HOME/pstack-models.mdc`. Without this file, every role inherits the parent's routing.
76
+ This command reads the providers, models, and reasoning efforts available in the current deployment. It writes them to `$DSH_HOME/pstack-models.mdc`. Without this file, every role inherits the parent's routing. After setup, the same values can be viewed and edited on **Plugins → Installed plugins → dsh-pstack**.
76
77
 
77
78
  ### Common entry points
78
79
 
@@ -86,6 +87,7 @@ See [`pstack/README.md`](./pstack/README.md) for the full capability map, gaps,
86
87
  | `/statechart` | Checks state models with TLA+ and TLC, and outputs a Mermaid state diagram. |
87
88
  | `/show-me-your-work` | Maintains a TSV decision log and audits the current work. |
88
89
  | `/retro` | Reviews a coding session's environment. |
90
+ | `/docs-drift` | Audits project-discovered documentation; `report` is read-only, while `fix` repairs approved findings. |
89
91
 
90
92
  ## Capabilities
91
93
 
@@ -95,11 +97,18 @@ See [`pstack/README.md`](./pstack/README.md) for the full capability map, gaps,
95
97
  |---|---|
96
98
  | `pstack_skill` | Loads a hidden skill registered by this plugin by name, and reads relative resources inside the skill directory. |
97
99
  | `pstack_models` | Read-only list of the providers, models, and efforts DSH actually offers, used by `/setup-pstack`. |
100
+ | `pstack_roles` | Read-only list of every pstack role's shape and whether it is an automatic panel, so a `pstack_subagent` call passes the right `roleIndex`. |
98
101
  | `pstack_subagent` | Reads `$DSH_HOME/pstack-models.mdc` per role, parses `provider/model [effort]`, selects a preset by `agent`, and can start several subagents at once. |
99
102
  | `pstack_script` | Runs bundled Node scripts by fixed id without Bun or shell scripts. |
100
103
 
101
104
  The `poteto-agent` and `comment-sicko` presets handle implementation delegation and read-only comment review. `pstack_script` can run five bundled scripts: `check-plan`, `watch-pr`, `worktree-audit`, `log`, and `statechart`. The script ids form a closed enum and cannot be used to build arbitrary paths.
102
105
 
106
+ ### Plugin configuration entry
107
+
108
+ ![Click Configure in the Plugins page header](assets/pstack-config-entry.png)
109
+
110
+ Open **Plugins → Installed plugins → dsh-pstack** and click **Configure** in the bundle page header to open the configuration dialog.
111
+
103
112
  ## Skills directory
104
113
 
105
114
  `skills/` is not an upstream pstack directory. It contains skills that pstack does not provide but real projects need. The source directories are `skills/authored/` and `skills/.agents/skills/`. The build publishes them to `dist/skills/authored/` and `dist/skills/vendored/`. `vendored` preserves open-source upstreams verbatim, while this repository maintains `authored`. References from pstack skills do not change these inclusion criteria.
@@ -111,12 +120,13 @@ The `poteto-agent` and `comment-sicko` presets handle implementation delegation
111
120
  | `authored` | `decision-write` | Writes, lands, and supersedes decision records in Draft and Land modes, requiring `Status` and `Implemented-by` to appear together. | Adds the decision lifecycle that real projects often lack. |
112
121
  | `authored` | `decision-audit` | Read-only audit of decision-record routing, status, scope, anchors, and supersession relationships. | Keeps decision records searchable and reviewable over time. |
113
122
  | `authored` | `setup-project-docs` | Sets up architecture, glossary, decisions, and the root `AGENTS.md` pointers, and can be run repeatedly to fill gaps. | Gives a new project a sustainable documentation entry point. |
123
+ | `authored` | `docs-drift` | Discovers maintained documents through project pointers, checks implementation drift, contradictions, terminology, links, redundancy, and unsupported elaboration, and repairs approved findings. | Adds periodic documentation inspection and controlled cleanup without assuming a fixed document layout. |
114
124
 
115
125
  `vendored` skills come from `mattpocock/skills@59db609eb1e18aaf59b63284d0e52255aff0c63c`. [`skills/skills-lock.json`](./skills/skills-lock.json) records their sources, paths, and hashes. Both skill trees ship with the package, but they do not correspond to upstream pstack versions.
116
126
 
117
127
  ## Optional DSH plugins
118
128
 
119
- DSH ships with the following plugins, which are disabled by default. dsh-pstack does not require them during installation. Some pstack flows need these plugins to run end to end. To enable a plugin, enter its package name in **Add plugin** on the Plugins page. Alternatively, run `dsh plugin --profile <profile> add <package>`, then restart the profile. Except for `@deepseek-ai/dsh-mcp-client`, the bundles and providers here are experimental.
129
+ DSH provides the following optional plugins, which are disabled by default. Most ship with DSH; `@deepseek-ai/dsh-cua-bundle` installs on demand. dsh-pstack does not require them during installation. Some pstack flows need these plugins to run end to end. To enable a plugin, enter its package name in **Add plugin** on the Plugins page. Alternatively, run `dsh plugin --profile <profile> add <package>`, then restart the profile. Except for `@deepseek-ai/dsh-mcp-client`, the bundles and providers here are experimental.
120
130
 
121
131
  > [!NOTE]
122
132
  > Without an optional plugin, the pstack skills still load. Steps that need the plugin print `Skipped in DeepSeek Harness: <step>. <reason>.` and continue. Missing `gh`, Java/TLC, or video tools also cause the corresponding steps to report blocked or degrade to screenshots. dsh-pstack never marks an unrun step as passed.
@@ -127,7 +137,7 @@ DSH ships with the following plugins, which are disabled by default. dsh-pstack
127
137
  |---|---|---|
128
138
  | `@deepseek-ai/dsh-experimental-session-search` | Five read-only tools search and trace historical Sessions for `/recall`, `/reflect`, and `/show-me-your-work`: `session_search`, `session_event_search`, `session_trace`, `session_event_trace`, and `session_event_read`. | Matches only Sessions with the same `cwd`; use `session_event_search` for the current Session; there is no Cursor `.jsonl` transcript path. |
129
139
  | `@deepseek-ai/dsh-experimental-worktree`<br />`@deepseek-ai/dsh-experimental-tool-worktree` | `create_worktree` creates a local branch and worktree and switches the current Session directory, isolating parallel candidates for `/arena`, `/swarm`, and `/architect`. | `from` reads only local refs and does not fetch; there is no cloud VM; creating worktrees repeatedly changes `cwd`; it does not automatically give each subagent its own tree. |
130
- | `@deepseek-ai/dsh-experimental-forge-bundle` | PR panel, checks, review, mark ready, merge, and Session binding, plus starting a Session from the composer with a new worktree, serving `/babysit`, `/shipping`, and `/autopilot-*`. | GitHub only, requires `gh` login; there is no take tool on the model side; there is no stack verdict or `origin` CLI; it can coexist with the worktree bundle. |
140
+ | `@deepseek-ai/dsh-experimental-forge-bundle` | PR panel, checks, review, mark ready, merge, and Session binding, plus starting a Session from the composer with a new worktree, serving `/babysit`, `/shipping`, and `/autopilot-*`. | GitHub only, requires `gh` login; there is no model-side change-request tool; there is no stack verdict or `origin` CLI; it can coexist with the worktree bundle. |
131
141
 
132
142
  ### Verification and evidence
133
143
 
@@ -135,16 +145,16 @@ Choose one of three browser providers: `@deepseek-ai/dsh-experimental-browser-us
135
145
 
136
146
  | Plugin | Capability when enabled | Boundaries and conflicts |
137
147
  |---|---|---|
138
- | `@deepseek-ai/dsh-browser-use` + one provider | Navigation, clicking, typing, screenshots, and ARIA snapshots; Stagehand also provides act, find, and extract, for verification skills and UI reproduction. | The base package does nothing without a provider; one provider per Session; screenshots need an image model; no video; Stagehand needs Chromium and a non-DeepSeek model. |
139
- | `@deepseek-ai/dsh-cua-bundle` | macOS app clicking, typing, screenshots, and permission pages, for desktop app verification. | macOS PTC only; Windows is incomplete; no video. |
140
- | `@deepseek-ai/dsh-experimental-terminal-bundle` | Six global terminal tools that keep a shell or REPL alive across calls and support background send, for CLI and TUI verification. | Terminal only; added to every Agent; persistent state must be cleaned up; switching invalidates the KV cache. |
148
+ | `@deepseek-ai/dsh-browser-use` + one provider | Navigation, clicking, typing, screenshots, and ARIA snapshots; Stagehand also provides act, observe, and extract, for verification skills and UI reproduction. | The base package does nothing without a provider; one provider per Session; screenshots need an image-capable model; no video; Stagehand needs Chromium and a non-DeepSeek model. |
149
+ | `@deepseek-ai/dsh-cua-bundle` | macOS app clicking, typing, screenshots, permission pages, and session-level authorization, for desktop app verification. | macOS PTC only; single computer-use provider slot; Windows is incomplete; no video. |
150
+ | `@deepseek-ai/dsh-experimental-terminal-bundle` | Six global terminal tools that keep a shell or REPL alive across calls, support background send, and isolate terminals by owner, for CLI and TUI verification. | Terminal only; added to every Agent; persistent state must be cleaned up; switching invalidates the KV cache. |
141
151
  | `@deepseek-ai/dsh-mcp-client` | Mounts MCP servers; tools appear as `mcp__<server>__<tool>`, and `mcp-resources` lists servers with resources, serving evidence investigation for `/why` and `/teach`. | No default server; configuration is per server; no automatic category discovery. |
142
152
 
143
153
  ### Multi-agent
144
154
 
145
155
  | Plugin | Capability when enabled | Boundaries and conflicts |
146
156
  |---|---|---|
147
- | `@deepseek-ai/dsh-experimental-agent-team-profile` | Lead and teammate roles, a shared task board, nine team tools, and a Web roster, serving `/orchestrate` and `/autopilot-*`. | Disables `subagent` and `subagent_fork`. Conflicts with `pstack_subagent`. See the warning below. |
157
+ | `@deepseek-ai/dsh-experimental-agent-team-profile` | Lead and teammate roles, a shared task board, nine team tools, and a Web roster, serving `/orchestrate` and `/autopilot-*`. | Disables `subagent` and `subagent_fork`. Conflicts with `pstack_subagent`. There is no pstack PR frontier, ledger, or stack verdict. See the warning below. |
148
158
  | `@deepseek-ai/dsh-experimental-ralph-bundle` | Global `ralph`, a foreground loop with a fresh child each round, serving `/autonomous-run`. | Not a persistent loop in the same Session; no event watcher; does not replace goals, heartbeats, or the decision log. |
149
159
 
150
160
  > [!WARNING]
@@ -154,11 +164,16 @@ Choose one of three browser providers: `@deepseek-ai/dsh-experimental-browser-us
154
164
 
155
165
  | Item | Version | Notes |
156
166
  |---|---|---|
157
- | DSH | `>=0.2.2-alpha.2` | Baseline `0.2.2-alpha.2`; newer versions are assumed compatible until the port needs a fix |
158
- | pstack | `0.15.36` | Upstream baseline commit `4dd1d05` |
167
+ | DSH | `>=0.2.1-rc.5` | Minimum supported version; verified through the `0.2.2-alpha.2` baseline |
168
+ | pstack | `0.15.36` | Upstream baseline commit `ae5650f` |
159
169
  | Node.js | `>=24.21.1` | Runtime requirement |
160
170
  | Cordis | `~4.0.6-alpha.1` | Peer dependency |
161
171
 
172
+ > [!NOTE]
173
+ > **DSH version support:** `engines.dsh` accepts every version `>=0.2.1-rc.5`, including newer prereleases. Routine DSH upgrades require no changes here. Add an entry only when a specific version is confirmed unsupported; raise the minimum only when a port fix requires it.
174
+ >
175
+ > **Known incompatible DSH versions:** None.
176
+
162
177
  Before upgrading DSH, verify experimental plugin package names, tool names, and configuration in a test profile. Upgrading upstream pstack requires regenerating the tree and rechecking the adaptation table.
163
178
 
164
179
  > [!CAUTION]
@@ -170,7 +185,11 @@ A worktree Session has a different `cwd` from the original Session. The session-
170
185
 
171
186
  Upstream pstack adapts Claude Code with `docs/harness/claude-code.md`. It preserves the skill bodies. A separate host adaptation table maps `Task`, `AskQuestion`, todo, model slugs, and paths to the target host. The generator adds a one-line Claude Code adaptation note to skills that use Cursor names. Unsupported capabilities report `Skipped in Claude Code: <step>. <reason>.`
172
187
 
173
- dsh-pstack follows the same approach. The main adaptation document is [`pstack/harness/docs/harness/dsh.md`](./pstack/harness/docs/harness/dsh.md). It covers Tools, Subagent fields, Models, setup-pstack, Paths, and Cursor-only features. The `pstack_*` tools, agent presets, and Node scripts replace fields that DSH lacks. At build time, upstream pstack and the local adaptation tree are rendered into `pstack/pstack/`, then packaged with `src/*.ts` and `skills/` into `dist/`.
188
+ dsh-pstack follows the same approach. The main adaptation document is [`pstack/harness/docs/harness/dsh.md`](./pstack/harness/docs/harness/dsh.md). It covers Tools, Subagent fields, Models, setup-pstack, Paths, Cursor-only features, Local replacements, and Optional plugins. The `pstack_*` tools, agent presets, and Node scripts replace fields that DSH lacks. At build time, upstream pstack and the local adaptation tree are rendered into `pstack/pstack/`, then packaged with `src/*.ts` and `skills/` into `dist/`.
189
+
190
+ ## Friendly Links
191
+
192
+ [LinuxDo](https://linux.do/) — the new ideal community
174
193
 
175
194
  ## Credits
176
195
 
package/README.zh.md CHANGED
@@ -15,13 +15,13 @@
15
15
  <p align="center">
16
16
  <a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/v/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm version" /></a>
17
17
  <a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/dm/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm downloads" /></a>
18
- <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-0.2.2--alpha.2-1f6feb?style=flat-square" alt="dsh 0.2.2-alpha.2" /></a>
18
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-%3E%3D0.2.1--rc.5-1f6feb?style=flat-square" alt="dsh >=0.2.1-rc.5" /></a>
19
19
  <a href="https://github.com/cursor/plugins/tree/main/pstack"><img src="https://img.shields.io/badge/pstack-0.15.36-d97706?style=flat-square" alt="pstack 0.15.36" /></a>
20
20
  </p>
21
21
 
22
22
  <p align="center">
23
23
  <a href="https://github.com/l246804/dsh-pstack/blob/main/LICENSE"><img src="https://img.shields.io/github/license/l246804/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="license" /></a>
24
- <a href="https://bundlephobia.com/result?p=dsh-pstack"><img src="https://img.shields.io/bundlephobia/minzip/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669&label=minzip" alt="minzip size" /></a>
24
+ <a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/unpacked-size/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="unpacked size" /></a>
25
25
  <a href="https://www.jsdocs.io/package/dsh-pstack"><img src="https://img.shields.io/badge/jsdocs-reference-080f12?style=flat-square&colorA=080f12&colorB=1fa669" alt="JSDocs" /></a>
26
26
  </p>
27
27
 
@@ -30,7 +30,7 @@
30
30
  <tr>
31
31
  <td align="center"><strong>58</strong><br /><sub>pstack 技能</sub></td>
32
32
  <td align="center"><strong>23</strong><br /><sub>playbook</sub></td>
33
- <td align="center"><strong>4</strong><br /><sub>原生工具</sub></td>
33
+ <td align="center"><strong>5</strong><br /><sub>原生工具</sub></td>
34
34
  <td align="center"><strong>2</strong><br /><sub>agent preset</sub></td>
35
35
  <td align="center"><strong>5</strong><br /><sub>随包脚本</sub></td>
36
36
  </tr>
@@ -42,17 +42,18 @@
42
42
  <a href="#能力">能力</a> ·
43
43
  <a href="#skills-目录">skills 目录</a> ·
44
44
  <a href="#可选-dsh-插件">可选 DSH 插件</a> ·
45
- <a href="#兼容性">兼容性</a>
45
+ <a href="#兼容性">兼容性</a> ·
46
+ <a href="#友情链接">友情链接</a>
46
47
  </p>
47
48
 
48
- `dsh-pstack` 是 [pstack](https://github.com/cursor/plugins/tree/main/pstack) 的 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)移植。它保留上游 pstack 的技能、playbook 与参考文档。4 个原生工具替代 DSH 缺少的接口,适配层则把 Cursor 的工具名、子代理字段、模型 slug 和路径映射到 DSH。
49
+ `dsh-pstack` 是 [pstack](https://github.com/cursor/plugins/tree/main/pstack) 的 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)移植。它保留上游 pstack 的技能、playbook 与参考文档。5 个原生工具补上 DSH 的接口缺口,适配层则把 Cursor 的工具名、子代理字段、模型 slug 和路径映射到 DSH。
49
50
 
50
51
  上游 pstack 的技能大多声明 `disable-model-invocation: true`。`poteto-mode` 按名称路由到这些隐藏技能,但 DSH 的 `skill` 工具只暴露模型可见目录。DSH 也没有与 Cursor 的模型 slug、`subagent_type`、`readonly` 和 Bun 脚本对等的接口。dsh-pstack 在插件层处理这些差异,安装后可以从 `/poteto-mode` 开始工作。
51
52
 
52
53
  完整能力映射、缺口和验收状态见 [`pstack/README.md`](./pstack/README.md)。
53
54
 
54
55
  > [!IMPORTANT]
55
- > 此版本以 DSH `0.2.2-alpha.2` 为基准、要求 Node.js `>=24.21.1`。`engines.dsh` 为 `>=0.2.2-alpha.2` 范围:默认认为更高版本兼容,只有移植内容需要修复时才提高版本要求。安装或升级前请先查看 [兼容性](#兼容性)。
56
+ > 要求 DSH `>=0.2.1-rc.5`、Node.js `>=24.21.1`。默认支持更高版本的 DSH;只有确认不兼容的版本才会列入 [兼容性](#兼容性)。
56
57
 
57
58
  ## 快速开始
58
59
 
@@ -62,7 +63,7 @@
62
63
  dsh plugin --profile web add dsh-pstack
63
64
  ```
64
65
 
65
- 也可以在 Web 或 Desktop 的 Plugins 页面安装。
66
+ 也可以在 Web 或 Desktop 的「插件」页面安装。
66
67
 
67
68
  2. 重启对应的 profile,或新开一个 Session。
68
69
 
@@ -72,7 +73,7 @@
72
73
  /setup-pstack
73
74
  ```
74
75
 
75
- 该命令读取当前部署提供的 provider、model 与 reasoning effort,并写入 `$DSH_HOME/pstack-models.mdc`。缺少这个文件时,所有角色继承父级路由。
76
+ 该命令读取当前部署提供的 provider、model 与 reasoning effort,并写入 `$DSH_HOME/pstack-models.mdc`。缺少这个文件时,所有角色继承父级路由。初始化后可在 **插件 → 已安装插件 → dsh-pstack** 查看和编辑同一份配置。
76
77
 
77
78
  ### 常用入口
78
79
 
@@ -86,6 +87,7 @@
86
87
  | `/statechart` | 用 TLA+ 与 TLC 检查状态模型,输出 Mermaid 状态图 |
87
88
  | `/show-me-your-work` | 维护 TSV 决策日志,审计当前工作 |
88
89
  | `/retro` | 对一次编码会话做环境复盘 |
90
+ | `/docs-drift` | 巡检项目自身指针发现的文档;`report` 只读,`fix` 仅修复获批项。 |
89
91
 
90
92
  ## 能力
91
93
 
@@ -95,11 +97,18 @@
95
97
  |---|---|
96
98
  | `pstack_skill` | 按名称加载本插件注册的隐藏技能,也能读取技能目录内的相对资源。 |
97
99
  | `pstack_models` | 只读列出 DSH 实际提供的 provider、model 和 effort,供 `/setup-pstack` 使用。 |
100
+ | `pstack_roles` | 只读列出每个 pstack 角色的 shape 与是否为自动面板,帮助 `pstack_subagent` 调用传对 `roleIndex`。 |
98
101
  | `pstack_subagent` | 按角色读取 `$DSH_HOME/pstack-models.mdc`,解析 `provider/model [effort]`,按 `agent` 选择 preset,一次可启动多个子代理。 |
99
102
  | `pstack_script` | 用固定 id 运行随包 Node 脚本,不依赖 Bun 或 shell 脚本。 |
100
103
 
101
104
  `poteto-agent` 和 `comment-sicko` 两个 preset 分别负责实现型委派与只读评论审查。`pstack_script` 可以运行 `check-plan`、`watch-pr`、`worktree-audit`、`log`、`statechart` 五个随包脚本,脚本 id 是封闭枚举,不能拼任意路径。
102
105
 
106
+ ### 插件配置入口
107
+
108
+ ![在插件页头右上角点击「配置」入口](assets/pstack-config-entry.png)
109
+
110
+ 打开 **插件 → 已安装插件 → dsh-pstack**,点击 bundle 页头右上角的 **配置** 按钮即可打开配置弹窗。
111
+
103
112
  ## skills 目录
104
113
 
105
114
  `skills/` 不是 pstack 上游目录。它只收 pstack 没提供、真实项目开发中又需要的技能。源目录是 `skills/authored/` 和 `skills/.agents/skills/`,构建后分别发布到 `dist/skills/authored/` 和 `dist/skills/vendored/`。`vendored` 逐字保留开源上游,`authored` 由本仓维护。pstack 技能对它们的引用只是使用关系,不改变收录标准。
@@ -111,12 +120,13 @@
111
120
  | `authored` | `decision-write` | 决策记录的写入、落地和取代,Draft 与 Land 两种模式,`Status` 与 `Implemented-by` 必须成对。 | 补上真实项目常缺的决策生命周期。 |
112
121
  | `authored` | `decision-audit` | 只读审计决策记录的路由、状态、Scope、锚点与取代关系。 | 让决策记录持续可检索、可复核。 |
113
122
  | `authored` | `setup-project-docs` | 搭建 architecture、glossary、decisions 与根 `AGENTS.md` 指针,可重复补齐。 | 给新项目一套可持续的项目文档入口。 |
123
+ | `authored` | `docs-drift` | 从项目指针发现维护文档,检查实现漂移、矛盾、术语、链接、冗余与无依据扩写,仅修复获批项。 | 不依赖固定文档布局,补充周期性文档巡检与受控清理。 |
114
124
 
115
125
  `vendored` 技能来自 `mattpocock/skills@59db609eb1e18aaf59b63284d0e52255aff0c63c`,来源、路径和哈希记录在 [`skills/skills-lock.json`](./skills/skills-lock.json)。两棵技能树都随包发布,但和 pstack 上游版本没有对应关系。
116
126
 
117
127
  ## 可选 DSH 插件
118
128
 
119
- 以下插件随 DSH 提供,默认关闭。安装 dsh-pstack 时不要求安装这些插件,但部分 pstack 流程需要它们才能完整执行。要启用插件,在 Plugins 页面用 **Add plugin** 输入包名。也可以运行 `dsh plugin --profile <profile> add <package>`,然后重启 profile。除 `@deepseek-ai/dsh-mcp-client` 外,本节列出的 bundle 与 provider 都是实验性的。
129
+ DSH 提供以下可选插件,默认关闭。多数随 DSH 提供,`@deepseek-ai/dsh-cua-bundle` 需按需安装。安装 dsh-pstack 时不要求安装这些插件,但部分 pstack 流程需要它们才能完整执行。要启用插件,在「插件」页面用**添加插件**输入包名。也可以运行 `dsh plugin --profile <profile> add <package>`,然后重启 profile。除 `@deepseek-ai/dsh-mcp-client` 外,本节列出的 bundle 与 provider 都是实验性的。
120
130
 
121
131
  > [!NOTE]
122
132
  > 未启用可选插件时,pstack 技能仍可加载。需要插件的步骤会输出 `Skipped in DeepSeek Harness: <step>. <reason>.` 后继续。缺少 `gh`、Java/TLC 或视频工具时,对应步骤会报告 blocked 或降级为截图。dsh-pstack 不会把未运行的步骤标记为通过。
@@ -127,7 +137,7 @@
127
137
  |---|---|---|
128
138
  | `@deepseek-ai/dsh-experimental-session-search` | 5 个只读工具:`session_search`、`session_event_search`、`session_trace`、`session_event_trace`、`session_event_read`,搜索和追踪历史会话,服务 `/recall`、`/reflect`、`/show-me-your-work`。 | 只匹配同一 `cwd` 的会话;当前会话用 `session_event_search`;没有 Cursor 的 `.jsonl` 转写路径。 |
129
139
  | `@deepseek-ai/dsh-experimental-worktree`<br />`@deepseek-ai/dsh-experimental-tool-worktree` | `create_worktree` 建本地分支和工作树,切换当前 Session 目录,用于 `/arena`、`/swarm`、`/architect` 的并行候选隔离。 | `from` 只读本地 ref,不 fetch;无云 VM;连续建树会改 `cwd`;不会自动给每个子代理分树。 |
130
- | `@deepseek-ai/dsh-experimental-forge-bundle` | PR 面板、checks、review、mark ready、merge、Session 绑定,也能从 composer 用新 worktree 启动 Session,服务 `/babysit`、`/shipping`、`/autopilot-*`。 | 仅 GitHub,需 `gh` 登录;模型侧没有 take 工具;没有 stack verdict,也没有 `origin` CLI;可与 worktree bundle 共存。 |
140
+ | `@deepseek-ai/dsh-experimental-forge-bundle` | PR 面板、checks、review、mark ready、merge、Session 绑定,也能从 composer 用新 worktree 启动 Session,服务 `/babysit`、`/shipping`、`/autopilot-*`。 | 仅 GitHub,需 `gh` 登录;模型侧没有变更请求工具;没有 stack verdict,也没有 `origin` CLI;可与 worktree bundle 共存。 |
131
141
 
132
142
  ### 验证与证据
133
143
 
@@ -135,16 +145,16 @@
135
145
 
136
146
  | 插件 | 打开后的能力 | 边界与冲突 |
137
147
  |---|---|---|
138
- | `@deepseek-ai/dsh-browser-use` + 一个 provider | 导航、点击、输入、截图和 ARIA snapshot;Stagehand 另有 act、find、extract,用于验证技能和 UI 复现。 | 基础包没有 provider 时不生效;每个 Session 一个 provider;截图要图像模型;无视频;Stagehand 需要 Chromium 和非 DeepSeek 模型。 |
139
- | `@deepseek-ai/dsh-cua-bundle` | macOS 应用点击、输入、截图和权限页,用于桌面应用验证。 | 仅 macOS PTC;Windows 未完成;无视频。 |
140
- | `@deepseek-ai/dsh-experimental-terminal-bundle` | 6 个全局终端工具,跨调用保持 shell / REPL,支持后台 send,用于 CLI / TUI 验证。 | 只覆盖终端;会加到所有 Agent;持久状态要清理;切换会失效 KV cache。 |
148
+ | `@deepseek-ai/dsh-browser-use` + 一个 provider | 导航、点击、输入、截图和 ARIA snapshot;Stagehand 另有 act、observe、extract,用于验证技能和 UI 复现。 | 基础包没有 provider 时不生效;每个 Session 一个 provider;截图要图像模型;无视频;Stagehand 需要 Chromium 和非 DeepSeek 模型。 |
149
+ | `@deepseek-ai/dsh-cua-bundle` | macOS 应用点击、输入、截图、权限页和会话级授权,用于桌面应用验证。 | 仅 macOS PTC;单 computer-use provider 槽;Windows 未完成;无视频。 |
150
+ | `@deepseek-ai/dsh-experimental-terminal-bundle` | 6 个全局终端工具,跨调用保持 shell / REPL,支持后台 send 和按 owner 隔离,用于 CLI / TUI 验证。 | 只覆盖终端;会加到所有 Agent;持久状态要清理;切换会失效 KV cache。 |
141
151
  | `@deepseek-ai/dsh-mcp-client` | 挂载 MCP server,工具以 `mcp__<server>__<tool>` 出现,`mcp-resources` 列出带资源的 server,服务 `/why`、`/teach` 的证据调查。 | 无默认 server;需逐项配置;无自动类别发现。 |
142
152
 
143
153
  ### 多代理
144
154
 
145
155
  | 插件 | 打开后的能力 | 边界与冲突 |
146
156
  |---|---|---|
147
- | `@deepseek-ai/dsh-experimental-agent-team-profile` | Lead / teammate、共享任务板、9 个团队工具和 Web roster,服务 `/orchestrate`、`/autopilot-*`。 | 禁用 `subagent` 和 `subagent_fork`,与 `pstack_subagent` 冲突。见下方警告。 |
157
+ | `@deepseek-ai/dsh-experimental-agent-team-profile` | Lead / teammate、共享任务板、9 个团队工具和 Web roster,服务 `/orchestrate`、`/autopilot-*`。 | 禁用 `subagent` 和 `subagent_fork`,与 `pstack_subagent` 冲突。没有 pstack 的 PR frontier、ledger 或 stack verdict。见下方警告。 |
148
158
  | `@deepseek-ai/dsh-experimental-ralph-bundle` | 全局 `ralph`,每轮 fresh child 的 foreground 循环,服务 `/autonomous-run`。 | 不是同一 Session 常驻循环;无事件 watcher;不替代 goal、心跳和 decision log。 |
149
159
 
150
160
  > [!WARNING]
@@ -154,11 +164,16 @@
154
164
 
155
165
  | 项目 | 版本 | 说明 |
156
166
  |---|---|---|
157
- | DSH | `>=0.2.2-alpha.2` | 基准 `0.2.2-alpha.2`;默认认为更高版本兼容,移植内容需要修复时再提高要求 |
158
- | pstack | `0.15.36` | 上游基线提交 `4dd1d05` |
167
+ | DSH | `>=0.2.1-rc.5` | 最低支持版本;已验证至 `0.2.2-alpha.2` 基线 |
168
+ | pstack | `0.15.36` | 上游基线提交 `ae5650f` |
159
169
  | Node.js | `>=24.21.1` | 运行时要求 |
160
170
  | Cordis | `~4.0.6-alpha.1` | peer dependency |
161
171
 
172
+ > [!NOTE]
173
+ > **DSH 版本支持:** `engines.dsh` 接受所有 `>=0.2.1-rc.5` 的版本,包括更高的预发布版。DSH 正常升级时无需修改此处;只有确认某个版本不受支持时才添加条目,只有移植修复需要时才提高最低版本。
174
+ >
175
+ > **已知不兼容的 DSH 版本:** 暂无。
176
+
162
177
  升级 DSH 前,先在测试 profile 中验证实验性插件的包名、工具名和配置。升级上游 pstack 需要重新生成树并复核适配表。
163
178
 
164
179
  > [!CAUTION]
@@ -170,7 +185,11 @@ worktree Session 的 `cwd` 与原 Session 不同。session-search 插件只匹
170
185
 
171
186
  上游 pstack 用 `docs/harness/claude-code.md` 适配 Claude Code。它保留技能正文,另用宿主适配表把 `Task`、`AskQuestion`、todo、模型 slug 和路径映射到目标宿主。生成器为使用 Cursor 名称的技能添加一行 Claude Code 适配提示。不支持的能力会报告 `Skipped in Claude Code: <step>. <reason>.`
172
187
 
173
- dsh-pstack 沿用这套做法。主适配文档是 [`pstack/harness/docs/harness/dsh.md`](./pstack/harness/docs/harness/dsh.md),覆盖 Tools、Subagent fields、Models、setup-pstack、Paths 和 Cursor-only features。`pstack_*` 工具、agent preset 和 Node 脚本替代 DSH 缺少的字段。构建时,上游 pstack 与本地适配树被渲染到 `pstack/pstack/`,再与 `src/*.ts`、`skills/` 一起打包到 `dist/`。
188
+ dsh-pstack 沿用这套做法。主适配文档是 [`pstack/harness/docs/harness/dsh.md`](./pstack/harness/docs/harness/dsh.md),覆盖 Tools、Subagent fields、Models、setup-pstack、Paths、Cursor-only features、Local replacements 和 Optional plugins。`pstack_*` 工具、agent preset 和 Node 脚本替代 DSH 缺少的字段。构建时,上游 pstack 与本地适配树被渲染到 `pstack/pstack/`,再与 `src/*.ts`、`skills/` 一起打包到 `dist/`。
189
+
190
+ ## 友情链接
191
+
192
+ [LinuxDo](https://linux.do/) —— 新的理想型社区
174
193
 
175
194
  ## 鸣谢
176
195
 
Binary file
package/cordis.patch.yml CHANGED
@@ -3,6 +3,10 @@
3
3
  # `pstack` registers the bundled skill provider and `pstack_skill`, the trusted loader
4
4
  # that can reach skills hidden with `disable-model-invocation`.
5
5
  # `pstack-models` registers the read-only model/effort directory used by `/setup-pstack`.
6
+ # `pstack-roles` exposes the same role file to the Plugins configuration page through a
7
+ # Typert Remote service; its browser half is declared by `dsh.client` in package.json.
8
+ # `pstack-role-catalog` registers `pstack_roles`, the read-only capability query that
9
+ # reports each role's shape and autoPanel so a caller sets `roleIndex` correctly.
6
10
  # `pstack-subagent` registers `pstack_subagent`, which re-reads the role file on every
7
11
  # delegation and selects one of the pstack agent presets below.
8
12
  # `pstack-script` registers `pstack_script`, the only supported way to run the bundled
@@ -17,6 +21,10 @@
17
21
  name: dsh-pstack
18
22
  - id: pstack-models
19
23
  name: dsh-pstack/models
24
+ - id: pstack-roles
25
+ name: dsh-pstack/roles
26
+ - id: pstack-role-catalog
27
+ name: dsh-pstack/role-catalog
20
28
  - id: pstack-subagent
21
29
  name: dsh-pstack/subagent
22
30
  config:
@@ -46,6 +54,8 @@
46
54
  name: "@deepseek-ai/dsh-tool-fs"
47
55
  - id: tool-fs-search
48
56
  name: "@deepseek-ai/dsh-tool-fs-search"
57
+ config:
58
+ sampleOverCapGlobResults: false
49
59
  - id: tool-todo
50
60
  name: "@deepseek-ai/dsh-tool-todo"
51
61
  config:
@@ -107,3 +117,5 @@
107
117
  edit: false
108
118
  - id: tool-fs-search
109
119
  name: "@deepseek-ai/dsh-tool-fs-search"
120
+ config:
121
+ sampleOverCapGlobResults: false