A Complete Guide to Agent Skills — From Public Specification to SKILL.md Practical Design, and skills.sh Security

When using AI agents, terms like ‘skill’, ‘Agent Skills’, ‘skills.sh’, ‘MCP’, and ‘system prompt’ often appear together. Although their names are similar, suggesting they might be from the same organization or product, their roles are distinct.

The first thing to clarify is that Agent Skills is not an organization name. It is the name of an open file format for adding specific task procedures, reference materials, and executable code as a package to an AI agent. Anthropic initially developed and released it, and currently, various agent products, including Claude, ChatGPT, and Codex, support this format.

However, it is not an international standard established by standardization bodies like ISO, IEC, IETF, or W3C. More precisely, it is closer to an open interoperability format or open specification adopted by various implementations.

This article explains three distinctions:

  1. What the Agent Skills public specification actually defines
  2. Practical design for reliably creating skills for security and auditing tasks
  3. skills.sh for searching and installing public skills, and supply chain security

Who created Agent Skills?

The official Agent Skills documentation explains that this format was initially developed by Anthropic and, after being released as an open format, was adopted by various agent products. The common specification and documentation are being openly developed in the agentskills/agentskills repository.

The relationship can be simplified as follows:

Anthropic
└── Agent Skills 형식 최초 개발·공개

Agent Skills 공개 사양
├── agentskills.io 문서
├── agentskills/agentskills 사양 저장소
├── Claude의 스킬 구현
├── ChatGPT·Codex의 스킬 구현
└── 기타 호환 에이전트 구현

Anthropic’s skills repository is currently focused on implementations and examples used in Claude. The repository itself directs users to agentskills.io for information on common standards.

OpenAI also did not create a new, proprietary specification with the same name. OpenAI’s skills documentation explicitly states that ChatGPT and Codex skills are based on the open Agent Skills specification.

Therefore, the following statement is the most accurate:

Agent Skills is a lightweight skill package format for AI agents, initially developed and released by Anthropic, and is currently an open interoperability specification adopted by various products.

Figure: Relationship between Agent Skills specification, product implementations, and skills.sh role · Reconstructed based on Agent Skills Overview, OpenAI Build skills, and skills.sh Documentation

Minimum Structure Defined by Agent Skills Specification

The core of a skill is a single directory and its SKILL.md file.

aws-iam-policy-review/
├── SKILL.md              # Required
├── scripts/              # Optional: Executable code
├── references/           # Optional: Policies, documents, knowledge
├── assets/               # Optional: Templates, samples
└── 그 밖의 파일          # Can be added as needed

SKILL.md consists of YAML Frontmatter and Markdown body.

---
name: aws-iam-policy-review
description: >
  Review AWS IAM policies for excessive permissions, privilege escalation,
  unsafe trust relationships, and missing conditions.
  Use when a user asks to assess or harden an IAM policy.
---

# AWS IAM Policy Review

1. 정책 문법을 확인한다.
2. Action, Resource, Principal, Condition을 분석한다.
3. 권한 상승 가능성을 분석한다.
4. 근거와 최소 권한 수정안을 제안한다.

The official Agent Skills specification essentially requires only two Frontmatter fields: name and description.

— — — —
name Required 1-64 characters, lowercase English letters, numbers, hyphens, matches directory name Skill identification
description Required 1-1,024 characters Explains what it does and when to use it
license Optional License name or file reference Distribution and usage conditions
compatibility Optional 1-500 characters Execution environment, packages, network requirements
metadata Optional String key-value pairs Extended information like author, version
allowed-tools Optional Support differences per implementation Pre-allowed tools, experimental features

You should not assume that all agents interpret allowed-tools the same way just because it’s in the specification. This field is experimental, and implementation-specific support and permission models must be checked separately.

How do agents discover skills?

A key design principle of Agent Skills is Progressive Disclosure.

1. Discovery
   모든 스킬의 name과 description만 확인

2. Activation
   사용자 요청과 맞는 스킬의 SKILL.md 전체 로드

3. Execution
   필요한 scripts·references·assets만 추가 사용

