skills-il-skill-creator/SKILL.md
Interactive workflow for creating new skills for the skills-il organization. Guides through category selection, use case definition, folder scaffolding, metadata.json generation with bilingual metadata, instruction writing, Hebrew companion creation, and validation. Use when user asks to create a new skill, scaffold a skill for skills-il, write a SKILL.md, contribute a skill, new skill template, or liztor skill chadash. Enforces skills-il conventions (kebab-case naming, Hebrew transliterations, bilingual display names, progressive disclosure, validate-skill.sh compliance). Do NOT use for editing existing skills, creating skills for non-skills-il platforms, or generic markdown file creation.
npx skillsauth add skills-il/developer-tools skills-il-skill-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill walks you through creating a production-quality skill for the skills-il organization. It follows Anthropic's Complete Guide to Building Skills and enforces all skills-il conventions.
Every skill you create will include: SKILL.md with validated frontmatter, bilingual metadata (Hebrew + English), step-by-step instructions with tables and code examples, a Hebrew companion file (SKILL_HE.md), and pass all validation checks.
Ask the user which category repo this skill belongs to:
| Category | Repo | Focus Area | |----------|------|------------| | Tax & Finance | tax-and-finance | Invoicing, payroll, VAT, payments, pensions | | Government | government-services | data.gov.il, Bituach Leumi, Rasham, transit | | Security | security-compliance | Privacy law, cybersecurity, legal research | | Localization | localization | RTL, Hebrew NLP, OCR, Shabbat scheduling | | Dev Tools | developer-tools | ID validation, date conversion, phone formatting | | Communication | communication | SMS, WhatsApp, Monday.com, job market | | Food & Dining | food-and-dining | Restaurants, recipes, kashrut, delivery | | Legal Tech | legal-tech | Contracts, legal research, compliance | | Marketing & Growth | marketing-growth | SEO, social media, ads, email campaigns, ASO | | Education | education | Learning platforms, tutoring, academic tools | | Health Services | health-services | HMOs, pharmacy, medical records, appointments | | Accounting | accounting | Bookkeeping, financial reporting, audit, accountant tooling |
All 12 category repos use master as their default branch (not main). The full path format for github_url is https://github.com/skills-il/<repo>/tree/master/<slug>.
If the skill doesn't fit any category, discuss with the user whether it belongs in an existing category or warrants a new repo.
Before proceeding, you MUST ask the user for their creator details. These are required for submitting the skill to the Skills IL directory.
Ask the user:
"What is your name? This will be displayed as the skill creator on the Skills IL directory. Your GitHub username is fine too."
Wait for the user's response and store their answer as creator_name.
Then ask:
"What is your email address? This is required so we can notify you when your skill is published, featured, or if we need to contact you about updates. It will not be displayed publicly."
Wait for the user's response and store their answer as creator_email.
Rules:
creator_name is required. Default to the GitHub username if the user prefers not to provide their full name.creator_email is required and must be a valid email address. Do NOT proceed without it.metadata.author field and when submitting to the directory.CRITICAL: Before writing any code, identify 2-3 concrete use cases.
For each use case, capture:
Example format:
Use Case: Validate Israeli e-invoice
Trigger: User says "validate hashbonit electronit" or "check SHAAM allocation"
Steps:
1. Parse invoice fields
2. Validate allocation number format
3. Check against SHAAM rules
Result: Invoice validated with pass/fail report
Ask the user to describe their skill idea, then help them extract 2-3 use cases from it. Include Hebrew transliterations for all domain terms (e.g., "payroll" = "tlush maskoret", "invoice" = "hashbonit").
Before writing any content, verify the key facts your skill will reference. This is especially important for skills dealing with Israeli laws, regulations, government services, financial rules, or healthcare policies, as these change frequently.
What to verify:
How to verify:
What to record: For each key fact, note: the fact, the source, and the date verified. Include these as inline references in your SKILL.md instructions (e.g., "NIS 38,900 as of January 2025").
Do NOT skip this step. A skill with outdated or incorrect facts (wrong tax rate, expired law, wrong phone number) is worse than no skill at all.
Run the scaffolding script to create the skill folder structure:
python scripts/scaffold-skill.py --name <skill-name> --category <category-repo>
The script creates:
<skill-name>/
├── SKILL.md # Template with frontmatter skeleton
├── SKILL_HE.md # Hebrew companion stub
├── scripts/ # For helper scripts
└── references/ # For reference documentation
Verify the output:
CRITICAL: Skills-il splits metadata across two files. Claude Desktop rejects the metadata key inside SKILL.md frontmatter, so all enriched metadata lives in a separate metadata.json file. The SKILL.md frontmatter is intentionally minimal.
SKILL.md frontmatter (only these 3-5 fields):
---
name: <skill-name>
description: >-
[What it does -- one sentence]. Use when user asks to [triggers in English],
"[Hebrew transliteration 1]", "[Hebrew transliteration 2]", or [more triggers].
[Key capabilities]. Do NOT use for [anti-triggers] (use [alternative-skill] instead).
license: MIT
allowed-tools: '<tools if needed>' # optional, only when scripts call CLI tools
compatibility: >- # optional
[Network/system requirements]. Works with Claude Code, Claude.ai, Cursor.
---
Do NOT add metadata:, version:, tags:, display_name:, display_description:, author:, category:, or supported_agents: to the frontmatter. Claude Desktop rejects them.
metadata.json (in the same skill folder, alongside SKILL.md):
{
"author": "<creator_name from Step 2>",
"version": "1.0.0",
"category": "<category-repo>",
"tags": {
"he": ["<tag1-he>", "<tag2-he>", "ישראל"],
"en": ["<tag1>", "<tag2>", "israel"]
},
"display_name": {
"he": "<Hebrew display name>",
"en": "<English Display Name>"
},
"display_description": {
"he": "<Hebrew description>",
"en": "<English description, mirrors the main description field>"
},
"supported_agents": [
"claude-code",
"cursor",
"github-copilot",
"windsurf",
"opencode",
"codex",
"gemini-cli"
]
}
Supported agents: Include all standard agents (claude-code, cursor, github-copilot, windsurf, opencode, codex, gemini-cli) by default. If the skill relies on agent-specific features (e.g., MCP tools only available in Claude Code), remove agents that cannot support it and document why in the compatibility field. Add antigravity only if the skill is verified as Antigravity-compatible.
Project style rules (apply to every skill file):
master, not main, as the default branch.github_url format must include the full path to the skill folder, not just the repo root: https://github.com/skills-il/<repo>/tree/master/<slug>.Bilingual tags (MUST ASK): After defining the English tags, ask the user:
"Please provide Hebrew translations for each tag. Tags must have matching
heandenarrays (same length). For example, if your English tags are[invoicing, tax, israel], the Hebrew tags should be[invoices, taxes, israel]. What are the Hebrew equivalents for your tags?"
he and en arrays are required -- no tag may be left untranslatedAPI, MCP)Description rules (CRITICAL):
[What it does] + [When to use it] + [Key capabilities] + [Do NOT use for X]Do NOT use for boundary + cross-reference to related skillsAllowed-tools patterns:
'Bash(python:*)''Bash(python:*) WebFetch''Bash(python:*) Bash(curl:*) WebFetch''Bash(python:*) Bash(pip:*)'Write the SKILL.md body using this structure:
# <Skill Display Name>
## Instructions
### Step 1: <First Major Step>
<Clear explanation with tables, code examples>
### Step N: <Next Step>
...
## Examples
### Example 1: <Common Scenario>
User says: "<typical user request>"
Actions:
1. ...
Result: ...
## Bundled Resources
### Scripts
- `scripts/<name>.py` -- <What it does, how to run>. Run: `python scripts/<name>.py --help`
### References
- `references/<name>.md` -- <What it contains>. Consult when <specific situation>.
## Gotchas
- SKILL.md frontmatter uses YAML with specific nested structure (metadata.tags.he/en arrays). Agents may flatten the tags into a single array instead of using the bilingual he/en structure.
- Hebrew content in SKILL_HE.md must never appear inside code blocks (```) because code blocks do not support RTL rendering. Use plain text or bullet lists for Hebrew content.
- The skill description field has a dual purpose: it serves as both the YAML frontmatter description and the trigger text for agent matching. Agents may write a generic description that fails to trigger on relevant user queries.
- Skills must validate with the skills-il schema (name, description, license, metadata with version/category/tags). Agents may omit required fields like supported_agents or display_name.
## Troubleshooting
### Error: "<Error name>"
Cause: <Why>
Solution: <Fix>
Best practices from the Complete Guide:
python scripts/validate.py --input {filename}" not "Validate the data"references/Progressive disclosure:
references/ = detailed specs, full API docs, edge cases (loaded on demand)scripts/ = executable helpers (run when needed)Every skill should include reference files and helper scripts. These are not optional extras; they make the difference between a thin skill and a production-quality one.
References (references/ directory):
Create 2-3 reference files that contain detailed information too long for SKILL.md. Common patterns:
| Pattern | Example | When to use |
|---------|---------|-------------|
| Directory/listing | hospital-directory.md, crisis-hotlines-directory.md | Skill covers a domain with many institutions, services, or contacts |
| Detailed guide | fair-rental-law-summary.md, ivf-process-detailed.md | A process or law needs more detail than fits in instructions |
| Glossary | hebrew-rental-glossary.md | Skill uses domain-specific Hebrew terminology (50+ terms) |
| Checklist | contract-checklist.md, evidence-guide.md | Users need a step-by-step verification or preparation list |
| Comparison table | universities-comparison.md, city-rental-guide.md | Users need to compare options across multiple dimensions |
| Template | demand-letter-template.md | Users need a starting point for a document or form |
Each reference file should:
Scripts (scripts/ directory):
Create 1-2 Python helper scripts for calculations or data lookups. Common patterns:
| Pattern | Example | When to use |
|---------|---------|-------------|
| Calculator | sekher-calculator.py, filing-fee-calculator.py | Skill involves formulas, tax calculations, or fee estimation |
| Coverage checker | fertility-coverage-checker.py | Skill involves eligibility rules based on multiple criteria |
| Cost estimator | therapy-cost-estimator.py, rental-budget-calculator.py | Users need to compare costs across options |
| Index/adjustment | rent-index-calculator.py | Skill involves CPI-linked values or time-based adjustments |
Each script should:
#!/usr/bin/env python3 shebang--helpUpdate SKILL.md: Add a ## Bundled Resources section (before ## Troubleshooting) listing all references and scripts with "Consult when..." guidance.
Update SKILL_HE.md: Add a matching ## משאבים מצורפים section with Hebrew descriptions.
Every skill MUST include a ## Reference Links section (after ## Recommended MCP Servers or ## Bundled Resources, before ## Troubleshooting) with a table of official source URLs used to verify the skill's domain-specific facts.
Format:
## Reference Links
Official sources for verifying and updating the information in this skill:
| Source | URL | What to Check |
|--------|-----|---------------|
| Israeli Tax Authority | https://www.gov.il/he/departments/israel_tax_authority | Tax rates, forms, circulars |
| Kolzchut | https://www.kolzchut.org.il | Rights, entitlements, eligibility |
Guidelines:
.gov.il, .org.il, and institutional sources over blogs## קישורי עזר sectionWhy this matters:
Create SKILL_HE.md with the same structure but in Hebrew:
The Hebrew file uses the same frontmatter as SKILL.md (frontmatter stays in English).
Before running the validation script, verify that every URL in the skill content actually resolves. Broken links in published skills erode trust and cause the automated fact-check pipeline to flag false positives.
Step 1: Extract all URLs from all skill files:
grep -rEoh 'https?://[^ )>"'\'']+' <skill-name>/ | sort -u > /tmp/<skill-name>-urls.txt
cat /tmp/<skill-name>-urls.txt
Step 2: Check each URL returns HTTP 200:
while IFS= read -r url; do
status=$(curl -sL -o /dev/null -w '%{http_code}' --max-time 10 "$url" 2>/dev/null)
[ "$status" != "200" ] && echo "[$status] $url"
done < /tmp/<skill-name>-urls.txt
If no output, all links are valid. If any lines appear, fix them:
| HTTP Status | Action | |-------------|--------| | 301/302 | Update URL to the final redirect destination | | 403 | May be geo-blocked or bot-blocked. Verify manually in a browser. If it works in a browser, keep it | | 404 | BROKEN -- find the correct URL via WebSearch, or remove the link | | 5xx | Retry once. If still failing, the service may be down temporarily. Note it | | Timeout / DNS failure | BROKEN -- the domain may no longer exist. Remove all references to this URL |
Pay special attention to:
.gov.il URLs (Israeli government sites restructure frequently).co.il) that may have gone offlineDo NOT proceed to Step 10 with broken links. Fix every broken URL first.
Run the validation script:
./scripts/validate-skill.sh <skill-name>/SKILL.md
The script checks 9 rules:
| # | Rule | Common Fix |
|---|------|-----------|
| 1 | File is exactly SKILL.md | Rename if wrong case |
| 2 | Starts with --- delimiter | Add YAML frontmatter |
| 3 | name is kebab-case, matches folder | Fix casing or rename folder |
| 4 | No "claude"/"anthropic" in name | Choose different name |
| 5 | description present, under 1024 chars, has trigger phrase, no <> | Shorten or add "Use when" |
| 6 | No <> in frontmatter | Remove XML angle brackets |
| 7 | Body under 5,000 words | Move content to references/ |
| 8 | No README.md in skill folder | Delete README.md |
| 9 | No hardcoded secrets | Remove API keys, tokens |
After validation passes, review against the quality checklist:
## קישורי עזר)references/ with "Consult when..." guidancescripts/ with argparse and --helpsupported_agents list is accurate (all compatible agents included)metadata.version is set (e.g., 1.0.0)metadata.tags has both he and en arrays of equal length with no empty stringscreator_name and creator_email collected from user (Step 2)The submission form runs a live GitHub Verification scorecard against your repo before you can submit. The 5 Critical signals must pass for the skills-il team to approve. Set them up now (about 15 minutes total) so you don't bounce at submit time.
| # | Signal | Quick Setup |
|---|--------|-------------|
| 1 | spec_compliant | Install gh CLI 2.90.0+, then run gh skill publish --dry-run path/to/your-skill locally and fix any errors |
| 2 | secret_scanning | Repo → Settings → Code security and analysis → enable Secret scanning + Push protection |
| 3 | code_scanning | Same Settings page → under Code scanning click Set up → Default |
| 4 | signed_release | Add .github/workflows/release.yml that uses actions/attest-build-provenance@v4 on tags: ['v*'] (or use skills-il/release-workflow@v1 as a reusable workflow), then push a v1.0.0 tag |
| 5 | license_declared | Add a LICENSE file at the repo root (use GitHub's "Choose a license template"; MIT is the standard) |
For MCPs the spec_compliant row is N/A (the gh skill CLI validates SKILL.md only, not MCP servers). The other 4 still apply.
Copy-paste setup steps for each signal, with full YAML snippets and screenshots, are in the GitHub Verification checklist guide. When in doubt, follow that guide.
Skip this step at your own risk: the admin approval gate refuses approval unless critical_all_pass is true. The rejection email will tell you which signals failed and link back to this guide.
After validation passes, submit your skill through the submission page.
User says: "I want to create a skill for querying Israeli court decisions"
Actions:
python scripts/scaffold-skill.py --name israeli-court-decisions --category government-servicesreferences/court-hierarchy.md (court levels), references/citation-format.md (Israeli legal citation rules)./scripts/validate-skill.sh israeli-court-decisions/SKILL.mdResult: Complete skill ready for the Skills IL directory.
User says: "I need a skill that helps format Israeli addresses"
Actions:
python scripts/scaffold-skill.py --name israeli-address-formatter --category developer-toolsreferences/mikud-format.md; Scripts: scripts/mikud-validator.pyResult: Address formatting skill with validation and postal format support.
User says: "I want to create a skill that uses the israeli-bank-mcp server"
Actions:
python scripts/scaffold-skill.py --name israeli-bank-analyzer --category tax-and-finance## שרתי MCP מומלצים in SKILL_HE.md) pointing to israeli-bank-mcp. Description triggers include "nituch tenuot bank"references/bank-api-reference.md; Scripts: scripts/transaction-categorizer.pyResult: MCP-enhanced skill that adds workflow intelligence on top of bank data access.
scripts/scaffold-skill.py -- Creates the complete folder structure for a new skills-il skill: SKILL.md template with frontmatter skeleton, SKILL_HE.md stub, scripts/ and references/ directories. Validates name format and prevents overwrites. Run: python scripts/scaffold-skill.py --helpreferences/skill-spec.md -- Complete skills-il SKILL.md specification including all frontmatter fields (required and optional), description-writing formula with good/bad examples, the 5 skill patterns from Anthropic's guide, quality checklist, and validation rules. Consult when writing frontmatter or instructions and you need detailed guidance beyond the steps above.Cause: Description missing trigger phrase or over 1024 characters
Solution: Ensure description includes one of: "Use when", "Use for", "Use if", "When user", "When the user". Check length is under 1024 chars. Remove any <> angle brackets.
Cause: SKILL.md name field differs from the folder name
Solution: The name field must exactly match the folder name. Both must be kebab-case. Run: ls -la to check folder name, compare with name: in frontmatter.
Cause: Too much detail in SKILL.md
Solution: Move detailed documentation to references/ files. Keep SKILL.md focused on core instructions. Link to references with "Consult references/filename.md for..." guidance.
Cause: Folder already exists or invalid name format Solution: Check if the skill folder already exists. Ensure name is kebab-case only (lowercase letters, numbers, hyphens). No spaces, underscores, or capitals.
tools
Best practices for using browser-use/video-use to edit Hebrew videos end-to-end with Claude Code. Covers the Hebrew-specific deltas to video-use's 12 Hard Rules: SUB_FORCE_STYLE override (Helvetica has no Hebrew glyphs), the python-bidi pre-shape recipe for libass+SRT BiDi failures on macOS, Hebrew filler-word post-pass on Scribe word timestamps, fontsdir= parameter for reliable font discovery, takes_packed.md handling for Hebrew with sofit/nikud/code-switching, and animation slot guidance that defers to hyperframes-best-practices and remotion-best-practices. Use when editing Hebrew talking-head video, podcast clips, tutorials, or marketing video with video-use. Do NOT use for non-Hebrew video-use sessions (read upstream SKILL.md directly), Hebrew podcast audio-only post-production (use hebrew-podcast-postproduction), or generic FFmpeg work without video-use orchestration.
development
Best practices for authoring presentations with open-slide, the React slide framework with a fixed 1920×1080 canvas, with full Hebrew and RTL support. Covers the slides/[id]/index.tsx file contract, type scale, DesignSystem tokens, themes/ system, @slide-comment inspector markers, current.json deictic resolution, Hebrew Google Fonts (Heebo, Rubik, Assistant, Noto Sans Hebrew), CSS logical properties, bidirectional Hebrew+English text with the bdi element, and Hebrew-aware type scale tuning. Use when authoring or editing slides under slides/[id]/ in an open-slide project, or when building Hebrew or bilingual decks on the framework. Do NOT use for video creation (use remotion-best-practices or hyperframes-best-practices), or for generic Hebrew presentations outside open-slide (use presentation-generator).
development
Best practices for programmatic video creation using HyperFrames, plain HTML compositions with GSAP animations rendered to MP4, with full Hebrew and RTL support. Covers composition authoring, data-* timing attributes, GSAP timeline contract, layout-before-animation methodology, visual identity gate, Hebrew fonts via Google Fonts (Heebo, Rubik, Assistant), RTL text rendering with dir="rtl", Hebrew TikTok/Reels-style captions via Whisper, audio-reactive visuals, scene transitions, and bidirectional Hebrew+English text. Use when building HTML-based video content or Hebrew social/marketing videos without React. Do NOT use for Remotion or general React video work, use remotion-best-practices for that.
tools
Build Zapier Zaps connecting Israeli business apps (Morning/Green Invoice, Cardcom, Tranzila, iCount, Grow) with global services for billing, payment, and workflow automation. Use when asked to "create a Zap for Israeli invoicing", "automate Morning receipts", "connect Cardcom to my CRM", or set up payment notifications. Covers Hebrew text handling, ILS formatting, bimonthly VAT logic, Invoice Reform 2026, Zapier AI (Copilot, Agents, MCP), and webhooks from Israeli processors. All amounts use decimal shekels, not agorot. Customer WhatsApp requires Twilio/WATI (not Zapier native). Do NOT use for n8n (use n8n-hebrew-workflows), Make.com (use make-com-israeli-automations), or non-Zapier automation.