GITHUB 레포 딥다이브 · 2026-07-31 · COMPOSIO-COMMUNITY/AWESOME-CODEX-SKILLS · Codex CLI/API용 실전 스킬 큐레이션 리스트

awesome-codex-skills 딥다이브
스킬 880개, 그중 832개는 이름만 다른 같은 파일이다

awesome-codex-skills는 OpenAI Codex CLI·API에서 쓰는 SKILL.md 폴더를 모아놓은 "awesome list"다. README는 스스로를 "실용적인 Codex 스킬의 큐레이션 목록"이라 소개하지만, 실제로 레포를 열어 보면 성격이 전혀 다른 두 세계가 한 저장소 안에 공존한다 — 사람이 직접 워크플로를 설계해 쓴 48개의 최상위 스킬과, Composio의 MCP 게이트웨이("Rube MCP")를 통해 1,000여 개 SaaS를 건드리게 해주는 832개의 자동생성 커넥터 스킬(composio-skills/ 하위)이다.

이 문서는 그 둘의 경계선에서 벌어지는 일을 실제 소스 기준으로 파헤친다 — SKILL.md의 진짜 형식, 두 세계가 만드는 품질 격차, 그리고 이 레포 자신의 검증 스크립트로 돌려보면 832개 전부가 스스로 정한 규칙을 어기고 있다는 사실까지.

(저장소 composio-community/awesome-codex-skills · ★ 약 15.6k · 주 언어 Python · 기본 브랜치 master · SKILL.md880개 — 최상위 48개 + composio-skills/ 832개 · 전체 파일 1,101개 · 클론 크기 약 16MB · MIT 계열 아님, 개별 스킬 LICENSE.txt만 존재)
목차
  1. 한눈에 — 이 레포의 정체
  2. 왜 생겼나 — "Codex 스킬"이라는 개념의 등장
  3. 스킬이 뭔지 기초부터
  4. SKILL.md 해부 — 실제 파일 기준
  5. 레포 구조와 카테고리 지도 (실제 숫자)
  6. 대표 스킬 5개 뜯어보기
  7. 내 Codex에 설치하고 쓰는 법
  8. Claude Code 스킬과의 차이·호환성
  9. 품질·보안 리스크 — 남의 스킬이 내 셸에서 실행된다
  10. 이 레포로 공부하는 법 + 내 스킬 만들기
  11. 한 줄 정리 + 링크

1한눈에 — 이 레포의 정체

이 프로젝트가 정확히 무엇인지 한 문장으로

awesome-codex-skills는 Composio라는 회사가 운영하는, OpenAI Codex(CLI·API)용 SKILL.md 폴더 모음집이다. "스킬"이란 에이전트에게 "이런 요청이 오면 이렇게 처리해라"는 매뉴얼을 폴더 하나로 묶어 주는 표준 포맷인데, 이 레포는 그 포맷으로 쓰인 스킬을 두 가지 완전히 다른 방식으로 채워 넣었다. 하나는 사람이 손으로 설계한 48개의 워크플로 스킬(회의록 정리, PR 리뷰, GitHub 이슈 트리아지 등 — 레포 최상위에 폴더별로 존재), 다른 하나는 Composio 자신의 통합 카탈로그를 그대로 훑어 거의 동일한 템플릿에 서비스 이름만 바꿔 넣은 832개의 "자동화" 스킬(composio-skills/<서비스명>-automation/)이다.

한 장의 비유

"엄선된 가구"라 적힌 카탈로그, 펼치면 48쪽은 장인 작품이고 832쪽은 같은 조립설명서

표지엔 "실용적인 스킬을 엄선했다"고 적혀 있다. 실제로 앞쪽 48개 항목은 각각 다른 도면 — 회의 노트를 정리하는 법, PR 코멘트에 답하는 법, Notion에 리서치 문서를 쌓는 법이 저마다 다른 구조와 분량으로 쓰여 있다. 그런데 뒤쪽 832개 항목을 펼치면 글자 그대로 6줄짜리 동일한 문서가 반복된다 — "Ably를 자동화하려면", "Google Drive를 자동화하려면"처럼 서비스 이름만 바뀐 채로.

이게 나쁘다는 뜻은 아니다 — 뒤쪽 832개는 애초에 "정교한 매뉴얼"이 아니라 "이 서비스는 Rube MCP로 접근 가능하다"는 색인 카드에 가깝다. 다만 "큐레이션(curated)"이라는 단어가 두 다른 것에 동시에 붙어 있다는 점은, 이 레포를 제대로 이해하려는 사람이라면 반드시 짚고 넘어가야 할 지점이다.

용어
에이전트 스킬(Agent Skill) / SKILL.md
코딩 에이전트(Codex, Claude Code 등)에게 "이 종류의 일은 이렇게 하라"는 매뉴얼 폴더를 끼워 주는 표준. 입구 파일 SKILL.md에 트리거 조건(description)과 작업 절차를 적고, 필요하면 실행 스크립트(scripts/)와 참고 문서(references/)를 같은 폴더에 동봉한다. 에이전트는 평소엔 description만 훑고 있다가, 요청이 맞아떨어지면 그때 본문을 펼쳐 읽는다.
용어
Codex / Codex CLI
OpenAI가 만든 터미널 기반 코딩 에이전트. Claude Code와 마찬가지로 셸에서 파일을 읽고 쓰고 명령을 실행하며, 2026년 상반기부터 SKILL.md 폴더 기반 스킬을 지원하기 시작했다. 이 레포의 스킬들은 $CODEX_HOME/skills(기본값 ~/.codex/skills)에 설치되어 Codex가 자동으로 읽는다.

