한 줄 요약

팀의 반복 업무가 정형화되어 있다면 프롬프트를 매번 쓰지 말고 skill로 추상화하는 것이 Codex app 활용도를 크게 높입니다.

이 페이지에서 배우는 것

  • Skills가 무엇인지 쉬운 비유로 이해하기
  • 왜 Skills를 만들어야 하는지 (Skills 없이 겪는 문제점)
  • $ 기호로 Skill을 호출하는 방법
  • Skill을 처음부터 끝까지 만드는 5단계 가이드
  • 바로 복사해서 쓸 수 있는 실전 Skill 예시 5가지
  • CLI, IDE Extension, App 세 환경에서 Skills가 어떻게 공유되는지
  • 초보자가 자주 묻는 FAQ 5가지

Skills가 뭔가요?

가장 쉽게 설명하면, Skills는 레시피북입니다.

요리를 할 때를 떠올려 보세요. 달걀프라이를 만들 때마다 "프라이팬을 달구고, 기름을 두르고, 달걀을 깨서 넣고..."라고 매번 설명하면 번거롭겠죠? 대신 "달걀프라이"라는 레시피를 한 번 적어두면, 다음부터는 레시피 이름만 말하면 됩니다. 누가 만들든 같은 순서, 같은 방법으로 만들 수 있습니다.

Codex Skills도 같은 원리입니다. 반복되는 작업을 하나의 템플릿(레시피)으로 만들어 저장해 두면, 이름만 부르면 Codex가 그대로 실행해 줍니다. 팀원 누구나 동일한 품질의 결과를 얻을 수 있습니다.

한 마디로 정리하면: Skill = 자주 쓰는 프롬프트를 이름 붙여 저장한 것입니다. 매번 긴 프롬프트를 타이핑할 필요 없이, Skill 이름만 호출하면 Codex가 알아서 실행합니다.

왜 Skills를 만들어야 하나요?

Skills 없이 Codex를 사용하면 이런 문제가 생깁니다.

문제 1: 매번 같은 프롬프트를 길게 타이핑
"이 PR의 변경사항을 보안 관점에서 검토하고, 성능 이슈가 있는지 확인하고, 코딩 컨벤션에 맞는지 체크해줘..."를 코드 리뷰할 때마다 매번 입력해야 합니다. 길고 번거롭습니다.
문제 2: 팀원마다 다른 결과
A 개발자는 "코드 리뷰해줘"라고 짧게 요청하고, B 개발자는 구체적으로 요청합니다. 프롬프트가 다르니 리뷰 품질이 들쭉날쭉합니다. 팀 전체의 코드 품질 관리가 어려워집니다.
문제 3: 노하우가 공유되지 않음
한 팀원이 완벽한 프롬프트를 만들어도, 그 프롬프트가 다른 팀원에게 전달되지 않습니다. 각자 시행착오를 반복하며 시간을 낭비합니다.
한 줄 요약

Skills를 만들면 해결됩니다: 한 번 잘 만든 프롬프트를 Skill로 등록하면, 팀원 누구나 이름만 호출해서 동일한 품질의 결과를 얻을 수 있습니다. 작성 시간도 절약되고, 결과의 일관성도 보장됩니다.

$ 호출이란?

Codex에서 Skill을 실행하는 방법은 매우 간단합니다. Composer(메시지 입력창)에서 달러 기호($)를 입력하면 등록된 Skill 목록이 나타납니다.

예를 들어 "code-review"라는 Skill을 등록해 두었다면 이렇게 사용합니다.

$ 호출 사용 예시
// 방법 1: $ 기호로 호출
$code-review
// 방법 2: slash command로 호출
/code-review
// 방법 3: $ 호출 + 추가 지시사항
$code-review 특히 SQL injection 위험을 중점적으로 확인해줘
$를 입력하면 자동완성 목록이 나타나므로 Skill 이름을 정확히 외울 필요가 없습니다. 목록에서 원하는 Skill을 선택하기만 하면 됩니다.

