Repository navigation
mr-hook, mr-index: stop hinting skills the model cannot load - #76
Merged
Merged
Conversation
- enabledPlugins is merged per name@marketplace key, and a plugin name counts as enabled when any of its keys is. Merging by bare name let map order decide when one plugin was installed from two marketplaces with one key true and one false, so its skills were hidden on some prompts only. - A plugin skill is judged by the installed copy its path sits in. A path under no installed copy (an old version an update left in the cache) is hidden. - Ranked candidates whose SKILL.md is gone, or whose frontmatter sets disable-model-invocation, are hidden. The few reads happen inside the deadline, so filterInvocable stays pure and the ids are still logged as hidden. - mr-index: a discovery-owned plugin root that installed_plugins.json no longer lists for its pack is superseded and triggers rediscovery. When one plugin is installed from several marketplaces, discovery keeps the copies enabled in settings.json, so harvest's first-wins dedup cannot keep the disabled copy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Intent
The skill hint should suggest only skills the model can load. It suggested three kinds it cannot, and it hid one kind it should have shown.
What changed
enabledPluginsis merged pername@marketplacekey, and a plugin name counts as enabled when any of its keys is. Before, keys were merged by bare name, so withname@a: falseandname@b: truethe result depended on Go map iteration order, and the plugin's skills were hidden on some prompts only.disable-model-invocation. For the few ranked candidates,SKILL.mdis read inside the hook's deadline. A missing file, or frontmatter withdisable-model-invocation: true, hides the candidate.filterInvocablestays pure, and these ids are still logged as hidden.installed_plugins.jsonno longer lists for its pack is now superseded and triggers rediscovery. Before, an update left the old version directory in place,Stalesaw it as live, and the index kept serving the old skills.settings.json, so harvest's first-wins dedup cannot keep the disabled copy.Real run
Run against a real config in which one plugin is installed from two marketplaces (one key true, one false) and its newest version marks 3 skills
disable-model-invocation. Same 4 prompts for both binaries, usage log redirected:mr-hook(5a8186a):disable-model-invocationskill surfaced in 5 of 6 runs of its prompt.mr-hook:mr-index refresh, on a copy of an index androots.jsonpinned to the previous version:Tests
None added. The existing suite runs in CI.
go build ./...andgo veton the changed packages are clean.Risk
installed_plugins.jsoncarries noinstallPath, the old name-level rule applies unchanged.🤖 Generated with Claude Code