ax-check rule
AXC-D023: Skill name breaks the naming rules
The skill name is longer than 64 characters, is not lowercase letters, digits and single hyphens, or does not match its folder.
ax-check is a checker being prepared for release. This page documents the rule ahead of that release; see all 50 rules.
| Severity | error |
| Kind | Conformance. A finding is a fact about the input. |
| Mode | ax-check lint |
| Applies to | SKILL.md |
| Pattern tags | skills, discovery |
| Fix in one line | Use a lowercase, hyphenated name of at most 64 characters that matches the skill folder name. |
The skill’s name breaks the rules in the Agent Skills specification. It is longer than 64 characters, uses characters other than lowercase letters, digits and single hyphens, or does not match the folder that holds SKILL.md. Tools that install, list or load skills rely on these rules, so a skill that breaks them may be renamed, rejected or loaded under a name the author did not expect.
What it checks
For each SKILL.md with a name in its frontmatter, ax-check checks that the name:
- is at most 64 characters long;
- uses only lowercase letters, digits and hyphens;
- does not start or end with a hyphen and has no two hyphens in a row;
- matches the name of the folder that contains SKILL.md.
Why it matters
The Agent Skills specification sets these rules: the name is required, at most 64 characters, made of lowercase letters, numbers and hyphens, must not start or end with a hyphen, must not contain consecutive hyphens, and must match the parent directory name.
The name is how a skill is referred to: in listings, in instructions that say “use the invoice-review skill”, and on disk. When the frontmatter name and the folder name differ, an installer that copies the folder and an agent that reads the frontmatter can end up using two different names for one skill. Mixed case and spaces cause similar mismatches on case-sensitive file systems and in commands.
How to fix
- Use a short, lowercase, hyphenated name of at most 64 characters, for example
invoice-review. - Rename the folder or the
namefield so the two are identical. - If you rename a published skill, update any instructions that mention the old name.
Example
Before
skills/invoice-review/SKILL.md
---
name: Invoice_Review--Helper
description: Checks a draft invoice before it is sent. Use this when asked to review an invoice.
---
After
skills/invoice-review/SKILL.md
---
name: invoice-review
description: Checks a draft invoice before it is sent. Use this when asked to review an invoice.
---
How ax-check detects it
ax-check trims the name value and tests it against three conditions:
- length: more than 64 characters is reported;
- characters: the name must match the pattern
^[a-z0-9]+(-[a-z0-9]+)*$, which allows only the ASCII letters a to z, the digits 0 to 9 and single hyphens between them; - folder: when ax-check knows the folder that contains SKILL.md, the name must equal the folder name exactly.
All problems with one name are reported together in a single finding.
What it ignores: a missing name is reported by AXC-D022, not here. From the command line, ax-check always reads the folder that holds each SKILL.md. The folder check is skipped only when the ax-check library is given the text of a SKILL.md without its folder.
Known false positives: the pattern accepts only ASCII letters. A name with accented or other non-ASCII lowercase letters is reported even if a particular skill loader accepts it.
If the finding does not apply, silence it with --disable AXC-D023.
Sources
- Specification: Agent Skills specification, agentskills.io, retrieved 2026-10-08. https://agentskills.io/specification.
nameis required, at most 64 characters, lowercase letters, numbers and hyphens, must not start or end with a hyphen, must not contain consecutive hyphens, and must match the parent directory name.
Related evidence
Records in the AX evidence register that share a pattern tag with this rule. A shared tag means the record is about the same pattern, not that it tests this rule. Read the evidence class before the number.
- EV-0019: Skill selection precision collapses as the skill pool grows (Preprint). A preprint reports that as the pool of available skills grew from 5 to 100, the precision with which agents actually used the right skill fell from 29.6% to 3.3%.
- EV-0013: FAQ blocks and structured data showed no citation effect within a domain (Preprint). An observational study of about 2 million AI-engine citations (preprint) found that FAQ blocks, structured data and Core Web Vitals had positive effects on citation in pooled data that reversed or fell to zero once domain fixed effects were applied.
- EV-0017: Injected skills lowered pass rates and raised token cost on average (Preprint). WebDev-Skills-Bench (preprint) found that injecting matched public skills reduced mean Pass@2 by 1.3% to 4.2% across four models and raised token cost by 72% to 394%, with gains in only 17% to 36% of skill-project pairs.
- EV-0018: Skill rules that name a command or path change what agents do (Preprint). A study of 3,159 skills (preprint) found that adding a checkable rule raised the rate at which four coding agents took the required action by +0.23 on average, with the gain coming mainly from rules naming a command or path the old skill did not mention.
- EV-0023: Hiding tools is not enforcing permissions (Preprint). Across 2,160 attempts with four frontier models (preprint), a server with only in-body permission checks exposed forbidden tools in 152 of 720 trials and permission-aware visibility cut that to 0 of 720, yet models named a hidden tool in up to 94% of settings when it was inferable from the prompt.
- EV-0027: A capable agent skipped the index and guessed the page (Preprint). A preregistered ablation on a 709-page Markdown wiki (preprint) found that a capable tool-using agent never loaded the compact catalogue index, inferring page paths from the question instead, while retrieval-based access kept answer quality non-inferior and cut cost by about a third to over half.
