Replies: 3 comments
|
The spec and the reference implementation give different answers, and you caught the exact line where they diverge. Here's what I found after reading both: The spec says ASCII-only. The parenthetical The reference implementation says Unicode. So which wins? Per this repo's own contribution guidance, the spec is the authority. That means:
Either way the current text needs a one-line edit. The question is which one. My read, for what it's worth: option 1 (ASCII-only) fits the project's "keep the format small" principle better. A name is a directory name, a URL slug, and a lookup key — all contexts where normalization surprises are expensive. But that's a judgment call, not a spec reading. |
|
Agreed on both counts — ASCII-only is the better reading of the spec text as written, and it's the one-line fix ( Would welcome a maintainer's take on which direction a follow-up PR should take: (a) drop "unicode" from the spec prose and tighten Drafted with Claude Code; reviewed by me before posting. |
|
Same read. The spec fix is one deleted word — dropping "unicode" from the constraint line. If a maintainer wants to go the other way, the heavier edit (normalization form, non-ASCII examples) is well-scoped in your original post already. |
Uh oh!
There was an error while loading. Please reload this page.
docs/specification.mdxdescribes thenamefield constraint as:Read literally, this is self-contradictory: it says "unicode" but the only characters given are the ASCII ranges
a-zand0-9. Every "Valid examples" / "Invalid examples" block in that section is also ASCII-only, so the doc text alone doesn't settle which reading is intended:a-z,0-9,-.(a-z, 0-9)are examples, not an exhaustive list — names likecafé-notesor日本語-skillwould be valid as long as they're lowercase.This isn't just a hypothetical: the repo's own reference implementation (
skills-ref/src/skills_ref/validator.py) has picked an answer already. Its_validate_namedocstring says "Skill names support i18n characters (Unicode letters) plus hyphens," and it checks characters with Python'sstr.isalnum(), which accepts non-ASCII letters (and non-ASCII digits). So skills-ref currently implements reading #2, while the spec prose is genuinely ambiguous about which was intended.Per this repo's contribution guidance, the spec is the authority here — skills-ref's behavior shouldn't be treated as the de facto answer just because it's already implemented that way. Wanted to flag it explicitly rather than have a PR quietly resolve it one way:
caféequivalent tocafé(NFD)? skills-ref currently NFKC-normalizes before comparing).Happy to send a small follow-up PR once there's a preferred direction — this note is just to surface the ambiguity rather than resolve it unilaterally.
Drafted with Claude Code; reviewed by me before posting.
All reactions