Communitygithub.com

linwanjiu/short-video-copy

一句话选题 → 一套可以直接开拍的短视频文案。默认只输出文案与发布文案,分镜表按需再给。按平台/品类/调性预设组合,带计时模型与标点规范。当用户说"写个短视频文案/口播稿/脚本"时使用。

short-video-copy란 무엇인가요?

이 스킬은 AI 에이전트(예: Claude Code, Cursor)가 사용자의 한 문장 주제 선정을 바탕으로 완전한 쇼트 비디오 스크립트(구어 대본, 타임라인, 게시용 카피)를 생성할 수 있게 해주는 '엔진 + 프리셋' 구조입니다. 플랫폼(抖音/샤오홍슈/위챗 비디오/B站/일반), 카테고리(지식/스토리/드라마), 톤(날카로움/친근함/유머/전문적), 길이(초 단위), 밀도, 후크 유형 등 사전 정의된 프리셋을 조합하여 일관된 출력을 보장하며, 사용자 피드백에 따라 동적으로 조정할 수 있습니다. 주요 특징으로는 타임라인 자동 계산(정확도 0.5초 이내), 엄격한 문장 부호 규칙(단일 문장 최대 15자, 2개의 쉼표 이하), 그리고 분할표(스토리보드)와 게시용 카피를 기본적으로 제공하지만, `SKILL.md`에 정의된 워크플로우를 따르며 과도한 JSON 또는 장면(scene) 데이터를 출력하지 않습니다. 사용자 설정은 `profile.md`에 저장되며, 프리셋에 없는 값은 유사한 프리셋을 선택하고 사용자에게 추가할지 묻습니다. 또한, 사용자가 참조용 비디오 링크를 제공할 경우 분석 모드(`references/analysis.md`)로 전환하여 후크 유형, 구조 분할, 스타일 태그 등을 분석하고 3가지 재작성 방향을 제안합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/linwanjiu/short-video-copy/tree/HEAD/skills/short-video-copy

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

쇼트 비디오 카피(Short Video Copy)

한 문장 주제 → 바로 촬영할 수 있는 카피.

이 스킬은 엔진 + 프리셋 구조입니다. 방법론은 여기에, 스타일은 presets/ 안에, 현재 선택 사항은 profile.md에 있습니다.


0. 먼저 두 가지를 읽으세요

  1. profile.md — 현재 선택 사항 (platform / category / tone / duration / density / person / cta / banned)
  2. profile에 따라 해당 프리셋 파일에서 선택된 섹션만 읽으세요. 전체 파일을 읽지 마세요.
profile 필드읽을 파일읽을 섹션
platformpresets/platforms.md동일한 이름의 소절 (抖音/샤오홍슈/위챗 비디오/B站/일반)
categorypresets/categories.md동일한 이름의 소절
tonepresets/tones.md동일한 이름의 소절
후크(hook)presets/hooks.md주제 유형에 따라 1–2개 선택

profile의 값은 이 파일의 모든 기본값보다 우선합니다. 사용자가 즉시 변경하는 경우, 그 순간의 값을 기준으로 합니다.


1. 기본流程: 먼저 결과물 출력, 그 다음 파라미터 수집

사용자가 한 문장을 주면, 먼저 질문을 하지 마세요. 현재 profile (없으면: 일반 / 명확하고 직설적인 / 30초) 을 사용하여 완전한 버전을 먼저 보여주고, 그 다음에 질문하세요.

첫 번째 단계: 일반 버전 출력

4종 세트 완비 (구어 대본 + 스토리보드 + 게시용 카피), 시간은 presets/timing.md로 계산. 시작 부분에 한 줄을 추가하세요: 「이것은 일반 버전이며, 플랫폼 특화 버전이 아닙니다.」 — 그렇지 않으면 사용자가 이게 최종 버전이라고 생각할 수 있습니다.

두 번째 단계: 고정 질문 4가지

다음 4가지만 질문하세요. 순서대로, 각각 옵션을 제시하세요. 추가 질문은 하지 마세요.

1. 플랫폼: 抖音 / 샤오홍슈 / 위챗 비디오 / B站 / 아니면 일반 버전을 사용할까요? —— 리듬, 말하는 속도, CTA 결정

2. 톤: 날카로운 / 친근한 / 유머 있는 / 절제된 전문적인 / 명확하고 직설적인? —— 문장 길이, 동사, 관객과의 거리 결정

3. 구조: 구어 3단 / 교육적 (결론 먼저 + 메커니즘) / 스토리 (경험 + 요약) / 드라마 (갈등 + 반전)? —— 단락 순서와 비중 결정

4. 반전과 후크: 추가 안 함 / 중간에 상식에 반하는 전환 추가 / 끝에 반전 남김 / 이중 후크 (처음 3초 후크 + 8초 유지)? —— 시청 완료율 설계 결정

질문 후에 한 줄을 추가하세요: 「1/2/3과 같은 번호로 답하거나, 한 문장으로 말씀해 주세요. 그에 맞춰 다시 작성하겠습니다.」

세 번째 단계: 다시 작성

  • 영향을 받는 단락만 수정하고, 사용자가 승인한 부분은 유지합니다.
  • 시작 부분에 한 줄로 무엇을 변경했는지 설명: 플랫폼→抖音, 톤→날카로운, 길이 30→15초, 중간에 상식에 반하는 전환 추가
  • 다시 작성한 후에는 반드시 시간을 재계산하고, 이전 표를 사용하지 마세요.

네 번째 단계: 저장할지 여부

사용자가 "앞으로도 이렇게 해", "기억해", "기본값으로 변경해"라고 말하면 → §5에 따라 profile.md를 작성하고 보고합니다.

예외

상황처리
사용자가 처음부터 플랫폼/톤을 명확히 말한 경우질문 생략, 바로 맞춤 버전 출력
사용자가 "일반 버전 먼저 보여줘"라고 말한 경우일반 버전만 출력하고 질문 안 함
사용자가 전체 내용 말고 후크만 원하는 경우5개의 후보 후크만 제공하고 선택하게 함

1b. 한 문장에 부족한 정보가 있을 때

부족한 정보처리 방법
대상 시청자주제에서 가장 가능성 높은 사람들을 역추론하고, 가정을 명확히 명시
원하는 행동profile의 cta 사용
길이profile의 duration 사용
플랫폼profile의 platform 사용. 없으면 "일반"으로 처리

일반 버전 단계에서는 가장 중요한 가정 하나만 보충하고, 연속적으로 질문하지 마세요. 질문은 두 번째 단계의 고정 질문 4가지에 넣으세요.


2. 조립: 4개의 프리셋을 겹치는 방법

순서는 바꿀 수 없습니다. 각 계층은 다른 문제를 해결합니다:

platform  → 리듬, 말하는 속도, CTA 결정 (외형)
category  → 단락 순서와 비중 결정 (뼈대)
tone      → 문장 길이, 동사, 거리 결정 (피부)
hooks     → 처음 3초 결정 (문)

충돌 시 우선순위: platform > category > tone. 예: 샤오홍슈는 "느리게" 해야 하지만, 제품 판매는 "빠르게" 해야 하는 경우, 중간값을 취하고 마지막에 선택과 타협에 대해 설명합니다.

일반적인 조합 (사용자에게 직접 추천 가능)

목표조합
抖音 인기 콘텐츠 느낌抖音 + 지식 교육 + 날카로운 + 상식에 반하는 후크
샤오홍슈 추천샤오홍슈 + 제품 판매 + 친근한 +痛点(痛点) 장면
위챗 비디오 신뢰감위챗 비디오 + 개인 IP + 절제된 전문적인 + 스토리 현장감
B站 하드코어B站 + 지식 교육 + 절제된 전문적인 + 구체적인 숫자
초보자에게 가장 안정적일반 + 구어 + 명확하고 직설적인 + 상식에 반하는

3. 출력: 기본적으로 카피만 제공

처음부터 모든 것을 쌓지 마세요. 기본적으로 두 가지만 출력합니다: 카피(대본), 게시용 카피. 스토리보드가 필요한지는 물어보고 제공하세요.

3.1 카피 (기본 제공, 유일하게 필수)

타임라인이 포함된 구어 대본, 3열:

시간글자 수대사
0.0–1.9초6당신은 잠을 많이 잘수록, 더 피곤합니다.
  • 시간은 presets/timing.md로 계산하고, 수동으로 추정하지 마세요; 직접 node scripts/timing.mjs --rate <말하는 속도> "대사1" "대사2"를 실행하세요.
  • 구두점과 문장은 presets/punctuation.md를 엄격히 따르세요: 전각 구두점, 단일 문장 ≤ 15자, 한 문장에 최대 2개의 쉼표
  • 마지막 시간과 목표 길이의 오차는 0.5초 이하여야 합니다. 초과하면 글자를 줄이고, 빨리 말해서 넘기지 마세요.
  • 제공할 때 JSON이나 스토리보드를 첨부하지 마세요. 사용자가 요청하지 않는 한.

3.2 게시용 카피 (기본 제공)

제목 (≤ 20자) + 3–5개 태그 + 한 줄의 댓글 유도 문구.

3.3 제공 후 반드시 한 가지를 물어보세요

카피를 제공한 후, 바로 물어보세요:

이 카피에 맞춰 스토리보드를 만들어 드릴까요? (각 문장에 어떤 화면, 화면 내 텍스트, 타이밍)

  • 사용자가 "네"라고 하면 → 3.4 출력
  • 사용자가 "아니요"라고 하거나 응답이 없으면 → 여기까지
  • content.json을 편하게 제공하지 말고, "영상을 만들까요?"라고 묻지 마세요.

3.4 스토리보드 (사용자가 명확히 요청할 때만)

#시간화면화면 내 텍스트비고
  • 시간 열은 3.1의 시간을 그대로 복사하고, 독립적으로 할당하지 마세요.
  • 대사 한 문장에 하나의 샷; 한 문장을 두 개로 나누면 1a/1b로 작성하고, 둘의 합은 원래 문장과 같아야 합니다.
  • 단일 샷 < 1.2초이면 병합, > 6초이면 분할.
  • 화면에는 촬영할 수 있는 것만 작성하고, "분위기 있는 빈 화면" 같은 것은 작성하지 마세요.

3.5 모션 효과 검사 (사용자가 명확히 영상 제작을 요청할 때만)

사용자가 "영상을 만들겠다", "초안을 달라"고 말한 경우에만 다음을 실행하세요:

cd <video-studio>
.\check-effects.ps1 -Human
결과동작
스크립트 없음사용자가 비디오 파이프라인을 설치하지 않음 → 건너뛰고, 오류로 처리하지 않음
installed=true계속 진행
installed=false먼저 알린 후 물어보고, 무턱대고 생성하지 않음

아직 모션 효과素材 라이브러리(9개, 약 196MB)를 생성하지 않았습니다. 지금 생성하시겠습니까? 약 2.5분 소요됩니다.

사용자가 동의하지 않으면 생성을 실행하지 마세요.

3.6 명확히 하지 않는 일

  • content.json / scenes를 출력하지 않음: 비디오 측 구조이며, 카피 측에서 담당할 일이 아닙니다.
  • 스토리보드를 먼저 제공하지 않고, "영상을 만들까요?"라고 먼저 묻지 않습니다.
  • 사용자를 대신해 플랫폼과 톤을 결정하지 않습니다 — 그것은 profile.md에 있습니다.

4. 자체 점검

  • 처음 3초는 후크이고, 자기소개가 아닙니다.
  • 후크는 hooks.md에 명확히 정의된 한 유형에 속하며, 유형을 혼합하지 않았습니다.
  • 캡처되어 단독으로 공유될 수 있는 한 문장이 있습니다.
  • 최소 하나의 구체적인 숫자가 있으며, 본문에서 해당 숫자를 충족합니다.
  • 구어 대본 각 문장 ≤ 15자, 말하는 속도로 읽어도 시간을 초과하지 않습니다.
  • 전체 글에 하나의 톤만 있으며, 중간에 바뀌지 않습니다.
  • 구조는 선택한 카테고리의 단락 비중을 따릅니다.
  • 절대 표현 없음 (최고/제일/완치/100%).
  • 의료, 금융, 교육 분야에서 효과를 보장하지 않습니다.
  • banned에 있는 단어가 있습니까? 있으면 해당 문장을 다시 작성합니다.
  • 구두점은 모두 전각이며, 반각 ,.!?이 없습니다.
  • 인용 부호는 통일 (「」또는 “”), 줄임표는 ……, 대시는 ——입니다.
  • 쉼표로 끝까지 이어지는 긴 문장이 없으며, 각 문장 ≤ 15자입니다.
  • 숫자 형식은 통일 (15초 / 73%), 영어 앞뒤에 공백이 있습니다.

