Skip to content

fix(mcp): preserve skill frontmatter metadata at runtime (#1242)#1251

Merged
JeremyDev87 merged 2 commits into
masterfrom
taskmaestro/1775239312/pane-1
Apr 3, 2026
Merged

fix(mcp): preserve skill frontmatter metadata at runtime (#1242)#1251
JeremyDev87 merged 2 commits into
masterfrom
taskmaestro/1775239312/pane-1

Conversation

@JeremyDev87

Copy link
Copy Markdown
Owner

Summary

  • Extend SkillFrontmatterSchema to parse user-invocable, disable-model-invocation, context, agent, allowed-tools fields
  • Map kebab-case frontmatter keys to camelCase in Skill interface and propagate through listSkillSummarieslistSkillsFromDir
  • Filter userInvocable: false skills from recommendSkills() results so internal skills no longer appear in recommendations

Closes #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)
  • Full test suite — 5833 passed

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.
@vercel

vercel Bot commented Apr 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
codingbuddy-landing Ready Ready Preview, Comment Apr 3, 2026 6:23pm

@JeremyDev87 JeremyDev87 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
  • Skill interface extended with camelCase equivalents
  • parseSkill() maps kebab-case frontmatter → camelCase interface

rules-core.ts + rules.service.ts — Propagation:

  • listSkillSummaries() return type extended to include new fields
  • listSkillsFromDir() propagates all metadata through

skill-recommendation.service.ts — Filtering:

  • New skillMetadataCache stores userInvocable per skill
  • recommendSkills() filters out userInvocable === false after 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

@JeremyDev87 JeremyDev87 self-assigned this Apr 3, 2026
@JeremyDev87 JeremyDev87 added the fix label Apr 3, 2026
@JeremyDev87 JeremyDev87 merged commit db5455d into master Apr 3, 2026
25 checks passed
@JeremyDev87 JeremyDev87 deleted the taskmaestro/1775239312/pane-1 branch April 3, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(mcp): preserve skill frontmatter metadata at runtime

1 participant