Skill 만들기: 처음부터 끝까지

Skill을 만드는 과정을 5단계로 나누어 설명합니다. 코딩 경험이 없어도 따라할 수 있습니다.

1
반복되는 작업 파악하기
먼저 "이 작업을 지난 한 주 동안 몇 번이나 했지?"를 생각해 보세요. 코드 리뷰, 문서 작성, 테스트 코드 생성 등 2번 이상 반복한 작업이 Skill 후보입니다.
2
프롬프트 작성하기
해당 작업을 Codex에게 요청할 때 사용할 프롬프트를 작성합니다. 핵심은 구체적으로 쓰는 것입니다. "코드 리뷰해줘"보다 "보안, 성능, 가독성 관점에서 리뷰하고 각 항목별 개선 제안을 작성해줘"가 훨씬 좋은 결과를 냅니다.
3
Skill로 등록하기
Codex App의 설정 또는 프로젝트 설정에서 작성한 프롬프트를 Skill로 등록합니다. 이름은 짧고 명확하게 지어주세요. 예: code-review, write-docs, gen-test
4
테스트하기
등록한 Skill을 실제로 호출해서 기대한 대로 동작하는지 확인합니다. 결과가 만족스럽지 않으면 프롬프트를 수정하고 다시 테스트합니다. 2~3번 반복하면 대부분 좋은 결과를 얻을 수 있습니다.
5
팀과 공유하기
완성된 Skill을 팀 레벨로 등록하면 팀원 모두가 사용할 수 있습니다. 프로젝트 저장소에 포함시키면 저장소를 클론하는 새 팀원도 바로 사용 가능합니다.

실전 Skill 예시 5가지

아래 예시들을 복사해서 바로 Skill로 등록할 수 있습니다. 팀 상황에 맞게 수정해서 사용하세요.

1. 코드 리뷰 Skill

Skill 이름: code-review

프롬프트 템플릿:

"PR의 변경사항을 보안, 성능, 가독성 관점에서 리뷰하고, 각 항목별로 심각도(높음/중간/낮음)를 표시해줘. 개선이 필요한 부분은 수정된 코드 예시도 함께 제안해줘."
2. 문서 작성 Skill

Skill 이름: write-docs

프롬프트 템플릿:

"이 함수/클래스에 대한 JSDoc 문서를 작성하고, 매개변수 설명, 반환값, 사용 예시를 포함해줘. 초보 개발자도 이해할 수 있는 수준으로 설명해줘."
3. 테스트 생성 Skill

Skill 이름: gen-test

프롬프트 템플릿:

"이 함수에 대한 단위 테스트를 작성하고, 정상 케이스 3개, 엣지 케이스 2개, 에러 케이스 1개를 포함해줘. 테스트 프레임워크는 프로젝트에서 사용 중인 것을 따라줘."
4. 리팩터링 Skill

Skill 이름: refactor

프롬프트 템플릿:

"이 코드를 SOLID 원칙에 맞게 리팩터링하고, 변경 전/후를 비교해서 보여줘. 어떤 원칙을 적용했는지, 왜 그렇게 바꿨는지 설명도 추가해줘."
5. 번역 Skill

Skill 이름: translate-ko

프롬프트 템플릿:

"이 README를 한국어로 번역하고, 기술 용어는 영문 원어를 괄호 안에 병기해줘. 마크다운 서식과 링크는 그대로 유지해줘."

CLI / IDE / App에서 Skills가 공유되는 구조

Codex Skills의 큰 장점 중 하나는 어디서 만들든 어디서든 사용할 수 있다는 것입니다. 한 번 만든 Skill은 세 가지 환경 모두에서 동일하게 동작합니다.

