Motivation
Community v0.15 can already make a portable component publish Tools, Commands, Model resources, browser UI, etc., but there is no portable Skill surface.
This leaves otherwise-portable plugins partly tied to a product adapter. A concrete example is a bounded cognitive plugin whose lsd_explore / lsd_converge tools can already be standard tools.dsh/v1alpha1 Tool extensions, while its let-me-lsd guidance still has to live in DSH's product-specific skill registry. Skill-only plugins have no standard migration path at all.
Minimal scope
I think the useful first version is deliberately small:
- one package-local, declarative Skill resource;
- stable
name + short description for catalog discovery;
- a package-relative body/entry asset loaded lazily when the host requests the skill;
- activation-instance ownership: unload retracts the Skill automatically;
- composition detects conflicting effective owners for the same Skill name;
- no AgentLoop changes, no durable state, no memory, no trigger state machine, no requirement that the full body be injected eagerly.
Conceptually:
{
"apiVersion": "skills.dsh/v1alpha1",
"kind": "Skill",
"name": "let-me-lsd",
"spec": {
"title": "let me lsd",
"description": "Bounded divergent cognition followed by normal convergence.",
"entry": "skills/let-me-lsd/SKILL.md"
}
}
The exact content format / coordinate naming can of course follow the project's conventions; the important property is that the manifest points to an inert package-local asset and the host adapter owns discovery, lazy reading, scope projection, and lifecycle cleanup.
DSH adapter mapping
For @dsh-std/adapter-dsh, the natural mapping seems to be the existing DSH skill registry/provider seam:
- active standard Skill extensions appear in the merged skill catalog;
- catalog exposure uses only the small metadata surface;
- loading the Skill reads the package-local entry only on demand;
- unload removes the registration;
- no standard component imports Cordis or
@deepseek-ai/dsh-skill-*.
This would unlock full standardization of mixed Tool+Skill plugins and simple Skill-only plugins without broadening the standard into product cognition internals.
Motivation
Community v0.15 can already make a portable component publish Tools, Commands, Model resources, browser UI, etc., but there is no portable Skill surface.
This leaves otherwise-portable plugins partly tied to a product adapter. A concrete example is a bounded cognitive plugin whose
lsd_explore/lsd_convergetools can already be standardtools.dsh/v1alpha1 Toolextensions, while itslet-me-lsdguidance still has to live in DSH's product-specific skill registry. Skill-only plugins have no standard migration path at all.Minimal scope
I think the useful first version is deliberately small:
name+ shortdescriptionfor catalog discovery;Conceptually:
{ "apiVersion": "skills.dsh/v1alpha1", "kind": "Skill", "name": "let-me-lsd", "spec": { "title": "let me lsd", "description": "Bounded divergent cognition followed by normal convergence.", "entry": "skills/let-me-lsd/SKILL.md" } }The exact content format / coordinate naming can of course follow the project's conventions; the important property is that the manifest points to an inert package-local asset and the host adapter owns discovery, lazy reading, scope projection, and lifecycle cleanup.
DSH adapter mapping
For
@dsh-std/adapter-dsh, the natural mapping seems to be the existing DSH skill registry/provider seam:@deepseek-ai/dsh-skill-*.This would unlock full standardization of mixed Tool+Skill plugins and simple Skill-only plugins without broadening the standard into product cognition internals.