Skip to content
dsh.fish
Bundle

dsh-design-playbook

Thin DSH bundle that bridges design-playbook's preview + evidence MCP servers into a DeepSeek Harness profile. Depends on the design-playbook package for the server implementations.

Source
Bandersnatch0x
License
MIT
Updated
Updated 6 days ago

Readme

# dsh-design-playbook

Thin DSH (DeepSeek Harness) bundle that bridges **design-playbook**'s `preview` and `evidence` MCP servers into a DSH profile.

## What this is

A separate, thin npm package (`dsh-design-playbook`) that declares a DSH bundle patch. When installed into a profile via `dsh plugin add`, it appends two `@deepseek-ai/dsh-mcp-client` rows to the profile's patch layers, each launching one of design-playbook's Python stdio MCP servers:

- `mcp__design-playbook-preview__preview_prototype`
- `mcp__design-playbook-evidence__execute_capture_plan`

The skills provider (P1) lives in the main [`design-playbook`](../design-playbook) package and is unaffected.

## How resolution works

The Cordis `!!js` evaluation scope provides no global `require`, but:

- DSH runs on Node ≥ 22.19, where `process.getBuiltinModule('node:module')` is available.
- The DSH Loader exposes the profile directory as `baseUrl`.

So each MCP row resolves the server path via:

```js
process.getBuiltinModule('node:module')
  .createRequire(baseUrl)
  .resolve('design-playbook/mcp/preview/server.py')
```

`baseUrl` points at the profile root; `createRequire(baseUrl)` resolves from the profile's `node_modules`, where `design-playbook` is installed as a dependency of this bundle. No hardcoded paths, no cwd dependence, no profile-name dependence.

## Install

```sh
dsh plugin --profile <name> add dsh-design-playbook
```

This installs both `dsh-design-playbook` and its dependency `design-playbook` into the profile. Reconcile activates the bundle layer automatically.

## Release identity

Stable releases form one fixed group with `design-playbook`. A single repository tag, `vX.Y.Z`, triggers both package publishers from the same commit. The package versions must be identical and this bundle must depend on exactly `design-playbook@^X.Y.Z`; repository validation fails rather than editing either manifest when those values drift.

The bundle publisher waits for `design-playbook@X.Y.Z` before publishing. The shared GitHub Release is created by the main release workflow only after both npm artifacts and both provenance attestations have been verified. `dsh-v0.14.0` remains the historical bootstrap tag; new stable releases do not create `dsh-v*` tags.

## Verify

```sh
dsh --profile <name> --dump-config   # see the two mcp rows
```

Both MCP tools should appear in the tool catalog:

```
mcp__design-playbook-preview__preview_prototype
mcp__design-playbook-evidence__execute_capture_plan
```

## Layout

```
packages/dsh-design-playbook/
├── package.json          # npm name: dsh-design-playbook; depends on design-playbook
├── cordis.patch.yml      # two dsh-mcp-client stdio rows
└── README.md             # this file
```

## Related

- [design-playbook](../design-playbook) — main package (skills + MCP server implementations)
- [Issue #19](https://github.com/Bandersnatch0x/design-playbook/issues/19) — P2 MCP bridge ticket

Install

dsh plugin --profile web add dsh-design-playbook@0.20.2

Profile: web

Source