CLI / IDE Extension / Codex App 공유 Skills 아키텍처
Shared Skills
CLI (터미널)
터미널에서 명령어로 직접 호출합니다. 서버 환경이나 CI/CD 파이프라인에서 유용합니다.
IDE Extension
VS Code 같은 에디터 안에서 코드를 보면서 바로 Skill을 실행합니다. 코딩 중 컨텍스트 전환 없이 사용 가능합니다.
Codex App
웹 브라우저의 사이드바에서 Skill을 탐색하고 클릭 한 번으로 실행합니다. 가장 직관적인 방법입니다.
초보자 팁: 처음에는 Codex App(웹)에서 Skill을 만들고 테스트하는 것이 가장 쉽습니다. 익숙해지면 CLI나 IDE Extension에서도 같은 Skill을 호출해 보세요.

Skill 주요 활용 분야

코드 리뷰 팀 컨벤션에 맞는 자동 리뷰
보안 점검 보안 취약점 자동 스캔
문서 생성 API 문서, README 자동 생성
테스트 테스트 코드 자동 작성

핵심 포인트

  • CLI와 IDE Extension과 동일한 skills 체계를 Codex App에서도 그대로 사용할 수 있습니다.
  • Composer에서 $ 입력으로 skill을 직접 호출할 수 있습니다.
  • 활성화된 skill은 slash command 목록에도 나타나 빠르게 접근할 수 있습니다.
  • Automations와 skills를 결합하면 반복 작업의 품질과 일관성을 크게 향상시킬 수 있습니다.

Automations + Skills 결합 사례

Automations는 "언제 실행할지"를 정하고, Skills는 "무엇을 실행할지"를 정합니다. 이 둘을 결합하면 특정 시점에 정해진 Skill이 자동으로 실행됩니다.

PR 생성 시 자동 리뷰
PR이 열리면 코드 리뷰 skill이 자동 실행되어 팀 컨벤션 위반 사항을 즉시 피드백합니다. 리뷰어의 반복 검토 부담을 줄여줍니다.
커밋 시 보안 스캔
새 커밋이 푸시될 때마다 보안 점검 skill이 동작하여 민감 정보 노출이나 알려진 취약 패턴을 조기에 감지합니다.
릴리스 전 문서 업데이트
릴리스 브랜치 생성 시 문서 생성 skill이 실행되어 변경 사항에 맞춰 API 문서와 CHANGELOG를 자동 갱신합니다.
기능 브랜치 테스트 생성
새 기능 브랜치가 만들어지면 테스트 작성 skill이 변경된 파일에 대한 단위 테스트를 자동으로 생성합니다.

Skill 추상화 우선순위

어떤 작업부터 Skill로 만들어야 할지 고민된다면, 아래 우선순위를 참고하세요. 팀 규칙이 강하고 반복 빈도가 높을수록 Skill로 만들었을 때 효과가 큽니다.

코드 리뷰
95%
보안 점검
88%
문서 생성
80%
테스트 작성
75%
리팩토링
60%

실전 팁

팀 규칙이 강한 작업부터 시작
리뷰, 보안 점검, 문서화처럼 팀 내부 규칙이 명확하고 반복되는 작업부터 skill로 만들면 효과가 즉각적입니다. 규칙이 불명확한 작업은 먼저 프롬프트로 실험한 뒤 skill로 전환하세요.
하나의 워크플로에 집중
Skill은 하나의 명확한 워크플로에 집중해야 합니다. 여러 작업을 하나의 skill에 넣으면 재사용성이 떨어지고 디버깅이 어려워집니다. 작은 단위로 나누어 조합하는 방식이 효과적입니다.
활성화된 skill은 Composer의 slash command 목록에도 자동으로 표시됩니다. $skill-name 또는 /skill-name으로 빠르게 호출할 수 있습니다.

자주 묻는 질문 (FAQ)

