dsh-pstack 0.2.0 → 0.3.0-beta.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.
package/README.md CHANGED
@@ -1,198 +1,198 @@
1
- <p align="center">
1
+ <div align="center">
2
2
  <img src="./assets/logo.png" width="144" alt="dsh-pstack logo" />
3
- </p>
4
3
 
5
- <h1 align="center">dsh-pstack</h1>
4
+ <h1>dsh-pstack</h1>
6
5
 
7
- <p align="center">
8
- <strong>Bring pstack's rigorous agent workflows to DeepSeek Harness</strong>
9
- </p>
6
+ <p>
7
+ <strong>Bring pstack's rigorous agent workflows to DeepSeek Harness</strong>
8
+ </p>
10
9
 
11
- <p align="center">
12
- English · <a href="./README.zh.md">中文</a>
13
- </p>
14
-
15
- <p align="center">
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
- <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>
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
- </p>
10
+ <p>English · <a href="./README.zh.md">中文</a></p>
21
11
 
22
- <p align="center">
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>
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
- </p>
12
+ <p>
13
+ <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>
14
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-%3E%3D0.2.2--alpha.3-1f6feb?style=flat-square" alt="dsh >=0.2.2-alpha.3" /></a>
15
+ <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>
16
+ <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>
17
+ <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="JSDoc reference" /></a>
18
+ </p>
27
19
 
28
- <div align="center">
29
20
  <table>
30
21
  <tr>
31
22
  <td align="center"><strong>58</strong><br /><sub>pstack skills</sub></td>
32
23
  <td align="center"><strong>23</strong><br /><sub>playbooks</sub></td>
33
- <td align="center"><strong>4</strong><br /><sub>native tools</sub></td>
24
+ <td align="center"><strong>5</strong><br /><sub>native tools</sub></td>
34
25
  <td align="center"><strong>2</strong><br /><sub>agent presets</sub></td>
35
26
  <td align="center"><strong>5</strong><br /><sub>bundled scripts</sub></td>
36
27
  </tr>
37
28
  </table>
38
- </div>
39
29
 
40
- <p align="center">
41
- <a href="#quick-start">Quick start</a> ·
42
- <a href="#capabilities">Capabilities</a> ·
43
- <a href="#skills-directory">Skills directory</a> ·
44
- <a href="#optional-dsh-plugins">Optional DSH plugins</a> ·
45
- <a href="#compatibility">Compatibility</a>
46
- </p>
30
+ <p>
31
+ <a href="#quick-start">🚀 Quick start</a> ·
32
+ <a href="#-common-commands">⌨️ Commands</a> ·
33
+ <a href="#-capabilities">🧩 Capabilities</a> ·
34
+ <a href="#-optional-dsh-plugins">🔌 Optional plugins</a> ·
35
+ <a href="#-remaining-gaps">⚠️ Limitations</a> ·
36
+ <a href="#-compatibility">📦 Compatibility</a>
37
+ </p>
38
+ </div>
47
39
 
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.
40
+ ---
49
41
 
