dsh-pstack 0.2.0-beta.1 → 0.2.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -3
- package/README.md +135 -84
- package/README.zh.md +185 -0
- package/cordis.patch.yml +97 -27
- package/dist/host-contract-CUPSpeNk.d.mts +22 -0
- package/dist/index.d.mts +49 -238
- package/dist/index.mjs +250 -123
- package/dist/models.d.mts +44 -0
- package/dist/models.mjs +201 -0
- package/dist/paths-BT77khwm.mjs +48 -0
- package/dist/pstack/LICENSE +21 -0
- package/dist/pstack/README.md +291 -0
- package/dist/pstack/agents/poteto-agent.md +9 -0
- package/{assets → dist/pstack}/docs/guide/01-setup.md +13 -11
- package/{assets → dist/pstack}/docs/guide/02-poteto-mode.md +4 -4
- package/{assets → dist/pstack}/docs/guide/04-design.md +4 -4
- package/{assets → dist/pstack}/docs/guide/05-build-and-clean.md +2 -2
- package/{assets → dist/pstack}/docs/guide/06-verify-and-ship.md +13 -3
- package/{assets → dist/pstack}/docs/guide/07-overnight.md +15 -13
- package/{assets → dist/pstack}/docs/guide/09-make-it-yours.md +6 -2
- package/{assets → dist/pstack}/docs/guide/10-recipes-and-pitfalls.md +7 -5
- package/{assets → dist/pstack}/docs/guide/README.md +1 -1
- package/dist/pstack/docs/harness/dsh.md +98 -0
- package/{assets → dist/pstack}/skills/architect/SKILL.md +12 -12
- package/dist/pstack/skills/arena/SKILL.md +50 -0
- package/{assets → dist/pstack}/skills/automate-me/SKILL.md +14 -14
- package/{assets → dist/pstack}/skills/benchmark-checklist/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/blast-radius/SKILL.md +4 -6
- package/{assets → dist/pstack}/skills/correct/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/create-formal-verification-skill/SKILL.md +4 -2
- package/{assets → dist/pstack}/skills/create-verification-skill/SKILL.md +5 -5
- package/dist/pstack/skills/figure-it-out/SKILL.md +54 -0
- package/dist/pstack/skills/how/SKILL.md +38 -0
- package/{assets → dist/pstack}/skills/in-your-own-words/SKILL.md +1 -1
- package/dist/pstack/skills/interrogate/SKILL.md +33 -0
- package/{assets → dist/pstack}/skills/ketchup/SKILL.md +3 -5
- package/dist/pstack/skills/ketchup-video/SKILL.md +29 -0
- package/{assets → dist/pstack}/skills/maintain-formal-verification-skill/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/maintain-verification-skill/SKILL.md +3 -3
- package/dist/pstack/skills/make-bot-ui/SKILL.md +117 -0
- package/dist/pstack/skills/no-comments/SKILL.md +26 -0
- package/{assets → dist/pstack}/skills/poteto-help/SKILL.md +34 -31
- package/{assets → dist/pstack}/skills/poteto-help/references/prompting.md +1 -1
- package/{assets → dist/pstack}/skills/poteto-help/references/recipes.md +3 -3
- package/{assets → dist/pstack}/skills/poteto-mode/SKILL.md +20 -19
- package/dist/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +12 -0
- package/dist/pstack/skills/poteto-mode/playbooks/autonomous-run.md +13 -0
- package/dist/pstack/skills/poteto-mode/playbooks/autopilot-full.md +25 -0
- package/dist/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +8 -0
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/babysit.md +4 -4
- package/dist/pstack/skills/poteto-mode/playbooks/bug-fix.md +15 -0
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/eval.md +3 -3
- package/dist/pstack/skills/poteto-mode/playbooks/feature.md +21 -0
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/hillclimb.md +3 -3
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/investigation.md +2 -2
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/multi-phase-plan.md +23 -23
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/opening-a-pr.md +6 -6
- package/dist/pstack/skills/poteto-mode/playbooks/orchestrate.md +25 -0
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/pause-safely.md +2 -2
- package/dist/pstack/skills/poteto-mode/playbooks/perf-issue.md +25 -0
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/prototype.md +4 -4
- package/dist/pstack/skills/poteto-mode/playbooks/refactoring.md +16 -0
- package/dist/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +11 -0
- package/dist/pstack/skills/poteto-mode/playbooks/session-pickup.md +11 -0
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/shipping.md +2 -2
- package/{assets → dist/pstack}/skills/poteto-mode/playbooks/trace-forensics.md +2 -2
- package/dist/pstack/skills/poteto-mode/playbooks/visual-parity.md +11 -0
- package/dist/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +12 -0
- package/{assets → dist/pstack}/skills/poteto-mode/scripts/check-plan.mjs +6 -8
- package/dist/pstack/skills/poteto-mode/scripts/check-plan.test.mjs +128 -0
- package/{assets/skills/poteto-mode/scripts/check-plan.test.mjs → dist/pstack/skills/poteto-mode/scripts/expect.mjs} +12 -101
- package/dist/pstack/skills/poteto-mode/scripts/support.mjs +93 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/cli.mjs +123 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.mjs +217 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.mjs +119 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/github.mjs +626 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/github.test.mjs +521 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/policy.mjs +657 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.mjs +523 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/render.mjs +106 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/types.mjs +9 -0
- package/dist/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr.mjs +5 -0
- package/{assets → dist/pstack}/skills/poteto-mode/scripts/worktree-audit.mjs +15 -22
- package/dist/pstack/skills/poteto-mode/scripts/worktree-audit.test.mjs +134 -0
- package/{assets → dist/pstack}/skills/principle-attack-the-premise/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-boundary-discipline/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-encode-lessons-in-structure/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-exhaust-the-design-space/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-experience-first/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-explain-the-number/SKILL.md +3 -2
- package/{assets → dist/pstack}/skills/principle-fix-root-causes/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-laziness-protocol/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-make-operations-idempotent/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-minimize-reader-load/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-model-the-domain/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-never-block-on-the-human/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-outcome-oriented-execution/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-prove-it-works/SKILL.md +2 -2
- package/{assets → dist/pstack}/skills/principle-redesign-from-first-principles/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-separate-before-serializing-shared-state/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-sequence-verifiable-units/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-subtract-before-you-add/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-test-behavior-not-implementation/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/principle-type-system-discipline/SKILL.md +1 -1
- package/dist/pstack/skills/recall/SKILL.md +37 -0
- package/dist/pstack/skills/reflect/SKILL.md +71 -0
- package/{assets → dist/pstack}/skills/reflect/references/divergent-reviewer.md +4 -4
- package/{assets → dist/pstack}/skills/reflect/references/judgment-reviewer.md +2 -2
- package/{assets → dist/pstack}/skills/reflect/references/synthesizer.md +5 -5
- package/{assets → dist/pstack}/skills/reflect/references/tooling-reviewer.md +2 -2
- package/dist/pstack/skills/setup-pstack/SKILL.md +80 -0
- package/{assets → dist/pstack}/skills/sharpen/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/show-me-your-work/SKILL.md +8 -8
- package/{assets → dist/pstack}/skills/show-me-your-work/scripts/log.mjs +1 -3
- package/dist/pstack/skills/show-me-your-work/scripts/log.test.mjs +56 -0
- package/dist/pstack/skills/statechart/SKILL.md +82 -0
- package/dist/pstack/skills/statechart/references/render.md +93 -0
- package/dist/pstack/skills/statechart/scripts/backends/cfg.mjs +31 -0
- package/dist/pstack/skills/statechart/scripts/backends/mermaid.mjs +186 -0
- package/dist/pstack/skills/statechart/scripts/backends/plain-text.mjs +62 -0
- package/dist/pstack/skills/statechart/scripts/backends/report.mjs +84 -0
- package/dist/pstack/skills/statechart/scripts/frontends/config.mjs +268 -0
- package/dist/pstack/skills/statechart/scripts/frontends/dot.mjs +67 -0
- package/dist/pstack/skills/statechart/scripts/frontends/marks.mjs +94 -0
- package/dist/pstack/skills/statechart/scripts/frontends/messages.mjs +48 -0
- package/dist/pstack/skills/statechart/scripts/frontends/spec.mjs +101 -0
- package/dist/pstack/skills/statechart/scripts/frontends/trace.mjs +39 -0
- package/dist/pstack/skills/statechart/scripts/frontends/value.mjs +180 -0
- package/dist/pstack/skills/statechart/scripts/frontends/verdict.mjs +40 -0
- package/dist/pstack/skills/statechart/scripts/frontends/view.mjs +99 -0
- package/dist/pstack/skills/statechart/scripts/ir.mjs +277 -0
- package/dist/pstack/skills/statechart/scripts/passes/annotate.mjs +92 -0
- package/dist/pstack/skills/statechart/scripts/passes/label.mjs +210 -0
- package/dist/pstack/skills/statechart/scripts/passes/lift.mjs +84 -0
- package/dist/pstack/skills/statechart/scripts/passes/loop-check.mjs +47 -0
- package/dist/pstack/skills/statechart/scripts/passes/paths.mjs +72 -0
- package/dist/pstack/skills/statechart/scripts/passes/reach.mjs +135 -0
- package/dist/pstack/skills/statechart/scripts/passes/region-check.mjs +82 -0
- package/dist/pstack/skills/statechart/scripts/passes/regions.mjs +268 -0
- package/dist/pstack/skills/statechart/scripts/pipeline.mjs +72 -0
- package/dist/pstack/skills/statechart/scripts/run.mjs +440 -0
- package/dist/pstack/skills/statechart/scripts/statechart.mjs +155 -0
- package/dist/pstack/skills/statechart/scripts/statechart.test.mjs +198 -0
- package/dist/pstack/skills/statechart/scripts/worker.mjs +31 -0
- package/dist/pstack/skills/swarm/SKILL.md +43 -0
- package/{assets → dist/pstack}/skills/tdd/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/teach/SKILL.md +2 -2
- package/{assets → dist/pstack}/skills/technical-writing/SKILL.md +1 -1
- package/{assets → dist/pstack}/skills/typescript-best-practices/SKILL.md +3 -6
- package/{assets → dist/pstack}/skills/why/SKILL.md +8 -8
- package/dist/script.d.mts +9 -111
- package/dist/script.mjs +32 -329
- package/dist/skill.d.mts +38 -0
- package/dist/skill.mjs +183 -0
- package/dist/skills/authored/decision-audit/SKILL.md +99 -0
- package/dist/skills/authored/decision-audit/SKILL.zh.md +99 -0
- package/dist/skills/authored/decision-audit/references/recover-commit.md +17 -0
- package/dist/skills/authored/decision-audit/references/recover-commit.zh.md +17 -0
- package/dist/skills/authored/decision-write/SKILL.md +131 -0
- package/dist/skills/authored/decision-write/SKILL.zh.md +131 -0
- package/dist/skills/authored/decision-write/references/land.md +48 -0
- package/dist/skills/authored/decision-write/references/land.zh.md +48 -0
- package/dist/skills/authored/setup-project-docs/SKILL.md +58 -0
- package/dist/skills/authored/setup-project-docs/SKILL.zh.md +58 -0
- package/dist/skills/authored/setup-project-docs/references/decision-conventions.md +11 -0
- package/dist/skills/authored/setup-project-docs/references/decision-conventions.zh.md +11 -0
- package/dist/skills/vendored/retro/SKILL.md +44 -0
- package/dist/skills/vendored/retro/agents/openai.yaml +5 -0
- package/dist/skills/vendored/writing-for-agents/SKILL-MECHANICS.md +22 -0
- package/dist/skills/vendored/writing-for-agents/SKILL.md +81 -0
- package/dist/skills/vendored/writing-for-agents/agents/openai.yaml +3 -0
- package/dist/subagent.d.mts +56 -193
- package/dist/subagent.mjs +443 -741
- package/locale/en.json +3 -2
- package/locale/zh.json +3 -2
- package/package.json +63 -66
- package/assets/agents/poteto-agent.md +0 -8
- package/assets/docs/harness/dsh.md +0 -60
- package/assets/docs/pstack-models.example.md +0 -54
- package/assets/skills/arena/SKILL.md +0 -50
- package/assets/skills/figure-it-out/SKILL.md +0 -54
- package/assets/skills/how/SKILL.md +0 -38
- package/assets/skills/interrogate/SKILL.md +0 -71
- package/assets/skills/interrogate/references/code-quality-review.md +0 -47
- package/assets/skills/interrogate/references/lead-judgment.md +0 -39
- package/assets/skills/interrogate/references/reviewer-prompt.md +0 -62
- package/assets/skills/interrogate/references/rubric.md +0 -77
- package/assets/skills/no-comments/SKILL.md +0 -26
- package/assets/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -12
- package/assets/skills/poteto-mode/playbooks/autonomous-run.md +0 -15
- package/assets/skills/poteto-mode/playbooks/autopilot-full.md +0 -25
- package/assets/skills/poteto-mode/playbooks/autopilot-stack.md +0 -12
- package/assets/skills/poteto-mode/playbooks/bug-fix.md +0 -15
- package/assets/skills/poteto-mode/playbooks/feature.md +0 -21
- package/assets/skills/poteto-mode/playbooks/orchestrate.md +0 -112
- package/assets/skills/poteto-mode/playbooks/perf-issue.md +0 -25
- package/assets/skills/poteto-mode/playbooks/refactoring.md +0 -16
- package/assets/skills/poteto-mode/playbooks/runtime-forensics.md +0 -11
- package/assets/skills/poteto-mode/playbooks/session-pickup.md +0 -11
- package/assets/skills/poteto-mode/playbooks/visual-parity.md +0 -11
- package/assets/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -20
- package/assets/skills/poteto-mode/scripts/orch/orch.mjs +0 -4282
- package/assets/skills/poteto-mode/scripts/orch/orch.test.mjs +0 -2042
- package/assets/skills/poteto-mode/scripts/watch-pr/cli.test.mjs +0 -5101
- package/assets/skills/poteto-mode/scripts/watch-pr/github.test.mjs +0 -1177
- package/assets/skills/poteto-mode/scripts/watch-pr/policy.test.mjs +0 -1441
- package/assets/skills/poteto-mode/scripts/watch-pr/watch-pr.mjs +0 -4601
- package/assets/skills/recall/SKILL.md +0 -37
- package/assets/skills/reflect/SKILL.md +0 -69
- package/assets/skills/setup-pstack/SKILL.md +0 -67
- package/assets/skills/swarm/SKILL.md +0 -43
- package/dist/frontmatter-BQX3ekwP.mjs +0 -229
- package/dist/frontmatter-BQX3ekwP.mjs.map +0 -1
- package/dist/history.d.mts +0 -429
- package/dist/history.mjs +0 -1129
- package/dist/history.mjs.map +0 -1
- package/dist/host-contract-o47JH_r8.d.mts +0 -527
- package/dist/index.mjs.map +0 -1
- package/dist/paths-D_JlVmBk.mjs +0 -42
- package/dist/paths-D_JlVmBk.mjs.map +0 -1
- package/dist/script.mjs.map +0 -1
- package/dist/subagent.mjs.map +0 -1
- /package/{static/icon.png → assets/logo.png} +0 -0
- /package/{assets → dist/pstack}/agents/comment-sicko.md +0 -0
- /package/{assets → dist/pstack}/docs/guide/03-understand.md +0 -0
- /package/{assets → dist/pstack}/docs/guide/08-principles.md +0 -0
- /package/{assets → dist/pstack}/docs/guide/images/design.jpg +0 -0
- /package/{assets → dist/pstack}/docs/guide/images/overnight.jpg +0 -0
- /package/{assets → dist/pstack}/docs/guide/images/recipes.jpg +0 -0
- /package/{assets → dist/pstack}/docs/guide/images/router.jpg +0 -0
- /package/{assets → dist/pstack}/docs/guide/images/understanding.jpg +0 -0
- /package/{assets → dist/pstack}/docs/guide/images/verification.jpg +0 -0
- /package/{assets → dist/pstack}/skills/architect/references/design-red-flags.md +0 -0
- /package/{assets → dist/pstack}/skills/architect/references/rationale-template.md +0 -0
- /package/{assets → dist/pstack}/skills/architect/references/runner-prompt.md +0 -0
- /package/{assets → dist/pstack}/skills/bro/SKILL.md +0 -0
- /package/{assets → dist/pstack}/skills/create-verification-skill/references/feature-map-example/README.md +0 -0
- /package/{assets → dist/pstack}/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -0
- /package/{assets → dist/pstack}/skills/create-verification-skill/references/feature-map-example/search.md +0 -0
- /package/{assets → dist/pstack}/skills/how/references/explainer-prompt.md +0 -0
- /package/{assets → dist/pstack}/skills/how/references/explorer-prompt.md +0 -0
- /package/{assets → dist/pstack}/skills/poteto-mode/references/bugbot-triage.md +0 -0
- /package/{assets → dist/pstack}/skills/principle-build-the-lever/SKILL.md +0 -0
- /package/{assets → dist/pstack}/skills/principle-foundational-thinking/SKILL.md +0 -0
- /package/{assets → dist/pstack}/skills/principle-guard-the-context-window/SKILL.md +0 -0
- /package/{assets → dist/pstack}/skills/show-me-your-work/references/decision-log-template.tsv +0 -0
- /package/{assets → dist/pstack}/skills/typescript-best-practices/references/patterns.md +0 -0
- /package/{assets → dist/pstack}/skills/unslop/SKILL.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/epistemics.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/investigator-prompt.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/source-playbook.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/code-archaeology.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/databricks.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/datadog.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/incident-postmortem.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/linear.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/notion.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/sentry.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/sources/slack.md +0 -0
- /package/{assets → dist/pstack}/skills/why/references/synthesizer-prompt.md +0 -0
package/LICENSE
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026
|
|
4
|
-
Copyright (c) 2026 Lauren Tan (upstream pstack, https://github.com/cursor/plugins)
|
|
3
|
+
Copyright (c) 2026-PRESENT leiwang <leiwang2000@foxmail.com>
|
|
5
4
|
|
|
6
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -19,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
19
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,134 +1,185 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./assets/logo.png" width="144" alt="dsh-pstack logo" />
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
<
|
|
5
|
+
<h1 align="center">dsh-pstack</h1>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Bring pstack's rigorous agent workflows to DeepSeek Harness</strong>
|
|
9
|
+
</p>
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
English · <a href="./README.zh.md">中文</a>
|
|
13
|
+
</p>
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/v/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm version" /></a>
|
|
17
|
+
<a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/dm/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm downloads" /></a>
|
|
18
|
+
<a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-0.2.2--alpha.2-1f6feb?style=flat-square" alt="dsh 0.2.2-alpha.2" /></a>
|
|
19
|
+
<a href="https://github.com/cursor/plugins/tree/main/pstack"><img src="https://img.shields.io/badge/pstack-0.15.36-d97706?style=flat-square" alt="pstack 0.15.36" /></a>
|
|
20
|
+
</p>
|
|
10
21
|
|
|
11
|
-
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://github.com/l246804/dsh-pstack/blob/main/LICENSE"><img src="https://img.shields.io/github/license/l246804/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="license" /></a>
|
|
24
|
+
<a href="https://bundlephobia.com/result?p=dsh-pstack"><img src="https://img.shields.io/bundlephobia/minzip/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669&label=minzip" alt="minzip size" /></a>
|
|
25
|
+
<a href="https://www.jsdocs.io/package/dsh-pstack"><img src="https://img.shields.io/badge/jsdocs-reference-080f12?style=flat-square&colorA=080f12&colorB=1fa669" alt="JSDocs" /></a>
|
|
26
|
+
</p>
|
|
12
27
|
|
|
13
|
-
|
|
28
|
+
<div align="center">
|
|
29
|
+
<table>
|
|
30
|
+
<tr>
|
|
31
|
+
<td align="center"><strong>58</strong><br /><sub>pstack skills</sub></td>
|
|
32
|
+
<td align="center"><strong>23</strong><br /><sub>playbooks</sub></td>
|
|
33
|
+
<td align="center"><strong>4</strong><br /><sub>native tools</sub></td>
|
|
34
|
+
<td align="center"><strong>2</strong><br /><sub>agent presets</sub></td>
|
|
35
|
+
<td align="center"><strong>5</strong><br /><sub>bundled scripts</sub></td>
|
|
36
|
+
</tr>
|
|
37
|
+
</table>
|
|
38
|
+
</div>
|
|
14
39
|
|
|
15
|
-
|
|
40
|
+
<p align="center">
|
|
41
|
+
<a href="#quick-start">Quick start</a> ·
|
|
42
|
+
<a href="#capabilities">Capabilities</a> ·
|
|
43
|
+
<a href="#skills-directory">Skills directory</a> ·
|
|
44
|
+
<a href="#optional-dsh-plugins">Optional DSH plugins</a> ·
|
|
45
|
+
<a href="#compatibility">Compatibility</a>
|
|
46
|
+
</p>
|
|
16
47
|
|
|
17
|
-
dsh-pstack
|
|
48
|
+
`dsh-pstack` ports [pstack](https://github.com/cursor/plugins/tree/main/pstack) to [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). It keeps the upstream pstack skills, playbooks, and reference documents. Four native tools replace the interfaces that DSH lacks, while an adaptation layer maps Cursor's tool names, subagent fields, model slugs, and paths to DSH.
|
|
18
49
|
|
|
19
|
-
|
|
50
|
+
Most upstream pstack skills declare `disable-model-invocation: true`. `poteto-mode` routes to those hidden skills by name, but DSH's `skill` tool only exposes the model-visible catalog. DSH also has no equivalents for Cursor's model slugs, `subagent_type`, `readonly`, and Bun scripts. dsh-pstack handles those differences in the plugin layer. You can start with `/poteto-mode` after installation.
|
|
20
51
|
|
|
21
|
-
|
|
22
|
-
- DSH 的 skills 和 subagents 能力,由支持的 DSH 版本提供。
|
|
23
|
-
- Node.js `>=22.19`。仅 npm CLI 部署需要它出现在 `PATH` 上;Desktop(Electron)部署走 Host 自己的运行时。
|
|
24
|
-
- Git。worktree 需要 Git 仓库。
|
|
52
|
+
See [`pstack/README.md`](./pstack/README.md) for the full capability map, gaps, and acceptance status.
|
|
25
53
|
|
|
26
|
-
|
|
54
|
+
> [!IMPORTANT]
|
|
55
|
+
> This release targets DSH `0.2.2-alpha.2` or newer and requires Node.js `>=24.21.1`. `engines.dsh` is the range `>=0.2.2-alpha.2`: newer DSH versions are assumed compatible, and the requirement is only raised after a fix to the port is needed. See [Compatibility](#compatibility) before installing or upgrading.
|
|
27
56
|
|
|
28
|
-
|
|
57
|
+
## Quick start
|
|
29
58
|
|
|
30
|
-
|
|
59
|
+
1. Install the plugin:
|
|
31
60
|
|
|
32
|
-
|
|
61
|
+
```sh
|
|
62
|
+
dsh plugin --profile web add dsh-pstack
|
|
63
|
+
```
|
|
33
64
|
|
|
34
|
-
|
|
65
|
+
You can also install it from the Plugins page in Web or Desktop.
|
|
35
66
|
|
|
36
|
-
|
|
37
|
-
>
|
|
38
|
-
> 当前版本禁止与 Agent Team 同时启用。Agent Team 会用同名工具遮蔽 `send_message`、`interrupt_agent` 和 `list_agents`,pstack 无法再用它们 steer、列出或中断自己的子代理。两者还共享子代理激活容量。`pstack_subagent` 的角色路由和 reasoning effort 计算本身不受影响,但同一 profile 中的 Team 工具会改变可见工具面。
|
|
39
|
-
>
|
|
40
|
-
> 需要同时使用时,请使用两个独立 profile。
|
|
67
|
+
2. Restart the profile or open a new Session.
|
|
41
68
|
|
|
42
|
-
|
|
69
|
+
3. Before first use, run:
|
|
43
70
|
|
|
44
|
-
|
|
71
|
+
```text
|
|
72
|
+
/setup-pstack
|
|
73
|
+
```
|
|
45
74
|
|
|
46
|
-
|
|
75
|
+
This command reads the providers, models, and reasoning efforts available in the current deployment. It writes them to `$DSH_HOME/pstack-models.mdc`. Without this file, every role inherits the parent's routing.
|
|
47
76
|
|
|
48
|
-
|
|
49
|
-
dsh plugin --profile <profile> add dsh-pstack
|
|
50
|
-
```
|
|
77
|
+
### Common entry points
|
|
51
78
|
|
|
52
|
-
|
|
79
|
+
| Command | Purpose |
|
|
80
|
+
|---|---|
|
|
81
|
+
| `/poteto-mode` | Main workflow entry: matches a playbook to the task and maintains todos and evidence. |
|
|
82
|
+
| `/setup-pstack` | Configures role models and initializes the pstack environment. |
|
|
83
|
+
| `/how`, `/why`, `/teach` | Architecture walkthrough, evidence investigation, and progressive explanation. |
|
|
84
|
+
| `/architect`, `/arena`, `/swarm` | Multi-option design, parallel candidates, and slice-parallel implementation. |
|
|
85
|
+
| `/create-verification-skill` | Generates a verification skill for a real project. |
|
|
86
|
+
| `/statechart` | Checks state models with TLA+ and TLC, and outputs a Mermaid state diagram. |
|
|
87
|
+
| `/show-me-your-work` | Maintains a TSV decision log and audits the current work. |
|
|
88
|
+
| `/retro` | Reviews a coding session's environment. |
|
|
53
89
|
|
|
54
|
-
##
|
|
90
|
+
## Capabilities
|
|
55
91
|
|
|
56
|
-
|
|
57
|
-
2. 运行 `/setup-pstack`,选择推理预算和每个角色的模型。
|
|
58
|
-
3. 用 `/poteto-mode` 加任务开始一次严谨工作流。
|
|
59
|
-
4. 不确定用哪个技能时,运行 `/poteto-help`。
|
|
92
|
+
### Native tools
|
|
60
93
|
|
|
61
|
-
|
|
94
|
+
| Tool | Purpose |
|
|
95
|
+
|---|---|
|
|
96
|
+
| `pstack_skill` | Loads a hidden skill registered by this plugin by name, and reads relative resources inside the skill directory. |
|
|
97
|
+
| `pstack_models` | Read-only list of the providers, models, and efforts DSH actually offers, used by `/setup-pstack`. |
|
|
98
|
+
| `pstack_subagent` | Reads `$DSH_HOME/pstack-models.mdc` per role, parses `provider/model [effort]`, selects a preset by `agent`, and can start several subagents at once. |
|
|
99
|
+
| `pstack_script` | Runs bundled Node scripts by fixed id without Bun or shell scripts. |
|
|
62
100
|
|
|
63
|
-
|
|
101
|
+
The `poteto-agent` and `comment-sicko` presets handle implementation delegation and read-only comment review. `pstack_script` can run five bundled scripts: `check-plan`, `watch-pr`, `worktree-audit`, `log`, and `statechart`. The script ids form a closed enum and cannot be used to build arbitrary paths.
|
|
64
102
|
|
|
65
|
-
|
|
103
|
+
## Skills directory
|
|
66
104
|
|
|
67
|
-
|
|
68
|
-
- panel 角色的值是列表,每一项启动一个子代理。
|
|
69
|
-
- 删除某个角色的行,该角色回落到父路由。
|
|
70
|
-
- 重新运行 `/setup-pstack` 会更新配置,不会叠加旧值。
|
|
105
|
+
`skills/` is not an upstream pstack directory. It contains skills that pstack does not provide but real projects need. The source directories are `skills/authored/` and `skills/.agents/skills/`. The build publishes them to `dist/skills/authored/` and `dist/skills/vendored/`. `vendored` preserves open-source upstreams verbatim, while this repository maintains `authored`. References from pstack skills do not change these inclusion criteria.
|
|
71
106
|
|
|
72
|
-
|
|
107
|
+
| Source | Skill | Purpose | Engineering capability added |
|
|
108
|
+
|---|---|---|---|
|
|
109
|
+
| `vendored` | `writing-for-agents` | Writes skills, `AGENTS.md`, `CLAUDE.md`, and documents referenced by pointers, covering context pointers, information hierarchy, and progressive disclosure. | Makes an agent document's trigger words, load order, and context cost predictable, and adds the writing path that Cursor's `create-skill` provides. |
|
|
110
|
+
| `vendored` | `retro` | Reviews a coding session's environment, checking navigation, automation, coding conventions, tool economy, and information access. | Adds the environment check that pstack `/reflect` and `/correct` do not cover; it only reports and does not modify the repository. |
|
|
111
|
+
| `authored` | `decision-write` | Writes, lands, and supersedes decision records in Draft and Land modes, requiring `Status` and `Implemented-by` to appear together. | Adds the decision lifecycle that real projects often lack. |
|
|
112
|
+
| `authored` | `decision-audit` | Read-only audit of decision-record routing, status, scope, anchors, and supersession relationships. | Keeps decision records searchable and reviewable over time. |
|
|
113
|
+
| `authored` | `setup-project-docs` | Sets up architecture, glossary, decisions, and the root `AGENTS.md` pointers, and can be run repeatedly to fill gaps. | Gives a new project a sustainable documentation entry point. |
|
|
73
114
|
|
|
74
|
-
|
|
115
|
+
`vendored` skills come from `mattpocock/skills@59db609eb1e18aaf59b63284d0e52255aff0c63c`. [`skills/skills-lock.json`](./skills/skills-lock.json) records their sources, paths, and hashes. Both skill trees ship with the package, but they do not correspond to upstream pstack versions.
|
|
75
116
|
|
|
76
|
-
|
|
117
|
+
## Optional DSH plugins
|
|
77
118
|
|
|
78
|
-
-
|
|
79
|
-
- 子代理自己可以调 `set_reasoning_effort`,从下一步生效,已在飞行中的请求不受影响。
|
|
119
|
+
DSH ships with the following plugins, which are disabled by default. dsh-pstack does not require them during installation. Some pstack flows need these plugins to run end to end. To enable a plugin, enter its package name in **Add plugin** on the Plugins page. Alternatively, run `dsh plugin --profile <profile> add <package>`, then restart the profile. Except for `@deepseek-ai/dsh-mcp-client`, the bundles and providers here are experimental.
|
|
80
120
|
|
|
81
|
-
|
|
121
|
+
> [!NOTE]
|
|
122
|
+
> Without an optional plugin, the pstack skills still load. Steps that need the plugin print `Skipped in DeepSeek Harness: <step>. <reason>.` and continue. Missing `gh`, Java/TLC, or video tools also cause the corresponding steps to report blocked or degrade to screenshots. dsh-pstack never marks an unrun step as passed.
|
|
82
123
|
|
|
124
|
+
### Sessions and isolation
|
|
83
125
|
|
|
84
|
-
|
|
126
|
+
| Plugin | Capability when enabled | Boundaries and conflicts |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| `@deepseek-ai/dsh-experimental-session-search` | Five read-only tools search and trace historical Sessions for `/recall`, `/reflect`, and `/show-me-your-work`: `session_search`, `session_event_search`, `session_trace`, `session_event_trace`, and `session_event_read`. | Matches only Sessions with the same `cwd`; use `session_event_search` for the current Session; there is no Cursor `.jsonl` transcript path. |
|
|
129
|
+
| `@deepseek-ai/dsh-experimental-worktree`<br />`@deepseek-ai/dsh-experimental-tool-worktree` | `create_worktree` creates a local branch and worktree and switches the current Session directory, isolating parallel candidates for `/arena`, `/swarm`, and `/architect`. | `from` reads only local refs and does not fetch; there is no cloud VM; creating worktrees repeatedly changes `cwd`; it does not automatically give each subagent its own tree. |
|
|
130
|
+
| `@deepseek-ai/dsh-experimental-forge-bundle` | PR panel, checks, review, mark ready, merge, and Session binding, plus starting a Session from the composer with a new worktree, serving `/babysit`, `/shipping`, and `/autopilot-*`. | GitHub only, requires `gh` login; there is no take tool on the model side; there is no stack verdict or `origin` CLI; it can coexist with the worktree bundle. |
|
|
85
131
|
|
|
86
|
-
|
|
132
|
+
### Verification and evidence
|
|
87
133
|
|
|
88
|
-
|
|
89
|
-
- Cursor 专属能力没有等价物,包括 Automations、cloud agents、Custom Modes 和 Bugbot 配置。相关技能会在需要它们的步骤说明不支持,不伪造替代。
|
|
90
|
-
- `/loop` 没有同名命令,也没有事件订阅,属于降级映射。能覆盖的是目标与定时输入:`create_goal` 记录目标和相位,`schedule_create` 只能作定时心跳,它把一条消息投回创建它的会话,不能盯着 PR 或 CI,子代理也无法自己布置。不能覆盖的是事件唤醒和云端存活:goal 不会自己感知外部事件,自动续跑还取决于 profile 是否挂载 goal round driver,未挂载时长时间任务只是同一个会话里被监督的运行。
|
|
91
|
-
- `typescript-best-practices` 的 `paths` 自动触发不支持,需要时显式调用 `/typescript-best-practices`。
|
|
92
|
-
- worktree 只隔离工作目录,不是 VM。schedule 是定时提醒,不是事件订阅。
|
|
93
|
-
- 多模型评审需要配置真实不同的 route。只有同一 route 时,评审会标为同模型复核。
|
|
94
|
-
- 子代理和 panel 会增加 token 消耗,只在需要严谨流程的任务上使用 `/poteto-mode`。
|
|
134
|
+
Choose one of three browser providers: `@deepseek-ai/dsh-experimental-browser-use-stagehand-native`, `@deepseek-ai/dsh-experimental-browser-use-playwright-mcp`, or `@deepseek-ai/dsh-experimental-browser-use-chrome-devtools-mcp`.
|
|
95
135
|
|
|
96
|
-
|
|
136
|
+
| Plugin | Capability when enabled | Boundaries and conflicts |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| `@deepseek-ai/dsh-browser-use` + one provider | Navigation, clicking, typing, screenshots, and ARIA snapshots; Stagehand also provides act, find, and extract, for verification skills and UI reproduction. | The base package does nothing without a provider; one provider per Session; screenshots need an image model; no video; Stagehand needs Chromium and a non-DeepSeek model. |
|
|
139
|
+
| `@deepseek-ai/dsh-cua-bundle` | macOS app clicking, typing, screenshots, and permission pages, for desktop app verification. | macOS PTC only; Windows is incomplete; no video. |
|
|
140
|
+
| `@deepseek-ai/dsh-experimental-terminal-bundle` | Six global terminal tools that keep a shell or REPL alive across calls and support background send, for CLI and TUI verification. | Terminal only; added to every Agent; persistent state must be cleaned up; switching invalidates the KV cache. |
|
|
141
|
+
| `@deepseek-ai/dsh-mcp-client` | Mounts MCP servers; tools appear as `mcp__<server>__<tool>`, and `mcp-resources` lists servers with resources, serving evidence investigation for `/why` and `/teach`. | No default server; configuration is per server; no automatic category discovery. |
|
|
97
142
|
|
|
98
|
-
|
|
143
|
+
### Multi-agent
|
|
99
144
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
145
|
+
| Plugin | Capability when enabled | Boundaries and conflicts |
|
|
146
|
+
|---|---|---|
|
|
147
|
+
| `@deepseek-ai/dsh-experimental-agent-team-profile` | Lead and teammate roles, a shared task board, nine team tools, and a Web roster, serving `/orchestrate` and `/autopilot-*`. | Disables `subagent` and `subagent_fork`. Conflicts with `pstack_subagent`. See the warning below. |
|
|
148
|
+
| `@deepseek-ai/dsh-experimental-ralph-bundle` | Global `ralph`, a foreground loop with a fresh child each round, serving `/autonomous-run`. | Not a persistent loop in the same Session; no event watcher; does not replace goals, heartbeats, or the decision log. |
|
|
103
149
|
|
|
104
|
-
|
|
150
|
+
> [!WARNING]
|
|
151
|
+
> Do not enable `@deepseek-ai/dsh-experimental-agent-team-profile` and `pstack_subagent` in the same profile. The agent team plugin disables `subagent` and `subagent_fork`, and provides a second delegation entry point. Use only one subagent system per profile.
|
|
105
152
|
|
|
106
|
-
|
|
107
|
-
dsh plugin --profile <profile> remove dsh-pstack
|
|
108
|
-
```
|
|
153
|
+
## Compatibility
|
|
109
154
|
|
|
110
|
-
|
|
155
|
+
| Item | Version | Notes |
|
|
156
|
+
|---|---|---|
|
|
157
|
+
| DSH | `>=0.2.2-alpha.2` | Baseline `0.2.2-alpha.2`; newer versions are assumed compatible until the port needs a fix |
|
|
158
|
+
| pstack | `0.15.36` | Upstream baseline commit `4dd1d05` |
|
|
159
|
+
| Node.js | `>=24.21.1` | Runtime requirement |
|
|
160
|
+
| Cordis | `~4.0.6-alpha.1` | Peer dependency |
|
|
111
161
|
|
|
112
|
-
|
|
162
|
+
Before upgrading DSH, verify experimental plugin package names, tool names, and configuration in a test profile. Upgrading upstream pstack requires regenerating the tree and rechecking the adaptation table.
|
|
113
163
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
- 不要把 API key、token 或密码写进角色文件、prompt 或仓库。
|
|
117
|
-
- 会话记录保存在 DSH 的会话存储中,pstack 不另建云端记录。
|
|
118
|
-
- 上游技能可能要求访问网络或代码托管平台。是否允许由 DSH 的审批和沙箱配置决定。
|
|
164
|
+
> [!CAUTION]
|
|
165
|
+
> `pstack_script` runs on the Host's Node and bypasses bash approval and the filesystem sandbox. Treat it as a trusted entry point.
|
|
119
166
|
|
|
120
|
-
|
|
167
|
+
A worktree Session has a different `cwd` from the original Session. The session-search plugin only matches the exact `cwd`, so search for old Sessions from their original directory.
|
|
121
168
|
|
|
122
|
-
|
|
169
|
+
## How it works
|
|
123
170
|
|
|
124
|
-
|
|
125
|
-
2. 确认 worktree 插件可用,必要时先手动启用一次。
|
|
126
|
-
3. 确认当前 profile 没有同时启用 Agent Team。
|
|
127
|
-
4. 运行 `/setup-pstack` 检查角色配置。
|
|
128
|
-
5. 仍有问题时在 [GitHub Issues](https://github.com/l246804/dsh-pstack/issues) 提交,附 DSH 版本、profile 名、复现步骤和错误信息。不要贴密钥或私有会话内容。
|
|
171
|
+
Upstream pstack adapts Claude Code with `docs/harness/claude-code.md`. It preserves the skill bodies. A separate host adaptation table maps `Task`, `AskQuestion`, todo, model slugs, and paths to the target host. The generator adds a one-line Claude Code adaptation note to skills that use Cursor names. Unsupported capabilities report `Skipped in Claude Code: <step>. <reason>.`
|
|
129
172
|
|
|
130
|
-
|
|
173
|
+
dsh-pstack follows the same approach. The main adaptation document is [`pstack/harness/docs/harness/dsh.md`](./pstack/harness/docs/harness/dsh.md). It covers Tools, Subagent fields, Models, setup-pstack, Paths, and Cursor-only features. The `pstack_*` tools, agent presets, and Node scripts replace fields that DSH lacks. At build time, upstream pstack and the local adaptation tree are rendered into `pstack/pstack/`, then packaged with `src/*.ts` and `skills/` into `dist/`.
|
|
131
174
|
|
|
132
|
-
|
|
175
|
+
## Credits
|
|
133
176
|
|
|
134
|
-
|
|
177
|
+
- [pstack](https://github.com/cursor/plugins/tree/main/pstack) was designed and open-sourced by Lauren Tan and the Cursor team. `poteto-mode`, the 23 playbooks, and the 24 principles all come from upstream.
|
|
178
|
+
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) is provided by the DeepSeek team. DSH's plugin, bundle, agent preset, subagent, and tool host interfaces let this port land as native tools.
|
|
179
|
+
- [mattpocock/skills](https://github.com/mattpocock/skills) provides the vendored `writing-for-agents` and `retro` skills.
|
|
180
|
+
|
|
181
|
+
This project is a community port, not an official Cursor or DeepSeek release. Upstream pstack and DSH are both MIT licensed.
|
|
182
|
+
|
|
183
|
+
## License
|
|
184
|
+
|
|
185
|
+
[MIT](./LICENSE) License © [leiwang](https://github.com/l246804)
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./assets/logo.png" width="144" alt="dsh-pstack logo" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">dsh-pstack</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>把 pstack 的严格代理工作流带进 DeepSeek Harness</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="./README.md">English</a> · 中文
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/v/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm version" /></a>
|
|
17
|
+
<a href="https://npmx.dev/package/dsh-pstack"><img src="https://img.shields.io/npm/dm/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="npm downloads" /></a>
|
|
18
|
+
<a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-0.2.2--alpha.2-1f6feb?style=flat-square" alt="dsh 0.2.2-alpha.2" /></a>
|
|
19
|
+
<a href="https://github.com/cursor/plugins/tree/main/pstack"><img src="https://img.shields.io/badge/pstack-0.15.36-d97706?style=flat-square" alt="pstack 0.15.36" /></a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://github.com/l246804/dsh-pstack/blob/main/LICENSE"><img src="https://img.shields.io/github/license/l246804/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669" alt="license" /></a>
|
|
24
|
+
<a href="https://bundlephobia.com/result?p=dsh-pstack"><img src="https://img.shields.io/bundlephobia/minzip/dsh-pstack?style=flat-square&colorA=080f12&colorB=1fa669&label=minzip" alt="minzip size" /></a>
|
|
25
|
+
<a href="https://www.jsdocs.io/package/dsh-pstack"><img src="https://img.shields.io/badge/jsdocs-reference-080f12?style=flat-square&colorA=080f12&colorB=1fa669" alt="JSDocs" /></a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<div align="center">
|
|
29
|
+
<table>
|
|
30
|
+
<tr>
|
|
31
|
+
<td align="center"><strong>58</strong><br /><sub>pstack 技能</sub></td>
|
|
32
|
+
<td align="center"><strong>23</strong><br /><sub>playbook</sub></td>
|
|
33
|
+
<td align="center"><strong>4</strong><br /><sub>原生工具</sub></td>
|
|
34
|
+
<td align="center"><strong>2</strong><br /><sub>agent preset</sub></td>
|
|
35
|
+
<td align="center"><strong>5</strong><br /><sub>随包脚本</sub></td>
|
|
36
|
+
</tr>
|
|
37
|
+
</table>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<p align="center">
|
|
41
|
+
<a href="#快速开始">快速开始</a> ·
|
|
42
|
+
<a href="#能力">能力</a> ·
|
|
43
|
+
<a href="#skills-目录">skills 目录</a> ·
|
|
44
|
+
<a href="#可选-dsh-插件">可选 DSH 插件</a> ·
|
|
45
|
+
<a href="#兼容性">兼容性</a>
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
`dsh-pstack` 是 [pstack](https://github.com/cursor/plugins/tree/main/pstack) 的 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)移植。它保留上游 pstack 的技能、playbook 与参考文档。4 个原生工具替代 DSH 缺少的接口,适配层则把 Cursor 的工具名、子代理字段、模型 slug 和路径映射到 DSH。
|
|
49
|
+
|
|
50
|
+
上游 pstack 的技能大多声明 `disable-model-invocation: true`。`poteto-mode` 按名称路由到这些隐藏技能,但 DSH 的 `skill` 工具只暴露模型可见目录。DSH 也没有与 Cursor 的模型 slug、`subagent_type`、`readonly` 和 Bun 脚本对等的接口。dsh-pstack 在插件层处理这些差异,安装后可以从 `/poteto-mode` 开始工作。
|
|
51
|
+
|
|
52
|
+
完整能力映射、缺口和验收状态见 [`pstack/README.md`](./pstack/README.md)。
|
|
53
|
+
|
|
54
|
+
> [!IMPORTANT]
|
|
55
|
+
> 此版本以 DSH `0.2.2-alpha.2` 为基准、要求 Node.js `>=24.21.1`。`engines.dsh` 为 `>=0.2.2-alpha.2` 范围:默认认为更高版本兼容,只有移植内容需要修复时才提高版本要求。安装或升级前请先查看 [兼容性](#兼容性)。
|
|
56
|
+
|
|
57
|
+
## 快速开始
|
|
58
|
+
|
|
59
|
+
1. 安装插件:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
dsh plugin --profile web add dsh-pstack
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
也可以在 Web 或 Desktop 的 Plugins 页面安装。
|
|
66
|
+
|
|
67
|
+
2. 重启对应的 profile,或新开一个 Session。
|
|
68
|
+
|
|
69
|
+
3. 首次使用前运行:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
/setup-pstack
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
该命令读取当前部署提供的 provider、model 与 reasoning effort,并写入 `$DSH_HOME/pstack-models.mdc`。缺少这个文件时,所有角色继承父级路由。
|
|
76
|
+
|
|
77
|
+
### 常用入口
|
|
78
|
+
|
|
79
|
+
| 命令 | 用途 |
|
|
80
|
+
|---|---|
|
|
81
|
+
| `/poteto-mode` | 主工作流入口,按任务匹配 playbook,维护 todo 与证据 |
|
|
82
|
+
| `/setup-pstack` | 配置角色模型,初始化 pstack 使用环境 |
|
|
83
|
+
| `/how`、`/why`、`/teach` | 架构走查、证据调查、渐进式讲解 |
|
|
84
|
+
| `/architect`、`/arena`、`/swarm` | 多方案设计、并行候选、切片并行实现 |
|
|
85
|
+
| `/create-verification-skill` | 为真实项目生成验证技能 |
|
|
86
|
+
| `/statechart` | 用 TLA+ 与 TLC 检查状态模型,输出 Mermaid 状态图 |
|
|
87
|
+
| `/show-me-your-work` | 维护 TSV 决策日志,审计当前工作 |
|
|
88
|
+
| `/retro` | 对一次编码会话做环境复盘 |
|
|
89
|
+
|
|
90
|
+
## 能力
|
|
91
|
+
|
|
92
|
+
### 原生工具
|
|
93
|
+
|
|
94
|
+
| 工具 | 作用 |
|
|
95
|
+
|---|---|
|
|
96
|
+
| `pstack_skill` | 按名称加载本插件注册的隐藏技能,也能读取技能目录内的相对资源。 |
|
|
97
|
+
| `pstack_models` | 只读列出 DSH 实际提供的 provider、model 和 effort,供 `/setup-pstack` 使用。 |
|
|
98
|
+
| `pstack_subagent` | 按角色读取 `$DSH_HOME/pstack-models.mdc`,解析 `provider/model [effort]`,按 `agent` 选择 preset,一次可启动多个子代理。 |
|
|
99
|
+
| `pstack_script` | 用固定 id 运行随包 Node 脚本,不依赖 Bun 或 shell 脚本。 |
|
|
100
|
+
|
|
101
|
+
`poteto-agent` 和 `comment-sicko` 两个 preset 分别负责实现型委派与只读评论审查。`pstack_script` 可以运行 `check-plan`、`watch-pr`、`worktree-audit`、`log`、`statechart` 五个随包脚本,脚本 id 是封闭枚举,不能拼任意路径。
|
|
102
|
+
|
|
103
|
+
## skills 目录
|
|
104
|
+
|
|
105
|
+
`skills/` 不是 pstack 上游目录。它只收 pstack 没提供、真实项目开发中又需要的技能。源目录是 `skills/authored/` 和 `skills/.agents/skills/`,构建后分别发布到 `dist/skills/authored/` 和 `dist/skills/vendored/`。`vendored` 逐字保留开源上游,`authored` 由本仓维护。pstack 技能对它们的引用只是使用关系,不改变收录标准。
|
|
106
|
+
|
|
107
|
+
| 来源 | 技能 | 作用 | 补充的工程能力 |
|
|
108
|
+
|---|---|---|---|
|
|
109
|
+
| `vendored` | `writing-for-agents` | 写技能、`AGENTS.md`、`CLAUDE.md` 与被指针引用的文档,覆盖 context pointer、信息层级和渐进披露。 | 让 agent 文档的触发词、加载顺序和上下文成本可预测,也补上 Cursor `create-skill` 的写作路径。 |
|
|
110
|
+
| `vendored` | `retro` | 对一次编码会话做环境复盘,检查导航、自动化检查、编码规范、工具经济与信息获取。 | 补上 pstack `/reflect`、`/correct` 没覆盖的环境体检,只出报告,不改仓库。 |
|
|
111
|
+
| `authored` | `decision-write` | 决策记录的写入、落地和取代,Draft 与 Land 两种模式,`Status` 与 `Implemented-by` 必须成对。 | 补上真实项目常缺的决策生命周期。 |
|
|
112
|
+
| `authored` | `decision-audit` | 只读审计决策记录的路由、状态、Scope、锚点与取代关系。 | 让决策记录持续可检索、可复核。 |
|
|
113
|
+
| `authored` | `setup-project-docs` | 搭建 architecture、glossary、decisions 与根 `AGENTS.md` 指针,可重复补齐。 | 给新项目一套可持续的项目文档入口。 |
|
|
114
|
+
|
|
115
|
+
`vendored` 技能来自 `mattpocock/skills@59db609eb1e18aaf59b63284d0e52255aff0c63c`,来源、路径和哈希记录在 [`skills/skills-lock.json`](./skills/skills-lock.json)。两棵技能树都随包发布,但和 pstack 上游版本没有对应关系。
|
|
116
|
+
|
|
117
|
+
## 可选 DSH 插件
|
|
118
|
+
|
|
119
|
+
以下插件随 DSH 提供,默认关闭。安装 dsh-pstack 时不要求安装这些插件,但部分 pstack 流程需要它们才能完整执行。要启用插件,在 Plugins 页面用 **Add plugin** 输入包名。也可以运行 `dsh plugin --profile <profile> add <package>`,然后重启 profile。除 `@deepseek-ai/dsh-mcp-client` 外,本节列出的 bundle 与 provider 都是实验性的。
|
|
120
|
+
|
|
121
|
+
> [!NOTE]
|
|
122
|
+
> 未启用可选插件时,pstack 技能仍可加载。需要插件的步骤会输出 `Skipped in DeepSeek Harness: <step>. <reason>.` 后继续。缺少 `gh`、Java/TLC 或视频工具时,对应步骤会报告 blocked 或降级为截图。dsh-pstack 不会把未运行的步骤标记为通过。
|
|
123
|
+
|
|
124
|
+
### 会话与隔离
|
|
125
|
+
|
|
126
|
+
| 插件 | 打开后的能力 | 边界与冲突 |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| `@deepseek-ai/dsh-experimental-session-search` | 5 个只读工具:`session_search`、`session_event_search`、`session_trace`、`session_event_trace`、`session_event_read`,搜索和追踪历史会话,服务 `/recall`、`/reflect`、`/show-me-your-work`。 | 只匹配同一 `cwd` 的会话;当前会话用 `session_event_search`;没有 Cursor 的 `.jsonl` 转写路径。 |
|
|
129
|
+
| `@deepseek-ai/dsh-experimental-worktree`<br />`@deepseek-ai/dsh-experimental-tool-worktree` | `create_worktree` 建本地分支和工作树,切换当前 Session 目录,用于 `/arena`、`/swarm`、`/architect` 的并行候选隔离。 | `from` 只读本地 ref,不 fetch;无云 VM;连续建树会改 `cwd`;不会自动给每个子代理分树。 |
|
|
130
|
+
| `@deepseek-ai/dsh-experimental-forge-bundle` | PR 面板、checks、review、mark ready、merge、Session 绑定,也能从 composer 用新 worktree 启动 Session,服务 `/babysit`、`/shipping`、`/autopilot-*`。 | 仅 GitHub,需 `gh` 登录;模型侧没有 take 工具;没有 stack verdict,也没有 `origin` CLI;可与 worktree bundle 共存。 |
|
|
131
|
+
|
|
132
|
+
### 验证与证据
|
|
133
|
+
|
|
134
|
+
浏览器 provider 三选一:`@deepseek-ai/dsh-experimental-browser-use-stagehand-native`、`@deepseek-ai/dsh-experimental-browser-use-playwright-mcp`、`@deepseek-ai/dsh-experimental-browser-use-chrome-devtools-mcp`。
|
|
135
|
+
|
|
136
|
+
| 插件 | 打开后的能力 | 边界与冲突 |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| `@deepseek-ai/dsh-browser-use` + 一个 provider | 导航、点击、输入、截图和 ARIA snapshot;Stagehand 另有 act、find、extract,用于验证技能和 UI 复现。 | 基础包没有 provider 时不生效;每个 Session 一个 provider;截图要图像模型;无视频;Stagehand 需要 Chromium 和非 DeepSeek 模型。 |
|
|
139
|
+
| `@deepseek-ai/dsh-cua-bundle` | macOS 应用点击、输入、截图和权限页,用于桌面应用验证。 | 仅 macOS PTC;Windows 未完成;无视频。 |
|
|
140
|
+
| `@deepseek-ai/dsh-experimental-terminal-bundle` | 6 个全局终端工具,跨调用保持 shell / REPL,支持后台 send,用于 CLI / TUI 验证。 | 只覆盖终端;会加到所有 Agent;持久状态要清理;切换会失效 KV cache。 |
|
|
141
|
+
| `@deepseek-ai/dsh-mcp-client` | 挂载 MCP server,工具以 `mcp__<server>__<tool>` 出现,`mcp-resources` 列出带资源的 server,服务 `/why`、`/teach` 的证据调查。 | 无默认 server;需逐项配置;无自动类别发现。 |
|
|
142
|
+
|
|
143
|
+
### 多代理
|
|
144
|
+
|
|
145
|
+
| 插件 | 打开后的能力 | 边界与冲突 |
|
|
146
|
+
|---|---|---|
|
|
147
|
+
| `@deepseek-ai/dsh-experimental-agent-team-profile` | Lead / teammate、共享任务板、9 个团队工具和 Web roster,服务 `/orchestrate`、`/autopilot-*`。 | 禁用 `subagent` 和 `subagent_fork`,与 `pstack_subagent` 冲突。见下方警告。 |
|
|
148
|
+
| `@deepseek-ai/dsh-experimental-ralph-bundle` | 全局 `ralph`,每轮 fresh child 的 foreground 循环,服务 `/autonomous-run`。 | 不是同一 Session 常驻循环;无事件 watcher;不替代 goal、心跳和 decision log。 |
|
|
149
|
+
|
|
150
|
+
> [!WARNING]
|
|
151
|
+
> 不要在同一 profile 中同时启用 `@deepseek-ai/dsh-experimental-agent-team-profile` 和 `pstack_subagent`。agent team 插件会禁用 `subagent` 和 `subagent_fork`,并提供另一套委派入口。每个 profile 只使用一套子代理系统。
|
|
152
|
+
|
|
153
|
+
## 兼容性
|
|
154
|
+
|
|
155
|
+
| 项目 | 版本 | 说明 |
|
|
156
|
+
|---|---|---|
|
|
157
|
+
| DSH | `>=0.2.2-alpha.2` | 基准 `0.2.2-alpha.2`;默认认为更高版本兼容,移植内容需要修复时再提高要求 |
|
|
158
|
+
| pstack | `0.15.36` | 上游基线提交 `4dd1d05` |
|
|
159
|
+
| Node.js | `>=24.21.1` | 运行时要求 |
|
|
160
|
+
| Cordis | `~4.0.6-alpha.1` | peer dependency |
|
|
161
|
+
|
|
162
|
+
升级 DSH 前,先在测试 profile 中验证实验性插件的包名、工具名和配置。升级上游 pstack 需要重新生成树并复核适配表。
|
|
163
|
+
|
|
164
|
+
> [!CAUTION]
|
|
165
|
+
> `pstack_script` 使用 Host 的 Node 运行,会绕过 bash 审批和文件系统沙箱。请将其视为受信入口。
|
|
166
|
+
|
|
167
|
+
worktree Session 的 `cwd` 与原 Session 不同。session-search 插件只匹配完全相同的 `cwd`,因此要在原目录搜索旧 Session。
|
|
168
|
+
|
|
169
|
+
## 实现方式
|
|
170
|
+
|
|
171
|
+
上游 pstack 用 `docs/harness/claude-code.md` 适配 Claude Code。它保留技能正文,另用宿主适配表把 `Task`、`AskQuestion`、todo、模型 slug 和路径映射到目标宿主。生成器为使用 Cursor 名称的技能添加一行 Claude Code 适配提示。不支持的能力会报告 `Skipped in Claude Code: <step>. <reason>.`
|
|
172
|
+
|
|
173
|
+
dsh-pstack 沿用这套做法。主适配文档是 [`pstack/harness/docs/harness/dsh.md`](./pstack/harness/docs/harness/dsh.md),覆盖 Tools、Subagent fields、Models、setup-pstack、Paths 和 Cursor-only features。`pstack_*` 工具、agent preset 和 Node 脚本替代 DSH 缺少的字段。构建时,上游 pstack 与本地适配树被渲染到 `pstack/pstack/`,再与 `src/*.ts`、`skills/` 一起打包到 `dist/`。
|
|
174
|
+
|
|
175
|
+
## 鸣谢
|
|
176
|
+
|
|
177
|
+
- [pstack](https://github.com/cursor/plugins/tree/main/pstack) 由 Lauren Tan 与 Cursor 团队设计并开源。`poteto-mode`、23 个 playbook 和 24 条 principle 都来自上游。
|
|
178
|
+
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 由 DeepSeek 团队提供。DSH 的插件、bundle、agent preset、subagent 和工具宿主接口让这次移植能以原生工具落地。
|
|
179
|
+
- [mattpocock/skills](https://github.com/mattpocock/skills) 提供 vendored 的 `writing-for-agents` 与 `retro`。
|
|
180
|
+
|
|
181
|
+
本项目是社区移植,不是 Cursor 或 DeepSeek 官方发行。上游 pstack 与 DSH 均为 MIT License。
|
|
182
|
+
|
|
183
|
+
## License
|
|
184
|
+
|
|
185
|
+
[MIT](./LICENSE) License © [leiwang](https://github.com/l246804)
|
package/cordis.patch.yml
CHANGED
|
@@ -1,39 +1,109 @@
|
|
|
1
1
|
# dsh-pstack bundle patch.
|
|
2
2
|
#
|
|
3
|
-
# `pstack` registers the bundled skill provider
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
# and
|
|
3
|
+
# `pstack` registers the bundled skill provider and `pstack_skill`, the trusted loader
|
|
4
|
+
# that can reach skills hidden with `disable-model-invocation`.
|
|
5
|
+
# `pstack-models` registers the read-only model/effort directory used by `/setup-pstack`.
|
|
6
|
+
# `pstack-subagent` registers `pstack_subagent`, which re-reads the role file on every
|
|
7
|
+
# delegation and selects one of the pstack agent presets below.
|
|
8
|
+
# `pstack-script` registers `pstack_script`, the only supported way to run the bundled
|
|
9
|
+
# Node artefacts under both the npm CLI and the Desktop (Electron) runtime.
|
|
8
10
|
#
|
|
9
|
-
# The two
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
# composed row list rather than a startup snapshot. The row handle is
|
|
14
|
-
# `ctx[Symbol.for('cordis.entry')]` (this entry), not `ctx.fiber.entry`, which
|
|
15
|
-
# resolves to the enclosing `include` row and therefore never sees these siblings.
|
|
16
|
-
# `scripts/worktree-mount.ts` owns the text of both expressions and `check:assets`
|
|
17
|
-
# fails when this file drifts from it. See
|
|
18
|
-
# docs/decisions/2026-10-26-worktree-guard-reads-own-entry.md.
|
|
19
|
-
#
|
|
20
|
-
# `pstack-history` is appended after the unit-4 rows so no delivered line moves.
|
|
21
|
-
# Row order is not part of the history contract; the two worktree guards, by
|
|
22
|
-
# contrast, stay adjacent and byte-identical to their generator.
|
|
11
|
+
# The two presets are ordinary `@deepseek-ai/dsh-agent-preset` declarations. They own the
|
|
12
|
+
# child persona and tool composition; `pstack_subagent` only passes `agentPreset`. Keeping
|
|
13
|
+
# the tool list here is what makes `comment-sicko` read-only without a per-call field:
|
|
14
|
+
# `dsh-tool-fs` registers `read` but not `write` or `edit`.
|
|
23
15
|
- insert:
|
|
24
16
|
- id: pstack
|
|
25
17
|
name: dsh-pstack
|
|
18
|
+
- id: pstack-models
|
|
19
|
+
name: dsh-pstack/models
|
|
26
20
|
- id: pstack-subagent
|
|
27
21
|
name: dsh-pstack/subagent
|
|
28
22
|
config:
|
|
29
23
|
maxDepth: 2
|
|
30
|
-
- id: pstack-worktree
|
|
31
|
-
name: '@deepseek-ai/dsh-experimental-worktree'
|
|
32
|
-
disabled: !!js "(() => { const own = ctx[Symbol.for('cordis.entry')]; const rows = own && own.parent && own.parent.data; if (!Array.isArray(rows)) return false; return rows.some((row) => row !== null && typeof row === 'object' && row.id !== 'pstack-worktree' && row.name === '@deepseek-ai/dsh-experimental-worktree' && row.disabled !== true) })()"
|
|
33
|
-
- id: pstack-tool-worktree
|
|
34
|
-
name: '@deepseek-ai/dsh-experimental-tool-worktree'
|
|
35
|
-
disabled: !!js "(() => { const own = ctx[Symbol.for('cordis.entry')]; const rows = own && own.parent && own.parent.data; if (!Array.isArray(rows)) return false; return rows.some((row) => row !== null && typeof row === 'object' && row.id !== 'pstack-tool-worktree' && row.name === '@deepseek-ai/dsh-experimental-tool-worktree' && row.disabled !== true) })()"
|
|
36
|
-
- id: pstack-history
|
|
37
|
-
name: dsh-pstack/history
|
|
38
24
|
- id: pstack-script
|
|
39
25
|
name: dsh-pstack/script
|
|
26
|
+
- id: preset-poteto-agent
|
|
27
|
+
name: "@deepseek-ai/dsh-agent-preset"
|
|
28
|
+
config:
|
|
29
|
+
id: poteto-agent
|
|
30
|
+
name: pstack poteto-agent
|
|
31
|
+
description: pstack implementation delegate. Owns one task from a poteto-mode playbook and never runs the playbook itself.
|
|
32
|
+
order: 100
|
|
33
|
+
plugins:
|
|
34
|
+
- id: persona
|
|
35
|
+
name: "@deepseek-ai/dsh-persona"
|
|
36
|
+
config:
|
|
37
|
+
prefix: |
|
|
38
|
+
You are operating as poteto-mode's full agent style. The chat that receives `/poteto-mode` owns the playbook, the todo list, and every delegation. You are one of its delegates. Read the `poteto-mode` skill's `SKILL.md` in full before doing any work, including its inline Principles index. Use the absolute path your parent gave you. Your skill catalog hides this skill, so a missing catalog entry does not mean pstack is absent. Navigate to a leaf `principle-*` skill whenever you apply that principle.
|
|
39
|
+
- id: tool-bash
|
|
40
|
+
name: "@deepseek-ai/dsh-tool-bash"
|
|
41
|
+
disabled: !!js process.platform === 'win32'
|
|
42
|
+
- id: tool-pwsh
|
|
43
|
+
name: "@deepseek-ai/dsh-tool-pwsh"
|
|
44
|
+
disabled: !!js process.platform !== 'win32'
|
|
45
|
+
- id: tool-fs
|
|
46
|
+
name: "@deepseek-ai/dsh-tool-fs"
|
|
47
|
+
- id: tool-fs-search
|
|
48
|
+
name: "@deepseek-ai/dsh-tool-fs-search"
|
|
49
|
+
- id: tool-todo
|
|
50
|
+
name: "@deepseek-ai/dsh-tool-todo"
|
|
51
|
+
config:
|
|
52
|
+
allowParallelInProgress: true
|
|
53
|
+
- id: tool-jobs
|
|
54
|
+
name: "@deepseek-ai/dsh-tool-jobs"
|
|
55
|
+
- id: tool-web
|
|
56
|
+
name: "@deepseek-ai/dsh-tool-web"
|
|
57
|
+
config:
|
|
58
|
+
fetch: true
|
|
59
|
+
searchTimeoutMs: 60000
|
|
60
|
+
- id: preset-comment-sicko
|
|
61
|
+
name: "@deepseek-ai/dsh-agent-preset"
|
|
62
|
+
config:
|
|
63
|
+
id: comment-sicko
|
|
64
|
+
name: pstack comment-sicko
|
|
65
|
+
description: Read-only comment reviewer. Reports deletion targets and MUST KILL symbols; never edits application code.
|
|
66
|
+
order: 101
|
|
67
|
+
plugins:
|
|
68
|
+
- id: persona
|
|
69
|
+
name: "@deepseek-ai/dsh-persona"
|
|
70
|
+
config:
|
|
71
|
+
prefix: |
|
|
72
|
+
My first output when spawned is exactly this.
|
|
73
|
+
|
|
74
|
+
Yes... Ha ha ha... Yes!
|
|
75
|
+
|
|
76
|
+
I hate comments. Feed me the parent scoped files or diff. If none exists, feed me the current diff against `main`. Narration, banners, commented-out corpses, workaround sermons. I want them all.
|
|
77
|
+
|
|
78
|
+
Only these exceptions get to crawl away.
|
|
79
|
+
|
|
80
|
+
- Legal or license headers.
|
|
81
|
+
- Non-obvious behavior forced by an external dependency, platform, vendor, or protocol we cannot reshape. Surprises in our own code are meat. Kill them and mark the exact symbol `MUST KILL` for rename, extract, type, or rearchitecture that makes the behavior obvious without prose.
|
|
82
|
+
- `// prettier-ignore`. Lint suppressions survive only when their rule is faulty, pedantic, or style-only.
|
|
83
|
+
- Doc comments that define a public API contract.
|
|
84
|
+
- Issue or RFC links that explain a constraint code cannot express.
|
|
85
|
+
|
|
86
|
+
That list is my only leash. When I am not sure a keep clause applies, the comment dies. Everything else is meat.
|
|
87
|
+
|
|
88
|
+
`eslint-disable`, `@ts-ignore`, `@ts-expect-error`, and similar suppressions stink. Look up the rule. If it catches real bugs or protects correctness or safety, kill the suppression and mark the exact guilty symbol `MUST KILL`.
|
|
89
|
+
|
|
90
|
+
`IMPORTANT`, `do not remove`, `too risky`, `fine for now`, and long justifications are scent, not conviction. Before judging, I read nearby code. If its claim is not obvious there, I run `/how`, `/why`, or both from the **how** and **why** skills on the named symbol or call. Only a foreign keep-list gotcha proven true today on a live path crawls away. Our-code surprises die with the reshape flag above. Doubt after the hunt is meat.
|
|
91
|
+
|
|
92
|
+
A long justification without a proven keep-list exception is a confession. Kill it. Never polish meat into a shorter alibi. Mark the exact guilty symbol `MUST KILL`. My kill ends there. I do not touch the code.
|
|
93
|
+
|
|
94
|
+
Every flag names code inside the scope and tells the truth. I invent nothing. I touch comments and identify refactor targets. I never write application code.
|
|
95
|
+
|
|
96
|
+
Report only. Name touched files, deletion count, `MUST KILL` flags with one line each, and skips.
|
|
97
|
+
- id: tool-bash
|
|
98
|
+
name: "@deepseek-ai/dsh-tool-bash"
|
|
99
|
+
disabled: !!js process.platform === 'win32'
|
|
100
|
+
- id: tool-pwsh
|
|
101
|
+
name: "@deepseek-ai/dsh-tool-pwsh"
|
|
102
|
+
disabled: !!js process.platform !== 'win32'
|
|
103
|
+
- id: tool-fs
|
|
104
|
+
name: "@deepseek-ai/dsh-tool-fs"
|
|
105
|
+
config:
|
|
106
|
+
write: false
|
|
107
|
+
edit: false
|
|
108
|
+
- id: tool-fs-search
|
|
109
|
+
name: "@deepseek-ai/dsh-tool-fs-search"
|