Writing Your First Agent Skill
A 6-chapter course for developers on writing an agent skill from scratch. SKILL.md anatomy, the references/ vs scripts/ split, and the 10 most common authoring mistakes.

What you'll learn
- ✓Understand what a skill really is to the LLM at routing time, and when to pick a skill vs MCP / system prompt / CLI
- ✓Write a SKILL.md with a description the LLM routes correctly (Use when / Do NOT use for patterns)
- ✓Know when to keep the minimal frontmatter and when to add a metadata.json sidecar for a catalog
- ✓Decide between references/ and scripts/ for any supporting content
- ✓Share your skill via one of four paths: personal local, team handoff, internal catalog, public catalog
- ✓Run the 10-minute pre-share checklist and avoid the 10 most common authoring mistakes
Who this is for
Developers who know git, Markdown, and JSON, and want to author an agent skill from scratch for personal use, a team, or contribution to a public catalog. No prior experience with the skill format required.
Course curriculum
Click "Start course" to unlock chapters- 1.~4 minWhat is a skill, really?A skill is the simplest way to teach an AI assistant to handle a specific task: a single Markdown file with YAML frontmatter at the top, optionally accompanied by reference files and executable scripts. The agent reads the file on demand when the description matches the user's request. That is the entire model. Everything else (how you distribute it, how it gets installed, what UI a catalog wraps around it) is built around that one file.
- 2.~4 minAnatomy of a great SKILL.mdA great SKILL.md does three things at once: it tells the LLM when to load itself (the description), it teaches the LLM how to perform the task (the body), and it gives the LLM enough examples to handle edge cases without escalating to the user. If any of these three are missing, the skill either does not get loaded (description failure), does the wrong thing (body failure), or asks the user too many clarifying questions (examples failure).
- 3.~3 minExtending the format (optional)The skill format (the spec developed by Anthropic, accepted by Claude Code, Cursor, Windsurf, and Claude Desktop) is intentionally minimal: `SKILL.md` with three frontmatter fields, plus the optional `references/` and `scripts/` subfolders. That is enough for a personal skill, or a skill you share by zipping a folder and sending it to a colleague. But if you want to put your skill in a catalog or expose extra metadata to consumers, you need to extend the spec somehow.
- 4.~4 minreferences/ vs scripts/ (when to use which)A skill folder can include two optional subfolders: `references/` and `scripts/`. They serve different purposes and choosing the wrong one is a frequent rejection reason. The rule is simple: `references/` for static content the LLM reads, `scripts/` for executable code the LLM runs. The hard part is recognizing which side of the line your content falls on.
- 5.~4 minSharing your skillYou have written SKILL.md, optionally added references/ and scripts/, and the skill works. Now the practical question: how do you actually use it, share it with others, or publish it to a catalog? This chapter covers four scenarios in order of effort.
- 6.~7 minThe 10-minute pre-share checklistThis chapter is short on purpose. It is the checklist you run BEFORE sharing your skill with anyone (a colleague, a public catalog, or your future self after a long break). Ten minutes spent here saves multiple back-and-forth rounds with reviewers and prevents the most common authoring mistakes.
Skills to install to act on what you've learned
Validate and format Israeli identification numbers including Teudat Zehut (personal ID), company numbers, amuta (non-profit) numbers, and partnership numbers. Use when user asks to validate Israeli ID, "teudat zehut", "mispar zehut", company number validation, or needs to implement Israeli ID validation in code. Includes check digit algorithm and test ID generation. Do NOT use for non-Israeli identification systems.
Optimize websites for Hebrew SEO and GEO (Generative Engine Optimization) on Google.co.il and AI search engines (ChatGPT, Perplexity, Gemini, Copilot, Claude). Use when user asks about Hebrew keyword research, Israeli SEO, .co.il domain optimization, Hebrew schema.org markup, AI search visibility, GEO optimization, EEAT, or asks about "kidum atarim", "milot mafteach", "SEO", "GEO", or Israeli search ranking. Includes Hebrew morphological analysis, Princeton GEO methods, platform-specific AI optimization, EEAT principles, JSON-LD structured data, and Israeli business schema (Shabbat hours, kosher certification). Do NOT use for paid advertising campaigns or social media marketing.
Validate, format, and convert Israeli phone numbers between local and international (+972) formats. Use when user asks to validate Israeli phone number, format phone for SMS, convert to +972, check phone prefix, or implement Israeli phone input validation in code. Handles mobile (050-058), landline (02-09), non-geographic / VoIP (072-079), toll-free (1-800), and star-service numbers. Do NOT use for non-Israeli phone systems or general telecom questions.
Reviews (...)
0Write a ReviewUse at your own risk. Terms of Use · Security