fix(mcp): preserve skill frontmatter metadata at runtime (#1242)#1251
Merged
Conversation
Extend SkillFrontmatterSchema to parse user-invocable, disable-model-invocation, context, agent, and allowed-tools fields. Map kebab-case to camelCase in parseSkill() and propagate through listSkillSummaries and listSkillsFromDir. Filter skills with userInvocable: false from recommendSkills() results so internal skills like agent-discussion and tmux-master no longer appear in recommendations.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
JeremyDev87
commented
Apr 3, 2026
JeremyDev87
left a comment
Owner
Author
There was a problem hiding this comment.
Review: ✅ APPROVE
CI Status: ALL PASS
Code Review
skill.schema.ts — Schema + interface extended:
- 5 new optional fields in
SkillFrontmatterSchema:user-invocable,disable-model-invocation,context,agent,allowed-tools Skillinterface extended with camelCase equivalentsparseSkill()maps kebab-case frontmatter → camelCase interface
rules-core.ts + rules.service.ts — Propagation:
listSkillSummaries()return type extended to include new fieldslistSkillsFromDir()propagates all metadata through
skill-recommendation.service.ts — Filtering:
- New
skillMetadataCachestoresuserInvocableper skill recommendSkills()filters outuserInvocable === falseafter building matches- Clean implementation: cached at startup, checked at recommendation time
Tests — Thorough coverage:
skill.schema.spec.ts: 7 new tests (each field individually + all together + undefined defaults)skill-recommendation.service.spec.ts: 4 new tests (exclude non-invocable, include invocable, default behavior, keyword trigger filtering)
Issues Found: None
Recommendation: APPROVE
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
SkillFrontmatterSchemato parseuser-invocable,disable-model-invocation,context,agent,allowed-toolsfieldsSkillinterface and propagate throughlistSkillSummaries→listSkillsFromDiruserInvocable: falseskills fromrecommendSkills()results so internal skills no longer appear in recommendationsCloses #1242
Test plan
skill.schema.spec.ts— 25 passed (7 new tests for extended fields)skill-recommendation.service.spec.ts— 65 passed (4 new tests for user-invocable filtering)