dsh-pstack 0.1.0 → 0.2.0-beta.1
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 +1 -1
- package/README.md +92 -117
- package/assets/agents/comment-sicko.md +1 -1
- package/assets/agents/poteto-agent.md +2 -2
- package/assets/docs/guide/01-setup.md +9 -9
- package/assets/docs/guide/02-poteto-mode.md +4 -4
- package/assets/docs/guide/05-build-and-clean.md +3 -3
- package/assets/docs/guide/06-verify-and-ship.md +2 -2
- package/assets/docs/guide/07-overnight.md +10 -12
- package/assets/docs/guide/09-make-it-yours.md +2 -6
- package/assets/docs/guide/10-recipes-and-pitfalls.md +3 -3
- package/assets/docs/guide/README.md +1 -1
- package/assets/docs/guide/images/design.jpg +0 -0
- package/assets/docs/guide/images/overnight.jpg +0 -0
- package/assets/docs/guide/images/recipes.jpg +0 -0
- package/assets/docs/guide/images/router.jpg +0 -0
- package/assets/docs/guide/images/understanding.jpg +0 -0
- package/assets/docs/guide/images/verification.jpg +0 -0
- package/assets/docs/harness/dsh.md +60 -65
- package/assets/docs/pstack-models.example.md +40 -9
- package/assets/skills/architect/SKILL.md +12 -12
- package/assets/skills/arena/SKILL.md +11 -11
- package/assets/skills/automate-me/SKILL.md +15 -14
- package/assets/skills/benchmark-checklist/SKILL.md +0 -2
- package/assets/skills/blast-radius/SKILL.md +5 -5
- package/assets/skills/bro/SKILL.md +0 -2
- package/assets/skills/correct/SKILL.md +0 -2
- package/assets/skills/create-formal-verification-skill/SKILL.md +2 -2
- package/assets/skills/create-verification-skill/SKILL.md +2 -2
- package/assets/skills/figure-it-out/SKILL.md +13 -13
- package/assets/skills/how/SKILL.md +6 -6
- package/assets/skills/how/references/explainer-prompt.md +1 -1
- package/assets/skills/in-your-own-words/SKILL.md +0 -2
- package/assets/skills/interrogate/SKILL.md +9 -7
- package/assets/skills/interrogate/references/rubric.md +1 -1
- package/assets/skills/ketchup/SKILL.md +4 -4
- package/assets/skills/maintain-formal-verification-skill/SKILL.md +2 -2
- package/assets/skills/maintain-verification-skill/SKILL.md +3 -3
- package/assets/skills/no-comments/SKILL.md +7 -7
- package/assets/skills/poteto-help/SKILL.md +32 -31
- package/assets/skills/poteto-help/references/prompting.md +1 -1
- package/assets/skills/poteto-help/references/recipes.md +1 -1
- package/assets/skills/poteto-mode/SKILL.md +17 -19
- package/assets/skills/poteto-mode/playbooks/authoring-a-skill.md +3 -3
- package/assets/skills/poteto-mode/playbooks/autonomous-run.md +6 -4
- package/assets/skills/poteto-mode/playbooks/autopilot-full.md +6 -6
- package/assets/skills/poteto-mode/playbooks/autopilot-stack.md +2 -2
- package/assets/skills/poteto-mode/playbooks/babysit.md +3 -3
- package/assets/skills/poteto-mode/playbooks/bug-fix.md +7 -7
- package/assets/skills/poteto-mode/playbooks/eval.md +3 -3
- package/assets/skills/poteto-mode/playbooks/feature.md +8 -8
- package/assets/skills/poteto-mode/playbooks/hillclimb.md +3 -3
- package/assets/skills/poteto-mode/playbooks/investigation.md +2 -2
- package/assets/skills/poteto-mode/playbooks/multi-phase-plan.md +21 -21
- package/assets/skills/poteto-mode/playbooks/opening-a-pr.md +6 -6
- package/assets/skills/poteto-mode/playbooks/orchestrate.md +13 -13
- package/assets/skills/poteto-mode/playbooks/pause-safely.md +2 -2
- package/assets/skills/poteto-mode/playbooks/perf-issue.md +6 -6
- package/assets/skills/poteto-mode/playbooks/prototype.md +4 -4
- package/assets/skills/poteto-mode/playbooks/refactoring.md +9 -9
- package/assets/skills/poteto-mode/playbooks/runtime-forensics.md +3 -3
- package/assets/skills/poteto-mode/playbooks/session-pickup.md +2 -2
- package/assets/skills/poteto-mode/playbooks/shipping.md +2 -2
- package/assets/skills/poteto-mode/playbooks/trace-forensics.md +2 -2
- package/assets/skills/poteto-mode/playbooks/visual-parity.md +5 -5
- package/assets/skills/poteto-mode/playbooks/worktree-cleanup.md +14 -6
- package/assets/skills/poteto-mode/scripts/check-plan.mjs +85 -70
- package/assets/skills/poteto-mode/scripts/check-plan.test.mjs +343 -0
- package/assets/skills/poteto-mode/scripts/orch/orch.mjs +4282 -0
- package/assets/skills/poteto-mode/scripts/orch/orch.test.mjs +2042 -0
- package/assets/skills/poteto-mode/scripts/watch-pr/cli.test.mjs +5101 -0
- package/assets/skills/poteto-mode/scripts/watch-pr/github.test.mjs +1177 -0
- package/assets/skills/poteto-mode/scripts/watch-pr/policy.test.mjs +1441 -0
- package/assets/skills/poteto-mode/scripts/watch-pr/watch-pr.mjs +4601 -0
- package/assets/skills/poteto-mode/scripts/worktree-audit.mjs +675 -0
- package/assets/skills/principle-attack-the-premise/SKILL.md +0 -2
- package/assets/skills/principle-boundary-discipline/SKILL.md +0 -2
- package/assets/skills/principle-build-the-lever/SKILL.md +0 -3
- package/assets/skills/principle-encode-lessons-in-structure/SKILL.md +0 -2
- package/assets/skills/principle-exhaust-the-design-space/SKILL.md +0 -2
- package/assets/skills/principle-experience-first/SKILL.md +0 -2
- package/assets/skills/principle-explain-the-number/SKILL.md +0 -2
- package/assets/skills/principle-fix-root-causes/SKILL.md +0 -2
- package/assets/skills/principle-foundational-thinking/SKILL.md +0 -2
- package/assets/skills/principle-guard-the-context-window/SKILL.md +0 -2
- package/assets/skills/principle-laziness-protocol/SKILL.md +0 -2
- package/assets/skills/principle-make-operations-idempotent/SKILL.md +0 -2
- package/assets/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -2
- package/assets/skills/principle-minimize-reader-load/SKILL.md +0 -2
- package/assets/skills/principle-model-the-domain/SKILL.md +0 -2
- package/assets/skills/principle-never-block-on-the-human/SKILL.md +0 -2
- package/assets/skills/principle-outcome-oriented-execution/SKILL.md +0 -2
- package/assets/skills/principle-prove-it-works/SKILL.md +2 -2
- package/assets/skills/principle-redesign-from-first-principles/SKILL.md +0 -2
- package/assets/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -2
- package/assets/skills/principle-sequence-verifiable-units/SKILL.md +0 -2
- package/assets/skills/principle-subtract-before-you-add/SKILL.md +0 -2
- package/assets/skills/principle-test-behavior-not-implementation/SKILL.md +0 -2
- package/assets/skills/principle-type-system-discipline/SKILL.md +0 -2
- package/assets/skills/recall/SKILL.md +9 -9
- package/assets/skills/reflect/SKILL.md +20 -21
- package/assets/skills/reflect/references/divergent-reviewer.md +4 -4
- package/assets/skills/reflect/references/judgment-reviewer.md +2 -2
- package/assets/skills/reflect/references/synthesizer.md +6 -6
- package/assets/skills/reflect/references/tooling-reviewer.md +2 -2
- package/assets/skills/setup-pstack/SKILL.md +28 -37
- package/assets/skills/sharpen/SKILL.md +0 -2
- package/assets/skills/show-me-your-work/SKILL.md +9 -9
- package/assets/skills/show-me-your-work/scripts/log.mjs +108 -0
- package/assets/skills/swarm/SKILL.md +8 -6
- package/assets/skills/tdd/SKILL.md +0 -2
- package/assets/skills/teach/SKILL.md +2 -2
- package/assets/skills/technical-writing/SKILL.md +2 -2
- package/assets/skills/typescript-best-practices/SKILL.md +6 -4
- package/assets/skills/unslop/SKILL.md +0 -2
- package/assets/skills/why/SKILL.md +9 -9
- package/cordis.patch.yml +33 -14
- package/dist/frontmatter-BQX3ekwP.mjs +229 -0
- package/dist/frontmatter-BQX3ekwP.mjs.map +1 -0
- package/dist/history.d.mts +429 -0
- package/dist/history.mjs +1129 -0
- package/dist/history.mjs.map +1 -0
- package/dist/host-contract-o47JH_r8.d.mts +527 -0
- package/dist/index.d.mts +273 -11
- package/dist/index.mjs +248 -148
- package/dist/index.mjs.map +1 -1
- package/dist/paths-D_JlVmBk.mjs +42 -0
- package/dist/paths-D_JlVmBk.mjs.map +1 -0
- package/dist/script.d.mts +193 -0
- package/dist/script.mjs +782 -0
- package/dist/script.mjs.map +1 -0
- package/dist/subagent.d.mts +306 -100
- package/dist/subagent.mjs +1309 -343
- package/dist/subagent.mjs.map +1 -1
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +55 -41
- package/static/icon.png +0 -0
- package/assets/skills/poteto-mode/scripts/bootstrap.ts +0 -62
- package/assets/skills/poteto-mode/scripts/bun.lock +0 -67
- package/assets/skills/poteto-mode/scripts/check-plan.test.ts +0 -96
- package/assets/skills/poteto-mode/scripts/orch/orch.test.ts +0 -761
- package/assets/skills/poteto-mode/scripts/orch/orch.ts +0 -590
- package/assets/skills/poteto-mode/scripts/orch/store.ts +0 -1677
- package/assets/skills/poteto-mode/scripts/package.json +0 -16
- package/assets/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -224
- package/assets/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -223
- package/assets/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -129
- package/assets/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -436
- package/assets/skills/poteto-mode/scripts/watch-pr/github.ts +0 -718
- package/assets/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -420
- package/assets/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -836
- package/assets/skills/poteto-mode/scripts/watch-pr/render.ts +0 -169
- package/assets/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -13
- package/assets/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -93
- package/assets/skills/poteto-mode/scripts/watch-pr/types.ts +0 -413
- package/assets/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -6
- package/assets/skills/poteto-mode/scripts/worktree-audit.sh +0 -127
- package/assets/skills/show-me-your-work/scripts/log.sh +0 -42
- package/dist/LICENSE +0 -22
- package/dist/README.md +0 -159
- package/dist/assets/agents/comment-sicko.md +0 -32
- package/dist/assets/agents/poteto-agent.md +0 -8
- package/dist/assets/docs/guide/01-setup.md +0 -64
- package/dist/assets/docs/guide/02-poteto-mode.md +0 -139
- package/dist/assets/docs/guide/03-understand.md +0 -79
- package/dist/assets/docs/guide/04-design.md +0 -133
- package/dist/assets/docs/guide/05-build-and-clean.md +0 -83
- package/dist/assets/docs/guide/06-verify-and-ship.md +0 -152
- package/dist/assets/docs/guide/07-overnight.md +0 -122
- package/dist/assets/docs/guide/08-principles.md +0 -72
- package/dist/assets/docs/guide/09-make-it-yours.md +0 -100
- package/dist/assets/docs/guide/10-recipes-and-pitfalls.md +0 -180
- package/dist/assets/docs/guide/README.md +0 -38
- package/dist/assets/docs/harness/dsh.md +0 -65
- package/dist/assets/docs/pstack-models.example.md +0 -23
- package/dist/assets/skills/architect/SKILL.md +0 -81
- package/dist/assets/skills/architect/references/design-red-flags.md +0 -57
- package/dist/assets/skills/architect/references/rationale-template.md +0 -35
- package/dist/assets/skills/architect/references/runner-prompt.md +0 -20
- package/dist/assets/skills/arena/SKILL.md +0 -50
- package/dist/assets/skills/automate-me/SKILL.md +0 -105
- package/dist/assets/skills/benchmark-checklist/SKILL.md +0 -41
- package/dist/assets/skills/blast-radius/SKILL.md +0 -52
- package/dist/assets/skills/bro/SKILL.md +0 -9
- package/dist/assets/skills/correct/SKILL.md +0 -34
- package/dist/assets/skills/create-formal-verification-skill/SKILL.md +0 -43
- package/dist/assets/skills/create-verification-skill/SKILL.md +0 -46
- package/dist/assets/skills/create-verification-skill/references/feature-map-example/README.md +0 -47
- package/dist/assets/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -39
- package/dist/assets/skills/create-verification-skill/references/feature-map-example/search.md +0 -45
- package/dist/assets/skills/figure-it-out/SKILL.md +0 -54
- package/dist/assets/skills/how/SKILL.md +0 -38
- package/dist/assets/skills/how/references/explainer-prompt.md +0 -55
- package/dist/assets/skills/how/references/explorer-prompt.md +0 -35
- package/dist/assets/skills/in-your-own-words/SKILL.md +0 -9
- package/dist/assets/skills/interrogate/SKILL.md +0 -69
- package/dist/assets/skills/interrogate/references/code-quality-review.md +0 -47
- package/dist/assets/skills/interrogate/references/lead-judgment.md +0 -39
- package/dist/assets/skills/interrogate/references/reviewer-prompt.md +0 -62
- package/dist/assets/skills/interrogate/references/rubric.md +0 -77
- package/dist/assets/skills/ketchup/SKILL.md +0 -45
- package/dist/assets/skills/maintain-formal-verification-skill/SKILL.md +0 -60
- package/dist/assets/skills/maintain-verification-skill/SKILL.md +0 -41
- package/dist/assets/skills/no-comments/SKILL.md +0 -26
- package/dist/assets/skills/poteto-help/SKILL.md +0 -161
- package/dist/assets/skills/poteto-help/references/prompting.md +0 -51
- package/dist/assets/skills/poteto-help/references/recipes.md +0 -51
- package/dist/assets/skills/poteto-mode/SKILL.md +0 -153
- package/dist/assets/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -12
- package/dist/assets/skills/poteto-mode/playbooks/autonomous-run.md +0 -13
- package/dist/assets/skills/poteto-mode/playbooks/autopilot-full.md +0 -25
- package/dist/assets/skills/poteto-mode/playbooks/autopilot-stack.md +0 -12
- package/dist/assets/skills/poteto-mode/playbooks/babysit.md +0 -23
- package/dist/assets/skills/poteto-mode/playbooks/bug-fix.md +0 -15
- package/dist/assets/skills/poteto-mode/playbooks/eval.md +0 -25
- package/dist/assets/skills/poteto-mode/playbooks/feature.md +0 -21
- package/dist/assets/skills/poteto-mode/playbooks/hillclimb.md +0 -21
- package/dist/assets/skills/poteto-mode/playbooks/investigation.md +0 -14
- package/dist/assets/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -155
- package/dist/assets/skills/poteto-mode/playbooks/opening-a-pr.md +0 -34
- package/dist/assets/skills/poteto-mode/playbooks/orchestrate.md +0 -112
- package/dist/assets/skills/poteto-mode/playbooks/pause-safely.md +0 -10
- package/dist/assets/skills/poteto-mode/playbooks/perf-issue.md +0 -25
- package/dist/assets/skills/poteto-mode/playbooks/prototype.md +0 -14
- package/dist/assets/skills/poteto-mode/playbooks/refactoring.md +0 -16
- package/dist/assets/skills/poteto-mode/playbooks/runtime-forensics.md +0 -11
- package/dist/assets/skills/poteto-mode/playbooks/session-pickup.md +0 -11
- package/dist/assets/skills/poteto-mode/playbooks/shipping.md +0 -12
- package/dist/assets/skills/poteto-mode/playbooks/trace-forensics.md +0 -14
- package/dist/assets/skills/poteto-mode/playbooks/visual-parity.md +0 -11
- package/dist/assets/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -12
- package/dist/assets/skills/poteto-mode/references/bugbot-triage.md +0 -142
- package/dist/assets/skills/poteto-mode/scripts/bootstrap.ts +0 -62
- package/dist/assets/skills/poteto-mode/scripts/bun.lock +0 -67
- package/dist/assets/skills/poteto-mode/scripts/check-plan.mjs +0 -205
- package/dist/assets/skills/poteto-mode/scripts/check-plan.test.ts +0 -96
- package/dist/assets/skills/poteto-mode/scripts/orch/orch.test.ts +0 -761
- package/dist/assets/skills/poteto-mode/scripts/orch/orch.ts +0 -590
- package/dist/assets/skills/poteto-mode/scripts/orch/store.ts +0 -1677
- package/dist/assets/skills/poteto-mode/scripts/package.json +0 -16
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -224
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -223
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -129
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -436
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/github.ts +0 -718
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -420
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -836
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/render.ts +0 -169
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -13
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -93
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/types.ts +0 -413
- package/dist/assets/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -6
- package/dist/assets/skills/poteto-mode/scripts/worktree-audit.sh +0 -127
- package/dist/assets/skills/principle-attack-the-premise/SKILL.md +0 -23
- package/dist/assets/skills/principle-boundary-discipline/SKILL.md +0 -36
- package/dist/assets/skills/principle-build-the-lever/SKILL.md +0 -26
- package/dist/assets/skills/principle-encode-lessons-in-structure/SKILL.md +0 -13
- package/dist/assets/skills/principle-exhaust-the-design-space/SKILL.md +0 -11
- package/dist/assets/skills/principle-experience-first/SKILL.md +0 -21
- package/dist/assets/skills/principle-explain-the-number/SKILL.md +0 -19
- package/dist/assets/skills/principle-fix-root-causes/SKILL.md +0 -23
- package/dist/assets/skills/principle-foundational-thinking/SKILL.md +0 -23
- package/dist/assets/skills/principle-guard-the-context-window/SKILL.md +0 -14
- package/dist/assets/skills/principle-laziness-protocol/SKILL.md +0 -12
- package/dist/assets/skills/principle-make-operations-idempotent/SKILL.md +0 -24
- package/dist/assets/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -16
- package/dist/assets/skills/principle-minimize-reader-load/SKILL.md +0 -20
- package/dist/assets/skills/principle-model-the-domain/SKILL.md +0 -26
- package/dist/assets/skills/principle-never-block-on-the-human/SKILL.md +0 -17
- package/dist/assets/skills/principle-outcome-oriented-execution/SKILL.md +0 -23
- package/dist/assets/skills/principle-prove-it-works/SKILL.md +0 -24
- package/dist/assets/skills/principle-redesign-from-first-principles/SKILL.md +0 -18
- package/dist/assets/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -18
- package/dist/assets/skills/principle-sequence-verifiable-units/SKILL.md +0 -19
- package/dist/assets/skills/principle-subtract-before-you-add/SKILL.md +0 -20
- package/dist/assets/skills/principle-test-behavior-not-implementation/SKILL.md +0 -22
- package/dist/assets/skills/principle-type-system-discipline/SKILL.md +0 -15
- package/dist/assets/skills/recall/SKILL.md +0 -37
- package/dist/assets/skills/reflect/SKILL.md +0 -70
- package/dist/assets/skills/reflect/references/divergent-reviewer.md +0 -38
- package/dist/assets/skills/reflect/references/judgment-reviewer.md +0 -37
- package/dist/assets/skills/reflect/references/synthesizer.md +0 -56
- package/dist/assets/skills/reflect/references/tooling-reviewer.md +0 -48
- package/dist/assets/skills/setup-pstack/SKILL.md +0 -76
- package/dist/assets/skills/sharpen/SKILL.md +0 -18
- package/dist/assets/skills/show-me-your-work/SKILL.md +0 -84
- package/dist/assets/skills/show-me-your-work/references/decision-log-template.tsv +0 -1
- package/dist/assets/skills/show-me-your-work/scripts/log.sh +0 -42
- package/dist/assets/skills/swarm/SKILL.md +0 -41
- package/dist/assets/skills/tdd/SKILL.md +0 -44
- package/dist/assets/skills/teach/SKILL.md +0 -23
- package/dist/assets/skills/technical-writing/SKILL.md +0 -108
- package/dist/assets/skills/typescript-best-practices/SKILL.md +0 -32
- package/dist/assets/skills/typescript-best-practices/references/patterns.md +0 -328
- package/dist/assets/skills/unslop/SKILL.md +0 -64
- package/dist/assets/skills/why/SKILL.md +0 -100
- package/dist/assets/skills/why/references/epistemics.md +0 -71
- package/dist/assets/skills/why/references/investigator-prompt.md +0 -84
- package/dist/assets/skills/why/references/source-playbook.md +0 -17
- package/dist/assets/skills/why/references/sources/code-archaeology.md +0 -51
- package/dist/assets/skills/why/references/sources/databricks.md +0 -70
- package/dist/assets/skills/why/references/sources/datadog.md +0 -97
- package/dist/assets/skills/why/references/sources/incident-postmortem.md +0 -5
- package/dist/assets/skills/why/references/sources/linear.md +0 -48
- package/dist/assets/skills/why/references/sources/notion.md +0 -55
- package/dist/assets/skills/why/references/sources/sentry.md +0 -66
- package/dist/assets/skills/why/references/sources/slack.md +0 -17
- package/dist/assets/skills/why/references/synthesizer-prompt.md +0 -129
- package/dist/cordis.patch.yml +0 -20
- package/dist/paths-Bbai4CaT.mjs +0 -16
- package/dist/paths-Bbai4CaT.mjs.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
3
|
Copyright (c) 2026 dsh-pstack contributors
|
|
4
|
-
Copyright (c)
|
|
4
|
+
Copyright (c) 2026 Lauren Tan (upstream pstack, https://github.com/cursor/plugins)
|
|
5
5
|
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,159 +1,134 @@
|
|
|
1
1
|
# dsh-pstack
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[`cursor/plugins/pstack`](https://github.com/cursor/plugins/tree/main/pstack).
|
|
3
|
+
<img src="static/icon.png" alt="pstack logo" width="96" height="96">
|
|
5
4
|
|
|
6
|
-
pstack
|
|
7
|
-
task, picks a playbook, and routes the work through the same skills Lauren Tan
|
|
8
|
-
uses at Cursor: investigation, design, implementation, verification, review,
|
|
9
|
-
shipping. This package ports those skills to DSH and gives them a native
|
|
10
|
-
delegation tool.
|
|
5
|
+
pstack 的 DeepSeek Harness 移植。它把 Cursor pstack 的技能、playbook、原则和角色化子代理工作流带到 DSH。
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
tree under `assets/` is generated from it, so upstream fixes flow through a
|
|
14
|
-
repeatable sync instead of a hand fork. The generated tree is committed: it is
|
|
15
|
-
what makes a sync reviewable as a `git diff`.
|
|
7
|
+
安装后,`/poteto-mode` 启动一次严谨任务,`/setup-pstack` 配置各角色使用的模型和推理预算,`/poteto-help` 帮助选择技能或排查用法。
|
|
16
8
|
|
|
17
|
-
##
|
|
9
|
+
## 支持的 DSH 版本
|
|
18
10
|
|
|
19
|
-
|
|
20
|
-
dsh plugin --profile web add github:your-org/dsh-pstack
|
|
21
|
-
```
|
|
11
|
+
支持 `0.2.1-rc.3`。安装包在 `engines.dsh` 声明支持的 DSH 版本,其他版本未经验证。新版本验证通过后补充到本节。
|
|
22
12
|
|
|
23
|
-
|
|
13
|
+
## 实现原理
|
|
24
14
|
|
|
25
|
-
|
|
26
|
-
git submodule update --init --depth 1
|
|
27
|
-
dsh plugin --profile web add .
|
|
28
|
-
```
|
|
15
|
+
上游 pstack 对 Claude Code 的适配保留技能原文,生成独立的宿主资产,再用一份宿主适配说明处理工具、路径、模型和能力差异。
|
|
29
16
|
|
|
30
|
-
|
|
17
|
+
dsh-pstack 沿用这个思路。上游技能是内容源,DSH 专用资产单独生成,宿主差异集中说明。上游更新可以持续同步,DSH 特有的行为不会散落在每个技能里。
|
|
31
18
|
|
|
32
|
-
|
|
33
|
-
in the session catalog with its Cursor invocation policy preserved:
|
|
34
|
-
`/poteto-mode` and friends stay user-invocable, and the principles stay
|
|
35
|
-
model-invocable.
|
|
36
|
-
- `pstack-subagent` registers the `pstack_subagent` tool, the DSH replacement
|
|
37
|
-
for Cursor's `Task` tool.
|
|
19
|
+
## 必要依赖
|
|
38
20
|
|
|
39
|
-
|
|
21
|
+
- worktree 插件。并行写入和隔离工作目录需要它。未启用时插件自动启用,已启用时不会重复启用。
|
|
22
|
+
- DSH 的 skills 和 subagents 能力,由支持的 DSH 版本提供。
|
|
23
|
+
- Node.js `>=22.19`。仅 npm CLI 部署需要它出现在 `PATH` 上;Desktop(Electron)部署走 Host 自己的运行时。
|
|
24
|
+
- Git。worktree 需要 Git 仓库。
|
|
40
25
|
|
|
41
|
-
|
|
42
|
-
dsh --profile web --dump-config | grep -A2 'pstack'
|
|
43
|
-
```
|
|
26
|
+
随包的编排、PR watcher、计划检查、worktree 审计和决策日志脚本已构建为单文件 Node 产物,依赖全部内联。运行时通过 `pstack_script` 工具以宿主进程启动它们,因此**不需要 Bun,也不需要 bash,更不需要安装任何依赖**。Desktop 用户不在 `PATH` 上放 `node` 也能用:工具用 Electron 自带的 Node 运行时执行,并在需要时自动附加 `ELECTRON_RUN_AS_NODE`。脚本从**会话目录**启动,所以参数里的相对路径落在当前工作区或 worktree 内。
|
|
44
27
|
|
|
45
|
-
|
|
28
|
+
`pstack_script` 直接 `spawn` 子进程,因此**不经过命令审批,也不受 DSH 的 sandbox policy 约束**:它只能执行本包随附、由封闭 `id` 枚举选中的脚本,但脚本实际读了什么、写了哪里,Host 不会拦。这是为了在没有 `PATH` `node` 的部署里仍能运行为此付出的代价。需要审批与沙箱约束的命令请用 DSH 自己的 bash 工具。
|
|
46
29
|
|
|
47
|
-
|
|
30
|
+
worktree 只隔离工作目录和分支,不提供 VM、网络、凭据或端口隔离。需要独立机器或云端执行时,worktree 不是替代品。
|
|
48
31
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
32
|
+
Linux 和 macOS 是主要验证目标,Windows 未在实机验证。脚本本身已不含 shell 依赖,但 Windows 上的真实行为仍未验收。
|
|
33
|
+
|
|
34
|
+
## 与 Agent Team 的兼容性
|
|
52
35
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
> **兼容性警告**
|
|
37
|
+
>
|
|
38
|
+
> 当前版本禁止与 Agent Team 同时启用。Agent Team 会用同名工具遮蔽 `send_message`、`interrupt_agent` 和 `list_agents`,pstack 无法再用它们 steer、列出或中断自己的子代理。两者还共享子代理激活容量。`pstack_subagent` 的角色路由和 reasoning effort 计算本身不受影响,但同一 profile 中的 Team 工具会改变可见工具面。
|
|
39
|
+
>
|
|
40
|
+
> 需要同时使用时,请使用两个独立 profile。
|
|
58
41
|
|
|
59
|
-
|
|
60
|
-
[DSH adapter reference](assets/docs/harness/dsh.md).
|
|
42
|
+
决策记录见 [docs/decisions/2026-10-24-no-agent-team-coexistence.md](https://github.com/l246804/dsh-pstack/blob/main/docs/decisions/2026-10-24-no-agent-team-coexistence.md):`docs/` 不在发布包的文件清单里,所以这里用绝对 URL,避免 npm 页面上的相对链接指向不存在的路径。
|
|
61
43
|
|
|
62
|
-
|
|
44
|
+
## 安装
|
|
63
45
|
|
|
64
|
-
|
|
65
|
-
`~/.dsh/pstack-models.md`. One role per line:
|
|
46
|
+
通过 npm 包 `dsh-pstack` 安装。`<profile>` 换成目标 profile,例如 `web`。
|
|
66
47
|
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
# Value: inherit-parent | <provider>/<model> [effort]
|
|
70
|
-
# budget: large (xhigh)
|
|
71
|
-
feature, refactoring: deepseek-official/deepseek-reasoner high
|
|
72
|
-
judgment and prose: inherit-parent
|
|
48
|
+
```bash
|
|
49
|
+
dsh plugin --profile <profile> add dsh-pstack
|
|
73
50
|
```
|
|
74
51
|
|
|
75
|
-
|
|
76
|
-
this file on every delegation, so edits apply without restarting.
|
|
52
|
+
安装会启用 bundle。DSH 提示重启时按提示操作。
|
|
77
53
|
|
|
78
|
-
|
|
54
|
+
## 快速开始
|
|
79
55
|
|
|
80
|
-
|
|
56
|
+
1. 安装插件,进入目标 profile。
|
|
57
|
+
2. 运行 `/setup-pstack`,选择推理预算和每个角色的模型。
|
|
58
|
+
3. 用 `/poteto-mode` 加任务开始一次严谨工作流。
|
|
59
|
+
4. 不确定用哪个技能时,运行 `/poteto-help`。
|
|
81
60
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
role: "feature, refactoring",
|
|
88
|
-
)
|
|
89
|
-
```
|
|
61
|
+
`/poteto-mode` 会匹配 playbook,把步骤写进 todo,并按需读取其他技能。小改动可以直接做,不必使用它。
|
|
62
|
+
|
|
63
|
+
## 角色配置
|
|
64
|
+
|
|
65
|
+
`/setup-pstack` 写入 `$DSH_HOME/pstack-models.md`,一行一个角色。`$DSH_HOME` 是 DSH 的用户目录。值可以是 `inherit-parent`,也可以是 `provider/model` 加推理档位。
|
|
90
66
|
|
|
91
|
-
- `
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
- `cwd`: optional child working directory.
|
|
67
|
+
- `inherit-parent` 使用父会话的模型和推理档位。
|
|
68
|
+
- panel 角色的值是列表,每一项启动一个子代理。
|
|
69
|
+
- 删除某个角色的行,该角色回落到父路由。
|
|
70
|
+
- 重新运行 `/setup-pstack` 会更新配置,不会叠加旧值。
|
|
96
71
|
|
|
97
|
-
|
|
98
|
-
final answer in a completion notice. Use `send_message` to steer a running
|
|
99
|
-
child and `list_agents` to enumerate them.
|
|
72
|
+
模型必须出现在当前 DSH 的 provider 和模型列表中。
|
|
100
73
|
|
|
101
|
-
|
|
74
|
+
### 推理档位
|
|
102
75
|
|
|
103
|
-
|
|
104
|
-
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
105
|
-
| `Task` tool | `pstack_subagent` |
|
|
106
|
-
| `subagent_type` | `agent` |
|
|
107
|
-
| model slug | `role` resolved from `~/.dsh/pstack-models.md` |
|
|
108
|
-
| `readonly` / `run_in_background` / `environment` | Background by default; say "do not edit" in the prompt |
|
|
109
|
-
| `~/.cursor/rules/pstack-models.mdc` | `~/.dsh/pstack-models.md` |
|
|
110
|
-
| `.cursor/skills/` | `.dsh/skills/` |
|
|
111
|
-
| Automations, Bugbot, cloud agents, Custom Modes, `/loop`, `cursor-team-kit` | Marked skipped, or remapped to `schedule_create`, `create_goal`, worktree subagents, and `/no-comments` |
|
|
76
|
+
角色行里的档位是那个角色**起步**用的档位。实际档位随任务难度双向浮动:
|
|
112
77
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
submodule at `upstream/cursor-plugins/pstack/skills/make-bot-ui/`.
|
|
78
|
+
- 调用 `pstack_subagent` 时传 `reasoningEffort`,覆盖本次派发中每个 panel 项的档位。难任务调高,机械活调低。
|
|
79
|
+
- 子代理自己可以调 `set_reasoning_effort`,从下一步生效,已在飞行中的请求不受影响。
|
|
116
80
|
|
|
117
|
-
|
|
81
|
+
合法档位由目标模型自己广告。本包不假设通用阶梯,所以参数是自由字符串而不是枚举。值不被支持时,调用在启动任何子代理**之前**失败,并在错误里列出该模型真实支持的档位。panel 中任一项不支持时整次失败,不会只启动一半。
|
|
118
82
|
|
|
119
|
-
|
|
120
|
-
|
|
83
|
+
|
|
84
|
+
## 功能范围与已知限制
|
|
85
|
+
|
|
86
|
+
包含 55 个技能、23 个 playbook、24 个原则和两个子代理人格。
|
|
87
|
+
|
|
88
|
+
- `make-bot-ui` 不在支持范围。它依赖 Cursor 的 webhook routine 和 secret request,DSH 没有等价闭环。
|
|
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`。
|
|
95
|
+
|
|
96
|
+
## 更新与卸载
|
|
97
|
+
|
|
98
|
+
升级:
|
|
121
99
|
|
|
122
100
|
```bash
|
|
123
|
-
|
|
124
|
-
git submodule update --init --depth 1
|
|
125
|
-
vp run sync # regenerate assets/ from upstream pstack
|
|
126
|
-
vp check # format, lint, type-check
|
|
127
|
-
vp test # unit tests
|
|
128
|
-
vp pack # build dist/
|
|
101
|
+
dsh plugin --profile <profile> add dsh-pstack@latest
|
|
129
102
|
```
|
|
130
103
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
src/subagent.ts pstack_subagent tool (ctx.subagents + ctx.tools)
|
|
136
|
-
src/roles.ts ~/.dsh/pstack-models.md parsing and role resolution
|
|
137
|
-
src/frontmatter.ts SKILL.md frontmatter parser
|
|
138
|
-
scripts/adapt.ts upstream-to-DSH rewrite rules
|
|
139
|
-
scripts/sync-upstream.ts generator: upstream -> assets/
|
|
140
|
-
tests/ unit tests for provider, roles, and prompt assembly
|
|
141
|
-
assets/ generated: skills, agents, docs (committed)
|
|
142
|
-
cordis.patch.yml the bundle layer this package installs
|
|
143
|
-
upstream/cursor-plugins git submodule, upstream reference only
|
|
104
|
+
卸载:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
dsh plugin --profile <profile> remove dsh-pstack
|
|
144
108
|
```
|
|
145
109
|
|
|
146
|
-
|
|
147
|
-
|
|
110
|
+
角色文件在 DSH 用户目录,卸载不会删除它。不再使用时自行删除 `$DSH_HOME/pstack-models.md`。升级或卸载后按 DSH 提示重启会话。
|
|
111
|
+
|
|
112
|
+
## 安全与数据
|
|
113
|
+
|
|
114
|
+
- 代理在 DSH 权限模型下读写文件、执行命令,子代理继承调用方的策略和权限边界。
|
|
115
|
+
- 需要审批的操作按 DSH 配置请求确认。不要在无人值守任务中放宽不理解的权限。
|
|
116
|
+
- 不要把 API key、token 或密码写进角色文件、prompt 或仓库。
|
|
117
|
+
- 会话记录保存在 DSH 的会话存储中,pstack 不另建云端记录。
|
|
118
|
+
- 上游技能可能要求访问网络或代码托管平台。是否允许由 DSH 的审批和沙箱配置决定。
|
|
119
|
+
|
|
120
|
+
## 故障排查
|
|
121
|
+
|
|
122
|
+
按顺序检查。
|
|
148
123
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
124
|
+
1. 确认 DSH 版本在支持范围内。
|
|
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 名、复现步骤和错误信息。不要贴密钥或私有会话内容。
|
|
152
129
|
|
|
153
|
-
|
|
154
|
-
conversion and when a rewrite no longer matches its upstream anchor. Run it
|
|
155
|
-
before publishing.
|
|
130
|
+
## 许可证与上游归属
|
|
156
131
|
|
|
157
|
-
|
|
132
|
+
MIT,见 [LICENSE](LICENSE)。
|
|
158
133
|
|
|
159
|
-
|
|
134
|
+
上游 pstack 版权归 Lauren Tan,使用 MIT 许可证。技能、playbook 和代理文本来自 [cursor/plugins](https://github.com/cursor/plugins/tree/main/pstack)。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: poteto-agent
|
|
3
|
-
description:
|
|
3
|
+
description: Delegate subagent for code-writing and helper tasks spawned during a `/poteto-mode` run. Use for delegates, not as the runner for `/poteto-mode` itself. Spawn a fresh `poteto-agent` for each new task, and resume one only in the strict cases that poteto-mode's Subagents section names. Reads the `poteto-mode` skill's `SKILL.md` in full before any work, including its inline Principles index. Substituting `general` skips that read and drifts.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Poteto subagent
|
|
7
7
|
|
|
8
|
-
You are operating as poteto-mode's full agent style. The chat that receives `/poteto-mode` owns the playbook, the todo list, and every `pstack_subagent` spawn. 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.
|
|
8
|
+
You are operating as poteto-mode's full agent style. The chat that receives `/poteto-mode` owns the playbook, the todo list, and every `pstack_subagent` spawn. 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. `pstack_subagent` injects that absolute path into your brief. Use the path it gave you and read the file there. Your skill catalog also hides this skill, so a missing catalog entry does not mean pstack is absent. If the brief gave no path and you cannot read the file, stop and tell your parent. Navigate to a leaf `principle-*` skill whenever you apply that principle.
|
|
@@ -4,13 +4,13 @@ In this page you install the plugin, pick which models pstack uses, and run your
|
|
|
4
4
|
|
|
5
5
|
## Install the plugin
|
|
6
6
|
|
|
7
|
-
Install the bundle into
|
|
7
|
+
Install the bundle into the profile you work in. `<profile>` is that profile's name, such as `web`:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
dsh plugin --profile
|
|
10
|
+
dsh plugin --profile <profile> add dsh-pstack
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
DSH reports whether the bundle still has to be enabled and whether the change needs a new Session. Follow that prompt, and expect the skill catalog and `pstack_subagent` to load only after it.
|
|
14
14
|
|
|
15
15
|
## Pick your models
|
|
16
16
|
|
|
@@ -20,13 +20,13 @@ Run:
|
|
|
20
20
|
/setup-pstack
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
[`/setup-pstack`](../../skills/setup-pstack/SKILL.md) detects the models you have access to, asks for a reasoning budget, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes
|
|
23
|
+
[`/setup-pstack`](../../skills/setup-pstack/SKILL.md) detects the models you have access to, asks for a reasoning budget, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes `$DSH_HOME/pstack-models.md`, the small file every pstack skill reads.
|
|
24
24
|
|
|
25
|
-
The defaults
|
|
25
|
+
The skill defaults target `xhigh` reasoning, the same as the `large` budget. `unlimited` targets `max`; `medium` targets `high`, and `small` targets `medium`. Each target is applied only to a route you explicitly choose: use it when that model advertises it, otherwise use the highest advertised effort at or below the target. If the model advertises none, `/setup-pstack` asks you to choose instead of inventing an effort. The adapter's list decides, not the model's brand. A role set to `inherit-parent` or `auto` has no route-specific effort to change.
|
|
26
26
|
|
|
27
|
-
You only override what you care about. A role with no line in the
|
|
27
|
+
You only override what you care about. A role with no line in the file keeps the skill's default. To restore a default, delete that role's line. A rerun of `/setup-pstack` keeps any role whose model differs from the default. When a default changes, a file written before the change still pins the old default, so delete those role lines, or delete the file, then run `/setup-pstack` again.
|
|
28
28
|
|
|
29
|
-
`inherit-parent`
|
|
29
|
+
You might be wondering what happens if you use Auto. Set a role to `inherit-parent` or `auto` and pstack sends no explicit `agentOptions` for that child, so DSH resolves it on the parent chat route. Both values mean the same thing, and neither is a model slug. For a panel role the value is a list, and one subagent runs per entry, so the list length sets the panel size. Setup also configures `swarm workers`, the default model for every `/swarm` worker unless a race names a model for each arm.
|
|
30
30
|
|
|
31
31
|
## Accept the verification offers, or don't
|
|
32
32
|
|
|
@@ -38,7 +38,7 @@ If you're new to pstack, say yes. An agent that can check its own work keeps goi
|
|
|
38
38
|
|
|
39
39
|
Then setup offers once to generate a formal verification skill with [`/create-formal-verification-skill`](../../skills/create-formal-verification-skill/SKILL.md), unless the project already has one. Tests check the cases someone thought to write. A formal verification skill checks one key property of your code, such as "a job never runs twice at once", in every case within a stated scope. Say yes when your code has concurrency, retries, a state machine, or a parser, where a bug is costly and tests rarely reach the case that breaks. Otherwise say no, and run it later if that changes. [Verify and ship](./06-verify-and-ship.md#prove-a-property-with-a-formal-verification-skill) covers it.
|
|
40
40
|
|
|
41
|
-
After setup
|
|
41
|
+
After setup the file applies from the next delegation on, because `pstack_subagent` re-reads it every time.
|
|
42
42
|
|
|
43
43
|
## Keep the cost in check
|
|
44
44
|
|
|
@@ -59,6 +59,6 @@ Pick something real but small, and describe it the way you'd describe it to a co
|
|
|
59
59
|
|
|
60
60
|
Watch the todo list. Its first items are the matched playbook's steps copied in, the Feature playbook for this prompt. If `/poteto-mode` skips a step, the step stays in the list with `skip: <reason>`, so you can see what it chose not to do.
|
|
61
61
|
|
|
62
|
-
From here you can type normal follow-ups.
|
|
62
|
+
From here you can type normal follow-ups. `/poteto-mode` attaches to the task that invoked it and does not carry over to the next one, so start each new task by typing it again. There is no persistent mode and no keyboard shortcut that keeps it on: this host has neither, and a skill that should apply again has to be invoked again.
|
|
63
63
|
|
|
64
64
|
Next: [Route work through `/poteto-mode`](./02-poteto-mode.md).
|
|
@@ -90,7 +90,7 @@ continue
|
|
|
90
90
|
keep going until done
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
Short works because the playbook holds the structure, and `/poteto-mode`
|
|
93
|
+
Short works because the playbook holds the structure, and `/poteto-mode` attaches to the task that invoked it. Nothing keeps the skill in context after that task, so type it again for each new one; [set up pstack](./01-setup.md) shows a first task. Your words carry the intent, and the skill carries the rigor.
|
|
94
94
|
|
|
95
95
|
## Switch tasks with "new task"
|
|
96
96
|
|
|
@@ -102,11 +102,11 @@ A long chat accumulates context from the last task. When you change subjects, sa
|
|
|
102
102
|
|
|
103
103
|
"new task" tells `/poteto-mode` to re-match rather than continue the prior playbook. "don't change any code yet" pins this one to Investigation. Without those two phrases, a mode mid-Feature tends to treat your question as the next feature step.
|
|
104
104
|
|
|
105
|
-
## Give parallel work its own
|
|
105
|
+
## Give parallel work its own worktree
|
|
106
106
|
|
|
107
|
-
If you run several agents against one repository on one computer, they will fight over the working tree, the ports, and the build output.
|
|
107
|
+
If you run several agents against one repository on one computer, they will fight over the working tree, the ports, and the build output. There is no cloud machine and no VM here: every agent is a local child of this Session and ends when the host process ends. What you can give each writer is its own working directory and branch, through the official worktree rows this bundle mounts, so ask for a `create_worktree` checkout per writer and pass its absolute path as that child's `cwd`. Ports, caches, credentials, and services stay shared, so run one app instance and one heavy build at a time.
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
Ask for a worktree up front:
|
|
110
110
|
|
|
111
111
|
```text
|
|
112
112
|
/poteto-mode new task. branch off <base> in a fresh worktree, then port the parser change there.
|
|
@@ -56,7 +56,7 @@ In context, that's enough. [`/tdd`](../../skills/tdd/SKILL.md) writes the smalle
|
|
|
56
56
|
|
|
57
57
|
## Clean before you commit
|
|
58
58
|
|
|
59
|
-
The [Opening a PR playbook](../../skills/poteto-mode/playbooks/opening-a-pr.md)
|
|
59
|
+
The [Opening a PR playbook](../../skills/poteto-mode/playbooks/opening-a-pr.md) reads the diff for narrative comments, unsupported guards, dead compatibility paths, and unrelated edits before each commit, and applies [`/unslop`](../../skills/unslop/SKILL.md) to the PR description and commit bodies. `/deslop` ships in Cursor's `cursor-team-kit` and has no counterpart here. Ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits.
|
|
60
60
|
|
|
61
61
|
For prose, `/unslop` takes a target and any extra rules you have:
|
|
62
62
|
|
|
@@ -76,8 +76,8 @@ Comments need their own pass, and not from the agent that wrote them. An author
|
|
|
76
76
|
|
|
77
77
|
[`/no-comments`](../../skills/no-comments/SKILL.md) spawns [Comment Sicko](../../agents/comment-sicko.md), a read-only reviewer with a short keep list: license headers, doc comments on a public API, links that explain what code can't, behavior forced by an external dependency you can't reshape. Everything else goes. A surprise in your own code gets no such pass. The comment comes back as a refactor flag, and `/no-comments` fixes the flags it accepts at the root cause. When a comment claims a constraint, "do not remove", the skill offers to encode the claim as a type, test, or lint. Either way, the comment comes out.
|
|
78
78
|
|
|
79
|
-
The division of labor is worth keeping straight. The
|
|
79
|
+
The division of labor is worth keeping straight. The diff read-through and `/no-comments` clean the code, `/unslop` cleans slop out of prose, and `/no-comments` hands the comments to a reviewer who didn't write them.
|
|
80
80
|
|
|
81
|
-
**Pitfall:** cleanup is not optional polish. A diff with narrating comments and defensive dead weight reads as unfinished to reviewers, and the extra code is where the next bug hides. If the diff feels padded, say `
|
|
81
|
+
**Pitfall:** cleanup is not optional polish. A diff with narrating comments and defensive dead weight reads as unfinished to reviewers, and the extra code is where the next bug hides. If the diff feels padded, say `deslop it` before you commit, not after review calls it out.
|
|
82
82
|
|
|
83
83
|
Next: [Verify and ship](./06-verify-and-ship.md).
|
|
@@ -19,7 +19,7 @@ Now the agent has three checks it can run, not a mood to satisfy. When the reply
|
|
|
19
19
|
Match the check to the change:
|
|
20
20
|
|
|
21
21
|
- A CLI change runs the real command.
|
|
22
|
-
- A UI change walks the changed flow in the running app. When it must match a reference pixel for pixel, the [Visual parity playbook](../../skills/poteto-mode/playbooks/visual-parity.md)
|
|
22
|
+
- A UI change walks the changed flow in the running app. When it must match a reference pixel for pixel, the [Visual parity playbook](../../skills/poteto-mode/playbooks/visual-parity.md) requires a real image comparison against a frozen baseline, not judgment by eye. Name the comparison tool and the per-image delta it reports; this package does not supply one. If it is unavailable, mark parity unverified rather than claiming a match.
|
|
23
23
|
- A parser or migration replays a saved input.
|
|
24
24
|
- A perf change compares before and after profiles.
|
|
25
25
|
- A storage change reads back the written value.
|
|
@@ -85,7 +85,7 @@ While you're there, make the dev setup repeatable too: seeded data, test users,
|
|
|
85
85
|
|
|
86
86
|
## Keep the verification skill honest
|
|
87
87
|
|
|
88
|
-
Apps change, and feature maps go out of date. Run this at least once a day, ideally from a
|
|
88
|
+
Apps change, and feature maps go out of date. Run this at least once a day, ideally from a cron job or a `schedule_create` reminder hoisted by the top-level agent, so nobody has to remember:
|
|
89
89
|
|
|
90
90
|
```text
|
|
91
91
|
/maintain-verification-skill
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Run work while you sleep
|
|
2
2
|
|
|
3
|
-
This is the payoff for everything before it. An agent you can trust to verify its own work is an agent you can leave alone with a hard task. What makes that safe isn't hope. It's a checkable finish condition,
|
|
3
|
+
This is the payoff for everything before it. An agent you can trust to verify its own work is an agent you can leave alone with a hard task. What makes that safe isn't hope. It's a checkable finish condition, a goal that carries the run, an isolated worktree, and a decision log you audit in the morning.
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ This is the payoff for everything before it. An agent you can trust to verify it
|
|
|
9
9
|
A loop you don't trust just produces unchecked work faster, and the mess compounds with every iteration. Before you leave one running, check that it has earned it:
|
|
10
10
|
|
|
11
11
|
- You've done the task once by hand, or watched an agent do it, so you know what good looks like.
|
|
12
|
-
- The agent has the tools and signals you'd use yourself: the verification skill, the profiler, the
|
|
12
|
+
- The agent has the tools and signals you'd use yourself: the verification skill and the logs, plus the profiler or tracer this task actually needs. Check that it can capture the real artifact; if it cannot, report the missing measurement rather than treating the task as verified.
|
|
13
13
|
- Every stage proves its work and can stop the line when the work misses the bar.
|
|
14
14
|
- You've read a few transcripts and turned the repeated failures into tools, skills, or checks.
|
|
15
15
|
|
|
@@ -23,7 +23,7 @@ A good handoff has the goal, the finish condition, permissions, and an escape ha
|
|
|
23
23
|
/poteto-mode im going to bed. migrate every caller to the new parser in a fresh worktree off <base>.
|
|
24
24
|
done means zero old callers, all parser fixtures pass, old api deleted.
|
|
25
25
|
keep a decision log. don't ask me before committing.
|
|
26
|
-
|
|
26
|
+
register the predicate as a goal and keep going until it holds. if you're truly stuck after a few hours, stop and write up why.
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Walk through what each line buys you:
|
|
@@ -32,12 +32,12 @@ Walk through what each line buys you:
|
|
|
32
32
|
- "done means..." turns the goal into checks every iteration can run.
|
|
33
33
|
- "fresh worktree off `<base>`" keeps the run from colliding with anything else you have open.
|
|
34
34
|
- "don't ask me before committing" pre-answers the permission the agent would otherwise block on.
|
|
35
|
-
- `
|
|
35
|
+
- "register the predicate as a goal" maps to `create_goal`. The goal is what survives a long run, and it is what the [Autonomous run playbook](../../skills/poteto-mode/playbooks/autonomous-run.md) drives: `get_goal` reads the phase back, `update_goal` with `complete` ends it, and a `schedule_create` reminder can only act as a heartbeat, because it delivers a message into this Session and cannot watch CI or a pull request.
|
|
36
36
|
- The escape hatch lets it stop at a genuine dead end and write up why, which beats eight hours of creative goal reinterpretation.
|
|
37
37
|
|
|
38
38
|
Because you'll review this work after stepping away, `/poteto-mode` routes it through [`/figure-it-out`](../../skills/figure-it-out/SKILL.md), which designs the run's phases before any code and wires in the decision log.
|
|
39
39
|
|
|
40
|
-
To stop a run on purpose, tell the agent to pause, or that you're about to go offline
|
|
40
|
+
To stop a run on purpose, tell the agent to pause, or that you're about to go offline. Closing this host ends every child and leaves nothing running in the background, and an active goal comes back disarmed, so a restarted Session has to be resumed on purpose instead of continuing by itself. The [Pause safely playbook](../../skills/poteto-mode/playbooks/pause-safely.md) finishes or backs out of the current step, commits a work-in-progress checkpoint, and writes a resume note. A fresh chat picks the work up from that note through the Session pickup playbook. Saying "keep going" never triggers a pause.
|
|
41
41
|
|
|
42
42
|
## What the loop does all night
|
|
43
43
|
|
|
@@ -93,12 +93,12 @@ The contract above drives one task to one finish condition. Some nights hold mor
|
|
|
93
93
|
|
|
94
94
|
## Run many projects in parallel
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
There is no managed thread and no remote machine here, so a program runs in one long-lived Session on this computer and stops when that Session stops. The coordinator still doesn't write code. It directs `pstack_subagent` children, each in its own worktree, and it keeps its state in the store on disk, which is what lets a cold start pick the program up. That is the shape the Orchestrate playbook expects. Start every prompt to the coordinator with `/poteto-mode`, and the children it starts follow the playbooks.
|
|
97
97
|
|
|
98
98
|
A few habits help:
|
|
99
99
|
|
|
100
|
-
- Give each body of work its own
|
|
101
|
-
-
|
|
100
|
+
- Give each body of work its own store directory, such as a feature, a migration, a perf push, or a tech-debt cleanup. Several can run side by side in separate Sessions.
|
|
101
|
+
- Point each new Session at the finished runs it needs, because a child does not inherit another Session's context and a brief is the only thing it starts from.
|
|
102
102
|
- Give each PR a verification swarm before it merges, and let Autopilot-stack or Autopilot-full carry the queue.
|
|
103
103
|
- Ask the coordinator for a plan backed by data, and have it answer open questions with prototypes before it asks you.
|
|
104
104
|
|
|
@@ -110,13 +110,11 @@ One prompt can carry a whole Project, from research through execution:
|
|
|
110
110
|
|
|
111
111
|
## Let loops start themselves
|
|
112
112
|
|
|
113
|
-
Every loop above still waits for you to start it. A
|
|
113
|
+
Every loop above still waits for you to start it. A reminder on a wall clock can begin the next pass, and that is the whole of it: `schedule_create` delivers a follow-up into the Session that created it, cannot watch a report arrive or a pull request change, and refuses a delegated caller. Software maintenance splits into stages that suit this well: triage a report, reproduce it, fix it, verify the fix. Two rules keep such a line trustworthy:
|
|
114
114
|
|
|
115
115
|
- Every stage can stop the line. Triage can decide the report is expected behavior, repro can fail to reproduce it, and the fixer can judge the change too risky. Each of those outcomes is useful, because it keeps bad work from reaching the next stage, where it costs more to undo.
|
|
116
116
|
- Every stage hands over evidence. Repro attaches screenshots and video of the broken state, and the fix attaches before-and-after proof. A human can then check that the agent fixed the right thing before reading a line of code.
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
**Pitfall:** a duration is not a finish condition. "work on this for 4 hours" gives the agent nothing to check, and you'll wake up to four hours of motion instead of a result. Give the wake prompt a predicate that can pass or fail.
|
|
118
|
+
**Pitfall:** a duration is not a finish condition. "work on this for 4 hours" gives the agent nothing to check, and you'll wake up to four hours of motion instead of a result. Give the goal a predicate that can pass or fail.
|
|
121
119
|
|
|
122
120
|
Next: [Steer with principle names](./08-principles.md).
|
|
@@ -10,7 +10,7 @@ Start smaller than you think. You don't need many skills on day one, or even thi
|
|
|
10
10
|
/automate-me
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
You don't describe your style, because [`/automate-me`](../../skills/automate-me/SKILL.md) reads it out of your history.
|
|
13
|
+
You don't describe your style, because [`/automate-me`](../../skills/automate-me/SKILL.md) reads it out of your history. Through `pstack_history` it reads this Session and its reviewable direct children as raw events, and it covers other Sessions in the same workspace with the official search, looking for repeated preferences in how you like replies, delegation, verification, code, prose, and process, then asks you which patterns are really you. It drafts `.dsh/skills/<your-name>-mode/SKILL.md` with the authoring playbook, runs the draft through [`/unslop`](../../skills/unslop/SKILL.md), and opens a PR from a worktree so you review it like any other change.
|
|
14
14
|
|
|
15
15
|
Run it again whenever your habits drift:
|
|
16
16
|
|
|
@@ -57,7 +57,7 @@ When you already know the workflow you want to capture:
|
|
|
57
57
|
/poteto-mode write a skill for verifying database migrations in this repo
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
Writing a skill matches the [Authoring or modifying a skill playbook](../../skills/poteto-mode/playbooks/authoring-a-skill.md), which
|
|
60
|
+
Writing a skill matches the [Authoring or modifying a skill playbook](../../skills/poteto-mode/playbooks/authoring-a-skill.md), which writes the `SKILL.md` by hand, validates the frontmatter, links, and structure with this package's own checks, and ships the result through the Opening a PR playbook. Agent-facing prose has a higher bar than human prose, because an unhelpful sentence becomes an instruction some future agent follows. Let the playbook hold that bar rather than writing a `SKILL.md` freehand.
|
|
61
61
|
|
|
62
62
|
Two special cases have their own generators. A skill that must drive your app and prove behavior is a verification skill, so use [`/create-verification-skill`](../../skills/create-verification-skill/SKILL.md) and [`/maintain-verification-skill`](../../skills/maintain-verification-skill/SKILL.md) instead. A skill that checks a property of your code with a model checker, a proof, or another verifier is a formal verification skill, so use [`/create-formal-verification-skill`](../../skills/create-formal-verification-skill/SKILL.md) and [`/maintain-formal-verification-skill`](../../skills/maintain-formal-verification-skill/SKILL.md). [Verify and ship](./06-verify-and-ship.md#prove-a-property-with-a-formal-verification-skill) covers both kinds.
|
|
63
63
|
|
|
@@ -91,10 +91,6 @@ The [Eval playbook](../../skills/poteto-mode/playbooks/eval.md) is built around
|
|
|
91
91
|
|
|
92
92
|
Read every output yourself before accepting the verdict. If you disagree with the judge, suspect the rubric before you suspect your judgment.
|
|
93
93
|
|
|
94
|
-
## One skill is deliberately not ported
|
|
95
|
-
|
|
96
|
-
`/make-bot-ui` is not ported. It depends on Cursor Automations, which DSH does not provide. Copy it from the upstream submodule if you need it.
|
|
97
|
-
|
|
98
94
|
**Pitfall:** don't edit a skill mid-task because it's misbehaving. Fix it in its own PR and keep the task moving. A skill edit that ships tangled into feature work is invisible to review and impossible to evaluate.
|
|
99
95
|
|
|
100
96
|
Next: [Recipes and pitfalls](./10-recipes-and-pitfalls.md).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Prompts worth copying, then the mistakes everyone makes once. Swap in your own paths and finish conditions. The recipes are deliberately informal. That's how they get typed in practice, and the skills read intent fine.
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|
|
|
7
7
|
## Understand an unfamiliar subsystem
|
|
8
8
|
|
|
@@ -161,11 +161,11 @@ That's the whole prompt. [`/bro`](../../skills/bro/SKILL.md) restates the last m
|
|
|
161
161
|
## The pitfalls
|
|
162
162
|
|
|
163
163
|
- **Enumerating skills in the prompt.** "use /how then /architect then /arena" reorders steps the playbook already sequences. State the goal and constraints. Name a skill only to override a default.
|
|
164
|
-
- **A vague finish condition.** "make it better" gives
|
|
164
|
+
- **A vague finish condition.** "make it better" gives a goal nothing to check. Give a command or artifact that can pass or fail.
|
|
165
165
|
- **Leading with your theory of the cause.** The agent searches wherever you pointed. Ask it to restate the problem first, then share your hunch.
|
|
166
166
|
- **Taking the first design.** One attempt locks in the first shape the model thought of. Ask for prototypes or `/architect` and pick from evidence.
|
|
167
167
|
- **Polishing an abstract plan.** Adversarial review of a plan with no code behind it invents risks that will never happen. Settle the open questions with prototypes, then review what got built.
|
|
168
|
-
- **Parallel agents in one worktree.** They overwrite each other, and nobody can tell which agent changed what.
|
|
168
|
+
- **Parallel agents in one worktree.** They overwrite each other, and nobody can tell which agent changed what. Say "own worktree per attempt", and pass each child its checkout's absolute path as `cwd`, because a shared checkout isolates nothing.
|
|
169
169
|
- **Looping before you trust the loop.** A loop that can't verify its own work only makes unchecked work faster. Get the verification skill working first.
|
|
170
170
|
- **Trusting an unvetted number.** A warm cache or a skipped code path can fake a speedup. Run `/benchmark-checklist` before the number goes anywhere.
|
|
171
171
|
- **Correcting the same mistake by hand.** A correction in chat helps one run. `/correct` fixes the repo so no later run repeats it.
|
|
@@ -10,7 +10,7 @@ Here's what you'll learn:
|
|
|
10
10
|
4. [Design the change](./04-design.md). `/architect`, `/arena`, `/swarm`, `/interrogate`, prototypes, and plans before code locks in a shape.
|
|
11
11
|
5. [Build and clean the change](./05-build-and-clean.md). The build playbooks, `/tdd`, `/unslop`, and `/no-comments`.
|
|
12
12
|
6. [Verify and ship](./06-verify-and-ship.md). Prove behavior on the real app, formally verify what tests rarely reach, vet numbers with `/benchmark-checklist`, then open a focused PR and drive it to merged.
|
|
13
|
-
7. [Run work while you sleep](./07-overnight.md). Trust before
|
|
13
|
+
7. [Run work while you sleep](./07-overnight.md). Trust before long runs, an overnight contract, a decision log you can audit, and goals, reminders, and worktrees that carry a run past one agent.
|
|
14
14
|
8. [Steer with principle names](./08-principles.md). The 24 names that redirect an agent mid-task.
|
|
15
15
|
9. [Make it yours](./09-make-it-yours.md). Your own mode, `/correct` for repeated mistakes, and how to test a skill change.
|
|
16
16
|
10. [Recipes and pitfalls](./10-recipes-and-pitfalls.md). Prompts to copy and mistakes to skip.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|