unit-9: extend validator with 5 conservative checks#13
Merged
Conversation
Adds five best-practice checks to scripts/validate-skills.sh, all of
which pass against the current 7 in-repo skills:
- description in third person (FAIL) — strips "quoted phrases" first
so verbatim user triggers don't trip the check
- no XML angle brackets in description (FAIL)
- no Windows-style backslash paths in body outside code fences (FAIL)
- vague description openers (Helps/Manages/Tools for/...) (WARN only)
- extend reserved name list to include 'meta' and 'google' (FAIL)
Reference-existence and cross-skill-existence checks are intentionally
deferred to v0.4 to keep this unit decoupled from the other batch units.
Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Scope
Extends
scripts/validate-skills.shwith five conservative best-practice checks. All five pass against the current 7 in-repo skills (verified — exit 0). Reference-existence and cross-skill-existence checks are deferred to v0.4 to keep this unit decoupled from the other batch units.The five checks
"quoted phrases", which are verbatim user triggers and exempt) for\b(I|you|we|us|my|your|our)\b(case-sensitive —UScountry shouldn't matchuspronoun) orcan help(case-insensitive).<[a-zA-Z/]— these break manifest parsing.\.Helps,Manages,Tools for,Utility for,Provides. Warning only — does not increment theerrorscounter.metaandgoogleto the existinganthropic/claudeblock. Refactored the if-chain into acasestatement for extensibility.Why "conservative"
The instructions explicitly required these checks to pass on the current 7 skills. Two existing descriptions contain quoted user trigger phrases like
"why are my messages failing"and"how do I model tenants"— verbatim user phrases that legitimately contain first-person pronouns. The third-person check strips"..."quoted text before grepping, so verbatim triggers are exempt.Verification
Baseline:
Manually tested each check with throwaway fixtures (symlinked into
skills/then removed; not committed):"I can help you with bad stuff."→ fails withdescription uses first/second person — rewrite in third person<tag>bad</tag>→ fails withdescription contains XML-style tagsscripts\helper.pyoutside a code fence, plussome\code\pathinside a fence → fails on the outside-fence one only, fence content correctly ignoredHelps test vague verb→ emits warning, exit 0 (not a failure)meta→ fails withname 'meta' is a reserved wordConstraints honored
scripts/validate-skills.shis touched.fail/okhelpers reused.description_valueandfm_endreused (no re-extraction).🤖 Generated with Claude Code