Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add itechmeat/llm-code --skill "skill-master"
Install specific skill from multi-skill repository
# Description
Agent Skills authoring. Covers SKILL.md format, frontmatter, folders, docs ingestion. Keywords: agentskills.io, SKILL.md.
# SKILL.md
name: skill-master
description: "Agent Skills authoring. Covers SKILL.md format, frontmatter, folders, docs ingestion. Keywords: agentskills.io, SKILL.md."
version: "1.2.3"
release_date: "2026-01-23"
metadata:
author: itechmeat
Skill Master
This skill is the entry point for creating and maintaining Agent Skills.
Language requirement: all skills MUST be authored in English.
Quick Navigation
- New to skills? Read:
references/specification.md - SKILL.md templates? See:
assets/skill-templates.md - Advanced features (context, agents, hooks)? Read:
references/advanced-features.md - Creating from docs? Read:
references/docs-ingestion.md - Validation & packaging? See
scripts/
When to Use
- Creating a new skill from scratch
- Updating an existing skill
- Creating a skill by ingesting external documentation
- Validating or packaging a skill for distribution
Skill Structure (Required)
my-skill/
βββ SKILL.md # Required: instructions + metadata
βββ README.md # Optional: human-readable description
βββ 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
Folder Purposes (CRITICAL)
| 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 |
When to Use Each
Use references/ for:
- Detailed documentation about concepts
- API references and usage guides
- Troubleshooting and FAQ
- Anything the agent needs to read and understand
Use examples/ for:
- Sample outputs showing expected format
- Usage demonstrations
- Before/after comparisons
- Anything showing what the result should look like
Use assets/ for:
- Document templates (markdown files to copy as starting point)
- Configuration file templates
- Schema files, lookup tables
- Images and diagrams
- Anything the agent needs to copy or reference verbatim
IMPORTANT: Templates belong in assets/, examples in examples/, documentation in references/.
Frontmatter Schema
Every SKILL.md MUST start with YAML frontmatter:
---
name: skill-name
description: "What it does. Keywords: term1, term2."
metadata:
author: your-name
version: "1.0.0"
---
Field order: name β description β license β compatibility β metadata β other fields
Required Fields
| 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 |
Optional Fields (Top Level)
| 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) |
metadata Object (Common Fields)
| Field | Purpose |
|---|---|
| author | Author name or organization |
| version | Skill version (semver format, e.g., "1.0.0") |
| argument-hint | Hint for autocomplete, e.g., [issue-number] |
IMPORTANT: version in metadata is the skill version. If you reference external product docs, track that version separately (e.g., in README.md or metadata.json).
Optional Fields (Claude Code / Advanced)
| 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) |
Invocation Control Matrix
| 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 |
Variable Substitutions
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.
Dynamic Context Injection
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.
metadata.json (Optional)
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
Name Validation Examples
# 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
Description Rules
Purpose: Tell the LLM what the skill does and when to activate it. Minimize tokens β just enough for activation decision.
Formula:
[Product] [core function]. Covers [2-3 key topics]. Keywords: [terms].
Constraints:
- Target: 80-150 chars
- Max: 300 chars
- No marketing ("powerful", "comprehensive", "modern")
- No filler ("this skill", "use this for", "helps with")
- No redundant context (skip "for apps", "for developers")
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.
How Skills Work (Progressive Disclosure)
- Discovery: Agent loads only
name+descriptionof each skill (~50-100 tokens) - Activation: When task matches, agent reads full
SKILL.mdinto context - Execution: Agent follows instructions, loads referenced files as needed
Key rule: Keep SKILL.md under 500 lines. Move details to references/.
Creating a New Skill
Step 1: Scaffold
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
Step 2: Write Frontmatter
---
name: <skill-name>
description: "[Purpose] + [Triggers/Keywords]"
---
Step 3: Write Body
Recommended sections:
- When to use (triggers, situations)
- Quick navigation (router to references and assets)
- Steps / Recipes / Checklists
- Critical prohibitions
- Links
Step 4: Add References (documentation)
For each major topic, create references/<topic>.md with:
- Actionable takeaways (5-15 bullets)
- Gotchas / prohibitions
- Practical examples
Step 5: Add Assets (if needed)
For templates or static resources, create assets/<resource>:
- Document templates
- Configuration templates
- Schema files
Step 6: Validate
python scripts/quick_validate_skill.py <skill-path>
Creating a Skill from Documentation
When building a skill from external docs, use the autonomous ingestion workflow:
Phase 1: Scaffold
- Create skill folder with
SKILL.mdskeleton - Create
plan.mdfor progress tracking - Create
references/directory
Phase 2: Build Queue
For each doc link:
- Fetch the page
- Extract internal doc links (avoid nav duplicates)
- Prioritize: concepts β API β operations β troubleshooting
Phase 3: Ingest Loop
For each page:
- Fetch one page
- Create
references/<topic>.mdwith actionable summary - Update
plan.mdcheckbox - Update
SKILL.mdif it adds a useful recipe/rule
Do not ask user after each page β continue autonomously.
Phase 4: Finalize
- Review
SKILL.mdfor completeness - Ensure practical recipes, not docs mirror
plan.mdmay be deleted manually after ingestion
Critical Prohibitions
- Do NOT copy large verbatim chunks from vendor docs (summarize in own words)
- Do NOT write skills in languages other than English
- Do NOT include project-specific secrets, paths, or assumptions
- Do NOT keep
SKILL.mdover 500 lines - Do NOT skip
namevalidation (must match folder name) - Do NOT use poor descriptions that lack trigger keywords
- Do NOT omit product version when creating skills from documentation
Version Tracking
When creating or updating a skill from external documentation:
- Add
versionfield in frontmatter for product version:
```yaml
name: my-skill
description: "..."
version: "1.2.3"
```
- Optionally add
release_dateif known:
```yaml
name: my-skill
description: "..."
version: "1.2.3"
release_date: "2025-01-21"
```
- Create
README.mdwith: - Skill overview (1-2 sentences)
- Usage section (when to use)
- Links section (standardized format)
README.md Links section 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)
Include only applicable links. Order: Documentation β Changelog/Releases β GitHub β Package registry.
Example frontmatter:
---
name: turso
description: "Turso embedded SQLite database..."
version: "0.4.0"
release_date: "2025-01-05"
---
This helps track when the skill was last updated and against which product version.
Validation Checklist
- [ ]
namematches folder name - [ ]
nameis 1-64 chars, lowercase, no-- - [ ]
descriptionis 1-1024 chars, includes keywords - [ ]
SKILL.mdunder 500 lines - [ ] Documentation in
references/, templates inassets/ - [ ] All text in English
Scripts
| 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 |
package_skill.py |
Package skill into distributable zip |
Links
- Specification:
references/specification.md - Advanced Features:
references/advanced-features.md - SKILL.md Templates:
assets/skill-templates.md - Docs Ingestion:
references/docs-ingestion.md - Official spec: https://agentskills.io/specification
- Claude Code skills: https://code.claude.com/docs/en/skills
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.