Skills를 만들려면 코딩을 알아야 하나요?
아닙니다. Skill은 본질적으로 "잘 정리된 프롬프트"입니다. 코딩 지식이 없어도, 원하는 작업을 한국어로 구체적으로 설명할 수 있으면 충분합니다. 물론 코딩을 알면 더 정교한 Skill을 만들 수 있지만, 필수는 아닙니다.
다른 사람이 만든 Skill을 가져올 수 있나요?
네, 가능합니다. 팀 레벨로 등록된 Skill은 같은 팀원이라면 누구나 사용할 수 있습니다. 또한 프로젝트 저장소에 Skill 설정을 포함시키면, 저장소를 클론하는 모든 사람이 해당 Skill을 바로 사용할 수 있습니다.
Skill 하나로 여러 프로젝트에서 쓸 수 있나요?
네. 개인 레벨이나 조직 레벨로 등록한 Skill은 여러 프로젝트에서 공통으로 사용할 수 있습니다. 반면, 프로젝트 레벨로 등록한 Skill은 해당 프로젝트에서만 사용됩니다. 범용적인 Skill(예: 코드 리뷰)은 조직 레벨, 프로젝트 특화 Skill(예: 특정 API 문서 생성)은 프로젝트 레벨로 등록하는 것이 좋습니다.
Skill이 예상대로 동작하지 않으면?
가장 흔한 원인은 프롬프트가 너무 모호한 경우입니다. "코드를 개선해줘"보다 "이 함수의 시간 복잡도를 O(n)으로 줄이고, 변수명을 카멜케이스로 변경해줘"처럼 구체적으로 수정해 보세요. 그래도 안 되면 Skill을 작은 단위로 쪼개서 각각 테스트하는 것이 효과적입니다.
Skills와 Automations를 함께 쓰면 뭐가 좋나요?
Automations는 "언제"를 정하고, Skills는 "무엇을"을 정합니다. 예를 들어 "PR이 열릴 때(Automation) 코드 리뷰를 실행(Skill)"하도록 설정하면, 사람이 개입하지 않아도 모든 PR에 일관된 리뷰가 자동으로 수행됩니다. 수동 호출과 자동 실행을 유연하게 조합할 수 있습니다.

다음 단계

Skills의 기본 개념을 이해했다면, 다음 단계로 넘어가 보세요.

  • 위의 실전 예시 중 하나를 골라 직접 Skill로 등록해 보세요. 가장 자주 하는 작업부터 시작하는 것이 좋습니다.
  • Automations 페이지를 읽고, 만든 Skill을 자동 트리거와 연결해 보세요.
  • 팀원에게 Skill을 공유하고, 피드백을 받아 프롬프트를 개선하세요. 2~3번 반복하면 훨씬 좋은 결과를 얻습니다.
  • 단축키, Slash Command 페이지를 참고해서 Skill 호출을 더 빠르게 하는 방법을 익혀보세요.

SKILL.md 파일 구조

Skill은 SKILL.md를 진입점으로 하는 디렉터리입니다. Codex는 frontmatter의 name·description으로 호출 여부를 판단합니다.

my-skill/
├─ SKILL.md              # 진입점 (필수, frontmatter 포함)
├─ scripts/              # 스킬에서 실행할 스크립트
├─ references/           # 참고 자료 / 데이터 파일
├─ assets/               # 이미지·바이너리 등 정적 자산
└─ agents/
   └─ openai.yaml        # display_name, icon, brand_color, allow_implicit_invocation

agents/openai.yamlpolicy.allow_implicit_invocation 기본값은 true이지만, implicit 호출은 단순 toggle이 아니라 frontmatter의 name·description 품질로 매칭됩니다 — description이 명확할수록 모델이 자동으로 해당 skill을 끌어옵니다. 자동 호출을 끄고 `/skills·$` 명시 호출만 받으려면 false로 둡니다.

디스커버리 경로 (우선순위)

