fix(skills): correct invalid install kinds in xurl and github [AI]#102158
Conversation
The xurl skill's second installer declares kind "npm", which is not a valid install kind. The installer switches on spec.kind with cases for brew/node/go/uv/download and a default of "unsupported installer", so the entry is dropped -- `openclaw skills info xurl` only offers the brew option, leaving no install path on machines without Homebrew. npm-backed installs use kind "node" (which honors skills.install.nodeManager, default npm). Only kind is changed; id/package/bins are left as-is. Verified against openclaw 2026.6.11 in a container: before (kind: npm): Install options: → Install xurl (brew) after (kind: node): Install options: → Install @xdevplatform/xurl (npm)
The github skill's second installer declares kind "apt", which is not a supported install kind (installer switch handles brew/node/go/uv/download + default "unsupported installer"). openclaw silently drops it -- `skills info github` only ever surfaces the brew option -- so the entry is dead, misleading metadata rather than a working Linux path. The remaining brew installer is cross-platform (Homebrew runs on Linux), so removing the dead entry loses no working path. Improving install paths for Linux users without Homebrew is tracked separately in openclaw#57555 (needs-product-decision).
|
Codex review: needs maintainer review before merge. Reviewed July 8, 2026, 7:51 AM ET / 11:51 UTC. Summary PR surface: Docs -7. Total -7 across 2 files. Reproducibility: yes. source-reproducible: current main and v2026.6.11 declare xurl kind Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Security Review detailsBest possible solution: Merge the narrow metadata correction after normal maintainer checks; keep broader non-brew Linux installer expansion in #57555. Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible: current main and v2026.6.11 declare xurl kind Is this the best way to solve the issue? Yes. For this scoped bug, aligning xurl with the existing AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 58891c85b68b. Label changesLabel justifications:
Evidence reviewedPR surface: Docs -7. Total -7 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
|
Maintainer review: merge-ready at head SHA: 7f2a514 The patch is the best narrow fix for the scoped metadata bug: The related follow-ups should stay separate: #57555 for |
|
Thanks for the contribution, @not-stbenjam and for your first OpenClaw PR! A clean fix with useful behavior proof 😁 |
…penclaw#102158) * fix(xurl): use install kind "node" instead of invalid "npm" [AI] The xurl skill's second installer declares kind "npm", which is not a valid install kind. The installer switches on spec.kind with cases for brew/node/go/uv/download and a default of "unsupported installer", so the entry is dropped -- `openclaw skills info xurl` only offers the brew option, leaving no install path on machines without Homebrew. npm-backed installs use kind "node" (which honors skills.install.nodeManager, default npm). Only kind is changed; id/package/bins are left as-is. Verified against openclaw 2026.6.11 in a container: before (kind: npm): Install options: → Install xurl (brew) after (kind: node): Install options: → Install @xdevplatform/xurl (npm) * fix(github): drop non-functional "apt" install entry [AI] The github skill's second installer declares kind "apt", which is not a supported install kind (installer switch handles brew/node/go/uv/download + default "unsupported installer"). openclaw silently drops it -- `skills info github` only ever surfaces the brew option -- so the entry is dead, misleading metadata rather than a working Linux path. The remaining brew installer is cross-platform (Homebrew runs on Linux), so removing the dead entry loses no working path. Improving install paths for Linux users without Homebrew is tracked separately in openclaw#57555 (needs-product-decision).
…penclaw#102158) * fix(xurl): use install kind "node" instead of invalid "npm" [AI] The xurl skill's second installer declares kind "npm", which is not a valid install kind. The installer switches on spec.kind with cases for brew/node/go/uv/download and a default of "unsupported installer", so the entry is dropped -- `openclaw skills info xurl` only offers the brew option, leaving no install path on machines without Homebrew. npm-backed installs use kind "node" (which honors skills.install.nodeManager, default npm). Only kind is changed; id/package/bins are left as-is. Verified against openclaw 2026.6.11 in a container: before (kind: npm): Install options: → Install xurl (brew) after (kind: node): Install options: → Install @xdevplatform/xurl (npm) * fix(github): drop non-functional "apt" install entry [AI] The github skill's second installer declares kind "apt", which is not a supported install kind (installer switch handles brew/node/go/uv/download + default "unsupported installer"). openclaw silently drops it -- `skills info github` only ever surfaces the brew option -- so the entry is dead, misleading metadata rather than a working Linux path. The remaining brew installer is cross-platform (Homebrew runs on Linux), so removing the dead entry loses no working path. Improving install paths for Linux users without Homebrew is tracked separately in openclaw#57555 (needs-product-decision).
Related: #57555
Related: steipete/agent-scripts#27
What Problem This Solves
Fixes an issue where users installing the
xurlorgithubskills throughopenclaw would be offered no working (or a misleading) install option,
because the skill metadata declares an install
kindopenclaw doesn'tsupport and silently drops.
kind: "npm".npmis not asupported kind, so
openclaw skills info xurlnever offers it — on amachine without Homebrew, xurl has no install path at all.
kind: "apt", alsounsupported, so it never appears — dead, misleading metadata implying a
Linux-native path that never runs.
Found via skillsaw's
openclaw-metadatarule.Why This Change Was Made
The installer resolves
spec.kindagainstbrew/node/go/uv/download(
src/skills/lifecycle/install.ts), with adefault: "unsupported installer";src/skills/types.tsis the authoritative union. Anything else is dropped.npmisn't a kind — it's the defaultskills.install.nodeManager.npm-backed installs use
kind: "node"with apackagefield, so thischanges only
kind(id/package/bins unchanged).aptto,and the existing
brewinstaller is already cross-platform (Homebrew runson Linux), so the dead entry is removed rather than rewritten. Improving
install paths for Linux users without Homebrew is a separate product
decision, tracked in Built-in skill 'summarize' only supports brew install, no feedback when enable fails #57555 — explicitly out of scope here.
User Impact
openclaw skills info xurlnow offers a working npm install(
npm install -g @xdevplatform/xurl) on any system with a node manager,not just Homebrew hosts.
githubinstall options are now honest: only the installer that actuallyruns (brew, cross-platform) is shown. No functional path is lost.
Evidence
Verified against openclaw 2026.6.11 in a throwaway container by copying the
edited skills over the bundled copies and running
openclaw skills info.xurl — before (
kind: "npm"): npm installer dropped; only brew offered.xurl — after (
kind: "node"):github — before: apt entry dropped; only brew offered (identical to
after — confirming the apt entry was already dead).
github — after (apt removed): parses cleanly, brew installer intact:
AI-assisted.