feat(cli): add wave skills subcommand for lifecycle management#392
feat(cli): add wave skills subcommand for lifecycle management#392nextlevelshit merged 2 commits intomainfrom
Conversation
…rch, sync Adds a top-level `wave skills` command for skill lifecycle management. Subcommands support table and JSON output formats, structured CLI errors, and interactive confirmation prompts. Closes #382
Code Review (Wave Pipeline)Verdict: APPROVE Solid implementation of the Critical IssuesNone. No CRITICAL or HIGH severity security vulnerabilities were identified. The implementation correctly uses Recommended Fixes (before or shortly after merge)1. Capture stderr from 2. Add timeout to 3. Use 4. JSON output should use 5. Check Suggested Improvements
Positive Observations
Generated by Wave gh-pr-review pipeline |
…hygiene - Add 30s timeout for tessl subprocess calls - Capture and surface tessl stderr in error messages - Use cmd.OutOrStdout() for JSON output instead of os.Stdout - Check os.MkdirAll and os.WriteFile errors in tests - Simplify test output capture via cmd.SetOut
Summary
wave skillstop-level command with 5 subcommands:list,install,remove,search,sync--format table|jsonoutput and use structuredCLIErrorcodeslistshows installed skills from project (.wave/skills/) and user (~/.claude/skills/) directories with pipeline usage cross-referencinginstalluses the skill router to handle source prefixes (tessl:,github:,file:, etc.) with dependency error classificationremoveincludes interactive confirmation prompt with--yesflag to skipsearchandsyncdelegate to thetesslCLI with graceful missing-binary errorsSpec
specs/382-skills-cli/spec.md
Test Plan
-raceflaggo test -race ./...passes across all packages (29 packages)go vet ./...cleangofmtapplied to all changed filesKnown Limitations
searchandsyncrequire thetesslCLI binary — returnsskill_dependency_missingerror if not installedtessl searchCloses #382