Skip to content

Proposal: portable Skill contribution surface #8

Description

@Tanramisu

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:

  1. active standard Skill extensions appear in the merged skill catalog;
  2. catalog exposure uses only the small metadata surface;
  3. loading the Skill reads the package-local entry only on demand;
  4. unload removes the registration;
  5. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions