콘텐츠 음성 설정
이 스킬은 선택한 플랫폼에서 Claude가 브랜드 음성으로 콘텐츠를 작성하도록 구성합니다. 작은 CLAUDE.md 포인터와 선택한 각 플랫폼별로 .claude/rules/content-voice-<platform>.md 파일 하나를 생성합니다. 퍼블리싱 도구, 분석, 미디어 파이프라인 또는 스케줄링은 구성하지 않습니다. 이는 의도적인 범위 제한입니다.
핸드오프 컨텍스트: skills/_shared/consume-handoff.md를 읽고 핸드오프 블록(있는 경우)과 함께 실행하세요. 헬퍼는 detected_language, existing_claude_md, inferred_use_case, repo_signals, graphify_candidate 로컬 변수를 보장합니다. 사용자 대면 텍스트에는 detected_language를 사용하고, 생성된 파일 내용은 영어로 유지합니다.
기존 CLAUDE.md: existing_claude_md: true인 경우 덮어쓰지 마세요. 파일 끝에 새 구분 섹션을 추가합니다.
<!-- onboarding-agent:start setup=content-voice skill=content-voice-setup section=claude-md -->
## Claude 온보딩 에이전트 — 콘텐츠 음성 설정
...생성된 내용...
<!-- onboarding-agent:end -->
이전 실행에서 구분 블록이 이미 존재하는 경우, 마커 사이의 내용만 교체하고 나머지는 그대로 둡니다. 생성된 .gitignore 항목은 # onboarding-agent: content-voice — start / — end 마커로 감싸서 /upgrade-setup이 비파괴적으로 업데이트할 수 있도록 합니다.
지원 파일
다음 파일은 해당 단계에서 요청 시에만 읽고, 미리 읽지 마세요.
skills/_shared/consume-handoff.md— 오케스트레이터 핸드오프 파싱 + 인라인 폴백 (준비 단계, 1단계 전)skills/_shared/offer-superpowers.md— 표준 Superpowers 옵트인 (1단계)
1단계: 종속성 설치
skills/_shared/offer-superpowers.md를 읽고 skill_slug: content-voice-setup, mandatory: false, capability_line: "널리 사용되는 무료 Claude Code 스킬 라이브러리입니다. 브레인스토밍 스킬은 특정 콘텐츠에 대한 음성을 결정하기 전에 다양한 접근 방식을 탐색하는 데 유용합니다."와 함께 실행하세요. 헬퍼는 사용자에게 질문하고, yes 시 skills/_shared/installation-protocol.md에 위임하며, superpowers_installed, superpowers_scope, superpowers_method를 설정합니다.
2단계: 컨텍스트 질문
하나씩 질문합니다.
-
"어떤 플랫폼에서 음성 중심 콘텐츠를 만드시나요? (다중 선택 — 쉼표로 구분된 문자, 최소 하나 선택) A) YouTube (장문 비디오 / 스크립트) B) 숏폼 비디오 (Instagram Reels / TikTok / Shorts) C) 뉴스레터 / 블로그 (장문 글) D) 팟캐스트 (대화형 오디오)"
답변을 문자 목록으로 파싱합니다. 최소 하나 선택 필수 — 빈 입력 시 한 번 재질문합니다.
selected_platforms에 저장합니다. 슬러그로 매핑:- A →
youtube - B →
shortform - C →
newsletter - D →
podcast
- A →
-
"브랜드 음성을 어떻게 설명하시겠습니까? 구체적일수록 좋습니다 — 더 자세할수록 Claude가 스타일을 더 잘 매칭합니다. 예: '똑똑한 친구에게 설명하는 것 같은 교육적이면서 캐주얼한 스타일', '핀테크 전문가 같은 전문적 리더십', '재미있고 독특한 기술 코멘터리', '따뜻하고 개인적인 웰니스 콘텐츠'"
답변을 그대로
brand_voice에 저장합니다. 플랫폼별 규칙 파일은 이를 헤더에 삽입합니다. -
"타겟 청중은 누구인가요? (예: 'AI 도구에 관심 있는 25-40세 개발자', '기술 배경이 없는 소상공인', '빠른 운동을 원하는 피트니스 애호가')"
target_audience에 저장합니다.
3단계: 플랫폼별 음성 규칙 생성
selected_platforms의 각 슬러그에 대해 .claude/rules/content-voice-<slug>.md 규칙 파일을 작성합니다. 파일이 이미 존재하면 작성하지 않고 Skipped .claude/rules/content-voice-<slug>.md (already exists)를 로그합니다. — 사용자 편집을 덮어쓰지 마세요.
각 규칙 파일은 자체 포함(≤ 40줄)이며 헤더에 brand_voice와 target_audience를 대입합니다. 아래 템플릿을 사용하고, [brand_voice]와 [target_audience]를 수집한 답변으로 교체하세요.
content-voice-youtube.md
# 콘텐츠 음성 — YouTube (장문 비디오)
음성 프로필: [brand_voice]
타겟 청중: [target_audience]
## 형식 규칙
- 모든 스크립트는 처음 30초 후크로 시작: 시청자가 끝까지 얻을 구체적인 보상을 약속합니다.
- 구조: 후크 → 설정 (문제/질문) → 보상 (답변, 이야기, 데모) → CTA.
- CTA는 단 하나의 행동을 명명합니다. "좋아요, 구독, 댓글, 가입" 목록을 연결하지 마세요.
- 문장은 소리 내어 읽기 쉽게 유지 — 음성 라인당 20단어 이하를 기본으로 합니다.
## 어조 규칙
- 모든 초안에서 위 음성 프로필을 일치시킵니다. 초안이 일반적인 AI 코멘터리처럼 읽힌다면 [brand_voice]처럼 들릴 때까지 첫 줄을 다시 작성하세요.
- 타겟 청중에게 직접 말을 겁니다. 그들의 기본 지식을 가정하고, 이미 알고 있는 내용을 설명하지 마세요.
## 하지 말아야 할 것
- 도입부가 보상하지 못하는 제목 미끼를 작성하지 마세요 — 후크는 보상에 대한 진실된 설정이어야 합니다.
content-voice-shortform.md
# 콘텐츠 음성 — 숏폼 비디오 (Reels / TikTok / Shorts)
음성 프로필: [brand_voice]
타겟 청중: [target_audience]
## 형식 규칙
- 첫 줄이 후크입니다. 스크롤 중단은 처음 2초 안에 발생합니다.
- 게시물당 하나의 아이디어만 담습니다. 두 번째 아이디어가 중요하면 별도의 게시물로 만듭니다.
- 질문, CTA 또는 구체적인 교훈으로 끝내고, 흐지부지 끝나지 않게 합니다.
- 총 단어 수를 간결하게 유지합니다 (30초 컷 기준 약 30–60 음성 단어).
## 어조 규칙
- 음성 프로필이 [brand_voice]와 정확히 일치합니다 — 숏폼은 음성을 증폭시키므로 일반적인 어조는 기본 실패 모드입니다.
- [target_audience]를 겨냥하고, 더 넓은 청중을 위해 부드럽게 하지 마세요.
## 하지 말아야 할 것
- 후크를 첫 줄 이후로 미루지 마세요. "그래서, 오늘은 ...에 대해 이야기해볼게요" 같은 머뭇거림으로 시작하지 마세요.
content-voice-newsletter.md
# 콘텐츠 음성 — 뉴스레터 / 블로그 (장문 글)
음성 프로필: [brand_voice]
타겟 청중: [target_audience]
## 형식 규칙
- 제목은 구체적이어야 하며, 교묘하지 않아야 합니다 — 독자가 답을 얻는 교훈이나 질문을 명명하세요.
- 오프너는 개인적이거나 이야기 기반으로 (1-3문장), 그다음 하나의 핵심 아이디어, 명확한 교훈, 간단한 CTA 순입니다.
- 섹션 구분은 허용되지만 필수는 아닙니다 — 목록형 글보다 하나의 탄탄한 논증을 선호하세요.
- 독자가 동료에게 전달할 수 있는 한 문장으로 마무리하세요.
## 어조 규칙
- 전체적으로 음성 프로필이 [brand_voice]와 일치해야 합니다 — 어떤 섹션도 다른 작성자가 쓴 것처럼 느껴져서는 안 됩니다.
- [target_audience]에게 역할 레이블이 아닌 실제 상황으로 말을 겁니다.
## 하지 말아야 할 것
- 독자가 행동하거나 기억할 수 있는 구체적인 교훈 없이 발행물을 보내지 마세요.
content-voice-podcast.md
# 콘텐츠 음성 — 팟캐스트 (대화형 오디오)
음성 프로필: [brand_voice]
타겟 청중: [target_audience]
## 형식 규칙
- 후크로 콜드 오픈 — 장면, 질문 또는 에피소드의 구체적인 순간으로 시작하세요. 인트로 음악은 그다음에 나옵니다.
- 전환은 말로 표현하고, 점프 컷하지 마세요: 전환을 이름 지으세요 ("잠시 후에 다시 돌아오죠 — 먼저, …").
- 질문을 미리 준비하되 후속 질문을 위한 여유를 두세요; 미리 작성된 스크립트는 미리 작성된 스크립트처럼 읽힙니다.
- 게스트의 CTA(있는 경우)로 끝내고, 그다음 호스트의 단일 CTA로 마무리하세요.
## 어조 규칙
- 음성 프로필 [brand_voice]는 호스트 라인에 적용되며, 게스트를 강제로 맞추기보다는 게스트의 에너지에 맞추세요.
- 전문 용어는 [target_audience] 수준으로 유지하고, 처음 사용 시 설명하세요.
## 하지 말아야 할 것
- 강의하지 마세요 — 대화체를 유지하세요. 세그먼트가 독백처럼 읽히면 자르거나 질문 형식으로 바꾸세요.
실제로 작성된 파일 목록(기존 파일로 건너뛴 것은 제외)을 완료 요약을 위해 emitted_voice_files로 수집합니다.
4단계: 아티팩트 생성
CLAUDE.md
# Claude 지침 — 콘텐츠 음성
## 브랜드
플랫폼: [selected_platforms에서 쉼표로 구분]
브랜드 음성: [brand_voice]
타겟 청중: [target_audience]
## 범위
이 설정은 음성만 다룹니다 — 퍼블리싱, 분석 또는 미디어 파이프라인은 포함하지 않습니다. 더 긴 콘텐츠 워크플로우를 위해서는 추가 스킬이나 도구를 계층화하세요.
## 음성 규칙 (플랫폼별)
[selected_platforms의 각 슬러그에 대해 규칙 파일을 가리키는 하나의 글머리 기호 생성:]
- YouTube: `.claude/rules/content-voice-youtube.md`
- 숏폼 비디오: `.claude/rules/content-voice-shortform.md`
- 뉴스레터 / 블로그: `.claude/rules/content-voice-newsletter.md`
- 팟캐스트: `.claude/rules/content-voice-podcast.md`
## 가이드라인
- 항상 위에서 정의된 브랜드 음성으로 작성하세요 — 절대 일반적이거나 전형적인 AI처럼 들리지 않게 합니다.
- 초안을 작성하기 전에 대상 플랫폼의 관련 `.claude/rules/content-voice-<platform>.md` 파일을 참조하세요.
- 크로스 플랫폼 적응을 요청받으면 각 플랫폼의 규칙 파일을 개별적으로 적용하고, 형식 간에 복사-붙여넣기하지 마세요.
[superpowers_installed가 true인 경우에만 포함]
## Superpowers
Superpowers가 설치되었습니다. 아이디에이션 세션 및 콘텐츠 시리즈 계획 시 `superpowers:brainstorming`을 사용하여 방향을 결정하기 전에 다양한 각도를 탐색하세요.
.gitignore
# 대용량 미디어 파일
*.mp4
*.mov
*.avi
*.psd
*.ai
*.sketch
*.fig
# OS
.DS_Store
Thumbs.db
# Claude 로컬 설정
.claude/settings.local.json
5단계: 업그레이드 메타데이터 작성
setup_slug: content-voice, skill_slug: content-voice-setup을 설정합니다. 플러그인 자체의 plugin.json에서 plugin_version을 확인합니다. 그런 다음 skills/_shared/write-meta.md를 따라 ./.claude/onboarding-meta.json을 생성하거나 병합합니다.
6단계: 앵커 섹션 렌더링
skills/_shared/anchor-mapping.md를 읽습니다. setup_type: content-voice에 대한 행을 찾습니다. 해당 행의 각 앵커 슬러그에 대해:
skills/_shared/render-anchor-section.md를 다음 인자로 호출:setup_type: content-voiceskill_slug: content-voice-setupanchor_slug: <슬러그>target_file: ./CLAUDE.mdfallback_content: <해당 슬러그에 대한 skills/anchors/SKILL.md의 내장 폴백>
- 이전에 이 스킬에서
./AGENTS.md파일이 생성된 경우,target_file: ./AGENTS.md로 호출을 반복합니다.
단일 render-anchor-section.md 호출이 placeholder를 반환해도 실패하지 마세요. 완료 요약을 위해 렌더링된 / 플레이스홀더 슬러그를 수집합니다.
모든 호출에 대해 render_freshness도 캡처합니다. network나 cache 이외의 값(즉, fallback 또는 embedded)인 경우 (anchor_slug, render_freshness) 쌍을 anchor_freshness_notes에 기록합니다. 완료 요약의 Anchor freshness 라인이 이 목록을 사용합니다.
7단계: 완료 요약
✓ 콘텐츠 음성 설정 완료!
범위: 브랜드 음성 + 플랫폼별 어조 규칙. 퍼블리싱, 분석 및
미디어 파이프라인은 다루지 않음 — 이 스킬은 의도적으로 좁은 범위입니다.
생성된 파일:
CLAUDE.md — 브랜드, 범위, 음성 규칙 포인터
.claude/rules/content-voice-<slug>.md — 선택한 플랫폼별 파일 [emitted_voice_files 나열; 건너뛴 것은 "(이미 존재 — 변경하지 않음)"으로 표시]
.gitignore — 대용량 미디어 파일 규칙
.claude/onboarding-meta.json — /upgrade-setup용 설정 마커
외부 스킬:
[✓ Superpowers가 superpowers_method(superpowers_scope)로 설치됨]
[건너뜀 — 나중에 설치: /plugin install superpowers@claude-plugins-official]
[⚠ Superpowers 설치 실패 — 수동 설치: https://github.com/obra/superpowers]
앵커 신선도:
[anchor_freshness_notes가 비어 있으면 전체 블록 생략; 그렇지 않으면 항목당 한 줄:
앵커 <anchor_slug>이(가) <render_freshness>에서 제공됨 — 새로고침하려면 /anchors 실행 고려.]
다음 단계:
새 Claude 세션을 시작하고 말하세요: "[주제]에 대한 [YouTube 스크립트 | 숏폼 후크 | 뉴스레터 발행물 | 팟캐스트 콜드 오픈]을(를) 내 브랜드 음성으로 작성해줘"
또는: "이 블로그 게시물을 내 숏폼 음성 규칙에 따라 Instagram Reels에 맞게 변환해줘"
- 언제든지 `/anchors`를 실행하여 앵커에서 파생된 섹션을 새로고침하세요. 오프라인 모드로 인해 어떤 섹션이 플레이스홀더로 렌더링된 경우, 온라인 상태가 되면 `/anchors`를 다시 실행하세요.