Skip to content

fix(skill-tooling): validate skill names, fix invalid frontmatter, and harden scripts#80

Open
crazywriter1 wants to merge 1 commit into
base:masterfrom
crazywriter1:fix/skill-tooling-and-frontmatter
Open

fix(skill-tooling): validate skill names, fix invalid frontmatter, and harden scripts#80
crazywriter1 wants to merge 1 commit into
base:masterfrom
crazywriter1:fix/skill-tooling-and-frontmatter

Conversation

@crazywriter1
Copy link
Copy Markdown

Summary

Fixes correctness issues in the bundled skill tooling and metadata that
prevented skills from passing their own validator/packager, plus a few
small script hardening improvements.

Changes

  • base-mcp/SKILL.md — removed non-spec title and version frontmatter
    keys. They are not in the allowed property set, so quick_validate.py /
    package_skill.py rejected the skill. Now only name + description.
  • init_skill.py
    • Validate the skill name (hyphen-case, no leading/trailing/consecutive
      hyphens, max 64 chars) before creating anything — previously any name
      was accepted despite the printed requirements.
    • Quote the template description so generated skills are valid YAML.
      Starting with [ made YAML parse it as a list, so every freshly
      initialized skill failed quick_validate.py ("Description must be a
      string, got list").
    • Fixed help text: Max 40 charactersMax 64 to match the validator.
  • quick_validate.py — tolerate CRLF (\r\n) frontmatter and drop the
    unused os import.
  • package_skill.py — fixed usage docstring path (utils/scripts/).
  • analyze_project.py — preserve provider_type in the
    provider_locations output instead of dropping it.
  • validate_conversion.py — align the miniKit prop regex with
    analyze_project.py ([=:][=:{]).

Testing

No formal test suite exists in the repo, so verified manually:

  • python -m py_compile on all five touched scripts — OK
  • quick_validate.py skills/base-mcp — now passes (was failing)
  • init_skill.py rejects invalid names (Bad_Name, 65-char name) and
    accepts valid ones
  • Full init_skill → quick_validate → package_skill pipeline succeeds
    end-to-end on a generated skill

Notes

@cb-heimdall
Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants