skills/skill-master/SKILL.md
Agent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.
npx skillsauth add itechmeat/llm-code skill-masterInstall 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.
Create, edit, and validate Agent Skills following the open agentskills.io specification. This skill is the entry point for creating and maintaining Agent Skills.
Language requirement: all skills MUST be authored in English.
references/specification.mdassets/skill-templates.mdreferences/writing-skills.mdreferences/workflows.mdreferences/scripts.mdreferences/assets.mdreferences/advanced-features.mdreferences/docs-ingestion.mdreferences/testing-troubleshooting.md, references/eval-testing.md, references/iterative-improvement.mdreferences/description-optimization.mdreferences/schemas.mdassets/eval_review.html, eval-viewer/scripts/skill-master subsumes skill-creator; for the detailed operator playbook, workspace layout, timing capture, benchmark analysis, and viewer handoff, read references/iterative-improvement.md.
my-skill/
├── SKILL.md # Required: instructions + metadata (must be human-readable too)
├── metadata.json # Optional: extended metadata for publishing
├── references/ # Optional: documentation, guides, API references
├── examples/ # Optional: sample outputs, usage examples
├── scripts/ # Optional: executable code
└── assets/ # Optional: templates, images, data files
Do NOT include README.md in skill folders. SKILL.md is the single source of truth. If migrating a skill with README.md, merge its content into SKILL.md and delete it.
| Folder | Purpose | Examples |
| ------------- | ------------------------------------------ | ------------------------------------------------------- |
| references/ | Documentation for agents to read | Guides, API docs, concept explanations, troubleshooting |
| examples/ | Sample outputs showing expected format | Output examples, usage demonstrations |
| assets/ | Static resources to copy/use | Document templates, config templates, images, schemas |
| scripts/ | Executable code to run | Python scripts, shell scripts, validators |
references/ — documentation the agent reads and understandsexamples/ — sample outputs showing expected formatassets/ — templates, configs, schemas to copy verbatimscripts/ — executable code the agent runsIMPORTANT: Templates belong in assets/, examples in examples/, documentation in references/.
Every SKILL.md MUST start with YAML frontmatter:
---
name: skill-name
description: "What it does. Keywords: term1, term2."
metadata:
author: your-name
version: "1.2.3"
release_date: "2026-01-01"
---
Field order: name → description → license → compatibility → metadata
| Field | Constraints |
| ----------- | ------------------------------------------------------------------------------------------- |
| name | 1-64 chars, lowercase a-z0-9-, no --, no leading/trailing -, must match folder name |
| description | 1-1024 chars (target: 80-150), describes what skill does + when to use it, include keywords |
| Field | Purpose | | ------------- | ------------------------------------------------- | | license | License name or reference to bundled LICENSE file | | compatibility | Environment requirements (max 500 chars) | | metadata | Object for arbitrary key-value pairs (see below) |
| Field | Purpose |
| ------------- | --------------------------------------------- |
| author | Author name or organization |
| version | Upstream product version or skill version |
| release_date | Last meaningful update date (YYYY-MM-DD) |
| argument-hint | Hint for autocomplete, e.g., [issue-number] |
| Field | Purpose |
| ------------------------ | -------------------------------------------------------------------------- |
| disable-model-invocation | true = only user can invoke (via /name). Default: false |
| user-invocable | false = hidden from / menu, only agent can load. Default: true |
| allowed-tools | Space-delimited tools agent can use without asking, e.g., Read Grep Glob |
| model | Specific model to use when skill is active |
| context | Set to fork to run in a forked subagent context |
| agent | Subagent type when context: fork, e.g., Explore, Plan |
| hooks | Hooks scoped to skill's lifecycle (see agent documentation) |
| Frontmatter | User can invoke | Agent can invoke | Notes |
| -------------------------------- | --------------- | ---------------- | --------------------------------------- |
| (default) | ✅ Yes | ✅ Yes | Description in context, loads when used |
| disable-model-invocation: true | ✅ Yes | ❌ No | For manual workflows with side effects |
| user-invocable: false | ❌ No | ✅ Yes | Background knowledge, not a command |
Available placeholders in skill content:
| Variable | Description |
| ---------------------- | -------------------------------------------------------- |
| $ARGUMENTS | All arguments passed when invoking the skill |
| ${CLAUDE_SESSION_ID} | Current session ID for logging or session-specific files |
If $ARGUMENTS is not in content, arguments are appended as ARGUMENTS: <value>.
Example:
---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Fix GitHub issue $ARGUMENTS following our coding standards.
Use !command`` syntax to run shell commands before skill content is sent to the agent:
## Pull request context
- PR diff: !`gh pr diff`
- Changed files: !`gh pr diff --name-only`
## Your task
Review this pull request...
The command output replaces the placeholder, so the agent receives actual data.
For publishing or extended metadata, create metadata.json:
{
"version": "1.0.0",
"organization": "Your Org",
"date": "January 2026",
"abstract": "Brief description of what this skill provides...",
"references": ["https://docs.example.com", "https://github.com/org/repo"]
}
Fields:
version — Skill version (semver)organization — Author or organizationdate — Publication dateabstract — Extended description (can be longer than frontmatter)references — List of source documentation URLs# Valid
name: pdf-processing
name: data-analysis
name: code-review
# Invalid
name: PDF-Processing # uppercase not allowed
name: -pdf # cannot start with hyphen
name: pdf--processing # consecutive hyphens not allowed
Purpose: Tell the LLM what the skill does and when to activate it. Minimize tokens — just enough for activation decision.
Formulas:
For library/reference skills (Claude Code, keyword-based discovery):
[Product] [core function]. Covers [2-3 key topics]. Keywords: [terms].
For workflow/automation skills (Claude.ai, trigger-based activation):
[What it does]. Use when user [specific trigger phrases].
Critical for auto-triggering: include explicit "Use when user says / asks / mentions..." phrases. Without them, Claude may not load the skill automatically. See references/writing-skills.md for good/bad examples and debugging tips.
Constraints:
< >Good examples:
description: "Turso SQLite database. Covers encryption, sync, agent patterns. Keywords: Turso, libSQL, SQLite."
description: "Base UI unstyled React components. Covers forms, menus, overlays. Keywords: @base-ui/react, render props."
description: "Inworld TTS API. Covers voice cloning, audio markups, timestamps. Keywords: Inworld, TTS, visemes."
Poor examples:
# Too vague
description: "Helps with PDFs."
# Too verbose
description: "Turso embedded SQLite database for modern apps and AI agents. Covers encryption, authorization, sync, partial sync, and agent database patterns."
# Marketing
description: "A powerful solution for all your database needs."
Keywords: product name, package name, 3-5 terms max.
name + description of each skill (~50-100 tokens)SKILL.md into contextKey rule: Keep SKILL.md under 500 lines. Move details to references/.
Pro Tip: You can use the skill-creator skill (available in Claude.ai or Claude Code) to interactively generate your first draft, then refine it using the steps below.
python scripts/init_skill.py <skill-name>
# Or specify custom directory:
python scripts/init_skill.py <skill-name> --skills-dir skills
Or manually create:
<skills-folder>/<skill-name>/
├── SKILL.md
├── references/ # For documentation, guides
└── assets/ # For templates, static files
---
name: <skill-name>
description: "[Purpose] + [Triggers/Keywords]"
---
Recommended sections:
For each major topic, create references/<topic>.md with:
Consult references/scripts.md for when scripts are worth writing and how to structure them.
Language selection:
Minimal checklist for a script:
argparse (Python) or flag (Go) for all parameters — no hardcoded valuesshutil.which() in Python)Consult references/assets.md for when assets are worth creating and how to format them.
For templates or static resources, create assets/<resource>. Common types:
.minimal.yaml / .full.yaml pair; add # yaml-language-server: $schema= header${VAR_NAME:=default} for variables; include purpose + usage comment at top#-prefixed comments to explain fields and valid values- [ ] checkboxes, inline commands, sign-off sectionNaming: <tool>.minimal.yaml, <purpose>-checklist.md, <name>.template, <topic>-prompts.md.
python scripts/quick_validate_skill.py <skill-path>
# Compatibility alias:
python scripts/quick_validate.py <skill-path>
When building a skill from external docs, use the autonomous ingestion workflow:
SKILL.md skeletonplan.md for progress trackingreferences/ directoryFor each doc link:
For each page:
references/<topic>.md with actionable summaryplan.md checkboxSKILL.md if it adds a useful recipe/ruleDo not ask user after each page — continue autonomously.
SKILL.md for completenessplan.md may be deleted manually after ingestionSKILL.md over 500 linesname validation (must match folder name)version MeansIn this repository, store version metadata as metadata.version and metadata.release_date to match the existing skills and current Copilot skill-file validation.
metadata.version holds the upstream product version the skill was built against (e.g., "1.12.3" for CAPI v1.12.3). For standalone skills not tied to an external product, it holds the skill's own version (e.g., "1.2.4" for skill-master).
Use "—" when the product uses continuous deployment with no semantic versioning (e.g., hosted services like Cloudflare Workers).
| Trigger | Update metadata.version | Update metadata.release_date |
| ------------------------------------ | ------------------------- | ------------------------------ |
| Product released a new version | ✅ Yes | ✅ Yes |
| Content changed, no upstream version | ❌ No | ✅ Yes |
| Typo or minor fix | ❌ No | ❌ No |
When bumping metadata.version or making significant content changes, also update:
SKILLS_VERSIONS.md — set new version + date, move row to top of tableCHANGELOG.md — prepend a new dated block at the topLinks format:
## Links
- [Documentation](https://example.com/docs)
- [Changelog](https://example.com/changelog)
- [GitHub](https://github.com/org/repo)
- [npm](https://www.npmjs.com/package/name)
Order: Documentation → Changelog/Releases → GitHub → Package registry. Include only applicable links.
Pro Tip: You can use the skill-creator skill (available in Claude.ai or Claude Code) to review your skill and suggest improvements before finalizing.
name matches folder name, kebab-case, 1-64 chars, no --description includes WHAT it does AND WHEN to use it (trigger phrases)description has no XML angle brackets < >SKILL.md under 500 linesreferences/, templates in assets/references/workflows.mdFull pre-publish checklist: references/testing-troubleshooting.md
| Script | Purpose |
| ------------------------- | ------------------------------------------------------- |
| init_skill.py | Scaffold new Agent Skill (agentskills.io) |
| init_copilot_asset.py | Scaffold Copilot-specific assets (instructions, agents) |
| quick_validate_skill.py | Validate skill structure |
| quick_validate.py | Compatibility wrapper for legacy validation workflow |
| package_skill.py | Package skill into distributable zip |
| run_eval.py | Run evals via claude -p with parallel workers |
| run_loop.py | Eval+improve loop with train/test split |
| improve_description.py | Improve skill description using eval feedback |
| aggregate_benchmark.py | Aggregate grading results into benchmark stats |
| generate_report.py | Generate HTML report from loop iteration data |
Agents: agents/grader.md (grade expectations), agents/comparator.md (blind A/B comparison), agents/analyzer.md (post-hoc analysis + benchmark)
references/specification.mdreferences/writing-skills.mdreferences/workflows.mdreferences/scripts.mdreferences/assets.mdreferences/testing-troubleshooting.mdreferences/advanced-features.mdassets/skill-templates.mdreferences/docs-ingestion.mdreferences/eval-testing.mdreferences/iterative-improvement.mdreferences/description-optimization.mdreferences/schemas.mdassets/eval_review.htmleval-viewer/data-ai
Zvec in-process vector database. Covers collections, indexing, embeddings, reranking, and persistence. Use when embedding Zvec into applications or tuning retrieval/storage behavior. Keywords: Zvec, HNSW-RaBitQ, vector database, ANN.
development
Vitest testing framework: Vite-powered tests, Jest-compatible API, mocking, snapshots, coverage, browser mode, and TypeScript support. Use when writing or configuring tests with Vitest, setting up mocking/snapshots, configuring coverage, or running browser-mode tests. Keywords: Vitest, testing, Vite, Jest, mocking, coverage.
tools
Vite next-gen frontend tooling: dev server, HMR, build, config, plugins, Environment API, Rolldown. Use when setting up or running a Vite project, configuring vite.config.*, authoring plugins, working with HMR or JS API, or managing environment variables and modes. Keywords: vite.config, bundler, Vite, HMR, Rolldown.
development
Orchestrate AI coding with Vibe Kanban: tasks, review, sessions, workspaces, and isolated git worktrees. Use when managing AI-generated code in isolated environments, planning coding tasks, reviewing AI output, or configuring Vibe Kanban workspaces and agents. Keywords: Vibe Kanban, AI orchestration, worktrees.