Preface

DeepSeek Harness (DSH) already possesses execution primitives like model routing, sub-agents, tool permissions, approvals, session logs, and background jobs. However, in practical development, teams still need to re-describe how to decompose tasks, execute in parallel, verify results, and summarize them in every conversation turn—making strategies hard to reuse. Interruptions usually mean starting from scratch, and parallel results are scattered throughout the dialog.

omdsh-dev/dsh_workflow (package name @dsh-external/workflow) addresses this very gap: building on top of DSH’s native workflow tool, it adds process product capabilities such as naming, discovery, generation, reuse, pause/resume, rerun/continue, persistent evidence, cost tracking, and governance. It does not replace DSH’s existing one-time parallel scheduling but instead encapsulates multi-agent orchestration into auditable, shareable, and evolvable engineering assets.

What Is This

@dsh-external/workflow is an official bundle-form, zero-core-patch DSH plugin maintained by omdsh-dev, categorized under “Workflows” in the SkillHub community directory. The plugin fully references KodaX’s workflow design capabilities and implements independent implementations tailored to DSH’s Cordis, ctx.subagents, Session, background jobs, approvals, commands, and tool mechanisms.

The license is MIT. The README indicates compatibility with DSH 0.0.1-rc.2, the current plugin version is 0.1.2, and the test suite has 179 passing tests.

Core Features

Execution Model

Below is an introduction to the plugin’s execution capabilities compared to KodaX workflow.

  • Versioned dsh.workflow v1 capsule, including manifest, source, intent, inputs, requires, and provenance.
  • Unified async function run(wf, args) entry point, providing a complete WorkflowApi: phase, spawnAgent, runAgent, wait, snapshot/output, send/stop, parallel, pipeline, synthesize, single-level nested workflow, artifact, log, and budget.
  • Six standard patterns: classify-and-act, fan-out-and-synthesize, adversarial-verification, generate-and-filter, tournament, and loop-until-done.
  • Two built-in workflows: parallel-investigation (parameterizable by rubric/agent/concurrency) and scoped-review (including packet/schema/read-contract/dual primary/per-finding verifier/audit artifact).

Discovery and Reuse

The workflow search order is deterministic:

  1. Plugin built-in workflows and patterns (cannot be shadowed by disk files);
  2. Project directory .dsh/workflows;
  3. Personal directory $DSH_HOME/workflows.

Project directory entries override personal entries; within the same directory, .workflow.json takes precedence over .ts/.mjs/.js.

Lifecycle and Persistence

Each run has states running → paused/completed/failed/denied/stopped and a stable ID, written by default to the project directory:

.dsh/workflow-runs/<run-id>/
├── run.json                    # State, result summary, cost
├── events.jsonl                # Append-only event graph
├── workflow.workflow.json      # Immutable execution snapshot
├── results/                    # Deterministic effect cache
└── artifacts/                  # Workflow named evidence

Supports rerun by run ID (using immutable capsule snapshot), rerun by saved name (using the currently saved version), and resume-run (hitting cache for the same call sequence and task input, with other tasks continuing execution).

Security and Governance

  • Generative scripts run in a QuickJS WebAssembly isolated heap and can only initiate effects through a frozen WorkflowApi. Static policies reject non-deterministic APIs such as import/require, process, file, shell, network, etc.
  • Manifest + preflight + runtime hard limits manage provider/model/concurrency/budget.
  • approvalMode supports three levels: never | generated-and-local | always.

Installation and Activation

Requires Node.js >=22.19 and a DSH snapshot consistent with the plugin’s compatibility.json.

First install the plugin, then verify the profile composition tree:

# Build artifacts are committed; git source installation does not require compilation on the user side
dsh plugin --profile web add "github:dsh-external/dsh_workflow#main"

# Verify that the bundle has entered the profile composition tree
dsh --profile web --dump-config

The expected configuration should include:

- id: dsh-external-workflow
  name: '@dsh-external/workflow'

Take effect after restarting the corresponding DSH profile. Before installation, it is recommended to read the GitHub repository source code and MIT license to confirm whether running with current DSH process privileges meets the team’s security requirements.

Typical Usage

After restarting the profile, slash commands can be used directly in the session:

/workflow list
/workflow parallel-investigation {"question":"Why does this test fail intermittently?"}
/workflow create Design a parallel security review workflow for this repository
/workflow review --risk high --requirement "Must not break public APIs" --test-evidence "pnpm test passes" --wait
/workflow runs

Workflow launch returns immediately by default with { runId, status, jobId? } and does not occupy the current turn. To wait synchronously for a terminal state, pass --wait for named workflows, rerun, or review.

Models can also invoke three tools:

  • workflow_list: Discover built-in, pattern, project, and personal workflows.
  • run_workflow: Run named workflows, author from natural language scout-then-author, or execute limited inline workflows.
  • workflow_manage: View, pause, resume, stop, rerun, continue-run, save, rename, revise, delete, and prune.

Common management commands:

/workflow help
/workflow show [--full] [runId]
/workflow pause|resume|stop [runId]
/workflow rerun|resume-run <runId|savedName> [JSON args] [--wait]
/workflow save <runId> <name> [project|personal]
/workflow prune [--dry-run] [--keep N] [--older-than 7d|24h]

Common configuration snippets are as follows; see the repository docs/CONFIGURATION.md for complete fields:

- id: dsh-external-workflow
  name: '@dsh-external/workflow'
  config:
    approvalMode: generated-and-local
    maxAgents: 64
    maxConcurrency: 8
    maxRetainedRuns: 500

Applicable Scenarios and Notes

Who Is It For

  • Individual developers or teams that need to solidify multi-agent parallel investigations, code reviews, task decomposition, and other processes into reusable assets.
  • Teams already using sub-agents and background jobs on DSH, seeking to complement naming, persistence, continuation, and cost tracking.
  • Integrators needing to align with KodaX workflow behavior and independently implement equivalent capabilities within the DSH ecosystem.

Usage Notes

  • The plugin runs with the current DSH process privileges; trusted-local workflows have Node host privileges. Do not mark untrusted third-party source code as trusted-local.
  • It does not replace DSH’s native foreground workflow tool—the native tool is suitable for “running several jobs in parallel this time,” while this plugin handles higher-level process product capabilities.
  • create and free-text /workflow <natural language request> are handled by the current Agent turn for authoring and do not accept --wait.
  • DSH’s general subagent seam does not directly support existing-agent targets, per-agent effort, or worktrees; corresponding requests require deploying a registered adapter, and unregistered ones will fail explicitly.

Conclusion

Through the steps above, omdsh-dev/dsh_workflow connects DSH’s existing Harness capabilities into a complete closed loop: upgrading from one-time multi-agent scheduling to a Workflow layer that is generatable, saveable, governable, observable, and resumable.