DSH is in developer preview, and breaking changes are frequent. Every harness release sends plugin authors back to manual follow-up: which API was renamed, which registration point moved, which behavior changed semantics. The official team knows it — on 2026-08-30 a team member asked in Discussion #5120 (12 upvotes, 19 comments): “Has anyone built a skill that upgrades dsh plugin code for a new dsh version?”
The demand
- #5120 is the official side asking, not a user complaint — a tier of its own among demand signals: whoever builds it gets official-level attention and potential adoption.
- In the comments, authors maintaining 20 plugins have posted their upgrade pit lists — half your requirements doc is already written.
The gap
Only embryos exist: oh-my-dsh/dsh-plugin-upgrade-skill (mentioned in the thread) and PerryLink/dsh-plugin-upgrade-015 (0★). An officially named direction with no winner yet.
Proposed shape
A skill (SKILL.md + checker scripts), not a plugin: when an agent gets the task “migrate this plugin from dsh X to Y,” it executes a fixed method — read the API diff between the two versions, scan the plugin for affected call sites, rewrite them one by one, run typecheck, and hand back a human-review list.
Implementation notes
- The core asset is structured “API diff between versions” data, derived from the official release notes and the persistence-changes records — never let the model improvise the diff.
- Follow the shape of our own alldsh skills: SKILL.md carries the method, scripts carry the mechanical checks.
- Align case-by-case with the pit lists in the #5120 comments — that is a real-world case library.
The MVP
Cover only the most recent breaking upgrade, turning its ten highest-frequency pitfalls into checker scripts.
Risks
The official CLI will eventually internalize this (an upgrade command), so the skill’s lifetime may be a few versions. But within the window it is the cheapest influence channel into the plugin-author circle — and the migration data remains a durable asset.
FAQ
Why a skill and not a plugin?
Because the executor is the agent: migration is a “read code → change code → verify” agent task, and a skill is the method carrier for that — a better fit than a GUI plugin.