Skip to content

ship deslop, control-cli, and control-ui - #3

Merged
caelaxie merged 2 commits into
mainfrom
cursor/ship-deslop-control-skills-e360
Oct 27, 2026
Merged

caelaxie merged 2 commits into
mainfrom
cursor/ship-deslop-control-skills-e360

Conversation

@caelaxie

Copy link
Copy Markdown
Contributor

copied the skill directories deslop, control-cli, and control-ui from https://github.com/cursor/plugins at ab69380dd50ee47d426b35cb8369cffdddafc218 into .agents/skills/. each directory is the upstream SKILL.md, byte for byte.

adaptations: none inside the skill files. they do not name cursor tools, so nothing was mapped. frontmatter stays name and description. dsh loads that as user-invocable and model-invocable.

readme: removed the not-shipped lines for those three, and the sentence that said to install them alongside pstack. added the three rows to the existing skills table. the install note now lists them with /setup-pstack as model-invocable, because that is how the copied frontmatter loads.

also dropped the same "not bundled" lines in poteto-help and docs/guide/05-build-and-clean.md, and named the three model-invocable skills there.

the upstream pin in AGENTS.md stays at pstack 0.15.32. these skills do not need a bump. the copy is ab69380dd50ee47d426b35cb8369cffdddafc218.

Open in Web Open in Cursor 

copy the three skill directories in unchanged. drop the lines that said they are not bundled, and list them with the other skills.

Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>
@cursor

cursor Bot commented Oct 27, 2026

Copy link
Copy Markdown

validation proof

1. npm test — pass

npm install --omit=peer
npm test
> dsh-pstack@0.15.33 test
> node scripts/validate.mjs

Validated 61 skills, 23 playbooks, 24 principles, and the DSH bundle manifest.

2. harness — bundle and skill catalog pass; model reply blocked on DEEPSEEK_API_KEY

installed the newest published runtime, @deepseek-ai/dsh@0.2.1-rc.4 (next dist-tag). the latest dist-tag is 0.2.1-rc.2. both sit in this package's @deepseek-ai/dsh-skill@^0.2.1-rc.2 peer range.

dsh --version
0.2.1-rc.4
export DSH_HOME=/tmp/dsh-proof
dsh plugin --profile web add /workspace
dsh: initialized profile web at /tmp/dsh-proof/profiles/web

dependencies:
+ dsh-pstack link:/workspace

Already up to date
Done in 352ms using pnpm v10.33.4

profile bundles after that command:

["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-pstack"]
dsh --profile web --dump-config

trimmed:

# == dsh-pstack
- id: pstack
  name: dsh-pstack
dsh --profile web --no-open --port 8765
dsh web: http://127.0.0.1:8765/?token=<redacted>

plugins page text included:

Installed plugins
dsh-pstack
if you want to go fast, go deep first. ...

POST /api/pluginInventory/list for that row:

{"entryId":"include:pstack","moduleName":"dsh-pstack","enabled":true,"fiberPhase":"active"}

POST /api/pluginManager/listBundles:

{"name":"dsh-pstack","version":"0.15.33","enabled":true,"installed":true,"availability":"profile","rows":[{"rowId":"pstack"}]}

skill catalog, session cwd /tmp so project .agents/skills is not the source. path is null, which is the bundle provider.

POST /api/session/create   {"args":{"request":{"cwd":"/tmp"}}}
POST /api/skills/list      {"args":{"request":{"sessionId":"session-165bb488-863c-44de-83e8-a110db373938"}}}
SKILL_COUNT 61
poteto-mode   modelInvocable false
setup-pstack  modelInvocable true
deslop        modelInvocable true   "Remove AI-generated code slop and clean up code style"
control-cli   modelInvocable true
control-ui    modelInvocable true

/deslop on that session (POST /api/session/prompt, text /deslop ...) was accepted. the session log then has this injected block (trimmed):

<skill_content name="deslop">
<skill_resources>
Base directory for this skill: /workspace/.agents/skills/deslop
...
<skill_instructions>
# Remove AI code slop

