Align Fizzy skill installation with basecamp-cli#119
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request aligns Fizzy's agent skill installation and lifecycle with the more robust basecamp-cli model. The primary change is embedding the skill directly from skills/fizzy/SKILL.md into the binary, removing the legacy mirrored package, standardizing the install location to ~/.agents/skills/fizzy/SKILL.md, and adding automatic skill refresh when the CLI version changes.
Changes:
- Embed skill files directly in binary via top-level
skillspackage; remove legacyinternal/skillspackage - Add version stamping (
.installed-versionfile) and automatic refresh when CLI version changes - Repair broken Claude symlinks automatically and improve Claude plugin setup documentation
- Expand test coverage to include install, refresh, version tracking, absent locations, and symlink repair scenarios
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/embed.go | New package that embeds fizzy skill files into binary via go:embed |
| README.md | Clarified AI agent integration section to better explain Claude plugin and skill linking flow |
| Makefile | Removed sync-skill target as skill is now embedded |
| internal/commands/skill.go | Refactored to read embedded skill, added version tracking, refresh logic, and symlink repair |
| internal/commands/skill_test.go | Expanded test coverage for install, refresh, version management, and symlink repair scenarios |
| internal/commands/root.go | Added CLI version tracking and automatic skill refresh on version change |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
3 issues found across 9 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="internal/commands/skill.go">
<violation number="1" location="internal/commands/skill.go:227">
P2: Baseline installs through the wizard can miss `.installed-version` because stamping is conditional on `canonicalFile != expandedPath`. Write the version stamp for canonical installs too.</violation>
</file>
<file name="internal/commands/skill_test.go">
<violation number="1" location="internal/commands/skill_test.go:259">
P3: Test setup errors are silently discarded here, but other tests in this file use `t.Fatal(err)` for identical `os.WriteFile`/`os.MkdirAll` calls. If either fails, the test could pass for the wrong reason (e.g., `copySkillFiles` fails because the source file is missing, not because it detected subdirectories).</violation>
<violation number="2" location="internal/commands/skill_test.go:277">
P3: Test setup errors are silently discarded, inconsistent with other test functions in this file (e.g., `TestInstalledSkillVersion`). If setup fails, the test produces a misleading failure message ("expected true when skill file exists") instead of surfacing the actual setup error.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Review carefully before merging. Consider a major version bump. |
|
Fixed — cubic identified that the wizard could miss on canonical installs, and that a couple of skill tests were discarding setup errors. The wizard now always stamps the canonical install version, and the tests now fail explicitly on setup errors. |
|
Fixed — tightened test setup error handling in skill tests for consistency with the rest of the file. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
This aligns Fizzy’s agent skill installation and lifecycle with the more robust
basecamp-climodel so the embedded skill has a single source of truth, installs into a canonical shared location, stays in sync across CLI upgrades, and integrates more clearly with Claude plugin setup. The goal is to reduce drift and maintenance overhead while making the README and setup flow match how the skill and Claude integration actually work.Changes
skills/fizzy/SKILL.mdinternal/skillspackage andsync-skillworkflow~/.agents/skills/fizzy/SKILL.mdSummary by cubic
Aligns Fizzy’s skill install flow with
basecamp-cli. The embeddedSKILL.mdinstalls to~/.agents/skills/fizzy/, records an installed version, auto-refreshes on CLI upgrades, repairs Claude links, and makesfizzy skillan interactive installer by default.New Features
~/.agents/skills/fizzy/SKILL.mdwith.installed-version; auto-refreshes all detected installs on CLI version change with a one-line notice; skips dev builds.fizzy skillis interactive;fizzy skill installinstalls and links to Claude;fizzy skill printoutputs the embedded skill.Refactors
skillsviaembed.FS; removedinternal/skillsand thesync-skillMakefile target..last-run-versionsentinel in the config dir and refreshes skills on change; wizard option renamed to “Agents (Shared)”.fizzy setup claude, the default interactive behavior, and linking for other agents; tests expanded for install, refresh, stamping, symlink repair, and version-guard paths.Written for commit feeaa05. Summary will update on new commits.