Add install and uninstall commands - #5
Merged
Conversation
install copies the gaffa skills into the tools you pick and writes a per-directory receipt recording each file with its hash. A second install refreshes to the current skills and drops any it wrote before that the source no longer has. uninstall reverses an install for a scope, and leaves any skill you edited since in place rather than deleting your changes. The skills source sits behind a seam so npm resolution can replace it when GAF-705 lands. For now it reads a local checkout via --skills-dir or GAFFA_SKILLS_DIR.
Newer npm on Node 24 rejects a publish dry-run when package.json holds an already released version, which is every pull request between releases. npm pack proves packaging without hitting the registry.
jamesmundy
approved these changes
Aug 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs GAF-668
Adds
gaffa installandgaffa uninstall.receipt (each file plus its hash), so uninstall knows exactly what it wrote.
that the source no longer has.
place and reported, never deleted.
it auto-loads .agents/skills, no manual step.
The skills source is behind a seam: a local checkout now via --skills-dir or
GAFFA_SKILLS_DIR, npm resolution when GAF-705 lands. The version check waits on
GAF-705 too.
Tests cover fresh install, refresh-drop, edited-file safety on uninstall and
refresh, shared-dir dedup, personal and project scope, and the CLI end to end.