If an agent reads the long body of every skill from the start, its context will be quickly consumed. Therefore, the description should not be a simple introduction but rather written like a skill routing rule.

A good description includes these three elements:

무엇을 수행하는가
+ 언제 호출해야 하는가
+ 비슷해 보이지만 호출하지 말아야 할 경우

For example, instead of “Helps with AWS,” “Reviews excessive permissions and privilege escalation in IAM policies, and is not used for general AWS cost or network reviews” provides a much more accurate trigger.

The official specification recommends keeping the entire SKILL.md under 500 lines, or approximately 5,000 tokens, and separating long materials into separate files. This is a recommendation for context efficiency, not a mandatory limit.

Distinguishing Official Specification from Practical Design

The following items are not officially required Frontmatter for Agent Skills:

역할
목표
입력 조건
허용 범위
금지 범위
판단 기준
출력 형식
오류 처리
완료 기준
테스트 사례

This does not mean they are unnecessary. These are useful prompt engineering and agent design patterns for tasks where consistency and reproducibility of results are important, such as security reviews, audits, and code reviews.

Category Agent Skills Official Specification Practical Recommended Design
— — —
Purpose Define a compatible skill package format Ensure consistency and safety of task results
Required Elements SKILL.md, name, description Purpose, workflow, safety boundaries, output contract, etc.
Body Table of Contents Not enforced Structured according to task characteristics
Tests Not an official required directory Recommended trigger, normal, risk, and edge cases
Tool Permissions Some metadata and implementation policies Explicitly design read, write, and approval scopes

Figure: Boundary between official specification and practical recommended design · Reconstructed based on Agent Skills Specification and Best practices for skill creators

Practical Structure Required for Security and Audit Skills

For security-related skills, the following structure can be recommended:

— — —
Component Importance Description
Metadata Required Name, trigger description, version, compatible environment
Purpose Required The final outcome to be produced
Applicability/Exclusion Conditions Required Situations when it should be called and when it should be excluded
Input Contract Recommended Required inputs, optional inputs, behavior when inputs are insufficient
Execution Procedure Required Order of operations and decision-making flow
Judgment Criteria Important Basis for determining issues/risk levels
Safety Boundaries Important Prohibited actions and actions requiring approval
Tool Usage Policy Required when using tools Read, write, and external transfer scope
Output Contract Required Structure of results for human reading or system processing
Error Handling Recommended Handling failures, uncertainties, and lack of information
Verification Criteria Important Completion conditions and testing methods

Purpose should be written as a completed state

Bad example:

IAM 정책을 분석한다.

Good example:

제공된 IAM 정책에서 과도한 권한, 권한 상승 경로,
신뢰 정책 오류와 조건문 누락을 식별하고,
각 발견의 근거와 최소 권한 수정안을 제공한다.

Define behavior even when input is insufficient

확인 가능한 위험은 먼저 분석한다.
확인할 수 없는 항목은 추정하지 않고 검토 제한 사항으로 표시한다.
SCP와 권한 경계가 없으면 전체 유효 권한을 확정하지 않는다.

Safety boundaries are written as action permissions

읽기 작업                  자동 수행 가능
정책 수정안 생성            자동 수행 가능
실제 정책 변경              사용자 승인 필요
정책 삭제·권한 확대          기본 실행 금지
인증정보 원문 재출력          금지

Rather than abstractly stating “act safely,” it is necessary to specify which actions are performed automatically, which require approval, and which are not executed.

Fix output contract and error handling

A human-readable report can be structured as follows:

1. 검토 요약
2. 주요 발견 사항 표
3. 발견별 근거와 영향
4. 권한 상승 경로
5. 최소 권한 수정안
6. 검토 제한 사항
7. 추가로 필요한 정보

If automatic post-processing is required, it is more stable to fix the types of severity, confidence, location, evidence, and recommendations using JSON Schema.

It is good to divide directories by role

Instead of putting all policies and examples into one long skill, you can separate them as follows:

