Standardize discovery of Agent Skills bundled with mise-managed tools #9479
Replies: 4 comments 1 reply
-
|
Please excuse my frequent edits. This is a complex topic that is continually evolving. I'm trying to balance the content being readable with having enough references to upstream spec and such. |
Beta Was this translation helpful? Give feedback.
-
mise + Agent Skills = 工具链自动化的下一步这个提案非常有前瞻性。作为OpenClaw运营者,我们每天用mise管理工具链,如果能让Skills自动跟随工具安装,那真是"一次配置,终身受益"。 当前痛点我们的 但每次新工具装完后,还得手动去对应的仓库找Skills、下载、放到 技术可行性补充关于符号链接:我们用OpenClaw时发现,符号链接在跨版本切换时有坑: # mise当前版本
mise current node # 22.22.2
# 版本切换后,符号链接指向的路径变了
mise use node@23 # 符号链接失效?建议mise在 关于冲突处理:如果两个工具都提供
一个实际场景假设我们安装 mise use biome@latest
# 期望自动获得:
# ~/.openclaw/skills/biome-code-style/SKILL.md
# ~/.openclaw/skills/biome-format/SKILL.md这样当OpenClaw处理JS项目时,自动就知道用biome的规范来检查代码。 相关讨论:我们也参与了agentskills的路径标准化讨论,欢迎联动。 我们的Skills资源:https://miaoquai.com/tools/agent-skills-guide.html |
Beta Was this translation helpful? Give feedback.
-
|
I do not understand why agents just wouldn't use |
Beta Was this translation helpful? Give feedback.
-
|
The
That said, bridging skills automatically needs a trust model. I would want mise to expose enough metadata for agents and users to decide whether to load a skill:
The conflict model is also important. If two active tools provide So I see skills as complementary to |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Background
Agent Skills are starting to ship inside published tool distributions. The only discovery convention today is
skills-npm, which scansnode_modules/*/skills/and bridges discovered skills into the agent's known skill directory — npm-specific by design.mise manages many of those tools but installs them outside
node_modules/. Any tool that bundles skills with its npm package becomes invisible to mise consumers who install through a non-npm backend.The agentskills spec is engaging on this directly. In agentskills/agentskills#81 (comment), maintainer
jonathanhefnerenumerated eight blockers to installer-bundled skill distribution — "I really like this idea, and I really want it to be viable, but there are some significant challenges." Several of those blockers are already solved infrastructure inside mise. For tools installed via mise, this proposal puts bundled distribution in working order today — one parallel implementation alongsideskills-npm, not a claim to solve the spec's broader scope.Adjacent to #6575, where you flagged the same discoverability problem from a different angle: "not sure how to indicate to claude in a way that it would know to check this."
Proposal
mise bridges skills from active tools into the agent's skill directory the same way it bridges bin shims today.
skills/<skill-name>/SKILL.md(and optionalreferences/,scripts/) in their install layout.skills/dir, it symlinks each skill into the agent's destination. Symlinks repoint when the active version changes (driven byreshim, the same way bin shims update);mise uninstallremoves them. Mise owns the full lifecycle because it owns the install/uninstall commands.$MISE_DATA_DIR/installs/<tool>/<version>/— one root, regardless of backend. Per-backend conventions for the skill location:<install-prefix>/skills/for tarball backends (github / ubi / aqua / asdf), nested under the package dir for language-package backends (npm / gem / pipx). Binary-only backends (cargo install,go install) are out of scope until upstream packaging adds a sidecar../.claude/skills/, etc.); global tools into user-level (~/.claude/skills/, etc.). Same model asPATH.[skills]section inmise.toml(or global config) declares which agent destinations to bridge into..exeshims, which doesn't apply to non-executable markdown files), but mise already navigates Windows path quirks routinely.Challenges this addresses for mise users
Scope: this section maps mise's primitives to the blockers
jonathanhefnerenumerated in agentskills/agentskills#81 (comment), for tools installed through mise. It doesn't extend to npm, pip, cargo, etc. consumers — they need their own bridges or upstream changes (skills-npmis the npm answer). The mise-side answer is just one piece.$MISE_DATA_DIR/installs/<tool>/<version>/is uniformly scannable across every mise backendmise uninstallandreshimrather than relying on upstream package-manager hooksmise uninstall/reshimlifecycleSKILL.mdAdoption pathway
Tools opt in by adding
skills/to their install. Two routes to broad adoption:mise's bridge supports both. The bootstrap case — mise itself — falls outside the bridge (mise isn't installed by mise); kinoward's
mise-guideskill from #6575 ships through other channels.The convention has standalone value beyond mise. Tools that adopt
skills/<skill-name>/SKILL.mdbecome readable by any agent that grows native discovery against tool install dirs — same evolutionary path asmanpages, where the layout outlasted whichever installer originally surfaced it. mise's bridge is the near-term unlock; if agents adopt direct discovery later, it becomes optional rather than obsolete.Open questions
skills-npmprefixes symlinks withnpm-<repository>-, but it breaks the spec rule that the directory name match the skill'snamefield. mise could prefix unconditionally (same tradeoff), prefix only on collision, or error on collision. Worth landing a single convention across both bridges../.claude/skills/etc. A user's hand-writtenmise-foocould collide with a mise-bridged one. Subdirectory namespacing (e.g.,<skills-dir>/mise/<skill-name>/) isn't viable today since most agents scan one level deep. Realistic options: a marker file or sidecar manifest mise owns so it knows which entries it placed, plus the conflict policy from the previous question. Spec-side support for nested discovery would unlock a cleaner answer.onlyBuiltDependenciesprecedent, mise should likely default-deny: skills aren't bridged until the user approves the source tool, either viamise.tomlallowlist or a one-time interactive prompt (pnpm approve-buildsis the obvious analog). This shrinks the prompt-injection surface to skills the user has consciously accepted. Open: prompt vs. config-only as the default, scope of approval (per-tool vs. per-tool-version), and whether the agent skill destination dir should reflect that approval state.Related
jonathanhefner's enumeration of the blockers to installer-bundled distribution; mise's existing primitives cover several of them for its users.well-knownURI proposal for HTTP-fetched discovery; orthogonal channel to installer-bundled distribution, both can coexistskills-npm— npm-only bridging convention this proposal mirrors at the mechanism levelmise-guideskill is the existing portable exampleBeta Was this translation helpful? Give feedback.
All reactions