description: "Knowledge-work role skills for DeepSeek Harness: 225 skills across 22 switchable role plugins, ported from anthropics/knowledge-work-plugins."
dsh-knowledge-work
English | 中文
A DeepSeek Harness plugin that adds 225 knowledge-work skills across 22 independently switchable role rows — sales, small business, finance, legal, data, engineering, design, marketing, operations, product, customer support, HR, bio-research, productivity, PDF reading, enterprise search, plugin authoring, plus Apollo, brand-voice, Common Room, Slack, and Zoom.
The skills come from Anthropic's open-source anthropics/knowledge-work-plugins (Apache-2.0); see ATTRIBUTION.md for what was ported and how.
Requirements
- DeepSeek Harness
>= 0.2.1-rc.2 < 0.3.0(declared asengines.dsh). - A preset that exposes skill discovery and loading (the default presets do).
Install
Plugins page (Desktop / Web)
Open Plugins, choose to install a package from GitHub, and enter:
github:AlbertZJ/dsh-knowledge-work
The bundle is enabled right after installation. Its details page lists the 22 role rows, each with its own switch.
CLI
dsh plugin --profile web add github:AlbertZJ/dsh-knowledge-work
dsh --profile web --dump-config # the layer appears as "# == dsh-knowledge-work"
No install-time build permission is needed: lib/ is committed to this repository
and the package declares no prepare script, so pnpm has nothing to allowlist.
Pin a commit for reproducible installs:
dsh plugin --profile web add github:AlbertZJ/dsh-knowledge-work#<commit-sha>
From npm (after publishing)
dsh plugin --profile web add dsh-knowledge-work
From a local checkout (development)
dsh plugin --profile dev add /absolute/path/to/dsh-knowledge-work
Use the skills
Enable the Knowledge-work skills bundle in Plugins, then turn roles on or off in the bundle's details page. Each role is a separate plugin row: switching one off unloads its provider and removes its skills from the catalog without touching the other rows. The switches persist in the profile patch layer.
A skill whose folder name appears in more than one role gets a <role>-<skill>
prefix so names stay stable when neighbouring rows are switched off — for
example sales-account-research and sales-call-prep (the same skill names also
exist in Common Room).
Skills are loaded on demand by the model through the skill tool; their bodies are not part of every request until selected.
Roles
| Row | Skills | Source |
|---|---|---|
| Bio research | 6 | first-party |
| Plugin management | 2 | first-party |
| Customer support | 5 | first-party |
| Data | 10 | first-party |
| Design | 7 | first-party |
| Engineering | 10 | first-party |
| Enterprise search | 5 | first-party |
| Finance | 8 | first-party |
| Human resources | 9 | first-party |
| Legal | 9 | first-party |
| Marketing | 8 | first-party |
| Operations | 9 | first-party |
| PDF viewer | 1 | first-party |
| Product management | 8 | first-party |
| Productivity | 4 | first-party |
| Sales | 36 | first-party |
| Small business | 44 | first-party |
| Apollo | 3 | partner-built |
| Brand voice | 3 | partner-built |
| Common Room | 6 | partner-built |
| Slack | 2 | partner-built |
| Zoom | 30 | partner-built |
| Total | 225 | 252 SKILL.md files incl. nested sub-documents |
Partner-built rows need their vendor's connector (Apollo, Common Room, Slack, Zoom). Without it the skill still loads and explains the workflow, but it cannot read or write partner data. Brand-voice works from uploaded material.
How it works
dsh-knowledge-work/
├── cordis.patch.yml # bundle layer: one group row + 22 role rows
├── lib/ # built entries (index.js + one <role>.js per role)
├── assets/<role>/<skill>/SKILL.md
├── locale/ # bundle title/description + per-row en/zh titles
└── src/ # TypeScript sources the entries are built from
cordis.patch.yml inserts each role as its own Loader row named
dsh-knowledge-work/<role>. Each entry registers a skill provider with the
skills service and discovers <role>/<skill>/SKILL.md under assets/ at
runtime. The package exports map serves the role subpaths and their locale
files, which is how the Plugins page reads row titles without running the code.
Not ported: upstream .mcp.json connectors, slash commands, sub-agents, and
plugin settings. See ATTRIBUTION.md.
Development
pnpm install
pnpm run build # tsc -> lib/types, tsdown -> lib/*.js, then remove lib/types
pnpm run verify # counts, locale pairing, patch rows, and exports
lib/ is committed: git installs fetch sources and do not build them, so rebuild
and commit lib/ together with any src/ change.
License
Plugin code is MIT (LICENSE). The skill assets under assets/ keep
their upstream licenses: Apache-2.0 for first-party skills
(kwp-LICENSE.txt) and the partner license for partner-built
skills. See ATTRIBUTION.md. The package's SPDX license
expression is (MIT AND Apache-2.0).
No comments yet. Be the first to write one.