dsh-openspec
No description
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 25, 2026
- Updated
- Aug 25, 2026
Introduction
@dragon-talon/dsh-openspec
English | 中文
OpenSpec workflow skills and
/opsx-*command aliases for DeepSeek Harness (DSH).
A Cordis plugin for DeepSeek Harness that registers the 12 canonical OpenSpec workflow skills under their kebab-case names — so /openspec-new-change works natively through DSH's user-invocation injection and the skill tool — plus the Claude-style /opsx-<id> command aliases as user-only skills that resolve to the canonical body.
- 12 canonical
openspec-*skills (model- and user-invocable) - 12
/opsx-<id>command aliases (user-only, content-identical to their canonical skill) - No runtime state: skills are registered through DSH's skill registry, which owns uniqueness and lifecycle
OpenSpec version
This package pins the OpenSpec workflow skills to OpenSpec 1.10.0 (@fission-ai/openspec, source: Fission-AI/OpenSpec).
The skill bodies are generated by scripts/sync-openspec-skills.mjs from the OpenSpec repository's skills/*/SKILL.md files. See Syncing skills.
Skills
| Canonical skill | /opsx-* alias | Description |
|---|---|---|
openspec-explore | /opsx-explore | Enter explore mode — a thinking partner for exploring ideas, investigating problems, and clarifying requirements. |
openspec-new-change | /opsx-new | Start a new OpenSpec change using the experimental artifact workflow. |
openspec-continue-change | /opsx-continue | Continue working on an OpenSpec change by creating the next artifact. |
openspec-apply-change | /opsx-apply | Implement tasks from an OpenSpec change. |
openspec-update-change | /opsx-update | Revise an OpenSpec change's existing planning artifacts and keep them coherent. |
openspec-ff-change | /opsx-ff | Fast-forward through OpenSpec artifact creation. |
openspec-propose | /opsx-propose | Propose a new change with all artifacts generated in one step. |
openspec-sync-specs | /opsx-sync | Sync delta specs from a change to main specs. |
openspec-archive-change | /opsx-archive | Archive a completed change. |
openspec-bulk-archive-change | /opsx-bulk-archive | Archive multiple completed changes at once. |
openspec-verify-change | /opsx-verify | Verify implementation matches change artifacts. |
openspec-onboard | /opsx-onboard | Guided onboarding for OpenSpec. |
Installation
The package targets DeepSeek Harness, which supplies its peer dependencies (@deepseek-ai/cordis, @deepseek-ai/dsh-invariants, @deepseek-ai/dsh-skill).
Install the plugin into a DSH profile from this repository:
dsh plugin --profile <name> add github:dragonTalon/dsh-openspec
Or add it to a plain Node project:
npm install github:dragonTalon/dsh-openspec
dsh plugin addforwards topnpm add, so any pnpm install spec works —github:owner/repo,git+https://…, a tarball, or a local path.Git installs build on install via the package's
preparescript.pnpmblocks a git dependency's build script by default — if it refuses to run the build, add the package toallowBuildsin the profile'spnpm-workspace.yamland re-run:allowBuilds: - "@dragon-talon/dsh-openspec"
Usage
Once registered, both forms are available in DSH:
- Canonical:
/openspec-new-change,/openspec-apply-change, … - Aliases:
/opsx-new,/opsx-apply, … (resolve to the same body)
Configuration
import * as dshOpenspec from '@dragon-talon/dsh-openspec'
ctx.plugin(dshOpenspec, { aliases: false }) // disable the /opsx-* aliases
| Option | Type | Default | Description |
|---|---|---|---|
aliases | boolean | true | Register the /opsx-* command aliases as user-only skills (modelInvocable: false). When false, only the 12 canonical openspec-* names are registered. |
Development
npm install
npm run build # tsc + tsdown → lib/
npm test # vitest
Syncing skills
src/skills.ts is auto-generated from a local OpenSpec checkout. Regenerate it when the upstream skills change:
npm run sync:skills # regenerate src/skills.ts
npm run sync:skills:check # CI check: exit non-zero when stale
The script reads skills/*/SKILL.md from an OpenSpec checkout — ~/Documents/github/OpenSpec by default, overridable via --openspec <path> or the OPENSPEC_REPO environment variable.
License
MIT © 2026 dragonTalon
OpenSpec skill content is © OpenSpec Contributors, MIT.