aws-iam-policy-review/
├── SKILL.md
├── references/
│   ├── severity-criteria.md
│   ├── privilege-escalation-patterns.md
│   ├── sensitive-actions.md
│   ├── condition-key-guidance.md
│   └── output-schema.json
├── scripts/
│   ├── validate_policy.py
│   └── normalize_statements.py
├── assets/
│   ├── report-template.md
│   └── sample-policy.json
└── tests/
    ├── trigger-evals.json
    ├── policy-cases/
    └── expected-results/

tests/ is not a required directory by the official specification but can be added for operational quality. Keeping the core workflow in SKILL.md, long decision tables in references/, deterministic verification in scripts/, output skeletons in assets/, and regression verification in tests/ makes management easier.

What is the difference between System Prompt, Agent Skills, and MCP?

These three elements are not in competition but rather represent different layers.

— — — —
Category System Prompt Agent Skills MCP
Question How should it always behave? How should it perform a specific task? How should it connect with what data/tools?
Scope All requests Only for relevant tasks Resources/tools on connected servers
Main Content Overall principles and top-level boundaries Domain procedures, judgments, examples Resources·Prompts·Tools communication
Loading From the start of conversation When needed Upon connection/invocation
Scripts/Materials Usually not included Can be packaged together External systems provide functionality

Taking AWS IAM review as an example, they combine as follows:

시스템 프롬프트
└── 승인 없는 변경 금지, 비밀 보호

Agent Skill
└── 정책 수집 → 정규화 → 위험 판단 → 수정안 작성 절차

MCP Tools
├── IAM 정책 조회
├── Access Analyzer 결과 조회
├── 공식 문서 검색
└── 보고서 저장

Skills are not protocols for accessing tools, and MCP does not define the security review procedure itself.

What is skills.sh?

skills.sh is not the Agent Skills specification itself. It is a public skill search directory operated by Vercel, and it is connected to the skills CLI released by vercel-labs/skills.

In one sentence, the distinction is as follows:

Agent Skills
= 스킬을 어떤 파일 형식으로 작성할 것인가

skills.sh
= 작성된 스킬을 어디서 찾고 여러 에이전트에 어떻게 설치할 것인가
— — —
Category Agent Skills skills.sh·skills CLI
Nature Authoring format·Public specification Search directory·Installation tool
Core SKILL.md structure npx skills command
Role Skill definition·Loading Discovery·Installation·Updates·Ranking
Origin·Operation Started by Anthropic, open development Vercel
Storage Location Each Git repository and local directory Locates original repository and places it in agent path
International Standard Body No No
Analogy Package specification Search directory and universal installer

How to use the skills CLI?

To check the list of skills in the public repository:

npx skills add vercel-labs/agent-skills --list

To install a specific skill within the project scope:

npx skills add vercel-labs/agent-skills 
  --skill web-design-guidelines

To install only for Codex:

npx skills add vercel-labs/agent-skills 
  --skill web-design-guidelines 
  --agent codex

To use temporarily without installing:

npx skills use 
  vercel-labs/agent-skills@web-design-guidelines 
  --agent claude-code

Management commands:

npx skills list
npx skills update
npx skills remove <skill-name>
npx skills init aws-iam-policy-review

The CLI currently supports over 70 agent installation paths, including Claude Code, Codex, Cursor, GitHub Copilot, and Gemini CLI. The default installation scope is the current project; using -g or --global installs it globally for the user. Installation methods can be chosen between symbolic links pointing to a common copy and individual file copying.

Meaning of skills.sh Ranking and Official

According to the skills.sh documentation, rankings are based on anonymous installation statistics collected by the CLI. Therefore, rankings indicate popularity and discoverability, not scores for accuracy, security, or maintenance quality.

If you wish to opt out of telemetry, you can use the environment variables guided by the CLI:

DISABLE_TELEMETRY=1 npx skills add owner/repo

DONOTTRACK is also provided as an alternative setting.

The Official list is a feature that gathers skills provided by the organization that created the product or technology. However, the following three sentences are different:

공식 제작자가 배포했다                 가능
Vercel이 내용 전체를 보증한다           아님
보안상 무조건 안전하고 최신이다          보장되지 않음

Prioritizing official creator skills is a good starting point, but you should check the current commit, scripts, and permission requirements before installation.