Check the diff against main and remove AI-generated slop introduced in the branch.

## Focus Areas
...
## Guardrails
...
</skill_instructions>
</skill_content>

/poteto-mode on session-fa619b13-f126-4c25-9035-c5440a64e42f injected:

<skill_content name="poteto-mode">
...
# Poteto mode

Bundled skills live at `../<name>/SKILL.md` from this file.
...
## Non-negotiables

both turns then ended before a model reply:

{"turn":1,"reason":{"kind":"error","error":{"message":"llm-deepseek: no API key for provider route \"deepseek-official\"; store DEEPSEEK_API_KEY through the credentials service (the web Models page writes it), or export DEEPSEEK_API_KEY in the launching environment","code":"MISSING_CREDENTIAL"}}}

the web composer stays on "Add API Key / Sign in", so the visual / menu was not opened. skills/list is the catalog that menu reads, and it returned the five skills above. no DEEPSEEK_API_KEY was set, and none was invented.

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes requested (comment review, same-account author).

passes: deslop/control-cli/control-ui are byte-identical to cursor-team-kit at both ab69380 and the pinned 99b609a, they live in .agents/skills/, no cursor-team-kit mention is left, and the proof comment shows dsh plugin --profile web add + the bundle mounted + skills/list returning all three (plus /deslop injecting). model turn blocked only on DEEPSEEK_API_KEY, which is the accepted precedent for text-only skill changes. Validate DSH bundle is green. no open issue to link.

one divergence left, see the inline comment. fix it and this merges.

Comment thread docs/guide/05-build-and-clean.md Outdated
## Clean before you commit

The [Opening a PR playbook](../../.agents/skills/poteto-mode/playbooks/opening-a-pr.md) runs `/deslop` on the diff before each commit and applies [`/unslop`](../../.agents/skills/unslop/SKILL.md) to the PR description and commit bodies. `/deslop` is a separate skill, not bundled with pstack. If you don't have it, ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits.
The [Opening a PR playbook](../../.agents/skills/poteto-mode/playbooks/opening-a-pr.md) runs [`/deslop`](../../.agents/skills/deslop/SKILL.md) on the diff before each commit and applies [`/unslop`](../../.agents/skills/unslop/SKILL.md) to the PR description and commit bodies. If you don't have it, ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minimum changes: upstream (99b609a pstack/docs/guide/05-build-and-clean.md:59) has plain `/deslop` here, not a link. the only edit the harness rule needs is dropping the cursor-team-kit sentence. keep runs `/deslop` on the diff unlinked:

Suggested change
The [Opening a PR playbook](../../.agents/skills/poteto-mode/playbooks/opening-a-pr.md) runs [`/deslop`](../../.agents/skills/deslop/SKILL.md) on the diff before each commit and applies [`/unslop`](../../.agents/skills/unslop/SKILL.md) to the PR description and commit bodies. If you don't have it, ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits.
The [Opening a PR playbook](../../.agents/skills/poteto-mode/playbooks/opening-a-pr.md) runs `/deslop` on the diff before each commit and applies [`/unslop`](../../.agents/skills/unslop/SKILL.md) to the PR description and commit bodies. If you don't have it, ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

applied. /deslop stays unlinked. only the not-bundled sentence is gone.

drop only the sentence that said it was not bundled.

Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

verdict: pass (comment review, same-account author).

0c83f73 applies the suggestion exactly: /deslop is unlinked again, matching upstream 99b609a pstack/docs/guide/05-build-and-clean.md, and only the cursor-team-kit sentence is gone. docs-only delta since the dsh add + skills/list proof on 5d13593, so that proof still holds. Validate DSH bundle green on this head. squash-merging.

@caelaxie
caelaxie merged commit e1d47bb into main Oct 27, 2026
2 checks passed
@caelaxie
caelaxie deleted the cursor/ship-deslop-control-skills-e360 branch October 27, 2026 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants