SKILL.md 47개로 배우는 "AI 에이전트 스킬 설계·배포·운영법"SKILL.md)의 모음이라, 빌드도 설치 프로그램도 없다.
그런데 이 저장소의 진짜 가치는 "마케팅 지식"보다 "AI 에이전트용 Skill을 어떻게 설계하고, 어떻게 배포하며, 어떻게 팀으로 운영하는가"의 살아 있는 교과서라는 데 있다. name/description만으로 에이전트가 스킬을 고르게 하는 발견성 설계, 토큰을 아끼는 3계층 점진적 공개(Progressive Disclosure), 스킬끼리 서로 넘겨주는 오케스트레이션, 품질을 지키는 평가(evals), 그리고 CI 자동 동기화까지 — 마케팅을 소재로 "잘 만든 스킬 저장소"의 정석을 통째로 보여 준다.
(저장소: coreyhaines31/marketingskills · MIT · 마크다운 296 + zero-dep Node.js CLI 64 · SKILL.md 47개 · v2.8.10 · TrendShift Daily #9)
marketingskills는 "AI 코딩 에이전트를 마케팅 전문가로 변신시키는 능력 팩"이다. Claude Code나 Cursor에 이 저장소를 설치하면, 평소엔 코드만 짜던 에이전트가 "이 랜딩페이지 전환율을 올려 줘", "콜드 이메일 시퀀스 써 줘", "이 사이트 SEO 감사해 줘" 같은 요청에 전문가 수준의 절차와 프레임워크를 따라 답하게 된다. 그 능력 하나하나가 스킬(Skill)이고, 이 저장소엔 마케팅 스킬이 47개 들어 있다.
각 스킬의 정체는 놀랄 만큼 단순하다 — SKILL.md라는 마크다운 파일 한 장이다. 맨 위에 "이 스킬이 무엇이고 언제 쓰는지"를 적은 YAML 머리말이 있고, 그 아래에 에이전트가 따라야 할 지시(프레임워크·체크리스트)가 이어진다. 코드가 아니라 잘 쓴 설명서가 곧 능력이 되는 것 — 이게 2026년 AI 에이전트 생태계를 관통하는 "Agent Skills" 표준의 핵심이다.
SKILL.md 파일을 넣으면 스킬 하나가 된다. 앱을 설치하듯 .claude/skills/(또는 범용 .agents/skills/)에 폴더를 넣어 두면, 에이전트가 대화 중 필요할 때 스스로 그 스킬을 "펼쳐" 읽는다. Anthropic이 제시하고 Codex·Cursor 등이 함께 채택한 Agent Skills 스펙(agentskills.io)을 따른다.cro, copywriting, seo-audit, referrals …).갓 입사한 만능 직원(AI 에이전트)이 있다고 하자. 똑똑하지만 우리 회사의 마케팅 실무 절차는 모른다. marketingskills는 그 옆에 꽂아 두는 47권짜리 사수(師守) 매뉴얼이다. "랜딩페이지가 전환이 안 돼요"라고 하면 직원은 스스로 cro 챕터를 펼쳐 그 절차대로 진단한다.
중요한 건 47권을 한꺼번에 외우지 않는다는 것이다. 각 권의 표지(머리말)만 늘 눈에 두고, 실제 일이 생기면 그 한 권만 꺼내 읽는다. 게다가 "이건 내 담당이 아니라 옆 부서(signup) 일이니 그쪽 매뉴얼을 보라"고 서로 넘겨주기까지 한다. 이 "필요한 만큼만 펼쳐 읽고, 서로 위임하는" 구조가 이 저장소의 진짜 배울 점이다(§4).
2026년 TrendShift 상위권은 온통 "skills"다 — 이 리스트만 봐도 hallmark, mattpocock/skills, marketingskills, andrej-karpathy-skills 등 스킬 저장소가 줄줄이 올라 있다. AI 코딩 에이전트를 "프롬프트 하나"가 아니라 "설치형 능력 팩"으로 확장하는 흐름이 대세가 됐다는 신호다. (TrendShift의 굵은 숫자는 별 수가 아니라 사회적 언급 모멘텀이다.) marketingskills가 그중에서도 눈에 띄는 이유를 넷으로 본다.
대부분의 인기 스킬 팩은 엔지니어를 위한 것(테스트·리팩터링·디버깅)이다. marketingskills는 AI 에이전트를 "1인 창업자·마케터의 실무 도구"로 돌려세운다. 코드는 못 짜도 랜딩페이지·이메일·광고 카피·SEO가 급한 사람이 훨씬 많다. "개발자용 스킬"의 홍수 속에서 비개발 실무자라는 거대한 수요층을 겨눈 몇 안 되는 팩이다.
저자 Corey Haines는 SaaS 마케팅으로 이름난 실무자(Swipe Files·Conversion Factory 운영)다. 스킬 안에 담긴 건 교과서 요약이 아니라 현장에서 검증된 프레임워크다 — 예컨대 ai-seo 스킬은 "AI가 인용해도 정작 경쟁사를 추천하더라"는 최신 연구 데이터(한 B2B 조사에서 자기 홍보성 글이 얻은 AI 인용의 69%가 경쟁사를 추천하는 답변에 딸려 왔다)까지 인용한다. 실무 감각이 문장마다 배어 있다.
이 저장소는 특정 도구에 묶이지 않는다. 공용 표준 Agent Skills 스펙(agentskills.io)을 따르고, 흥미롭게도 CLAUDE.md가 실제 파일이 아니라 AGENTS.md를 가리키는 심볼릭 링크다. "에이전트 공용 문서 한 장을 Claude Code도 그대로 읽게" 만든 것 — 덕분에 npx skills add 한 줄이면 Claude Code엔 .claude/skills/로, 범용 에이전트엔 .agents/skills/로 알아서 설치된다.
스킬(무엇을·언제)만 있으면 에이전트는 조언만 한다. marketingskills는 여기에 실제 API를 호출하는 도구 64개(tools/clis/)를 딸려 보낸다 — GA4·Mixpanel·Ahrefs·Stripe·Klaviyo 같은 마케팅 툴을 의존성 0짜리 Node.js CLI로 감쌌다. "전환율을 분석해 줘"가 조언에서 끝나지 않고 실제 분석 데이터를 끌어오는 데까지 이어질 수 있다.
| 선택지 | 성격 · marketingskills와의 차이 |
|---|---|
| 그냥 프롬프트로 물어보기 | 매번 "너는 CRO 전문가야…"를 길게 붙여야 하고, 절차가 들쭉날쭉. marketingskills는 검증된 절차를 스킬로 고정해 매번 같은 품질을 낸다. |
단일 CLAUDE.md 규칙 파일(예: karpathy-skills) | 에이전트 전반 행동을 한 파일로 살짝 조정. 강력하지만 도메인 깊이는 얕다. marketingskills는 영역별로 47개 스킬 + 144개 참고문서로 깊이를 준다. |
| 개발자용 스킬 팩 (mattpocock/skills 등) | 대상이 엔지니어. marketingskills는 같은 스펙·같은 배포 방식이되 대상이 마케터·창업자. 스킬 저장소를 "도메인 지식 팩"으로 쓰는 좋은 예. |
| SaaS 마케팅 도구 (Jasper·Copy.ai 등) | 웹앱·구독형·폐쇄형. marketingskills는 오픈소스(MIT)이고 내 에이전트 안에서 돌며, 내 제품 컨텍스트(product-marketing)를 먼저 읽고 답한다. |
marketingskills를 깔아도 저절로 광고가 돌거나 매출이 오르진 않는다. 이건 에이전트가 마케팅 작업을 할 때 참고하는 전문가 절차서이지, 자동 실행 로봇이 아니다. 결과 품질은 여전히 당신이 준 제품·타깃 정보와 에이전트 모델의 역량에 달렸다. 또한 담긴 지식은 저자의 관점·특정 시점(대부분 미국 B2B SaaS 맥락)을 반영하므로, 한국 시장·규제·업종에 맞는 검증은 사용자의 몫이다.
가장 먼저 뒤집어야 할 통념 — 이건 빌드가 없는 저장소다. 총 418개 파일 중 296개가 마크다운(.md)이고, 컴파일할 소스도, node_modules도 없다. README도 "Skills are content-only, no build step"이라고 못 박는다. 그럼에도 배울 "기술"은 많다 — 스킬을 발견·배포·실행·유지시키는 네 개의 층이 겹겹이 쌓여 있기 때문이다.
| 파일 유형 | 개수 · 역할 |
|---|---|
| .md (마크다운) | 296개. 스킬 본문(SKILL.md 47) + 온디맨드 참고문서(references/ 144) + 툴 통합 가이드(integrations/ 93) + 최상위 문서들. 지식 그 자체. |
| .js (Node.js) | 65개. tools/clis/의 실행 CLI 64 + CI용 sync-skills.js 1. 전부 외부 의존성 0(Node 18+ 내장 fetch만 사용). |
| .json | 47개. 스킬별 평가 evals.json 45 + 배포 매니페스트 plugin.json·marketplace.json 2. |
| .yml / .sh / .html / .csv | GitHub Actions 워크플로 2 + 이슈·펀딩 템플릿 3, 검증 스크립트 2, ad-creative용 템플릿 1, 데이터 1. |
모든 스킬은 SKILL.md 하나로 정의된다. 파일 맨 위 --- 사이에 든 YAML 머리말(frontmatter)이 스킬의 신분증이다. 필수 필드는 딱 둘 — name과 description. 아래는 skills/cro/SKILL.md의 실제 머리말이다.
# skills/cro/SKILL.md — 실제 머리말 (요약 인용)
---
name: cro
description: "When the user wants to optimize, improve, or increase
conversions on any marketing page or form ... Also use when the user
says 'CRO,' 'conversion rate optimization,' 'this page isn't
converting,' ... For signup/registration flows, see signup.
For post-signup activation, see onboarding."
metadata:
version: 2.0.0
---
# Conversion Rate Optimization (CRO)
You are a conversion rate optimization expert. Your goal is to
analyze marketing pages and provide actionable recommendations ...
---로 감싼 메타데이터 블록이다. name은 1~64자, 소문자·숫자·하이픈만 쓰며 폴더명과 정확히 일치해야 한다(skills/cro/ → name: cro). description은 1~1024자로, 여기서 스킬의 운명이 갈린다 — 에이전트는 이 한 문장을 읽고 "지금 이 스킬을 쓸지" 판단하기 때문이다(§4-2). license·metadata는 선택.지식만으론 부족할 때를 위한 손발이다. tools/clis/에 GA4·Mixpanel·Ahrefs·Semrush·Klaviyo·Stripe·Apollo·Clay 등 마케팅 SaaS를 감싼 CLI 64개가 있다. 공통 규칙이 인상적이다 — 외부 패키지를 하나도 안 쓰고(Node 18+ 내장 fetch만), 인증은 환경변수로, 그리고 --dry-run으로 "실제로 호출하기 전에 어떤 요청이 나갈지" 미리 볼 수 있다.
# tools/clis/ga4.js — 헤드 (패턴 인용)
const ACCESS_TOKEN = process.env.GA4_ACCESS_TOKEN
if (!ACCESS_TOKEN) {
console.error(JSON.stringify({ error: 'GA4_ACCESS_TOKEN required' }))
process.exit(1)
}
async function api(method, baseUrl, path, body) {
if (args['dry-run']) # 실제 호출 대신 요청 미리보기만 반환
return { _dry_run: true, method, url: `${baseUrl}${path}` }
... # 내장 fetch로 실제 API 호출
}
더 무거운 OAuth 툴(HubSpot·Salesforce·Meta/LinkedIn 광고 등)은 tools/composio/가 단일 MCP 서버로 접근을 대신한다. 툴 전체 지도는 tools/REGISTRY.md가 "툴 × API/MCP/CLI/SDK 지원 여부" 매트릭스로 정리한다.
npm install 없이 파일만 있으면 바로 실행된다는 뜻이다. 공급망 공격 위험·설치 시간·버전 충돌이 사라진다. MCP(Model Context Protocol)는 에이전트가 외부 서비스에 연결되는 표준 규격으로, OAuth처럼 복잡한 인증이 필요한 툴을 composio가 MCP로 묶어 에이전트에 하나의 창구로 노출한다.이 스킬 뭉치를 Claude Code 플러그인으로도 설치할 수 있게 하는 두 파일이 .claude-plugin/에 있다. plugin.json은 "이 플러그인의 이름·버전·스킬 폴더 위치"를, marketplace.json은 "마켓플레이스에 어떻게 노출할지"를 선언한다.
# .claude-plugin/plugin.json (전문)
{
"name": "marketing-skills",
"description": "Marketing skills for AI agents ...",
"version": "2.8.10",
"author": { "name": "Corey Haines" },
"license": "MIT",
"skills": "./skills" # 스킬 폴더를 가리키기만 함
}
47개 스킬을 사람이 손으로 관리하면 곧 어긋난다. 그래서 CI가 자동 정리한다. sync-skills.yml은 skills/가 바뀌면 sync-skills.js를 돌려 marketplace.json·plugin.json·README의 스킬 표를 자동으로 다시 써서 커밋한다(README 안 <!-- SKILLS:START/END --> 구간이 생성물이다). validate-skill.yml과 validate-skills.sh는 머리말 유효성·"이름=폴더명" 일치·500줄 제한 등을 검사한다.
marketingskills = 마크다운(지식) + Node CLI(실행) + plugin/marketplace.json(배포) + GitHub Actions(자동 동기화·검증). 컴파일러는 없어도, 스펙·검증·CI로 47개를 일관되게 유지하는 "문서 엔지니어링"의 표본이다. 코드가 없다고 배울 게 없는 게 아니라, 오히려 "지식을 소프트웨어처럼 관리하는 법"을 배우게 된다.
이 저장소의 진짜 교재적 가치는 여기 있다. "스킬을 어떻게 조직하면 토큰은 아끼면서, 필요한 순간 정확히 펼쳐지고, 서로 안 밟게 할까?" 4개의 설계 원리로 나눠 본다.
가장 중요한 원리. 에이전트의 컨텍스트 창(한 번에 읽을 수 있는 분량)은 비싸고 유한하다. 47개 스킬 본문을 전부 항상 로드하면 파산이다. 그래서 정보를 세 겹으로 나눠, 필요한 만큼만 아래로 내려가며 펼친다.
"500줄 미만" 규칙은 실제로 지켜진다 — 가장 큰 seo-audit/SKILL.md도 497줄이다. 세부는 전부 references/로 밀어냈기 때문. 본문에서 참고문서를 부르는 방식은 이렇게 링크일 뿐이다.
# ai-seo/SKILL.md 본문 안 — references를 "링크로만" 호출
For a deep dive on how each platform selects sources,
see [references/platform-ranking-factors.md](...).
...see [references/citations-vs-recommendations.md] for the
visibility ladder (retrieved → cited → mentioned → recommended).
2층으로 내려갈지 말지는 순전히 1층 description이 결정한다. 그래서 이 저장소는 description을 세 요소로 정교하게 쓴다: ①무엇을 하는지 ②언제 쓰는지(사용자가 실제로 뱉을 법한 말) ③범위 경계(다른 스킬로 위임). cro의 description을 다시 뜯어보면:
| 요소 | cro description 속 실제 문장 |
|---|---|
| ① 무엇 | "optimize, improve, or increase conversions on any marketing page or form" |
| ② 트리거 문구 | 따옴표로 감싼 실제 발화들: "'this page isn't converting,' 'my landing page sucks,' 'form abandonment,' 'nobody's converting'" — 에이전트가 사용자 말과 매칭하기 쉽게. |
| ③ 경계·위임 | "For signup flows, see signup. For post-signup activation, see onboarding." — 남의 영역이면 넘긴다. |
description은 병원 안내 데스크의 "이런 증상이면 이 과로 보내세요" 매뉴얼과 같다. 잘 쓰면 환자(요청)가 정확한 과(스킬)로 가고, 못 쓰면 엉뚱한 곳을 헤맨다. marketingskills가 트리거 문구를 잔뜩 넣고 "이건 옆 과 일"이라고 명시하는 이유가 이것 — 스킬의 성능은 본문보다 description에서 먼저 결정된다.
47개가 제각각 놀면 답이 어긋난다. 그래서 product-marketing 스킬이 뿌리 역할을 한다 — "모든 스킬이 작업 전에 먼저 읽는" 스킬로, 제품·타깃·포지셔닝 컨텍스트(.agents/product-marketing.md)를 파악한다. 그 위에서 클러스터끼리 서로를 참조한다.
예: customer-research가 뽑은 고객 언어는 copywriting·cro·competitors로 흘러가고, copywriting은 이메일이면 emails, 팝업이면 popups, 오퍼면 offers로 넘긴다. "한 스킬이 다 하려 들지 않고 명시적으로 핸드오프"하는 게 오케스트레이션의 핵심이다.
스킬이 제대로 작동하는지 어떻게 보장할까? 47개 중 45개에 evals/evals.json이 있다. 각 케이스는 프롬프트 → 기대 동작 → 어설션(검증 항목) 배열 구조다. 놀라운 건 "이 스킬이 다른 스킬로 제대로 위임하는지"까지 테스트한다는 점이다.
# skills/cro/evals/evals.json — 케이스 하나 (실제 인용)
{
"id": 6,
"prompt": "Our signup form has too many fields and people
keep abandoning it halfway through. Can you help?",
"expected_output": "Should recognize this is about signup form
optimization ... defer to or cross-reference the signup skill",
"assertions": [
"Recognizes this as signup flow optimization",
"References or defers to signup skill",
"Does not attempt full cro analysis on a form" # ← 월권 금지!
]
}
즉 이 저장소는 "cro가 signup 요청을 가로채면 실패"로 본다. 스킬의 경계 준수(월권 방지)를 자동 테스트로 지키는 것 — 다중 스킬 시스템을 건강하게 유지하는 정석이다.
① AGENTS.md는 툴이 "51개"라고 적었지만 tools/clis/엔 실제 64개가 있다. ② marketing-ideas는 본문 "139"·README "140"으로 다르다. ③ LICENSE 연도는 2025인데 최신 커밋·스킬 갱신은 2026-07. ④ 스펙엔 스킬 내부 scripts/ 폴더가 있으나 이 저장소 스킬엔 0개(실행 코드는 전부 최상위 tools/에 모음). "문서에 적혔다"고 "그렇게 동작한다"가 아니다 — 스킬 저장소도 소스(폴더 실물)를 봐야 한다는 교훈.
폴더 구조 자체가 이 저장소의 설계 철학을 보여 준다 — 지식은 skills/, 실행은 tools/, 배포는 .claude-plugin/, 운영은 .github/로 관심사가 분리돼 있다.
| 경로 | 역할 |
|---|---|
| skills/<name>/ | 스킬 한 개 = 폴더 한 개. 폴더명이 곧 name. 안에 SKILL.md(필수)·evals/·references/. |
| tools/clis/ (64) | 스킬을 실제 API 호출로 잇는 zero-dep CLI. 지식(무엇)과 실행(어떻게)의 분리를 물리적으로 구현. |
| .claude-plugin/ | 같은 스킬 뭉치를 Claude Code 플러그인으로도 배포하는 매니페스트 2종. |
| AGENTS.md (=CLAUDE.md) | 네이밍·버저닝·스타일·PR 체크리스트가 담긴 운영 헌법. 심볼릭 링크로 Claude Code도 같은 파일을 읽음. |
| VERSIONS.md | 전 스킬 버전·날짜 표. 에이전트가 세션당 1회 이걸 받아 로컬 버전과 비교 → 업데이트 알림(self-update)의 소스. |
| .github/scripts/sync-skills.js | 스킬이 바뀌면 marketplace.json·plugin.json·README 표를 자동으로 다시 쓰는 동기화 봇. |
CLAUDE.md가 진짜 파일이 아니라 AGENTS.md를 가리키는 바로가기(심볼릭 링크)다. 왜? Claude Code는 CLAUDE.md를, 다른 에이전트는 AGENTS.md를 관례적으로 읽는데, 같은 내용을 두 벌 관리하면 반드시 어긋난다. 링크 하나로 "단일 원본, 두 이름"을 만든 것 — 크로스 에이전트 저장소를 유지하는 영리한 디테일이다.스킬을 만들 때 초보는 본문부터 쓴다. 이 저장소는 description부터 쓴다. "사용자가 어떤 말로 이 스킬을 부를까"를 트리거 문구로 나열하고, "내가 안 할 일은 어느 스킬로 넘길까"를 명시한다. 스킬은 펼쳐지지 않으면 아무 소용이 없으므로, 발견성(description)이 1순위 설계 대상이다.
"500줄 미만 본문 + references/ 분리"는 단순한 스타일이 아니라 컨텍스트 비용을 통제하는 아키텍처다. 긴 지식은 무조건 참고문서로 빼고, 본문엔 "언제 그 문서를 열지"만 남긴다. 자기 프롬프트·스킬·문서를 쓸 때 그대로 적용할 수 있는 습관이다.
product-marketing 루트 컨텍스트 + 클러스터 간 명시적 위임은, 여러 스킬(또는 서브에이전트)을 다룰 때의 역할 계약 패턴이다. "각자 자기 일만, 남의 일은 넘긴다"를 evals로 강제하는 것까지 세트로 배운다.
skills/(무엇을·언제)와 tools/clis/(실제 API 호출)를 분리한 구조는 "판단은 지식이, 부작용은 도구가"라는 좋은 경계다. zero-dependency CLI + --dry-run + 환경변수 인증은 그 자체로 "안전한 에이전트 툴 만들기"의 모범 사례다.
2계층 버저닝(저장소 릴리스 vs 스킬별 metadata.version), CI 자동 동기화, VERSIONS.md 기반 self-update, 검증 스크립트 — 마크다운 더미도 CI·스펙·테스트로 관리하면 소프트웨어가 된다는 걸 보여 준다.
당신이 법률·회계·의료·제조 무엇을 하든, 이 저장소의 뼈대(skills/<name>/SKILL.md + references/ + evals/ + plugin.json + CI)를 그대로 복제해 "내 분야 전문가 에이전트"를 만들 수 있다. 마케팅은 예시일 뿐, 진짜 상품은 이 구조다.
| 구분 | 요구사항 |
|---|---|
| 스킬 사용 (핵심) | Agent Skills를 지원하는 에이전트 하나 — Claude Code, OpenAI Codex, Cursor, Windsurf 등. 스킬은 마크다운이라 OS·하드웨어 제약이 없다. |
| 설치 CLI | npx skills add ...를 쓰려면 Node.js와 npx. (또는 그냥 git clone 후 폴더 복사) |
| tools/clis 실행 | Node.js 18+(내장 fetch 사용). 외부 패키지 설치 불필요. 각 툴의 API 키를 환경변수로 제공(GA4_ACCESS_TOKEN 등). |
| composio 툴 | OAuth 기반 툴(HubSpot·Salesforce 등)은 Composio 계정/연결이 필요. |
| 기여·검증 | validate-skills.sh 실행에 bash. 스킬은 머리말 규격 + 500줄 제한 + 이름=폴더명을 통과해야 함. |
npx skills add coreyhaines31/marketingskills — Claude Code면 .claude/skills/, 그 외엔 .agents/skills/로 알아서 설치. ② Claude Code 플러그인: /plugin marketplace add coreyhaines31/marketingskills 후 /plugin install marketing-skills. 이후 "이 랜딩페이지 전환율 올려 줘"처럼 자연어로 부르거나 /cro·/seo-audit로 직접 호출한다.skills/cro/SKILL.md를 열어 ①머리말(name·description) ②본문 프레임워크 ③본문 속 references/... 링크를 각각 짚어 본다. 그다음 references/ 폴더를 열어 "본문에서 빠진 세부가 여기 있구나"를 확인한다. 한 스킬이 왜 500줄을 안 넘는지 몸으로 이해하는 과제.
cro·ai-seo·copywriting 세 스킬의 description만 뽑아 표로 만들고, 각각에서 ①무엇 ②트리거 문구 ③위임 경계 세 요소를 형광펜으로 표시해 본다. 그 뒤 일부러 "이 스킬은 마케팅을 도와줍니다"처럼 나쁜 description을 써 보고, 왜 에이전트가 못 고를지 설명해 본다.
skills/my-skill/SKILL.md를 만들어 머리말(name: my-skill + 트리거가 풍부한 description)과 짧은 본문을 쓴다. Claude Code의 .claude/skills/에 넣고 실제로 발동되는지 시험한다. validate-skills.sh로 이름=폴더명·머리말 규격·500줄 검증을 통과시켜 본다.
과제 3의 스킬에 evals/evals.json을 붙인다. cro의 케이스 6(폼 질문을 signup으로 넘기는지)을 본떠, "내 스킬이 넘겨야 할 요청"을 만들고 assertions에 "~하지 않는다(월권 금지)" 항목을 넣어 본다. 스킬 경계를 테스트로 고정하는 감각을 익힌다.
이 저장소를 포크해, 마케팅 대신 당신의 전문 분야(예: 계약서 검토, 재무 분석) 스킬 3~5개로 갈아끼운다. plugin.json·marketplace.json을 수정하고, product-marketing 자리에 "내 도메인 루트 컨텍스트" 스킬을 만들어 다른 스킬이 먼저 읽게 한다. §6 "진짜 상품은 구조"를 직접 재현하는 캡스톤 과제.
| 주차 | 목표 · 학습 내용 |
|---|---|
| 1주차 Agent Skills 스펙 | SKILL.md 구조, YAML 머리말(name·description·metadata), 폴더=스킬 규칙, .claude/skills/ vs .agents/skills/. agentskills.io 스펙 정독. → 과제 1·3. |
| 2주차 발견성 & 토큰 경제 | description을 라우터로 쓰는 법(트리거 문구·위임 경계), Progressive Disclosure(본문 500줄 + references/ 분리), 컨텍스트 창 비용 개념. → 과제 2. |
| 3주차 오케스트레이션 & 평가 | 루트 컨텍스트(product-marketing) 패턴, 스킬 간 위임, evals.json 어설션(월권 방지 포함), 다중 스킬 시스템의 역할 계약. → 과제 4. |
| 4주차 배포·운영·실행 연결 | 플러그인 매니페스트(plugin.json·marketplace.json), CI 자동 동기화(sync-skills.js), 2계층 버저닝·self-update, zero-dep CLI + MCP로 실행 잇기. → 과제 5. |
이 저장소는 "쓰기는 한 줄, 이해는 여러 겹"이다. 47개 스킬을 다 읽으려 하지 말고, cro 하나만 골라 "머리말 → 본문 → references → evals → (필요하면) tools/clis"까지 한 세로줄을 끝까지 따라가 보라. 그 한 스킬의 생애주기를 이해하면 나머지 46개가 전부 같은 틀임을 알게 된다. 그다음 AGENTS.md·CI로 "저장소를 어떻게 운영하는가"로 시야를 넓히는 게 정석이다.
| 용어 | 뜻 |
|---|---|
| marketingskills | Corey Haines가 만든 마케팅 Agent Skill 47개 팩. CRO·카피·SEO·광고·그로스. MIT, v2.8.10. |
| Agent Skill | AI 에이전트에게 특정 작업 절차를 알려 주는 재사용 지시 묶음. 폴더 + SKILL.md가 기본 단위. |
| SKILL.md | 스킬의 정의 파일. YAML 머리말(무엇·언제) + 마크다운 본문(어떻게). |
| frontmatter | 파일 맨 위 ---로 감싼 메타데이터. 필수 필드는 name·description. |
| description | 스킬 발견성의 핵심. 무엇+트리거 문구+위임 경계를 담아 에이전트가 "쓸지" 판단. |
| Progressive Disclosure | 정보를 3계층(머리말→본문 500줄→references)으로 필요할 때만 펼치는 토큰 절약 설계. |
| references/ | 본문이 링크로만 가리키는 온디맨드 상세 문서(전체 144개). |
| evals.json | 스킬 품질 테스트(프롬프트→기대→어설션). 월권/위임까지 검증. |
| 오케스트레이션 | 여러 스킬을 조율. product-marketing 루트 + 상호 참조·위임. |
| plugin.json / marketplace.json | Claude Code 플러그인 배포 매니페스트(이름·버전·스킬 경로). |
| AGENTS.md / CLAUDE.md | 에이전트·기여자용 규칙서. 여기선 CLAUDE.md가 AGENTS.md 심볼릭 링크. |
| zero-dependency | 외부 패키지 없이 실행. tools/clis/의 Node 18+ CLI 64개가 이 방식. |
| MCP | Model Context Protocol. 에이전트를 외부 서비스에 잇는 표준. composio가 OAuth 툴을 MCP로 묶음. |
| --dry-run | 실제 호출 전 "어떤 요청이 나갈지"만 미리 보는 안전 모드. |
| self-update | 에이전트가 VERSIONS.md를 받아 로컬 버전과 비교해 업데이트를 알리는 메커니즘. |
| MIT 라이선스 | 가장 자유로운 오픈소스 라이선스 중 하나. 자유롭게 사용·수정·배포(저작권 표시만). |
| 구분 | 링크 |
|---|---|
| GitHub | github.com/coreyhaines31/marketingskills — 이 저장소(스킬·툴·매니페스트·문서) |
| 저자 | corey.co — Corey Haines (Swipe Files · Conversion Factory) |
| Agent Skills 스펙 | agentskills.io — SKILL.md·머리말·설치 규격 표준 |
| Anthropic 스킬 문서 | docs.claude.com — Claude Code Skills / 플러그인 / 마켓플레이스 가이드 |
| 설치 CLI | npx skills add coreyhaines31/marketingskills — 범용 설치(권장) |
| 플러그인 설치 | /plugin marketplace add coreyhaines31/marketingskills → /plugin install marketing-skills |
| MCP | modelcontextprotocol.io — 에이전트-외부서비스 연결 표준(composio가 활용) |