Skill: install/check/uninstall subcommands (#37)#43
Open
MisterGC wants to merge 1 commit into
Open
Conversation
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.
Implements issue #37 (description rewritten on the issue to match the agreed design).
Three new sub-subcommands under
grafli skill:grafli skill install [all|claude|codex|opencode]— copy the bundled SKILL.md into the user-level skill directory for each target. Bare invocation prompts per target. Positional installs only that target.allinstalls everywhere unattended.grafli skill check [all|claude|codex|opencode]— report install status per target. Bare invocation checks every target with no prompting. Human-readable by default;--jsonfor machines.grafli skill uninstall [all|claude|codex|opencode]— remove the installedgrafli/skill directory per target, symmetric to install.Behaviour highlights:
<!-- grafli skill version: X.Y.Z -->injected after the YAML frontmatter at install time; hash compare on canonical (version-line-stripped) content distinguishes five states:ok,stale,modified,unknown,missing.--force(skip prompts),--dry-run(preview without writing) on install/uninstall;--jsonon check.--force→ refuses with a hint instead of guessing.--forceis passed.~/.claude/skills/grafli/SKILL.md~/.agents/skills/grafli/SKILL.md~/.config/opencode/skills/grafli/SKILL.mdgrafli skill,grafli skill -o FILE,grafli skill --wherestill work as before.Out of scope for this PR (deferred per design notes on the issue):
--symlinkinstall mode, project-level installs, additional targets.Test plan
grafli skill checkreports all three as missing on a clean machine (exit 0)grafli skill install all --dry-runlists planned writes (exit 1 since drift exists)grafli skill install claude < /dev/nullrefuses with non-zero exitgrafli skill install all --force,checkreports all threeok(exit 0)checkreportsmodifiedgrafli skill uninstall all --forcecleanly removes the three directories