fix(skills): change here-now skill frontmatter name from dotted to hyphenated (#53382) - #53447
Conversation
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Approved
Trivial frontmatter fix: here.now -> here-now to match the skill name validator regex. The regression test validates the real SKILL.md through the real UrlSource._is_valid_skill_name validator.
Reviewed by Hermes Agent
teknium1
left a comment
There was a problem hiding this comment.
Thanks for the focused frontmatter correction. Current main still has name: here.now at optional-skills/productivity/here-now/SKILL.md:2, while UrlSource._is_valid_skill_name() applies the dot-excluding regex at tools/skills_hub.py:1550-1559; changing the identifier to here-now is aligned with that contract.
Problems
- The added test is named
tests/skills/test_here_now_name.py;AGENTS.md:948-950requires thetests/skills/test_<skill>_skill.pynaming convention. tests/skills/test_here_now_name.py:25importsyamldirectly and duplicates frontmatter parsing. The production parser isagent.skill_utils.parse_frontmatter()atagent/skill_utils.py:123-157; reusing it also follows the skill-test dependency rule inAGENTS.md:948-950.
Suggested changes
- Rename the test to
tests/skills/test_here_now_skill.py. - Parse the fixture with
agent.skill_utils.parse_frontmatter()before passing itsnametoUrlSource._is_valid_skill_name().
Automated hermes-sweeper review.
| def _parse_frontmatter(content: str) -> dict: | ||
| """Extract YAML frontmatter between ``---`` markers.""" | ||
| if not content.startswith("---"): | ||
| return {} |
There was a problem hiding this comment.
Please use agent.skill_utils.parse_frontmatter() instead of importing yaml and maintaining a second parser here. That exercises the shared parser and keeps this skill test within the dependency convention in AGENTS.md:948-950.
d32cedd to
b853c0d
Compare
What
The optional
here-nowskill declaredname: here.nowin its YAML frontmatter. The skill-name validator (UrlSource._VALID_NAME_RE = ^[a-z][a-z0-9_-]*$) rejects dots, so the skill failed to load/validate with:Changed
name: here.now→name: here-now. The description, docs links, tags, and user-facing product name still usehere.nowwhere appropriate — only the frontmatter identifier changed.Why
here.now(with a dot) cannot pass the strict skill-name regex on any code path, so the skill could never load.here-now(hyphenated) is valid.How verified
tests/skills/test_here_now_name.pyparses the real frontmatter and validates it through the real project validator (UrlSource._is_valid_skill_name).main(here.nowfails the validator).author: here.nowand product references are untouched.Closes #53382.
Auto-published by Moonsong via Path B automated pipeline.