From a73e64548e1638b758b531063d3ca3d5eb90e1f2 Mon Sep 17 00:00:00 2001 From: Kaitian Xie Date: Tue, 27 Oct 2026 09:31:53 +0800 Subject: [PATCH] fix(pstack): treat the bundled companion skills as always available deslop, control-cli, and control-ui now ship with the bundle, so the steps that call them no longer need the "when installed" wording or a manual fallback. Add the three to the poteto-help table, credit cursor-team-kit 1.2.0 in the README and AGENTS.md, and bump the port to 0.15.34. --- .agents/skills/poteto-help/SKILL.md | 3 +++ .agents/skills/poteto-mode/SKILL.md | 4 ++-- .agents/skills/poteto-mode/playbooks/autopilot-full.md | 4 ++-- .agents/skills/poteto-mode/playbooks/multi-phase-plan.md | 8 ++++---- .agents/skills/poteto-mode/playbooks/opening-a-pr.md | 4 ++-- .agents/skills/poteto-mode/playbooks/orchestrate.md | 2 +- .agents/skills/poteto-mode/playbooks/shipping.md | 2 +- AGENTS.md | 2 +- README.md | 2 ++ package-lock.json | 4 ++-- package.json | 2 +- plugin.json | 2 +- 12 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.agents/skills/poteto-help/SKILL.md b/.agents/skills/poteto-help/SKILL.md index b789a43..c9a0752 100644 --- a/.agents/skills/poteto-help/SKILL.md +++ b/.agents/skills/poteto-help/SKILL.md @@ -77,10 +77,13 @@ The default answer is `/poteto-mode`, which runs most of the others when its ste | Have independent reviewers, on different routes when configured, try to break a diff | [`/interrogate`](../interrogate/SKILL.md) | | Fix a bug test-first when a cheap local test exists | [`/tdd`](../tdd/SKILL.md) | | Apply TypeScript rules to `.ts` or `.tsx` work | [`/typescript-best-practices`](../typescript-best-practices/SKILL.md) | +| Remove AI-generated code slop and clean up code style before commit | [`/deslop`](../deslop/SKILL.md) | | Strip comments before review, using a reviewer that didn't write them | [`/no-comments`](../no-comments/SKILL.md) | | Clean AI tells out of prose | [`/unslop`](../unslop/SKILL.md) | | Write docs, an RFC, a README, a PR description, or a commit message to a standard | [`/technical-writing`](../technical-writing/SKILL.md) | | Hear the last reply again in plain words | [`/bro`](../bro/SKILL.md) | +| Drive, inspect, and profile an interactive CLI or TUI locally | [`/control-cli`](../control-cli/SKILL.md) | +| Drive and inspect a web, IDE, or Electron UI with a local browser/CDP harness | [`/control-ui`](../control-ui/SKILL.md) | | Give agents a scripted way to drive the app and prove behavior | [`/create-verification-skill`](../create-verification-skill/SKILL.md) | | Bring a verification skill and its feature map back in line with the app | [`/maintain-verification-skill`](../maintain-verification-skill/SKILL.md) | | Formally verify a race, invariant, or other property that tests rarely reach | [`/create-formal-verification-skill`](../create-formal-verification-skill/SKILL.md) | diff --git a/.agents/skills/poteto-mode/SKILL.md b/.agents/skills/poteto-mode/SKILL.md index 917322e..83fbf30 100644 --- a/.agents/skills/poteto-mode/SKILL.md +++ b/.agents/skills/poteto-mode/SKILL.md @@ -26,9 +26,9 @@ Remaining triggers: - Nontrivial multi-step → write the throughput checkpoint (Feature step 3). - Any prose surface, your reply to the user included → the **unslop** skill. Write the reply per **Writing the reply**. Agent-facing prose also follows the **authoring-a-skill** playbook (`playbooks/authoring-a-skill.md`). - Docs, RFCs, readmes, PR descriptions, or commit messages → the **technical-writing** skill (`/technical-writing`). -- Before commit → the `deslop` skill when it is installed (`/deslop`). If it is not, do the slop-strip pass yourself and say so. +- Before commit → the `deslop` skill (`/deslop`). - Before review → the **no-comments** skill (`/no-comments`). -- Shipping UI / IDE / CLI → the matching control skill when installed (`control-cli` for CLIs and TUIs, `control-ui` for browser / Electron / web UIs). For bug fixes, reproduce first on the same surface yourself. Hand to the user only under the narrow Bug fix step 1 exception. +- Shipping UI / IDE / CLI → the matching control skill (`control-cli` for CLIs and TUIs, `control-ui` for browser / Electron / web UIs). For bug fixes, reproduce first on the same surface yourself. Hand to the user only under the narrow Bug fix step 1 exception. - Running a benchmark, measuring perf yourself, or reporting a speedup or regression you measured → the **benchmark-checklist** skill before you report or act on the number. - Any PR-status request ("babysit this", "get it green", "address the bot comments", and most often "check on PR X" or "anything outstanding on X") → the **Babysit** playbook (`playbooks/babysit.md`), not a generic PR skill whose description matches the same words. Never triggered by merely opening a PR. Declare its mode before polling. The playbook's step 1 owns the request-to-mode mapping. Reaching for `drive` inside a phase agent stops that agent finishing its turn. - Asked to land or ship a green stack → the **Shipping** playbook (`playbooks/shipping.md`). Green is not safe. Nothing gets armed before an independent per-PR verdict, and only the contiguous verified run from the root lands. diff --git a/.agents/skills/poteto-mode/playbooks/autopilot-full.md b/.agents/skills/poteto-mode/playbooks/autopilot-full.md index 3131145..e4fe3f0 100644 --- a/.agents/skills/poteto-mode/playbooks/autopilot-full.md +++ b/.agents/skills/poteto-mode/playbooks/autopilot-full.md @@ -7,11 +7,11 @@ A verdict covers one patch and green CI covers one head. Step 4 runs a full swar 1. **The operator's gates come first.** The grant covers only the queue's items, so items the operator names as theirs and PRs outside the queue stop at merge-ready. A request to state the plan is not a go. 2. **Spawn one owner per PR, and keep its work where a replacement can find it.** Resolve the forge once for the program. GitHub CLI (`gh`) is the default. If `command -v origin` succeeds and Origin can resolve the repository, use `origin pr` for every PR operation. Otherwise stay on `gh` and record the fallback. Never require Graphite (`gt`). Each owner is a `subagent` with its own git worktree passed as `cwd`, that builds, opens its PR per `playbooks/opening-a-pr.md`, proves the change on the real artifact, babysits to green per `playbooks/babysit.md`, and merges once steps 4 and 5 clear it. - Open the PR early so CI and bots run alongside the work. The code is ready only after the slop-strip (`/deslop` when installed) and the `/no-comments` pass, so the full swarm runs on finished code. Then rebase onto current trunk and report the code-ready head before self-proof, so verification runs on the base the patch lands on. Report every later head, and merge-ready once self-proof, CI, and babysit are done. Fix rounds stay on that base unless trunk conflicts or breaks CI, because each rebase restarts CI. Run the repo's checks for the touched paths on the committed head before the code-ready push and before a later push that needs a verifier. + Open the PR early so CI and bots run alongside the work. The code is ready only after the slop-strip (`/deslop`) and the `/no-comments` pass, so the full swarm runs on finished code. Then rebase onto current trunk and report the code-ready head before self-proof, so verification runs on the base the patch lands on. Report every later head, and merge-ready once self-proof, CI, and babysit are done. Fix rounds stay on that base unless trunk conflicts or breaks CI, because each rebase restarts CI. Run the repo's checks for the touched paths on the committed head before the code-ready push and before a later push that needs a verifier. Assume the child dies. Soon after starting, push and start a decision trail in `.orchestrate//` at the repo root per the **show-me-your-work** skill, then push after every unit worth keeping. Whoever spawns a subagent records its id, state, and a stuck-after runtime from past runs of its kind in that store, so the root can probe it if the parent dies. Force-push only your own branch, with `--force-with-lease` pinned to the SHA you last pushed or took over, and on any push you did not make, stop and report to the root. 3. **Run owners in parallel off trunk, never stacked,** so each PR lands on its own. -4. **Swarm-verify once.** A full swarm runs once, at the code-ready head. Another full swarm runs only for new behavior, a redesign, or a large new diff. A rebase, a merge-conflict resolution, or a minor fix gets a single verifier at the new head. Fan out independent verifiers at the code-ready SHA per the **swarm** skill. They re-run the gates, prove the load-bearing behavior live on the real surface through its control skill when installed (`control-ui` or `control-cli`) or a named driver, and audit the diff. The verdict is not clean without the live lane, or before you audit the merge-ready report's receipts, because no lane trusts a claim it has not checked. +4. **Swarm-verify once.** A full swarm runs once, at the code-ready head. Another full swarm runs only for new behavior, a redesign, or a large new diff. A rebase, a merge-conflict resolution, or a minor fix gets a single verifier at the new head. Fan out independent verifiers at the code-ready SHA per the **swarm** skill. They re-run the gates, prove the load-bearing behavior live on the real surface through its control skill (`control-ui` or `control-cli`) or a named driver, and audit the diff. The verdict is not clean without the live lane, or before you audit the merge-ready report's receipts, because no lane trusts a claim it has not checked. Send every proven finding, whatever a lane labeled it, to the owner in one fix-forward, with a red test across every site with the same defect. A defect trunk shows without the PR is recorded against trunk and does not gate the PR, but one the PR copies or newly reaches is the PR's own. Never push a fix yourself, because each branch has one writer. Replace a stuck owner instead. 5. **The owner merges only what you verified, tested on the trunk it lands on.** Green CI alone never authorizes a merge. Once the swarm's lanes have started, merge prep rebases onto current trunk, reports the new head, and waits for green CI. diff --git a/.agents/skills/poteto-mode/playbooks/multi-phase-plan.md b/.agents/skills/poteto-mode/playbooks/multi-phase-plan.md index 49a6040..b91b8e0 100644 --- a/.agents/skills/poteto-mode/playbooks/multi-phase-plan.md +++ b/.agents/skills/poteto-mode/playbooks/multi-phase-plan.md @@ -10,9 +10,9 @@ 6. Run `node scripts/check-plan.mjs ` from the `poteto-mode` skill's directory and fix every line it prints (the **encode-lessons-in-structure** principle skill). 7. Hand back. Post the plan path and the script's output, then stop. Execution starts on the operator's explicit go, under the execution playbook the plan names. -**Verification.** Tests alone are not sufficient verification. A PR is verified only when its unit, live, and perf boxes are all checked (the **prove-it-works** principle skill). That sentence is the verification rule. Every verification block opens with it. The live block is mandatory. Ten lanes at the PR head drive the real surface through its control skill when installed, per the **swarm** skill, on the `swarm workers` route (default `inherit`). Each lane is one box with a concrete scenario, the screenshot it saves, and its pass predicate. One lane is the **Regression lane against trunk.** It runs the same load-bearing scenario on trunk and head. If trunk does not have the feature, the lane records that fact and gates the behavior the diff adds plus the end state the user waits for instead of inventing a trunk result. The perf gate is dual-sided. Trunk and head must both produce the named metric. If trunk lacks the feature, also isolate the work the diff adds and set an absolute budget for that work plus the end-to-end state the user waits for. Do not claim a ratio between unlike scenarios. The perf block names the metric, the interleaved probe, the trunk baseline measured first, and the rule with the number that fails. A PR that changes an interaction is review-gated. The operator reviews it in chat with screenshots and a video before merge. A PR that changes no interaction writes `**Review gate.** None. is not review-gated.` and no boxes under it. +**Verification.** Tests alone are not sufficient verification. A PR is verified only when its unit, live, and perf boxes are all checked (the **prove-it-works** principle skill). That sentence is the verification rule. Every verification block opens with it. The live block is mandatory. Ten lanes at the PR head drive the real surface through its control skill, per the **swarm** skill, on the `swarm workers` route (default `inherit`). Each lane is one box with a concrete scenario, the screenshot it saves, and its pass predicate. One lane is the **Regression lane against trunk.** It runs the same load-bearing scenario on trunk and head. If trunk does not have the feature, the lane records that fact and gates the behavior the diff adds plus the end state the user waits for instead of inventing a trunk result. The perf gate is dual-sided. Trunk and head must both produce the named metric. If trunk lacks the feature, also isolate the work the diff adds and set an absolute budget for that work plus the end-to-end state the user waits for. Do not claim a ratio between unlike scenarios. The perf block names the metric, the interleaved probe, the trunk baseline measured first, and the rule with the number that fails. A PR that changes an interaction is review-gated. The operator reviews it in chat with screenshots and a video before merge. A PR that changes no interaction writes `**Review gate.** None. is not review-gated.` and no boxes under it. -**Control skill.** Pick it by surface. Browser, Electron, and web UIs use `control-ui` when installed. CLIs and TUIs use `control-cli` when installed. Native mobile uses whatever simulator-driving skill the repo has. A PR that touches two surfaces gets lanes on both. A surface with no control skill is a risk in Appendix C, and its live block still names how each lane drives it. +**Control skill.** Pick it by surface. Browser, Electron, and web UIs use `control-ui`. CLIs and TUIs use `control-cli`. Native mobile uses whatever simulator-driving skill the repo has. A PR that touches two surfaces gets lanes on both. A surface with no control skill is a risk in Appendix C, and its live block still names how each lane drives it. ````markdown # plan @@ -56,7 +56,7 @@ Tests alone are not sufficient verification. A PR is verified only when its unit - [ ] Resolve the forge once. Default to `gh`; if `command -v origin` succeeds and Origin can resolve the repository, use `origin pr` for every PR operation. Record any fallback to `gh`. Never require `gt`. - [ ] Open the PR ready, never draft, per **Opening a PR**. Use the run's built-in PR tool when it has one, else `origin pr create --status open --base ` or `gh pr create --base ` according to the resolved forge. A stack child targets its parent branch. - [ ] Run the repo's lint and typecheck once before the PR-facing push. Push with hooks on. -- [ ] Run `/deslop` before each commit when installed, and `/no-comments` before review. +- [ ] Run `/deslop` before each commit, and `/no-comments` before review. - [ ] Triage every agentic review-bot and security-reviewer comment per `../references/review-bot-triage.md`. - [ ] Rebase onto current trunk before the code-ready report and babysit. Keep that merge base in fix rounds. Rebase again only at merge prep, on a `git merge-tree` conflict with trunk, or on a CI failure that comes from a change on trunk. @@ -68,7 +68,7 @@ Tests alone are not sufficient verification. A PR is verified only when its unit ### Boot recipe, for every live lane -Each live lane runs in its own git worktree on this machine, checked out at the PR head, passed as the child's `cwd`. Drive through `control-ui` or `control-cli` when installed. +Each live lane runs in its own git worktree on this machine, checked out at the PR head, passed as the child's `cwd`. Drive through `control-ui` or `control-cli`. - [ ] `git fetch origin && git checkout `. - [ ] diff --git a/.agents/skills/poteto-mode/playbooks/opening-a-pr.md b/.agents/skills/poteto-mode/playbooks/opening-a-pr.md index ef79a57..2b1f389 100644 --- a/.agents/skills/poteto-mode/playbooks/opening-a-pr.md +++ b/.agents/skills/poteto-mode/playbooks/opening-a-pr.md @@ -6,7 +6,7 @@ Invoked at the end of every other playbook. **Commits.** Commit liberally. Rebase into small, ordered commits before opening PRs. Each commit is a future PR: landable, ordered to tell the story. Amend when the fix belongs in a just-made commit. New commit when separable. Commit bodies don't restate the subject. -**PRs.** Run `/deslop` over the diff before commit when that skill is installed, and `/no-comments` before review. Write every PR title, description, and commit body with `/technical-writing` (every layer except Diátaxis, and apply the STE vocabulary rules: one word per action, keep articles, a plain verb over `-ing` where one works), then apply `/unslop`. +**PRs.** Run `/deslop` over the diff before commit, and `/no-comments` before review. Write every PR title, description, and commit body with `/technical-writing` (every layer except Diátaxis, and apply the STE vocabulary rules: one word per action, keep articles, a plain verb over `-ing` where one works), then apply `/unslop`. **Titles.** Conventional Commits `type(scope): subject`, no trailing period. Type such as `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, or `perf`. Scope is the area, such as `pstack` or `poteto-mode`. Subject is short, imperative, and names a real symbol when one carries the change, for example `fix(pstack): retarget opening-a-pr babysit trigger`. @@ -31,4 +31,4 @@ After the sections, attach videos or screenshots when they prove a claim. Full S **Babysit.** Opening a PR does not start a babysit. Post the URL and keep building. Finish the phase or stack first. Run a separate babysit pass only when the user asks for one after the whole stack exists. A babysit for each new PR stalls the build and spends checks on commits later waves restart. Push back when feedback drifts from intent. -A `subagent` that opens a PR runs `interrogate`, `/deslop` when installed, and `/no-comments`, and posts the URL. It returns to the parent without babysitting, unless it is an Autopilot-full or Autopilot-stack owner. That owner's brief assigns the babysit loop and is the ask `playbooks/babysit.md` waits for. The owner starts the loop after its code-ready report, reports merge-ready or STACK-READY per its playbook, and is exempt from the rules here and in `playbooks/babysit.md` that hold babysitting until a whole stack is built. +A `subagent` that opens a PR runs `interrogate`, `/deslop`, and `/no-comments`, and posts the URL. It returns to the parent without babysitting, unless it is an Autopilot-full or Autopilot-stack owner. That owner's brief assigns the babysit loop and is the ask `playbooks/babysit.md` waits for. The owner starts the loop after its code-ready report, reports merge-ready or STACK-READY per its playbook, and is exempt from the rules here and in `playbooks/babysit.md` that hold babysitting until a whole stack is built. diff --git a/.agents/skills/poteto-mode/playbooks/orchestrate.md b/.agents/skills/poteto-mode/playbooks/orchestrate.md index 254c7e7..07bbe5d 100644 --- a/.agents/skills/poteto-mode/playbooks/orchestrate.md +++ b/.agents/skills/poteto-mode/playbooks/orchestrate.md @@ -14,7 +14,7 @@ Three rules carry the rest. - **Coordinator (this chat).** Local. Frames, authors briefs, drains the inbox, owns the human report, makes judgment calls. It never authors or edits code. Conflicted merges, chain rebases, and code changes are always tasks. Mechanically landing a verified unit (fast-forward or clean cherry-pick of a worker's commit, then push) is bookkeeping the coordinator may do itself on repos where local git is cheap. Queueing finished work behind an idle stacker is how a deadline harvests nothing. The loop is agentic end to end. Agents are spawned, resumed, and drained only through `subagent`, `send_message`, `list_agents`, and `interrupt_agent`. Pass `provider`, `model`, and `reasoning_effort` only when the tool exposes them and `~/.agents/pstack-models.md` configures a route. State reads and writes go through `scripts/orch/orch.ts` at drain points, one command in and one line out. The CLI never spawns, waits, or wakes anything. - **Sub-coordinator.** Always local, durable, one per track, and only when the program exceeds what one coordinator's drains can manage. A track the coordinator can drain itself needs no middle layer. Each nested layer re-pays a full orientation preamble, and a blocking sub-coordinator hides its children while the parent idles. Owns its track's units and boards, authors its workers' briefs, spawns its own workers and verifiers (nesting works to depth 3, which requires raising `maxDepth` in Plugins → Subagent; a nested spawn has the full `subagent` schema including `cwd`). Rolls up aggregates at wave boundaries. Never forwards raw child reports. Cap in-flight children at what one drain can process, roughly ten, as a rolling window. Never as blocking batches, which cost the slowest child of every batch. -- **Worker / verifier.** Always in its own git worktree, passed as `cwd`, unless the task needs this checkout: `control-ui` or `control-cli` runtime verification when installed, a local DSH session log, simulators and local IDE state, or auth that exists only here. A shared-checkout worker must be the only writer. Prefer fewer, broader workers. One writer per worktree or branch (principle-separate-before-serializing-shared-state). Run a unit's verifier on a different route when one is configured; otherwise use a fresh `subagent` and say so. +- **Worker / verifier.** Always in its own git worktree, passed as `cwd`, unless the task needs this checkout: `control-ui` or `control-cli` runtime verification, a local DSH session log, simulators and local IDE state, or auth that exists only here. A shared-checkout worker must be the only writer. Prefer fewer, broader workers. One writer per worktree or branch (principle-separate-before-serializing-shared-state). Run a unit's verifier on a different route when one is configured; otherwise use a fresh `subagent` and say so. Depth stays at coordinator, track, worker. Author the track decomposition per project (build, landing, and verification are common cuts, not a required shape). Hard-coded swarm trees were tried and parked as too rigid. diff --git a/.agents/skills/poteto-mode/playbooks/shipping.md b/.agents/skills/poteto-mode/playbooks/shipping.md index 465f19d..1e2baaa 100644 --- a/.agents/skills/poteto-mode/playbooks/shipping.md +++ b/.agents/skills/poteto-mode/playbooks/shipping.md @@ -2,7 +2,7 @@ **You own what lands. Verify each PR independently, land only the verified run from the root, then keep your hands off the stack.** -1. **Resolve the forge, then verify each PR independently before it lands.** GitHub CLI (`gh`) is the default. If `command -v origin` succeeds and Origin can resolve the repository, use `origin pr` for every PR operation. Otherwise stay on `gh` and record the fallback. Never require Graphite (`gt`). One verifier per PR, each a fresh `subagent` with its own git worktree passed as `cwd`, runs the change the way a user would with the matching control skill when installed (`control-ui` or `control-cli`), parent against head, and posts `PASS`, `PASS+NOTES`, or `FAIL` on that PR. Only a verdict from an agent that did not write the code counts, because an author checks what it meant to build. Green CI and an approving bot review are not verdicts, because neither runs the change as a user would. +1. **Resolve the forge, then verify each PR independently before it lands.** GitHub CLI (`gh`) is the default. If `command -v origin` succeeds and Origin can resolve the repository, use `origin pr` for every PR operation. Otherwise stay on `gh` and record the fallback. Never require Graphite (`gt`). One verifier per PR, each a fresh `subagent` with its own git worktree passed as `cwd`, runs the change the way a user would with the matching control skill (`control-ui` or `control-cli`), parent against head, and posts `PASS`, `PASS+NOTES`, or `FAIL` on that PR. Only a verdict from an agent that did not write the code counts, because an author checks what it meant to build. Green CI and an approving bot review are not verdicts, because neither runs the change as a user would. 2. **Land only the contiguous verified run rooted at the bottom.** Walk up from the lowest unmerged PR and stop at the first one without `PASS` or `PASS+NOTES`. The PRs below it are the run, and the top one is the ceiling. A verified PR above an unverified one waits, because it cannot land without the code below it. One whose branch neither holds nor needs that code can move onto trunk and land on its own. It needs a fresh verdict first, because its old one ran with that code beneath it and trunk does not have it. 3. **Re-check that the verdicts still describe the code.** A verdict covers a patch, and a chain rebase moves every PR above it to a new SHA without failing any check. Compare `git patch-id` at the verdict SHA with the current head before trusting an older verdict. When the patches differ only in tests, docs, or lint config, a lane's result stands if what it ran builds the same at both SHAs apart from noise. Noise is a difference that also shows up between two builds of the verdict SHA, or an embedded commit SHA. Report each kind of noise with its files, so a reader can check the call. The change itself still gets fresh checks and a review, because the old verdict never saw it. A lane with no build output, such as a dev server, cannot show this, so rerun it, and re-verify anything else that drifted. 4. **Land bottom-up, one PR at a time.** Always merge the run's lowest unmerged PR, with `origin pr merge ` or `gh pr merge --squash`. On Origin the plain command also merges every PR below the one you name, and on GitHub a PR whose base is still its parent's branch merges into that branch, not trunk. Read the PR back for the result (`origin pr view ` or `gh pr view --json state,mergedAt,baseRefName`), because a merge command can report success when a merge queue only queued the PR, and a requested auto-merge is not a merge. A landed PR reads merged with trunk as its base, not its parent's branch. Arm `--auto` (Origin merge-when-ready or GitHub auto-merge) only on a PR whose verdict covers its current head, because it lands whatever head is ready. After a merge lands, retarget the PR whose base was the merged branch to trunk (`origin pr edit --base ` or `gh pr edit --base `), move its patch onto the merge result, and push with `--force-with-lease`. The verdict covers the patch, not its commits, so step 3's patch-id rule decides whether the verdict survives. Merge it once its checks pass and its verdict survives. diff --git a/AGENTS.md b/AGENTS.md index 3c67859..186a71a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # dsh-pstack -This repository is the DeepSeek Harness port of pstack 0.15.32. The skills are the upstream pstack content, adapted to DSH tool names, subagent semantics, and session logs. +This repository is the DeepSeek Harness port of pstack 0.15.32. The skills are the upstream pstack content, adapted to DSH tool names, subagent semantics, and session logs. `deslop`, `control-cli`, and `control-ui` are the exception: copied verbatim from cursor-team-kit 1.2.0 (MIT, Eric Zakariasson), and not adapted. ## Layout diff --git a/README.md b/README.md index 2ee6c05..4eb8d5a 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,8 @@ DSH attaches a skill to one message. pick `/poteto-mode` at the start of each ne [`/poteto-mode`](./.agents/skills/poteto-mode/SKILL.md) runs most of these for you when a step needs them (`how`, `why`, `architect`, `arena`, `swarm`, `interrogate`, `unslop`, `no-comments`, `technical-writing`, `tdd`, and the principles). the table below is for when you want one directly: +pstack also bundles `deslop`, `control-cli`, and `control-ui` from [cursor-team-kit](https://github.com/cursor/plugins/tree/main/cursor-team-kit) `1.2.0` by Eric Zakariasson, copied verbatim under the MIT license. + ``` /how do we cancel runs? do we have an n+1 when we look up every run to cancel? ``` diff --git a/package-lock.json b/package-lock.json index 3895232..c1e9e10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dsh-pstack", - "version": "0.15.33", + "version": "0.15.34", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dsh-pstack", - "version": "0.15.33", + "version": "0.15.34", "license": "MIT", "dependencies": { "@deepseek-ai/schemastery": "~3.18.5", diff --git a/package.json b/package.json index fa26f30..e2cdaee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsh-pstack", - "version": "0.15.33", + "version": "0.15.34", "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.", "author": { "name": "Lauren Tan" diff --git a/plugin.json b/plugin.json index 98ded23..e65fe18 100644 --- a/plugin.json +++ b/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "pstack", - "version": "0.15.33", + "version": "0.15.34", "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.", "author": { "name": "Lauren Tan"