공식 Skills 문서는 4단계 카테고리로 정리합니다 — REPO → USER → ADMIN → SYSTEM. 동일 이름의 skill은 병합되지 않으며, selector에 모두 표시될 수 있습니다(공식 문서 명시).

  1. REPO$CWD/.agents/skills, 상위 디렉터리 추적, $REPO_ROOT/.agents/skills
  2. USER$HOME/.agents/skills
  3. ADMIN/etc/codex/skills
  4. SYSTEM — Codex 앱/CLI에 번들된 빌트인 skill

참고: .codex/skills는 공식 디스커버리 경로에 포함되지 않습니다. 팀 내부 컨벤션이 아닌 한 .agents/skills를 사용하세요.

Plugins — 여러 Skill을 묶어 배포하는 방식

로컬 저장소를 넘어 skill을 공유하려면 plugin으로 패키징하는 것이 공식 권장 방식입니다 — "skills should be packaged as plugins, which can bundle multiple skills with app mappings and MCP server configuration." 즉 plugin 하나가 묶을 수 있는 것:

  • 여러 개의 skill — 한 도메인을 위한 단위 작업들을 함께 배포
  • App mappings — Codex 앱·CLI·IDE에서 어떻게 노출될지 정의
  • MCP server 설정 — 함께 등록할 MCP 서버 묶음 (`[mcp_servers.NAME]` 블록)

플러그인 마켓플레이스 (이미 사용 가능). OpenAI 공식 카탈로그 외에도 자체 마켓플레이스를 등록할 수 있습니다:

명령설명예시
codex plugin marketplace add <source>마켓플레이스 소스 등록 (--ref REF, --sparse PATH 옵션)codex plugin marketplace add acme/codex-skills@main
codex plugin marketplace remove <name>등록 해제codex plugin marketplace remove acme
codex plugin marketplace upgrade [name]업그레이드 (이름 생략 시 전체)codex plugin marketplace upgrade

지원 소스 4종 — GitHub shorthand(owner/repo[@ref]) · HTTP/HTTPS Git URL · SSH Git URL · 로컬 디렉터리 경로. 빌트인 $skill-installer는 OpenAI 큐레이션 카탈로그를 사용합니다.

빌트인 Skill 관리 도구

  • $skill-creator — 새 skill을 안내형 UI로 작성. SKILL.md, agents/openai.yaml 템플릿을 자동 생성합니다.
  • $skill-installer <skill-name> — OpenAI 큐레이션 카탈로그에서 검증된 skill을 다운로드. (꺾쇠 < >는 placeholder 표기)
  • ~/.codex/config.toml[[skills.config]] 블록의 enabled = false로 특정 skill을 끄거나 별칭/환경변수를 덮어쓸 수 있습니다.

장점 / 단점 / 한계점

✅ 장점

  • 외부 도구와 API를 Codex에 통합하여 기능 확장 가능
  • 커스텀 Skills로 팀/프로젝트 맞춤 워크플로 구축
  • 반복 작업을 Skills로 패키지화하여 재사용
  • 커뮤니티 Skills를 활용해 빠르게 기능 추가 가능

❌ 단점

  • Skills 개발에 별도 학습 비용 발생
  • 외부 API 의존 시 네트워크 오류에 취약
  • Skills 간 충돌이나 버전 관리가 어려울 수 있음

⚠️ 한계점

  • Skills는 샌드박스 내에서만 실행되어 시스템 레벨 접근 불가
  • 실시간 데이터 스트리밍이나 웹소켓 연결 미지원
  • 빌트인 $skill-installer는 OpenAI 큐레이션 카탈로그를 사용. 자체 마켓플레이스는 codex plugin marketplace add owner/repo로 등록(GitHub/Git/SSH/로컬)
  • 컨텍스트 예산 한도 — 공식 문서 기준, 초기 skill 목록은 모델 컨텍스트 윈도우의 약 2% (또는 컨텍스트 윈도우를 알 수 없을 때 8,000자)로 제한됩니다. 너무 많은 skill을 등록하면 일부가 잘려나갈 수 있으니 자주 쓰는 것만 활성화하세요.

공식 출처