50
- 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.
42
+ `dsh-pstack` ports [pstack](https://github.com/cursor/plugins/tree/main/pstack) to [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). It includes the upstream skills, playbooks, and references, and adds skill routing, role-based model configuration, subagents, and Node.js scripts.
51
43
 
52
- See [`pstack/README.md`](./pstack/README.md) for the full capability map, gaps, and acceptance status.
44
+ See the [capability map](./pstack/README.md) for the complete porting review.
53
45
 
54
46
  > [!IMPORTANT]
55
- > 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).
47
+ > Requires DSH `>=0.2.2-alpha.3` and Node.js `>=24.21.1`. For older DSH versions, choose a release from [Compatibility](#-compatibility).
48
+
49
+ <a id="quick-start"></a>
56
50
 
57
- ## Quick start
51
+ ## 🚀 Quick start
58
52
 
59
- 1. Install the plugin:
53
+ 1. **Install the plugin.**
60
54
 
61
55
  ```sh
62
56
  dsh plugin --profile web add dsh-pstack
63
57
  ```
64
58
 
65
- You can also install it from the Plugins page in Web or Desktop.
59
+ You can also install it through **Plugins** in Web or Desktop.
66
60
 
67
- 2. Restart the profile or open a new Session.
61
+ 2. **Restart the profile or open a new Session.**
68
62
 
69
- 3. Before first use, run:
63
+ 3. **Initialize role-based model routing.**
70
64
 
71
65
  ```text
72
66
  /setup-pstack
73
67
  ```
74
68
 
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. After setup, the same values can be viewed and edited on **Plugins → Installed plugins → dsh-pstack**.
69
+ The command saves available routes to `$DSH_HOME/pstack-models.mdc`. Without this file, roles inherit the parent model.
76
70
 
77
- ### Common entry points
71
+ 4. **Start a workflow.**
78
72
 
79
- | Command | Purpose |
80
- |---|---|
81
- | `/poteto-mode` | Main workflow entry: matches a playbook to the task and maintains todos and evidence. |
82
- | `/setup-pstack` | Configures role models and initializes the pstack environment. |
83
- | `/how`, `/why`, `/teach` | Architecture walkthrough, evidence investigation, and progressive explanation. |
84
- | `/architect`, `/arena`, `/swarm` | Multi-option design, parallel candidates, and slice-parallel implementation. |
85
- | `/create-verification-skill` | Generates a verification skill for a real project. |
86
- | `/statechart` | Checks state models with TLA+ and TLC, and outputs a Mermaid state diagram. |
87
- | `/show-me-your-work` | Maintains a TSV decision log and audits the current work. |
88
- | `/retro` | Reviews a coding session's environment. |
89
- | `/docs-drift` | Audits project-discovered documentation; `report` is read-only, while `fix` repairs approved findings. |
73
+ ```text
74
+ /poteto-mode
75
+ ```
90
76
 
91
- ## Capabilities
77
+ ### ⚙️ Configure role models
92
78
 
93
- ### Native tools
79
+ To view or edit routes after setup, open **Plugins → Installed plugins → dsh-pstack → Configure**.
94
80
 
95
- | Tool | Purpose |
81
+ <p align="center">
82
+ <img src="assets/pstack-config-entry.png" width="800" alt="Plugin configuration entry" />
83
+ </p>
84
+
85
+ ## ⌨️ Common commands
86
+
87
+ | Task | Commands |
96
88
  |---|---|
97
- | `pstack_skill` | Loads a hidden skill registered by this plugin by name, and reads relative resources inside the skill directory. |
98
- | `pstack_models` | Read-only list of the providers, models, and efforts DSH actually offers, used by `/setup-pstack`. |
99
- | `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. |
100
- | `pstack_script` | Runs bundled Node scripts by fixed id without Bun or shell scripts. |
89
+ | Plan and build | `/poteto-mode`, `/architect`, `/arena`, `/swarm` |
90
+ | Understand and investigate | `/how`, `/why`, `/teach` |
91
+ | Verify | `/create-verification-skill`, `/statechart` |
92
+ | Review and maintain | `/show-me-your-work`, `/retro`, `/docs-drift` |
101
93
 
102
- 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.
94
+ ## 🧩 Capabilities
103
95
 
104
- ### Plugin configuration entry
96
+ ### 🛠️ Native tools
105
97
 
106
- ![Click Configure in the Plugins page header](assets/pstack-config-entry.png)
98
+ | Tool | Function |
99
+ |---|---|
100
+ | `pstack_skill` | Loads hidden pstack skills and their relative resources by name. |
101
+ | `pstack_models` | Lists available providers, models, and reasoning efforts. |
102
+ | `pstack_roles` | Shows role shapes and automatic-panel status so delegation uses the correct parameters. |
103
+ | `pstack_subagent` | Applies role routing and agent presets. Supports parallel subagents. |
104
+ | `pstack_script` | Runs `check-plan`, `watch-pr`, `worktree-audit`, `log`, or `statechart` with Node.js. |
107
105
 
108
- Open **Plugins → Installed plugins → dsh-pstack** and click **Configure** in the bundle page header to open the configuration dialog.
106
+ The `poteto-agent` preset handles implementation delegation. The `comment-sicko` preset handles read-only comment review.
109
107
 
110
- ## Skills directory
108
+ > [!CAUTION]
109
+ > `pstack_script` bypasses bash approval and the filesystem sandbox. Treat it as a trusted entry point.
111
110
 
112
- `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
+ ### 📚 Additional skills
113
112
 
114
- | Source | Skill | Purpose | Engineering capability added |
115
- |---|---|---|---|
116
- | `vendored` | `writing-for-agents` | Writes skills, `AGENTS.md`, `CLAUDE.md`, and documents referenced by pointers, covering context pointers, information hierarchy, and progressive disclosure. | Makes an agent document's trigger words, load order, and context cost predictable, and adds the writing path that Cursor's `create-skill` provides. |
117
- | `vendored` | `retro` | Reviews a coding session's environment, checking navigation, automation, coding conventions, tool economy, and information access. | Adds the environment check that pstack `/reflect` and `/correct` do not cover; it only reports and does not modify the repository. |
118
- | `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. |
119
- | `authored` | `decision-audit` | Read-only audit of decision-record routing, status, scope, anchors, and supersession relationships. | Keeps decision records searchable and reviewable over time. |
120
- | `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. |
121
- | `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. |
113
+ The package includes six skills maintained independently of pstack.
122
114
 
123
- `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.
115
+ | Skill | Source | Purpose |
116
+ |---|---|---|
117
+ | `writing-for-agents` | `vendored` | Write skills and clear agent-facing documentation. |
118
+ | `retro` | `vendored` | Review the agent environment without modifying the repository. |
119
+ | `decision-write` | `authored` | Create, land, and supersede decision records. |
120
+ | `decision-audit` | `authored` | Audit decision-record status and relationships. |
121
+ | `setup-project-docs` | `authored` | Set up sustainable project documentation. |
122
+ | `docs-drift` | `authored` | Detect documentation drift and repair approved findings. |
124
123
 
125
- ## Optional DSH plugins
124
+ [`skills/skills-lock.json`](./skills/skills-lock.json) records the sources and hashes of vendored skills.
126
125
 
127
- 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.
126
+ ## 🔌 Optional DSH plugins
128
127
 
129
- > [!NOTE]
130
- > 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.
128
+ Optional plugins extend specific workflows. You do not need them to install dsh-pstack.
131
129
 
132
- ### Sessions and isolation
130
+ To enable a plugin, open **Plugins → Add plugin**, select the package, and restart the profile.
133
131
 
134
- | Plugin | Capability when enabled | Boundaries and conflicts |
132
+ | Use case | Plugin | Limits and conflicts |
135
133
  |---|---|---|
136
- | `@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. |
137
- | `@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. |
138
- | `@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. |
134
+ | Worktrees and GitHub PRs | `@deepseek-ai/dsh-experimental-forge-bundle` | Provides the **Change requests & worktrees** switch and `create_worktree`. GitHub status needs a logged-in `gh`. |
135
+ | Session history | `@deepseek-ai/dsh-experimental-session-search` | Read-only. Requires exact `cwd` equality. Subagent transcript coverage is unconfirmed. |
136
+ | Browser verification | `@deepseek-ai/dsh-browser-use` and one provider | One provider per Session. Screenshots need an image-capable model. No video recording. |
137
+ | Desktop verification | `@deepseek-ai/dsh-cua-bundle` | macOS PTC Sessions only. Windows support is incomplete. No video recording. |
138
+ | Persistent terminals | `@deepseek-ai/dsh-experimental-terminal-bundle` | Six persistent shell and REPL tools. No GUI control or video recording. |
139
+ | MCP integrations | `@deepseek-ai/dsh-mcp-client` | No server configured by default. No automatic evidence-category discovery. |
140
+ | Agent teams | `@deepseek-ai/dsh-experimental-agent-team-profile` | Conflicts with `pstack_subagent`. No pstack PR frontier, ledger, or stack verdict. |
141
+ | Autonomous loops | `@deepseek-ai/dsh-experimental-ralph-bundle` | Starts a fresh child each round. No persistent loop or event watcher. |
139
142
 
140
- ### Verification and evidence
143
+ Most packages ship with DSH. `@deepseek-ai/dsh-cua-bundle` installs on demand. Except for the MCP client, these plugins are experimental.
141
144
 
142
- Choose one of three browser providers: `@deepseek-ai/dsh-experimental-browser-use-stagehand-native`, `@deepseek-ai/dsh-experimental-browser-use-playwright-mcp`, or `@deepseek-ai/dsh-experimental-browser-use-chrome-devtools-mcp`.
145
+ ### 🌐 Browser providers
143
146
 
144
- | Plugin | Capability when enabled | Boundaries and conflicts |
145
- |---|---|---|
146
- | `@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. |
147
- | `@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. |
148
- | `@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. |
149
- | `@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. |
147
+ Choose one provider for `@deepseek-ai/dsh-browser-use`:
150
148
 
151
- ### Multi-agent
149
+ - `@deepseek-ai/dsh-experimental-browser-use-stagehand-native`: also needs Chromium and a supported non-DeepSeek model.
150
+ - `@deepseek-ai/dsh-experimental-browser-use-playwright-mcp`
151
+ - `@deepseek-ai/dsh-experimental-browser-use-chrome-devtools-mcp`
152
152
 
153
- | Plugin | Capability when enabled | Boundaries and conflicts |
154
- |---|---|---|
155
- | `@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. |
156
- | `@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. |
153
+ Providers have different tool names and selectors. Browser and computer use share separate single-provider slots.
154
+
155
+ The configuration page recommends Change requests & worktrees and session search. It never enables plugins automatically. Agent Teams is a conflict warning, not a recommendation.
157
156
 
158
157
  > [!WARNING]
159
- > Do not enable `@deepseek-ai/dsh-experimental-agent-team-profile` and `pstack_subagent` in the same profile. The agent team plugin disables `subagent` and `subagent_fork`, and provides a second delegation entry point. Use only one subagent system per profile.
158
+ > Use either Agent Teams or `pstack_subagent`, not both. Agent Teams disables DSH's native subagent tools.
160
159
 
161
- ## Compatibility
160
+ When a plugin is disabled, dependent steps report skipped or blocked. They never report passed. Without the forge bundle, use `gh` and `git worktree add` through `bash`. See the [DSH adaptation guide](./pstack/harness/docs/harness/dsh.md#optional-plugins) for setup details and fallbacks.
162
161
 
163
- | Item | Version | Notes |
164
- |---|---|---|
165
- | DSH | `>=0.2.1-rc.5` | Minimum supported version; verified through the `0.2.2-alpha.2` baseline |
166
- | pstack | `0.15.36` | Upstream baseline commit `4dd1d05` |
167
- | Node.js | `>=24.21.1` | Runtime requirement |
168
- | Cordis | `~4.0.6-alpha.1` | Peer dependency |
162
+ ## ⚠️ Remaining gaps
169
163
 
170
- > [!NOTE]
171
- > **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.
172
- >
173
- > **Known incompatible DSH versions:** None.
164
+ These limitations remain even when every recommended plugin is enabled.
174
165
 
175
- 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.
176
-
177
- > [!CAUTION]
178
- > `pstack_script` runs on the Host's Node and bypasses bash approval and the filesystem sandbox. Treat it as a trusted entry point.
166
+ | Area | Limitation |
167
+ |---|---|
168
+ | Cursor platform services | No Automations, Cursor webhooks, `SendToUser`, cloud agents, or persistent cloud Projects. |
169
+ | Bugbot | Cannot start, configure, or wait for Bugbot. Existing Bugbot comments can still be handled as PR reviews. |
170
+ | PR orchestration | No model-side change-request tool or Agent Teams PR frontier and ledger. `watch-pr` still provides stack verdicts. |
171
+ | Custom Mode | No persistent root `poteto-mode` or Option+Enter toggle. Invoke `/poteto-mode` for each task. |
172
+ | Event-driven loops | No forge event subscription. Local goals, schedules, and watchers are not equivalent. |
173
+ | Media evidence | No built-in video recording or frame-level verification. Use external recording or FFmpeg tools. |
174
+ | Desktop coverage | Computer use is limited to macOS PTC Sessions. Windows support is incomplete. |
175
+ | MCP discovery | No automatic evidence-category discovery. Configure and identify MCP tools explicitly. |
179
176
 
180
- A worktree Session has a different `cwd` from the original Session. The session-search plugin only matches the exact `cwd`, so search for old Sessions from their original directory.
177
+ ## 📦 Compatibility
181
178
 
182
- ## How it works
179
+ Each row lists the latest compatible dsh-pstack release and its included pstack version. Newer DSH boundaries appear first.
183
180
 
184
- 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>.`
181
+ | DSH version | Latest compatible dsh-pstack release | Included pstack version |
182
+ |---|---|---|
183
+ | `0.2.2-alpha.3` and later | Next release from this source tree | `0.15.36` |
184
+ | `0.2.2-alpha.2` and earlier | `v0.2.1` | `0.15.36` |
185
185
 
186
- 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/`.
186
+ When a DSH breaking change creates a new compatibility boundary, add a row.
187
187
 
188
- ## Credits
188
+ ## 💛 Credits
189
189
 
190
- - [pstack](https://github.com/cursor/plugins/tree/main/pstack) was designed and open-sourced by Lauren Tan and the Cursor team. `poteto-mode`, the 23 playbooks, and the 24 principles all come from upstream.
191
- - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) is provided by the DeepSeek team. DSH's plugin, bundle, agent preset, subagent, and tool host interfaces let this port land as native tools.
190
+ - [pstack](https://github.com/cursor/plugins/tree/main/pstack) was designed and open-sourced by Lauren Tan and the Cursor team. `poteto-mode`, the 23 playbooks, and the 24 principles come from upstream.
191
+ - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) is provided by the DeepSeek team. Its plugin, bundle, agent preset, subagent, and tool interfaces support this port.
192
192
  - [mattpocock/skills](https://github.com/mattpocock/skills) provides the vendored `writing-for-agents` and `retro` skills.
193
193
 
194
- This project is a community port, not an official Cursor or DeepSeek release. Upstream pstack and DSH are both MIT licensed.
194
+ This project is a community port, not an official Cursor or DeepSeek release.
195
195
 
196
- ## License
196
+ ## 📄 License
197
197
 
198
- [MIT](./LICENSE) License © [leiwang](https://github.com/l246804)
198
+ Original dsh-pstack code and documentation use the [MIT license](./LICENSE) © [leiwang](https://github.com/l246804). Bundled upstream projects and vendored skills retain their licenses and notices.