Skip to content

feat(skills): add Skill Hub — GitHub registry + CLI install/remove/search#607

Open
lukebaze wants to merge 1 commit intonextlevelbuilder:mainfrom
lukebaze:feat/skill-hub
Open

feat(skills): add Skill Hub — GitHub registry + CLI install/remove/search#607
lukebaze wants to merge 1 commit intonextlevelbuilder:mainfrom
lukebaze:feat/skill-hub

Conversation

@lukebaze
Copy link
Copy Markdown

Summary

  • Zero-rebuild skill installation from GitHub repos or registry slugs
  • New CLI commands: goclaw skills install|remove|search
  • Security hardening: package name injection prevention, tarball path traversal, SKILL.md guard scan, stdlib blocklist

Changes

File Description
internal/skills/dep_installer.go validatePackageName() + stdlib blocklist
internal/skills/guard.go Fixed path traversal regex (../ at any depth)
internal/skills/github_fetcher.go Tarball download + secure extraction
internal/skills/registry_client.go JSON index fetch + cache + TTL
internal/skills/installer.go Validate→copy→DB→deps→hot-reload orchestrator
cmd/skill_install_cmd.go skills install + skills search CLI
cmd/skill_remove_cmd.go skills remove CLI
docs/22-skill-hub-installation.md Feature documentation

Test plan

  • go build ./... passes
  • go vet ./... passes
  • goclaw skills install github.com/goclaw-hub/shopee-product-finder installs successfully
  • goclaw skills search shopee returns results
  • goclaw skills remove shopee-product-finder removes skill
  • Invalid package names (;, |, $) rejected by validatePackageName()
  • Path traversal in tar entries rejected

…arch

Zero-rebuild skill installation from GitHub repos or registry slugs.
CLI: `goclaw skills install|remove|search`. Security: package name
injection prevention, tarball path traversal hardening, SKILL.md guard
scan, stdlib-shadowing blocklist, atomic version locking.

- Phase 0: dep_installer.go validatePackageName() + guard.go regex fix
- Phase 1: github_fetcher.go — tarball download + secure extraction
- Phase 2: installer.go — validate→copy→DB→deps→hot-reload orchestrator
- Phase 3: registry_client.go — JSON index fetch + cache + TTL
- Phase 4: CLI commands (install, remove, search) with DB bootstrap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant