fix(xurl): use install kind "node" instead of invalid "npm"#27
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 8, 2026, 7:24 AM ET / 11:24 UTC. Summary Reproducibility: yes. source inspection shows current main uses unsupported Review metrics: 2 noteworthy metrics.
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 fix after normal maintainer checks, preserving Do we have a high-confidence way to reproduce the issue? Yes, source inspection shows current main uses unsupported Is this the best way to solve the issue? Yes, changing only the install AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 0b3e10b735ad. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat 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)
|
070bff9 to
fc04b99
Compare
|
Companion fix upstream in openclaw/openclaw#102158 — same |
rajpratham1
left a comment
There was a problem hiding this comment.
LGTM.
This change corrects the install configuration by replacing the invalid kind: "npm" with the supported kind: "node" while leaving the package, binary, and label unchanged.
Why this is good:
Fixes an invalid installer configuration.
Keeps the existing npm package installation behavior intact.
Small, focused change with very low regression risk.
Improves compatibility with the expected install schema.
Approving.
skillsaw caught this via the openclaw-metadata rule: WARNING (openclaw-metadata) [skills/xurl/SKILL.md:21]: 'metadata.openclaw.install[1].kind' is 'npm', expected one of: ['brew', 'download', 'go', 'node', 'uv'] npm is not a valid install kind -- it's a value of the skills.install.nodeManager setting (npm/pnpm/yarn/bun), which the "node" kind honors. npm-based installs use kind: node with a "package" field. openclaw's installer switches on spec.kind with cases for brew/node/go/uv/download and a default of "unsupported installer", so a kind: npm entry is dropped. Only kind is changed; id/package/bins are left as-is. Refs: https://docs.openclaw.ai/tools/skills
fc04b99 to
7332191
Compare
|
Maintainer proof for exact candidate
Risk: low. This changes one invalid metadata value and adds maintainer changelog credit; no dependency source or runtime code changes. |
steipete
left a comment
There was a problem hiding this comment.
Maintainer review at exact head 73321914f370d0df927c21b619ab023836ef2704: metadata contract, frontmatter validation, live discovery proof, changelog credit, security check, and model-identifier gate are all clean. Approved for squash merge.
|
Landed as 5c6abe6. Thank you, @not-stbenjam. Verification:
No remaining caveats. |
Trivial fix that skillsaw caught. It triggered the
openclaw-metadata rule:
npmisn't a valid installkind— it's a value of theskills.install.nodeManagersetting (npm/pnpm/yarn/bun), which thenodekind honors. npm-based installs usekind: "node"with apackagefield, so this changes only
kind(id/package/binsare left as-is).{ "id": "npm", - "kind": "npm", + "kind": "node", "package": "@xdevplatform/xurl", "bins": ["xurl"], "label": "Install xurl (npm)", },Real-behavior proof (openclaw 2026.6.11, throwaway container)
Ran openclaw's own
skills infoagainst the bundled xurl skill, togglingonly the second installer's
kind. Notably the published package alreadyships
kind: "npm", so this reproduces against the shipped metadata.Before —
kind: "npm"(as shipped): openclaw drops the installer as anunsupported kind. The npm option never appears — only brew is offered, so
xurl is uninstallable via openclaw on any machine without Homebrew:
After —
kind: "node"(this PR): openclaw resolves the installer andsurfaces the npm option:
The
id: "npm"selector is preserved (kept from the original), so thisisn't a compatibility change — only the invalid
kindis corrected.Refs: https://docs.openclaw.ai/tools/skills