feat(onboarding): add interactive skill ecosystem selection to wave init#393
feat(onboarding): add interactive skill ecosystem selection to wave init#393nextlevelshit merged 1 commit intomainfrom
Conversation
Add Step 6 to the onboarding wizard for selecting and installing skills from supported ecosystems (Tessl, BMAD, OpenSpec, Spec-Kit). Includes ecosystem browsing with multi-select for Tessl, install-all for bundle ecosystems, CLI dependency checking with install guidance, graceful error handling, and reconfigure support with skill deduplication. Closes #384
Code Review (Wave Pipeline)Verdict: REQUEST_CHANGES This PR adds a well-structured onboarding step for interactive skill ecosystem selection. Error handling is comprehensive, naming follows codebase conventions, and all 45 onboarding tests pass. However, two issues warrant changes before merge: a silent data loss bug in non-interactive reconfigure and missing timeouts on external subprocess calls. Critical Issues1. Non-interactive reconfigure silently drops all installed skills When 2. No timeout on external command execution
Suggested Improvements3. Extract shared select-and-install helper (~60 duplicated lines)
4. The comment says "if the second field looks like a rating, skip it" but the code always skips 5. The test sets 6. Use
7. Hardcoded "Step N of 6" strings across 7 locations Adding another step requires touching all 7 locations. A Positive Observations
Generated by Wave gh-pr-review pipeline |
- Preserve existing skills on non-interactive reconfigure instead of dropping - Add 2-minute timeout for skill installation operations - Fix CRLF round-trip tests to verify actual content fidelity - Replace flaky 1ns timeout tests with immediate context cancellation - Fix stderr capture test to actually test error messaging
Summary
wave initonboarding wizardwave.yamlmanifest under theskillskeySpec
specs/384-init-skill-selection/spec.md
Test Plan
parseTesslOutput,findEcosystem,mergeSkillshelpers (table-driven)skillskey present when skills installed, absent when emptydefaultCommandRunnersuccess/failure pathsgo test -race ./...passesKnown Limitations
huhform dependencies — manual testing recommendedCloses #384