Repository navigation
Conversation
This was referenced Oct 28, 2026
Contributor
Author
|
Picked masnwilliams to review these related PRs (#49, kernel/kernel-mcp-server#260): touched the changed code in |
masnwilliams
approved these changes
Oct 28, 2026
masnwilliams
left a comment
Contributor
There was a problem hiding this comment.
lgtm. one copy plus a CI check is about as small as this can get: the Grok catalog drops paths outside the plugin root, and npx skills only finds skills/ or manifest-declared dirs. a few non-blocking notes:
worth fixing before merge
grok/README.md: the../skills/kernel-mcplink points outside the plugin root, so it dangles once the plugin is installed. that's the same reason a symlink doesn't work. the "runscripts/sync-plugin-skills.sh" note is also for maintainers, not plugin users. i'd drop that sentence; the script header and the CI error already cover it.
nice to have, scripts/sync-plugin-skills.sh
- update mode runs
rm -rf "$dst"before checking that$srcexists. if the source is renamed, the plugin copy gets deleted and thencpfails. - any argument other than
--check(e.g.--chek) silently runs update mode. --checksends the diff to/dev/null, so a red CI run doesn't show what drifted.- every source is
skills/<name>, so listing only the destinations and deriving the source withbasenameremoves thesrc:dstparsing.
this covers all four (tested: clean check exits 0, a stale copy exits 1 and prints the diff, a typo exits 2, a missing source exits 1 and leaves the copy alone):
-# source skill dir -> plugin copy
+# plugin copies of skills/<name>
copies=(
- "skills/kernel-mcp:grok/skills/kernel-mcp"
+ grok/skills/kernel-mcp
)
-check=false
-[[ "${1:-}" == "--check" ]] && check=true
+case "${1:-}" in
+ "") check=false ;;
+ --check) check=true ;;
+ *) echo "usage: $0 [--check]" >&2; exit 2 ;;
+esac
status=0
-for pair in "${copies[@]}"; do
- src="${pair%%:*}"
- dst="${pair#*:}"
+for dst in "${copies[@]}"; do
+ src="skills/$(basename "$dst")"
+ [[ -d $src ]] || { echo "$src does not exist" >&2; exit 1; }
if $check; then
- if ! diff -r "$src" "$dst" >/dev/null 2>&1; then
+ if ! diff -ru "$src" "$dst" >&2; thenfollow-up
- kernel/cursor-plugin has a third copy of this skill that nothing checks, and it already has the old stealth/scrape wording. it could pin a kernel/skills commit and check against it, the way kernel-mcp-server#260 does.
grok/.grok-plugin/plugin.jsonand thegrok/README.mdintro still say "stealth chromium sessions". fine if that's intentional.
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.
Summary
The
kernel-mcpskill documents Kernel's hosted MCP server, so it shouldn't live inside the Grok plugin. This moves it toskills/kernel-mcp/so other consumers can use it: the MCP server will serve it through the MCP Skills extension (kernel/kernel-mcp-server#260), andnpx skills add kernel/skillsnow picks it up becauseskills/is one of the CLI's default search dirs.skills/kernel-mcp/SKILL.mdis now the source of truth.grok/skills/kernel-mcp/is a committed copy. A symlink wouldn't work: the xAI marketplace catalog resolves skill paths and drops anything outside the plugin root (contained()inplugin_catalog.py).scripts/sync-plugin-skills.shrefreshes the copy, and--checkfails when it's stale. A new workflow runs the check on PRs and onmain.skills.sh.jsonand bumps the Grok plugin to 1.1.1.Skill text changes
stealthAPI field is still named in code.Testing
scripts/sync-plugin-skills.sh --checkpasses, and it fails after hand-editing the copy.npx skills add <checkout> --listlistskernel-mcpexactly once. Before this change it wasn't listed.Reviewed with sol-loop: 1 round with openai-codex/gpt-6.1-sol on extra-high reasoning. Sol verdict: approved.