| Directory structure | skill-name/SKILL.md plus optional references/, scripts/, assets/ | SKILL.md is the only required file |
| Frontmatter (required) | YAML block with name and description | name must match directory, max 64 chars |
| Frontmatter (optional) | license, compatibility, metadata, allowed-tools | Defined by open standard, portable across agents |
| Agent-specific fields | model, context, agent, hooks, user-invocable | Claude Code extensions, not portable |
| Description triggers | Include "Use when..." or "Use for..." phrases | Keyword-rich, third-person voice |
| Progressive disclosure | Metadata -> Instructions -> Resources (three tiers) | SKILL.md loaded in full; references on demand |
| SKILL.md size | Target 100-150 lines, max 500 | No code examples in SKILL.md |
| SKILL.md sections | Overview, Quick Reference, Common Mistakes, Delegation, References | All five sections required |
| Reference files | references/[topic].md with frontmatter | Max 500 lines each, self-contained |
| Reference frontmatter | title, description, tags fields | Required for all reference files |
| Scripts | scripts/ directory, executable code | Agents run scripts, not read source |
| Name format | Lowercase letters, numbers, hyphens | No --, no leading/trailing -, min 4 chars |
| Excluded filenames | README.md, metadata.json, _* files | Not installed by distribution CLI |
| Validation | skills-ref validate or project-specific validators | Always validate before distributing |