5. 피드백 반영 방법

프리셋을 수정하고, 엔진을 수정하지 마세요.

사용자 말수정할 곳
너무 길어 / 너무 짧아duration
너무 공식적이야 / 너무 강해 / 너무 느끼해tone
샤오홍슈 같지 않아 / 抖音 같아platform
정보 밀도가 너무 높아 / 너무 비어 있어density
구조가 이상해category
시작 부분이 별로야hooks의 카테고리 변경
이 단어는 쓰지 마banned

임시 수정 vs 영구 수정 (중요)

사용자 말당신이 할 일영구 저장 여부
"이 버전을 샤오홍슈 스타일로 바꿔줘"새 파라미터로 이 버전만 다시 작성❌ 파일에 쓰지 않음
"앞으로는 샤오홍슈로 해" / "기억해" / "기본값으로 변경해"편집 도구를 사용하여 profile.md를 반드시 수정✅ 파일에 씀
"너무 강해" / "너무 느끼해"일시적인지 장기적인지 판단하고, 묻거나 장기적으로 처리✅ 파일에 씀

말만 하고 쓰지 않음 = 수정하지 않음. 세션이 종료되면 컨텍스트가 사라지고, 다음에는 이전 파라미터가 사용됩니다.

영구 저장 시 반드시 세 가지를 수행해야 합니다:

  1. profile.md에서 해당 줄을 수정합니다.
  2. profile.md의 "변경 기록" 끝에 한 줄을 추가합니다: - YYYY-MM-DD tone을 X에서 Y로 조정 (이유)
  3. 사용자에게 한 줄로 응답합니다: "profile.md에 기록했습니다: tone: 날카로운"

프리셋에 없는 값은 어떻게 처리하나요?

사용자가 platform: 知乎를 요청했지만 presets/platforms.md에는 네 개의 플랫폼만 있는 경우:

  1. 가장 가까운 것으로 작성 (知乎 ≈ B站长文 + 절제된 전문적), 근사치임을 설명
  2. presets/platforms.md에 추가할지 물어보기
  3. 추가하겠다고 하면 기존 형식대로 섹션을 추가하고, SKILL.md에 넣지 마세요.

사용자가 같은 차원에서 연속 세 번 조정하면, 프리셋 자체가 충분히 세분화되지 않았다는 의미이므로, presets/의 해당 섹션을 수정하는 것을 고려하세요.

사용자가 같은 차원에서 연속 세 번 조정하면, 프리셋 자체가 충분히 세분화되지 않았다는 의미이므로, presets/의 해당 섹션을 수정하는 것을 고려하세요.


6. 분석 모드 (선택 사항)

사용자가 주제 대신 참조 비디오 (링크 또는 텍스트 대본)를 제공하는 경우, references/analysis.md를 따릅니다: 후크 유형, 구조 분할, 스타일 태그, 인기 요인, 3가지 재작성 방향 출력.


7. 경계

  • 데이터를 조작하지 마세요. 숫자가 없으면 검증 가능한 모호한 표현을 사용하거나 직접 물어보세요.
  • 의료, 금융, 교육 분야에서 구체적인 효과를 약속하지 마세요.
  • 확실하지 않은 사실은 "확인 필요"로 표시하고, 결론으로 작성하지 마세요.
  • "최고/제일/유일"과 같은 절대 표현을 사용하지 마세요. 단, 검증 가능한 출처가 있는 경우는 예외입니다.

관련 스킬