fix(skill): SKILL.md compliance with agent skill schema best practices#152
Open
jeremylongshore wants to merge 1 commit intonextlevelbuilder:mainfrom
Open
fix(skill): SKILL.md compliance with agent skill schema best practices#152jeremylongshore wants to merge 1 commit intonextlevelbuilder:mainfrom
jeremylongshore wants to merge 1 commit intonextlevelbuilder:mainfrom
Conversation
Co-Authored-By: Claude Opus 4.6 <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.
Hey! Really cool skill — the searchable design system generator with reasoning-based recommendations is genuinely useful. I run claudecodeplugins.io (270+ plugins, 1500+ skills) and noticed a few schema issues that would prevent this skill from triggering reliably and installing portably. This PR fixes them.
Everything below explains why each change matters, not just what changed.
What Changed
1. Added missing frontmatter fields
Before: Only
nameanddescriptionin the YAML frontmatter.After: Added
allowed-tools,version,author,license.Why this matters: Without
allowed-tools, the agent literally doesn't know what tools it's allowed to use when this skill activates. It has to guess — and often guesses wrong (e.g., tries to useBashbut gets blocked). Theversionfield lets package managers and marketplaces track updates. These are required fields in the skill schema spec.2. Rewrote the description to be action-oriented
Before: A ~600-character comma-separated keyword list:
After: Clear activation signals:
Why this matters: The agent uses the
descriptionfield to decide when to activate the skill. It's pattern-matching on intent, not doing keyword search. A wall of comma-separated terms gives it no clear signal — it either activates on everything vaguely UI-related (false positives) or nothing (because the signal is too noisy). Action-oriented "Use when..." phrases tell the agent exactly when to fire. This is a documented anti-pattern in the skill best practices.3. Restructured body with canonical sections
Before: Custom sections like "When to Apply", "Rule Categories by Priority", "Quick Reference", "How to Use This Skill", etc. — good content, but the agent doesn't know what to do with non-standard headings.
After: The 7 canonical sections the agent expects:
Why this matters: The agent processes skills like a recipe. Numbered
## Instructionstell it what to do in what order.## Error Handlingprevents it from getting stuck when Python isn't installed or a search returns nothing.## Outputtells it what "done" looks like. Without these, the agent has to improvise — and it usually improvises poorly. The canonical sections are part of the skill schema spec that all marketplace skills follow.4. Fixed script paths to use
{baseDir}Before:
python3 skills/ui-ux-pro-max/scripts/search.pyAfter:
python3 {baseDir}/scripts/search.pyWhy this matters:
{baseDir}is a runtime variable that resolves to wherever the skill is actually installed. Hardcoded relative paths only work if the user clones the repo to a specific location. Anyone installing via a plugin manager, marketplace, or different directory structure gets broken paths. This is the standard portability mechanism — every marketplace skill uses it.5. Progressive disclosure (387 → 90 lines)
Before: 387 lines with inline reference tables (accessibility rules, icon guidelines, light/dark mode contrast values, pre-delivery checklist, full search domain reference, etc.)
After: 90 lines focused on the core workflow. The detailed reference content lives where it belongs — in your excellent CSV databases that the search tool already indexes.
Why this matters: Skills use a three-tier loading system:
name+descriptionfor activation decisions{baseDir}/data/*.csv,{baseDir}/references/*Embedding everything in the SKILL.md body means ~14K chars load every time the skill triggers, even if the user just wants a color palette. The total skill budget is ~15K chars — a bloated SKILL.md leaves no room for other skills to coexist. Your search tool already indexes all that reference content, so there's no reason to duplicate it inline.
Validator score
The Canonical Skill Schema (for reference)
Here's the full scaffold that marketplace-compliant skills follow. Your skill now matches this structure:
Output
Error Handling
Examples
Example 1: Short description
Example 2: Another scenario
Resources
{baseDir}/references/