liangz2210-lgtm/dsh-openclaude-ecosystem--packages-dsh-openclaude ↗★ 0
dsh-openclaude
One DSH plugin: task graph -> OpenClaude CLI executor -> automated acceptance + LLM supervision 适合需要通过OpenClaude CLI执行自动化验收与LLM监督任务的用户。
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:liangz2210-lgtm/dsh-openclaude-ecosystem#2ccd24f90465f003b38f23c0d14a0dca73b01560&path:packages/dsh-openclaudeConfiguration
Every key is validated before apply runs, so a typo is a load error rather
than a surprise mid-run.
Executor
| key | default | meaning |
|---|---|---|
executable | openclaude | A name resolved on PATH, or an absolute path. ~/.homebrew/bin and the npm-global layout under a Homebrew node are also probed. |
workdir | . | The project tasks operate on. |
provider / model | '' | Passed as --provider / --model. |
maxTurns | 50 | --max-turns. Not --max-steps; see below. |
idleTimeoutMs | 240000 | Kill the child when it makes no progress for this long. A --heartbeat line is liveness, not progress, so it does not reset this clock — see The watchdog measures progress. |
maxRuntimeMs | 3600000 | Hard per-attempt wall clock, independent of output. 0 disables it. Bounds the one failure the progress clock cannot see: a livelock that keeps reporting activity. |
killGraceMs | 5000 | SIGTERM → SIGKILL grace period. |
heartbeat | 30s | --heartbeat value; tells the watchdog the child is alive, which is what makes a stall visible as a stall instead of a timeout. |
permissionMode | '' | Empty keeps --yolo, required for unattended runs. |
extraArgs | [] | Appended verbatim. |
env | {} | Extra environment for the child, e.g. provider API keys. |
noSessionPersistence | true | One session file per task is not wanted. |
addDirs | [] | --add-dir values. |
Engine
| key | default | meaning |
|---|---|---|
maxConcurrency | 2 | Tasks allowed to run at once. |
maxRetriesPerTask | 3 | Total attempts per task, including the first. |
maxSupervisionRounds | 5 | Review cycles before a decision is forced to escalate. |
storePath | .dsh/openclaude/tasks.jsonl | Journal, relative to workdir. |
persistence | true | Write the journal. |
contextStrategy | full | minimal | full | repo-map. |
contextMaxTokens | 20000 | Soft cap on collected context. |
patchMode | suggest | auto applies supervisor patches, suggest only records them. |
acceptUnverified | true | Accept a successful attempt when no acceptance command is configured. |
Acceptance
| key | default |
|---|---|
test / lint / typecheck / build | the package.json script name to run for each role |
acceptanceTimeoutMs | 600000 per command |
packageManager | '' → detected from the lockfile |
additionalCommands | [] extra command lines run as-is |
Supervisor
| key | default |
|---|---|
supervisorEnabled | true (skipped entirely when no llm service is loaded) |
supervisorProvider / supervisorModel | '' → falls back to provider / model |
supervisorMaxTokens | 4096 |
supervisorTemperature | 0.2 |