동작 흐름을 압축하면 이렇다:

사용자: "이 GitHub PR에 달린 리뷰 코멘트 다 처리해줘" │ ▼ ① 탐색 Codex가 ~/.codex/skills/ 안 모든 SKILL.md의 description을 훑는다 ② 매칭 "gh-address-comments"의 description과 요청이 맞아떨어짐 → 본문 로드 ③ 실행 SKILL.md 지침대로 scripts/fetch_comments.py 같은 동봉 스크립트 실행 ④ (필요시) 위임 "connect"류 스킬이면 Composio CLI/Rube MCP로 실제 API 호출 ⑤ 완료 변경사항을 커밋하거나 결과를 사용자에게 보고 ※ composio-skills/*-automation 계열은 ②③이 사실상 하나로 합쳐진다 — 본문 자체가 "Rube MCP의 3개 도구를 이 순서로 불러라"는 위임 지침뿐이다.
먼저 알아둘 것
이 레포는 Composio라는 회사의 제품 마케팅과 묶여 있다

README 상단부터 "Composio MCP Gateway는 1,000개 이상의 통합을 위한 단일 MCP 엔드포인트를 제공한다"는 광고 문구가 나온다. 832개의 자동화 스킬은 결국 이 MCP 게이트웨이 제품으로 사용자를 유도하는 색인 역할도 겸한다. 스타 15.6k라는 숫자를 볼 때, "실용적인 스킬 880개가 각각 검증됐다"가 아니라 "48개의 수작업 스킬 + 회사 카탈로그를 스킬 포맷으로 찍어낸 832개"로 읽는 게 정확하다.

2왜 생겼나 — "Codex 스킬"이라는 개념의 등장

에이전트가 도구 수백 개를 감당하는 방법

이 레포가 존재하는 이유를 이해하려면 두 가지 흐름이 겹쳐야 한다. 첫째는 코딩 에이전트 진영 전체의 "스킬" 표준화다. Claude Code가 먼저 SKILL.md 폴더 규격(프런트매터 + 본문 + 동봉 리소스)을 정착시켰고, Codex도 같은 폴더 규격을 그대로 받아들였다 — 이 레포에 동봉된 설치 도구(skill-installer/scripts/list-curated-skills.py)가 기본값으로 openai/skills 레포의 skills/.curated 경로를 조회하도록 설정된 것에서 보이듯, OpenAI 자신도 공식 큐레이션 스킬 저장소를 운영하고 있다. awesome-codex-skills는 그 공식 목록의 third-party 확장판인 셈이다.

둘째는 "도구가 너무 많아졌다"는 문제다. 에이전트가 MCP로 수백~수천 개의 외부 도구에 연결되면, 그 스키마를 전부 컨텍스트에 욱여넣는 건 비효율적이다. 스킬 포맷의 핵심 아이디어인 프로그레시브 디스클로저(progressive disclosure) — 평소엔 짧은 description만 들고 있다가 필요할 때만 본문을 펼치는 방식 — 이 문제를 정확히 겨냥한다. 흥미로운 건 Composio의 Rube MCP도 같은 아이디어를 도구 레이어에서 한 번 더 적용한다는 점이다: 1,000여 개 서비스의 API를 낱개 도구로 노출하는 대신, RUBE_SEARCH_TOOLS·RUBE_MANAGE_CONNECTIONS·RUBE_MULTI_EXECUTE_TOOL 같은 범용 동사 몇 개로 압축하고, 실제 스키마는 그때그때 검색해서 가져온다.

비유

대형 백화점의 안내 데스크. 손님(에이전트)이 매장 1,000개의 위치와 재고를 전부 외우고 다니는 대신, "OO 사려면 몇 층?"이라고 안내 데스크(Rube MCP)에 물으면 그때 알려준다. composio-skills/의 832개 스킬은 이 안내 데스크의 사용법을 서비스별로 딱 한 장씩 인쇄해 둔 안내판과 같다 — 안내판 문구는 거의 다 똑같고, 매장 이름만 바뀐다.

이 두 흐름이 만나는 지점에서 awesome-codex-skills의 구조가 설명된다. 사람이 쓴 48개는 "에이전트가 반복 작업을 잘 해내려면 어떤 절차·스크립트·참고자료가 필요한가"라는 스킬 포맷 본연의 질문에 답한 결과물이고, 기계가 찍어낸 832개는 "우리 회사의 통합 카탈로그를 스킬 발견 메커니즘에 노출시키자"는 완전히 다른 동기의 산물이다. 이름은 같은 "스킬"이지만 태어난 이유가 다르다.

3스킬이 뭔지 기초부터

SKILL.md를 한 번도 안 본 사람을 위한 설명

가장 쉬운 비교는 "매번 프롬프트에 다 설명해주기" vs "미리 적어둔 매뉴얼을 필요할 때 꺼내 읽기"다. 스킬이 없으면, 사용자가 "회의록을 액션 아이템으로 정리해줘"라고 할 때마다 "이런 형식으로, 이런 순서로 해줘"를 매번 새로 설명해야 한다. 스킬이 있으면, 그 절차가 폴더 하나에 저장되어 있고 에이전트는 관련 요청이 왔을 때 그 폴더를 스스로 찾아 펼친다.

용어
YAML 프런트매터
파일 맨 위, ---로 감싼 구역에 key: value 형식으로 적는 메타데이터. SKILL.md에서는 이 부분만 에이전트가 항상 읽고, 나머지 본문은 트리거된 뒤에만 읽는다. 그래서 description을 얼마나 정확히 쓰느냐가 스킬이 제때 발동하는지를 좌우한다.
용어
MCP (Model Context Protocol)
에이전트가 외부 도구·서비스에 접근하는 방식을 표준화한 프로토콜. "MCP 서버"를 하나 연결하면 그 서버가 제공하는 여러 도구를 에이전트가 호출할 수 있게 된다. 이 레포의 832개 자동화 스킬은 전부 Rube라는 하나의 MCP 서버(https://rube.app/mcp)를 통해 실제 작업을 수행한다 — 스킬 자체엔 실행 코드가 없다.

awesome-codex-skills를 읽다 보면 스킬이 실제로는 두 가지 다른 방식으로 "일을 시킨다"는 게 보인다:

방식본문이 하는 일레포 안 예시
지침형순수 마크다운 절차 — 어떻게 요약하고, 어떤 형식으로 출력할지 단계별로 서술meeting-notes-and-actions, tailored-resume-generator
스크립트 동봉형지침 + 결정적 단계는 scripts/의 실제 코드 실행mcp-builder, webapp-testing, skill-creator
도구 위임형본문이 "이 MCP 도구 / 이 CLI 명령을 이 순서로 불러라"는 지시뿐 — 실제 작업은 외부 서버가 수행composio-skills/*-automation, connect, connect-apps

세 번째 유형이 중요한 이유는, 이 유형의 스킬은 발동되는 순간 사용자의 실제 계정으로 실제 행동(이메일 발송, Slack 게시, GitHub 이슈 생성 등)을 일으킨다는 점이다. 이 특성은 뒤에서(9장) 보안 리스크로 다시 다룬다.

4SKILL.md 해부 — 실제 파일 기준

최소형부터 실전형까지, 필드별로 뜯어본다

레포에서 가장 단순한 SKILL.md는 template-skill/에 들어있는 "빈 틀"이다. 이게 스킬의 최소 골격이다:

---
name: template-skill
description: Replace with description of the skill and when Claude should use it.
---

# Insert instructions below

frontmatter는 ---로 감싼 YAML이고, 그 아래는 마크다운 자유 형식이다. 실전 예시로 meeting-notes-and-actions/SKILL.md를 보면 필드가 하나 더 붙는다:

---
name: meeting-notes-and-actions
description: Turn meeting transcripts or rough notes into crisp summaries
  with decisions, risks, and owner-tagged action items; use for Zoom/Meet/Teams
  transcripts, call notes, or long meeting chats to generate share-ready outputs.
metadata:
  short-description: Meeting transcript to notes and actions
---

레포에 동봉된 검증 스크립트 skill-creator/scripts/quick_validate.py를 직접 읽으면 공식적으로 허용된 프런트매터 키가 정확히 무엇인지가 코드로 박혀 있다:

allowed_properties = {"name", "description", "license", "allowed-tools", "metadata"}
필수의미이 레포에서의 실사용
name필수스킬 식별자. 소문자·숫자·하이픈만, 64자 이하, 연속 하이픈 금지48개 전부 폴더명과 일치
description필수유일한 트리거 메커니즘. 무엇을 하는지 + 언제 쓰는지를 여기 다 담아야 함(1024자 이하, 꺾쇠 금지)48개 전부 사용
license선택보통 "Complete terms in LICENSE.txt"처럼 동봉 파일을 가리킴mcp-builder 등 12개(스크립트/레퍼런스 보유 스킬)
allowed-tools선택스킬이 사용할 수 있는 도구를 제한0건 — 스키마엔 있지만 실제로 아무도 안 씀
metadata선택자유 형식 부가 정보(예: short-description)meeting-notes-and-actions, skill-creator 등 소수
미리 던지는 질문
그럼 requires는 뭔가?

composio-skills/ 안 832개 파일은 전부 requires: {mcp: [rube]}라는, 위 표에 없는 다섯 번째 키를 쓴다. 이게 왜 문제가 되는지는 실제로 검증기를 돌려서 9장에서 확인한다 — 스포일러: 832개 전부 이 레포 자신의 검증 스크립트를 통과하지 못한다.

디렉토리 레이아웃 — README가 규정한 것과 실제로 관찰되는 것

README의 "Creating Skills" 절이 명시하는 공식 레이아웃은 세 가지 선택적 리소스뿐이다:

skill-name/ ├── SKILL.md # 필수 — 지침 + YAML 프런트매터 ├── scripts/ # 선택 — 결정적 단계를 위한 헬퍼 스크립트 ├── references/ # 선택 — 필요할 때만 로드되는 상세 문서 └── assets/ # 선택 — 산출물에 쓰이는 템플릿·파일

그런데 실제 48개 최상위 스킬을 뒤져보면 이 규정에 없는 폴더 이름이 여럿 관찰된다: mcp-builder·notion-* 4종은 references가 아니라 단수형 reference/를 쓰고, notion-* 4종은 여기에 더해 examples/evaluations/까지 추가로 만들어 쓴다. agent-deep-links는 Codex 전용 메타데이터 파일 agents/openai.yaml을 동봉한다(전면 UI에서 스킬을 어떻게 표시할지 정의 — display_name·short_description·default_prompt). 즉 SKILL.md 자체의 스키마는 코드로 강제되지만, 동봉 폴더 이름은 강제되지 않는 관례일 뿐이다 — 이 레포 안에서도 통일돼 있지 않다.

5레포 구조와 카테고리 지도 (실제 숫자)

git clone 직후 보이는 것들 — 파일 1,101개, 약 16MB
awesome-codex-skills/ ├── README.md 카테고리 5개·설치법·기여 가이드 ├── codex_cover_image.png 배너 이미지 (1.1MB) │ ├── composio-skills/ ★ 832개 — 서비스당 폴더 1개, SKILL.md만 존재 │ ├── .claude-plugin/ │ │ └── marketplace.json ← "awesome-claude-skills"라는 다른 이름의 미아 파일(9장) │ ├── ably-automation/SKILL.md │ ├── googledrive-automation/SKILL.md │ ├── openai-automation/SKILL.md │ └── … (829개 더, 전부 <서비스명>-automation 패턴) │ ├── mcp-builder/ ★ 스크립트+레퍼런스 완비형 (Anthropic 공식 스킬과 동일 내용) │ ├── SKILL.md · LICENSE.txt(Apache-2.0) │ ├── scripts/ evaluation.py, connections.py, requirements.txt │ └── reference/ mcp_best_practices.md 외 3개 ├── skill-creator/ 스킬 만드는 법을 가르치는 메타 스킬 │ └── scripts/ init_skill.py, quick_validate.py, package_skill.py ├── skill-installer/ GitHub에서 스킬을 설치하는 CLI 도구 │ └── scripts/ install-skill-from-github.py, github_utils.py, list-curated-skills.py ├── connect/ , connect-apps/ Composio CLI로 "진짜 행동"을 실행 (2개, 6장 참고) ├── notion-knowledge-capture/ └ examples/ reference/ evaluations/ 동봉형 (4종) ├── notion-meeting-intelligence/ ├── notion-research-documentation/ ├── notion-spec-to-implementation/ ├── canvas-design/ 폰트 54개·5.4MB — 레포 용량의 1/3을 이 폴더가 차지 └── (그 외 39개 최상위 스킬 폴더 — template-skill, webapp-testing, gh-fix-ci …)
항목수치비고
SKILL.md 총합880개최상위 48 + composio-skills/ 832
전체 파일1,101개.git 제외
저장소 크기약 16MB
.md 파일952개 · 약 3.3MBSKILL.md 880 + README/reference/examples 등 72
.py 파일35개 · 약 272KB48개 중 12개 스킬만 스크립트 보유(gh-address-comments, gh-fix-ci, mcp-builder, notion-* 4종, paperjsx, skill-creator, skill-installer, video-downloader, webapp-testing)
.ttf 폰트54개 · 약 5.4MB전부 canvas-design/canvas-fonts/
.json9개notion-* 4종의 evaluations/ 시나리오
CI / CONTRIBUTING / 루트 LICENSE전부 없음개별 스킬 폴더의 LICENSE.txt만 존재(전부 Apache-2.0)

GitHub이 이 레포의 주 언어를 Python으로 표시하지만, 파일 개수·바이트 수 어느 쪽으로 봐도 실체는 마크다운 프롬프트 저장소에 가깝다 — .py는 35개(272KB)뿐이고 .md는 952개(3.3MB)로 10배 이상이다. Python이 상위로 잡히는 건 아마도 스크립트를 가진 12개 스킬의 코드 밀도 때문일 텐데, 어느 쪽이든 "이 레포를 열면 파이썬 코드가 잔뜩 나온다"는 인상은 정확하지 않다.

README가 선언한 5개 카테고리 (로컬 폴더 48 + 외부 링크 12)

카테고리로컬외부링크대표 예시
Development & Code Tools97mcp-builder, webapp-testing, gh-fix-ci, sentry-triage
Productivity & Collaboration161connect, notion-* 4종, meeting-notes-and-actions, paperjsx
Communication & Writing44email-draft-polish, changelog-generator, tailored-resume-generator
Data & Analysis90spreadsheet-formula-helper, datadog-logs, langsmith-fetch
Meta & Utilities100skill-creator, skill-installer, canvas-design, template-skill

이 표에 composio-skills/의 832개는 아예 등장하지 않는다. README의 "Skills" 섹션 어디에도 composio-skills/ 폴더에 대한 언급이 없다 — 카테고리 매니페스트도, 개수 안내도 없이 그냥 레포 안에 통째로 들어있다. 성격상 굳이 분류하면 "Meta & Utilities"(도구 연결)에 가장 가깝지만, 공식 목록은 이 존재를 사실상 언급하지 않은 채 방치하고 있다.

6대표 스킬 5개 뜯어보기

스펙트럼의 양 끝과 그 사이를 실제 코드로 확인한다
스킬 ① — 모범생

mcp-builder — Anthropic 공식 스킬의 이름·문구·라이선스까지 그대로

MCP 서버를 잘 만드는 법을 가르치는 스킬. scripts/evaluation.py·connections.py + reference/ 아래 4개 문서(모범사례, Python/Node 구현 가이드, 평가 방법론)로 구성된 4단계 워크플로(리서치·설계 → 구현 → 평가 → 반복)를 안내한다. "Build for Workflows, Not Just API Endpoints"(개별 API를 그대로 감싸지 말고 실제 워크플로 단위로 도구를 설계하라) 같은 원칙이 본문에 그대로 있다. 이 스킬의 description·본문 문구·LICENSE.txt(Apache-2.0) 내용은 Anthropic이 공개한 Claude용 mcp-builder 스킬과 사실상 동일하다 — 8장에서 다시 다룰 호환성의 가장 직접적인 증거다.

스킬 ② — 메타(스킬을 설치하는 스킬)

skill-installer — 이 레포 전체를 설치 가능하게 만드는 엔진

install-skill-from-github.py--repo owner/repo --path 스킬폴더를 받아 두 가지 방법으로 스킬을 가져온다: ① codeload.github.com에서 zip 다운로드(기본), 실패하면 ② git clone --filter=blob:none --sparse --depth 1로 해당 경로만 sparse-checkout. 가져온 뒤 검증은 "SKILL.md 파일이 존재하는가" 딱 한 줄뿐이고, 내용이 안전한지·스키마를 지키는지는 전혀 확인하지 않는다. 최종 목적지는 $CODEX_HOME/skills/<name>. 같은 폴더의 list-curated-skills.py는 기본값이 --repo openai/skills --path skills/.curated로 설정돼 있다 — OpenAI 자신이 운영하는 공식 큐레이션 목록을 조회하는 용도라는 뜻이다.

스킬 ③ — 832개의 표준형 (대표: googledrive-automation)

composio-skills/*-automation — 실행 코드 0줄, 전부 위임

본문 구조가 6단계로 완전히 고정돼 있다: ① Rube MCP 연결 확인 → ② RUBE_SEARCH_TOOLS로 현재 도구 스키마 검색(하드코딩 금지가 원칙) → ③ RUBE_MANAGE_CONNECTIONS로 해당 서비스 OAuth 연결 확인 → ④ RUBE_MULTI_EXECUTE_TOOL로 실행 → ⑤ 세션 재사용 규칙 → ⑥ "Known Pitfalls" 표. 이 파일엔 Google Drive를 다루는 코드가 단 한 줄도 없다 — "Google Drive"라는 단어와 링크만 있고, 실제 작동은 전부 Rube MCP 서버 쪽에 있다. 그래서 이 스킬이 실제로 뭔가 하려면 사용자가 Rube MCP를 연결하고 Google Drive OAuth 인증까지 마쳐야 하는데, 그 전제 조건은 스킬 본문 어디에도 확인 절차로 강제돼 있지 않다.

스킬 ④ — 같은 회사, 다른 이름의 사용자에게 말을 건다

connect vs connect-apps — Composio CLI로 "진짜 행동"을 실행

두 스킬 모두 composio execute SLUG -d '{...}' 형태로 로컬에 설치된 Composio CLI를 직접 호출한다(Rube MCP와는 별개의 실행 경로). connect/SKILL.md는 "Connect Codex to any app"이라 쓰여 있는데, connect-apps/SKILL.md는 "Connect Claude to external apps... Ask Claude to... / Claude runs"라고 쓰여 있다 — 같은 저장소, 같은 기능인데 대상 에이전트 이름이 다르다. 이 불일치가 왜 생겼는지는 9장에서 다룬다. 두 스킬 다 "Stop generating text about what you could do — actually do it from the shell"를 표어로 내건다: 초안을 보여주는 대신 실제로 이메일을 보내고 이슈를 만든다는 뜻이다.

스킬 ⑤ — 스킬을 "테스트 가능한 사양"으로 다루는 실험

notion-research-documentation — evaluations/ 라는 이례적인 폴더

notion-* 4종만 갖고 있는 evaluations/ 폴더에는 JSON 형식의 평가 시나리오가 들어있다. 예를 들어 basic-research.json은 "API 인증 방식을 조사해서 Notion에 요약 문서를 만들어줘"라는 query와, 그에 대한 expected_behavior(검색 도구를 어떤 검색어로 부를지, 몇 개 페이지를 가져올지) 및 success_criteria(인용이 있는지, 형식을 지켰는지)를 명시한다. 이건 skill-creator가 규정한 scripts/references/assets 3종 세트에 없는 자체 확장이다 — 스킬을 "그럴듯한 프롬프트"가 아니라 "합격 기준이 있는 사양"으로 취급하려는 시도로 읽힌다.

7내 Codex에 설치하고 쓰는 법

README 그대로가 아니라 실제 스크립트 기준으로

방법 1 — 설치 스크립트 (권장, README 원문)

# README에 실제로 이렇게 적혀 있다 (조직명 표기에 주의 — 아래 danger 박스 참고)
git clone https://github.com/ComposioHQ/awesome-codex-skills.git
cd awesome-codex-skills
python skill-installer/scripts/install-skill-from-github.py \
  --repo ComposioHQ/awesome-codex-skills --path meeting-notes-and-actions
# → $CODEX_HOME/skills/meeting-notes-and-actions (기본값 ~/.codex/skills/)
실행 전에 확인
README의 clone 명령과 실제 작동하는 조직명이 다르다

README와 설치 예시는 전부 ComposioHQ/awesome-codex-skills를 가리키지만, 이 문서가 실제로 클론에 성공한(그리고 과제로 지정된) 주소는 composio-community/awesome-codex-skills다. GitHub 조직 이전·개명 과정에서 README 갱신이 누락된 것으로 보인다. 스킬을 설치할 때는 --repo 값을 실제 접속 가능한 조직명으로 바꿔 써야 한다.

방법 2 — 수동 복사

# 원하는 스킬 폴더를 그대로 복사하면 끝
cp -r ./spreadsheet-formula-helper $CODEX_HOME/skills/
# (CODEX_HOME 미설정 시 ~/.codex/skills/)
# 이후 Codex를 재시작해야 새 메타데이터를 인식한다

설치 확인

ls ~/.codex/skills
head ~/.codex/skills/meeting-notes-and-actions/SKILL.md

설치만으로 끝나는 스킬(지침형)도 있지만, 도구 위임형 스킬(6장의 ③④)은 별도 준비가 필요하다:

스킬 종류추가로 필요한 것설정 명령
composio-skills/*-automation (832개)Rube MCP 서버 연결 + 해당 서비스 OAuth클라이언트 설정에 https://rube.app/mcp를 MCP 서버로 추가(API 키 불필요) → 세션 중 RUBE_MANAGE_CONNECTIONS로 인증
connect / connect-appsComposio CLI 설치 + 로그인 + 앱별 링크curl -fsSL https://composio.dev/install | bashcomposio logincomposio link gmail

Codex는 세션 중 자연어 요청이 어떤 스킬의 description과 맞아떨어지는지 판단해 자동으로 트리거한다. 스킬 이름을 직접 언급해도 되지만(README 문구: "you can also mention a skill by name if you want it considered"), 강제 로드 문법은 별도로 문서화돼 있지 않다.

8Claude Code 스킬과의 차이·호환성

포맷은 같다, 그러나 완전히 같지는 않다

이 레포를 실제로 열어보면 "Codex 스킬과 Claude Code 스킬이 얼마나 호환되는가"라는 질문에 레포 스스로가 답을 하고 있다mcp-builder·canvas-design·webapp-testing·theme-factory·internal-comms·slack-gif-creator는 설명 문구와 LICENSE.txt(Apache-2.0) 내용까지 Anthropic이 공개한 동명의 Claude 공식 스킬과 사실상 동일하다. brand-guidelines만 "OpenAI's brand colors... Codex/OpenAI 룩앤필"로 본문이 각색돼 있을 뿐, 나머지는 이름조차 안 바뀐 채로 Codex 저장소에 들어와 있다. 즉 SKILL.md라는 파일 포맷 자체는 두 진영이 완전히 공유한다는 뜻이다 — 폴더를 복사해서 이름만 인식시키면 그대로 작동할 만큼.

항목공통점 / 차이점
파일명·기본 구조동일. SKILL.md + YAML 프런트매터(name/description 필수) + scripts/references/assets
발견 메커니즘동일. description 문구를 상시 스캔 → 매칭되면 본문 로드(프로그레시브 디스클로저)
설치 위치다름. Codex는 $CODEX_HOME/skills(기본 ~/.codex/skills) · Claude Code는 ~/.claude/skills 또는 프로젝트 내 .claude/skills
배포·마켓플레이스다름. Claude Code는 .claude-plugin/marketplace.json 기반 1급 플러그인 마켓플레이스가 있음. Codex 쪽엔 상응 개념이 없고 파이썬 설치 스크립트로 한 개씩 수동 설치
CLI 전용 확장다름. Codex는 agents/openai.yaml(표시 이름·기본 프롬프트)을 선택적으로 지원. 이 레포에서 Claude 쪽 상응 파일은 관찰되지 않음
커스텀 프런트매터 키위험 지대. requires 같은 키를 얹으면 표준 스키마를 벗어나 어느 쪽 검증기에서도 "정의되지 않은 키"로 걸릴 수 있음
직접 확인된 증거
이 레포 안에 "Claude Code용 마켓플레이스 설정 파일"이 통째로 들어있다

composio-skills/.claude-plugin/marketplace.json을 열어보면 name: "awesome-claude-skills", version: "2.0.0", plugins 107개짜리 완전한 Claude Code 플러그인 마켓플레이스 설정이 나온다. 각 플러그인의 source./brand-guidelines, ./canvas-design처럼 이 저장소(awesome-codex-skills) 최상위 폴더 이름과 정확히 일치한다. 다시 말해 이 마켓플레이스 파일은 애초에 Composio의 자매 프로젝트 awesome-claude-skills용으로 만들어졌다가, 이 Codex 레포의 composio-skills/ 안으로 통째로 함께 들어온 것으로 보인다 — 9장에서 이 흔적을 품질 신호로 다시 짚는다.

실전 질문으로 정리하면: "이 레포의 스킬 폴더를 Claude Code의 ~/.claude/skills/에 그대로 복사하면 작동하는가?" — name·description(+license·metadata)만 쓰는 48개 중 상당수는 포맷이 동일하므로 그대로 작동할 가능성이 높다(실제로 그 반대 방향, 즉 Claude 스킬이 이 레포에 그대로 들어와 있는 사례가 이미 존재한다). 반면 requires 필드를 가진 832개는 스키마 밖의 키를 포함하고 있어, 엄격한 검증기를 통과한다는 보장이 없다 — 기반 포맷은 이식 가능해도, 각 진영이 얹은 확장 필드까지 자동으로 호환되는 것은 아니다.

9품질·보안 리스크 — 남의 스킬이 내 셸에서 실행된다

이 레포 자신의 검증 스크립트로 이 레포를 검사해 봤다

레포 자신의 규칙을, 레포 자신이 어긴다

skill-creator/SKILL.md는 스킬 작성자에게 이렇게 명시한다: "Do not include any other fields in YAML frontmatter"(프런트매터에 다른 필드를 넣지 말 것) — name과 description 외엔 적지 말라는 뜻이다. 같은 폴더의 quick_validate.py는 이보다 조금 관대하게 {name, description, license, allowed-tools, metadata} 5개까지 허용한다. 그런데 이 검증 스크립트를 composio-skills/의 자동화 스킬에 실제로 돌려보면:

$ python3 skill-creator/scripts/quick_validate.py composio-skills/ably-automation
Unexpected key(s) in SKILL.md frontmatter: requires.
Allowed properties are: allowed-tools, description, license, metadata, name

$ # 832개 전체에 동일한 검증을 반복 실행한 결과
총 832 개 중 검증 실패 832 개
직접 재현한 결과
composio-skills/의 832개 SKILL.md, 100%가 이 레포 자신의 검증기를 통과하지 못한다

모든 자동화 스킬이 갖고 있는 requires: {mcp: [rube]} 필드가 원인이다. 778개는 mcp: [rube] 인라인 배열로, 54개는 여러 줄짜리 리스트로 표기만 다를 뿐 값은 항상 rube 하나다. 일부(ahrefs-automation 등)는 name 필드까지 "Ahrefs Automation"처럼 대문자·공백이 섞인 형태라 name 형식 규칙(소문자·숫자·하이픈만)까지 이중으로 어긴다. Codex 런타임이 실제로 이 필드를 무시하고 넘어갈 가능성은 있지만, 레포가 스스로 정의하고 배포한 검증 도구 기준으로는 자신의 콘텐츠 94.5%(832/880)가 불합격이라는 사실 자체가, "curated"라는 표현이 두 다른 대상에 얼마나 다른 무게로 붙어 있는지를 보여준다.

편집 감수성의 흔적 — 자매 레포에서 넘어온 문구들

connect-apps/SKILL.md는 Codex 레포 최상위(사람이 골랐다고 봐야 할 48개) 안에 있으면서도 본문 전체가 "Connect Claude to external apps", "Ask Claude to... / Claude runs" 식으로 쓰여 있다 — 바로 옆 connect/SKILL.md가 "Connect Codex..."로 정확히 각색된 것과 대비된다. 이 문서 전체에서 "Claude"라는 단어가 남아있는 파일은 11개(canvas-design·file-organizer·template-skill·content-research-writer·internal-comms·langsmith-fetch·invoice-organizer·connect-apps·skill-share 등)로, 대부분은 "다음 Claude가 판단할 여지를 남겨라" 같은 일반적 조언 문맥이라 큰 문제는 아니지만, connect-apps만큼은 스킬 전체의 정체성(어느 에이전트를 부르는가)이 통째로 안 바뀐 사례다.

진짜 위험 — "설치"가 곧 "권한 위임"이라는 점

이 레포 스킬의 상당수는 사용자의 실제 계정으로 실제 부작용(side effect)을 일으키도록 설계돼 있다 — connect/SKILL.md의 표어 그대로 "초안을 보여주는 대신 실제로 이메일을 보내고, 이슈를 만들고, 메시지를 올린다." 이 실행 경로는 두 갈래다: ① composio execute SLUG(로컬 Composio CLI, connect·connect-apps) ② Rube MCP의 RUBE_MULTI_EXECUTE_TOOL(832개 automation 스킬). 두 경로 모두 사용자가 이미 OAuth로 연결해 둔 진짜 Gmail·Slack·GitHub·Notion 계정을 사용한다.

여기서 신뢰 경계가 어떻게 뚫릴 수 있는지 정리하면:

그래도 참고할 점
832개 자체는 대체로 "저위험 색인"에 가깝다

composio-skills/의 자동화 스킬은 실행 코드가 없고 전부 Rube MCP 서버로 위임하기 때문에, 파일 자체에 악성 셸 명령이 숨어들기는 상대적으로 어려운 구조다(위험은 프런트매터 스키마 위반 정도). 진짜 위험은 "어떤 스킬이든 일단 설치되면 셸 명령·CLI 실행을 지시할 수 있다"는 최상위 48개 및 향후 추가될 서드파티 기여분 쪽에 있다 — 특히 scripts/ 폴더에 실제 파이썬·셸 코드가 동봉된 12개 스킬은 코드 자체를 읽어보는 습관이 필요하다.

10이 레포로 공부하는 법 + 내 스킬 만들기

읽는 순서부터 직접 만들어보기까지

추천 정독 순서

  1. template-skill/SKILL.md — 4줄짜리 최소 골격부터 감을 잡는다.
  2. meeting-notes-and-actions/SKILL.md — 스크립트 없이 순수 절차 서술만으로 스킬이 성립하는 예.
  3. connect-apps/SKILL.md — CLI 위임형 패턴을 보되, "Claude" 잔존 문구를 스스로 찾아보며 왜 문제인지 체감한다(9장 답 확인 전에 먼저 찾아볼 것).
  4. mcp-builder/SKILL.md + reference/ 4종 — scripts·reference를 모두 갖춘 "정석" 구조.
  5. composio-skills/ 아무 폴더나 하나 — 실행 코드 0줄짜리 최소 위임형이 어떻게 성립하는지 확인.
  6. notion-research-documentation/evaluations/ — 스킬을 "합격 기준이 있는 사양"으로 만드는 실험적 패턴.

내 스킬 만들기 — skill-creator가 규정한 6단계

이 레포에 동봉된 skill-creator 스킬은 스킬을 만드는 절차 자체를 스킬로 만들어 놓았다. 핵심 단계만 요약하면:

단계내용
1. 구체적 사례 이해"어떤 요청이 오면 이 스킬이 트리거돼야 하는가"를 구체적 예문으로 먼저 정리
2. 재사용 가능한 자원 설계매번 반복될 로직은 scripts/, 매번 찾아볼 문서는 references/, 매번 쓸 템플릿은 assets/로 분리할지 판단
3. 초기화scripts/init_skill.py <skill-name> --path <output-dir> --resources scripts,references,assets로 뼈대 생성
4. 편집description에 "무엇을 + 언제"를 전부 담기(본문에 "When to Use" 섹션을 따로 두는 건 무의미 — 본문은 트리거된 후에만 읽힘). 명령형/부정사형 문장으로 작성
5. 패키징scripts/package_skill.py가 내부적으로 quick_validate.py를 먼저 돌린 뒤 .skill 배포 파일을 만든다 — 검증 실패 시 패키징 자체가 안 됨
6. 반복실제로 트리거해 보고, 스크립트는 직접 실행해서 결과를 확인한 뒤 다듬는다
# 직접 해보는 최소 실습
python3 skill-creator/scripts/init_skill.py my-first-skill \
  --path ./skills-sandbox --resources scripts

# SKILL.md의 [TODO] 부분을 채운 뒤 검증
python3 skill-creator/scripts/quick_validate.py ./skills-sandbox/my-first-skill

# 검증을 통과하면 배포용으로 패키징 (내부에서 검증을 한 번 더 돈다)
python3 skill-creator/scripts/package_skill.py ./skills-sandbox/my-first-skill

실습 아이디어: 본인이 반복적으로 하는 작업(예: "PR 올리기 전에 체크리스트 확인하기", "주간 회고 정리하기")을 하나 골라 위 3단계를 그대로 따라 해본다. 그다음 composio-skills/의 automation 스킬 하나를 골라 스스로 quick_validate.py에 돌리기 전에 어떤 이유로 실패할지 먼저 예측해보면, SKILL.md 스키마가 왜 그렇게 설계됐는지가 체감된다.

11한 줄 정리 + 링크

더 파고들 때

awesome-codex-skills는 "Codex 스킬 큐레이션 리스트"라는 간판 아래, 사람이 직접 설계한 48개의 실전 워크플로 스킬과 회사 통합 카탈로그를 스킬 포맷으로 찍어낸 832개의 자동생성 커넥터가 공존하는 저장소다 — 그리고 후자는 레포 자신의 검증 도구 기준으로도 100% 비표준이다. SKILL.md라는 파일 포맷 자체는 Claude Code와 사실상 그대로 호환되지만("이식된 흔적"이 레포 안에 직접 남아있다), 설치 경로·배포 방식·확장 필드는 각기 다르며, 그 확장 필드가 정확히 이 레포의 품질 격차가 드러나는 지점이었다.