Why are public skills a supply chain risk?

Skills may not be simple descriptive texts.

SKILL.md
├── 명령 실행 절차
├── 파일 변경 지침
├── 외부 도구 사용 규칙
└── 기존 지침과 충돌할 수 있는 문장

scripts/
├── Python·Bash·JavaScript 실행 코드
├── 의존성 설치
└── 외부 통신

Skills themselves do not create new operating system permissions. However, they can induce an agent to use its existing file, shell, network, repository, and cloud permissions in specific ways.

Malicious or careless skills can lead to the following actions:

  • Reading sensitive files and environment variables
  • Transferring data to external servers
  • Modifying repository code and settings
  • Installing packages or executables
  • Changing and deploying cloud policies
  • Attempting to bypass security checks or higher-level guidelines

The skills.sh security audit page aggregates results from Gen Agent Trust Hub, Socket, Snyk, and others. However, each tool has different judgment criteria, and the skills.sh documentation explicitly states that it cannot guarantee the quality and security of all skills, recommending direct review before installation.

How should enterprises adopt them?

Rather than immediately installing public skills globally, it is safer to establish an approved supply chain.

Figure: Enterprise adoption review and deployment flow for public skills · Reconstructed based on skills.sh Documentation and vercel-labs/skills README

공개 skills.sh·Git 저장소
        ↓
출처·라이선스 확인
        ↓
SKILL.md와 scripts 전체 검토
        ↓
외부 URL·의존성·요구 권한 분석
        ↓
검토된 커밋 고정
        ↓
사내 승인 저장소
        ↓
프로젝트 범위 설치
        ↓
샌드박스·최소 권한·사람 승인
        ↓
업데이트 전 diff와 회귀 테스트
Control Item Recommended Approach
— —
Source Prioritize official organizations or verified repositories
Version Fix to reviewed commit instead of latest branch
Installation Scope Prioritize project-level over global
Code Review Check entire scripts/, not just SKILL.md
External Communication Review domains, transmitted data, and dependency installations
Execution Permissions Minimize shell, network, and cloud write permissions
Secrets Remove unnecessary credentials from agent environment
High-Risk Operations Apply human approval for policy changes, deployments, and deletions
Updates Diff review and re-verification rather than automatic following
Deployment Operate internal mirrors or approved Git repositories

In particular, the following command is convenient but should not be used with unreviewed repositories:

npx skills add unknown-owner/unknown-repo --all -g -y

This is because it’s a combination that installs all skills globally without verification. It is safer to first check skills with --list, review the SKILL.md, scripts/, external URLs, and licenses of the original commit, and then install only the necessary skills within the project scope.

Is it the same as npm?

There are similarities, but they are not entirely the same.

— — —
Category npm skills.sh
Original Distribution Publish packages to a registry Primarily discovers and links skills from Git repositories
Installation Target JavaScript packages and dependencies Instructions, scripts, reference materials, assets
Installation Location node_modules Agent-specific skill directories
Main Management Package versions·dependencies Agent-specific deployment·discovery·installation statistics
Execution Risk Installation·runtime code Instructions followed by agent and executable code

Therefore, rather than simply calling skills.sh “npm for Agent Skills,” it is more accurate to describe it as a service that combines a search directory with a universal installation manager for various agents.

Final Summary

The roles of Agent Skills, skills.sh, system prompts, and MCP can be summarized as follows:

Agent Skills
= 업무 절차를 패키징하는 공개 파일 형식

SKILL.md 실무 설계
= 그 형식 안에 목적·절차·판단·안전·출력 기준을 채우는 방법

skills.sh
= 공개 스킬을 검색하고 여러 에이전트에 설치하는 디렉터리·CLI

시스템 프롬프트
= 모든 요청에 적용되는 상위 행동 원칙

MCP
= 외부 데이터와 도구를 연결하는 통신 프로토콜

The minimum elements officially enforced by Agent Skills are small. However, actual operational quality is determined by the workflow, judgment criteria, safety boundaries, error handling, and testing within SKILL.md.

skills.sh’s search rankings or


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *