Communitygithub.com

madhavsomani/animation-skills: 케이스 파일 설명자

Madhav의 '케이스 파일' 조사형 설명 영상: 다큐멘터리 '증거물 보관실' 스타일을 Reels/Shorts/YouTube에 맞게 적용한 형식입니다. 켜그을 charcoal 배경, 흰색 글로우 포토 카드 (찢어진 명찰 포함), 어두운 거리 지도 '시스템 맵' (빨간색 경로 강조), 흰색 점토 3D 디오라마, 실제 출처가 있는 증언 인용 카드, 빨간 날짜 도장, 각주 마커, 세리프체 챕터 제목 등을 특징으로 합니다. 차분한 내레이터와 지속적인 다크 앰비언트 배경 음악이 함께합니다. '케이스 파일', '증거 보관실', '조사', '실화 범죄/다큐멘터리 스타일' 또는 'X가 어떻게 발견/해킹/유출되었는지'에 관한 영상 (기술 사고, 침해, 장애, 스캔들, 역사 이야기)에서 사용하세요. animated-video 스킬의 단계 및 승인 중단점 안에서 실행됩니다. 밝은 컨셉 설명자(vector-world-explainer), 발표자 영상 위에 종이 콜라주(paper-lab-reel), 또는 단순 영상 편집(video-use)에는 적합하지 않습니다.

animation-skills: 케이스 파일 설명자란 무엇인가요?

이 스킬은 다큐멘터리 '증거물 보관실'의 미학을 활용한 조사형 설명 영상을 제작하는 방법을 제공합니다. 주로 기술 사고, 침해, 장애, 스캔들 또는 역사적 사건을 다루는 영상에 적합하며, '케이스 파일'이나 '실화 범죄 스타일' 제작 요청 시 사용됩니다. charcoal 배경, 빨간색(증거를 의미) 악센트, 흰색 글로우 카드, 시스템 맵, 3D 디오라마, 출처가 명시된 증언 카드 등의 시각적 요소를 통해 차분하고 긴장감 있는 분위기를 연출합니다. animated-video (Remotion 기반) 스킬 내에서 실행되며, 기술적/사실적/창의적/소유자 승인의 4단계 QA 프로세스를 따릅니다. 교육용 보안 사고 설명(55-60초, 7개 장면)에 특화된 변형도 포함되어 있어, 취약점의 개념과 보호 방법을 설명하는 데 유용합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/madhavsomani/animation-skills/tree/HEAD/skills/case-file-explainer

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

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

문서

케이스 파일 설명자

증거로 구성된 조사: 누가, 어디서, 언제, 기록이 무엇을 말하는지, 하나의 빨간색 악센트는 항상 '이것이 증거다'를 의미합니다. 긴장감은 차분한 절제에서 비롯됩니다: 과장된 단어 없음, 빠른 컷 없음. 대신, 절대 멈추지 않는 카메라, 절대 침묵하지 않는 음악, 그리고 내레이터의 정확한 말에 맞춰 제시되는 사실들.

반드시 cstack animated-video 스킬 (Remotion, 먼저 읽을 것) 내에서 실행하고, 승인 중단점, 전체 품질 전달, 그리고 4개의 별도 QA 상태(기술적, 사실적, 창의적, 소유자 승인)를 유지하세요. 이 스킬은 아트 디렉션, 촬영 어휘, 오디오 레시피 및 작업 키트를 추가합니다.

  • 복사할 작업 예제: template/ (30초 xz 백도어 데모: src/kit/casefile.tsx = 키트, src/scenes/* = 샷 유형별 하나의 씬, audio/score.py = 음악). 스크린샷: ../../docs/case-file-explainer/.

모든 이야기에 맞게 새롭게 디자인하세요. xz 영상의 샷이 아닌, 메서드와 키트를 복사하세요.

명확성이 최우선입니다. 두 번째 케이스 파일(PHP 원격 코드 실행 이야기)은 완성도는 높았지만 따라가기 어려웠습니다. 어떻게 작동하는지를 설명하는 모든 영상은 decode-explainer 스킬(개념 사다리, 장난감 모델 우선, 화면의 범례, 화면당 하나의 아이디어, 정의된 후에만 전문 용어 사용, 타입 크기 ≥ 44px)로 계획하고, 이 스킬은 증거실 외관과 조사 비트에만 사용하세요.

1. 이야기: 조사의 뼈대

조사 이야기는 이해 관계가 실제이고 모든 주장에 출처가 있을 때만 효과가 있습니다.

  • 훅 (0-3초): 이상 현상, 숫자가 포함된 사실로 명시 ("그의 로그인이 0.5초 느렸다"). 프레임 0은 표지: 세리프체 헤드라인과 증거 오브젝트, 절대 검정색이 아님.
  • 추적 (중간): 장소와 사람을 통해 증거를 따릅니다. 비트당 2-4초: 날짜 도장, 그다음 사람 카드, 그다음 지도의 경로, 그다음 발견된 오브젝트.
  • 공개: 드롭아웃 순간. 음악이 사라지고 하나의 빨간색이 점화됩니다.
  • 기록: 실제 1차 출처(이메일, 증언, 보고서)를 인용하는 증언 카드, 그 아래에 저자와 날짜, 각주 번호 포함. 절대 인용을 조작하지 마십시오; 재구성은 "재구성"으로 표시하세요.
  • 엔딩: 훅을 평결로 다시 진술하는 세리프체 제목 ("0.5초."), 빨간색 줄과 사건 번호. 유지했다가 의도적으로 페이드 아웃. 크리에이터가 원할 때만 말로 된 댓글 CTA 추가; CTA가 있으면 완전히 말로 전달.
  • 숏 폼: 30-45초, 4-6개 샷. 롱 폼 (YouTube): "Chapter I" 세리프체 제목 카드가 있는 챕터.
  • 모든 사실은 화면에 나오기 전에 출처와 확인 상태와 함께 NOTES.md에 넣으세요. 사실이 영화를 결정합니다.

교육용 변형 (보안 사고): 이 형식의 기본값

교육적으로 제작: 사람들이 그것이 무엇인지, 왜 발생했는지, 그리고 보호를 위해 무엇을 할 수 있는지 이해하도록 돕습니다. 뼈대 (~55-60초, 6개 샷):

  1. 표지/훅: 날짜 도장, 세리프체 사고명, 심각도 도장 및 CVE 태그, 모두 프레임 0에서 보임.
  2. 규모: 중요한 이유 (웹의 얼마나 많은 부분 또는 얼마나 많은 사용자), 출처가 있는 통계 및 각주 포함.
  3. 정의: 버그가 있는 위치의 파이프라인 다이어그램 (인터넷, 웹 서버, 엔진, 앱). 요청은 빨간색 경로를 따라 이동하고, 손상된 단계는 빨간색으로 변하며, 결과가 나타납니다 (예: 낯선 사람의 쉘 프롬프트). 화면에 전문 용어 정의 ("쉘 = 서버의 명령줄").
  4. 발생 원인: 흰색 점토 3D 은유로서의 근본 원인 (블록으로서의 메모리: 반쯤 쌓인 스택, 살아있는 포인터가 있는 해제된 유령 블록), 3줄의 양성 코드 카드 (malloc/free).
  5. 타임라인 + 현실 점검: 날짜가 찍힌 핀 (가장 오래된 영향받은 코드, 첫 번째 공격, 유출, 패치), 그다음 위험을 적절한 비율로 유지하는 1차 출처의 증언 카드.
  6. 보호: "확인 방법" 터미널 (php -v 및 수정된 버전), VO에 맞춰 번호가 매겨진 체크리스트, 엣지 케이스(EOL 버전, 임시 방편으로서의 WAF)에 대한 바닥글.
  7. 평결 + CTA: 두 줄의 세리프체 평결 및 저장/팔로우 CTA.

교육 안전: 공격 클래스를 개념적으로 설명하세요. 절대 페이로드, 요청 본문, 오프셋 또는 단계별 악용을 보여주지 마세요. 수정 사항과 확인 방법을 명시하세요.

2. 외관 (아트 바이블)

요소규칙
바탕부드러운 방사형 리프트가 있는 차콜 #0d0d0e; 비네트와 미세 그레인 항상 켜짐
악센트하나의 빨간색 #ff2d2a, 항상 글로우 (삼중 text-shadow + bloom). 빨간색 = 증거: 경로, 이상 현상, 용의자, 핵심 단어. 그 외에는 색상이 없음
콘텐츠단색: 오프화이트 #f2f0ea, 딤 #8d8b86; 흑백 보관 사진
타입세리프체 제목 (Source Serif 4 700); 타자기체 본문/레이블 (Courier Prime 700); 데이터/날짜 도장 (IBM Plex Mono 700, 자간 띄움 대문자)
포토 카드흑백 사진, 약간 찢어진 가장자리가 있는 흰색 테두리, 흰색 글로우; 대문자 모노로 역할 줄; 찢어진 흰색 가장자리가 있는 검은색 명찰. 알 수 없는 사람 = "알려진 사진 없음"이 있는 흐릿한 카드
시스템 맵얇은 회색 선, 몇 개의 두꺼운 간선 도로와 곡선 고속도로가 있는 어두운 거리 지도, 큰 자간 띄움 세리프체 지구 워터마크 ("D E B I A N"); 경로는 흰색 헤드와 함께 빨간색 글로우로 그려짐; 핀은 포인터가 있는 명찰
디오라마흰색 점토 3D 모델 (three.js): 밝은 회색 바닥의 무광 흰색 블록, 부드러운 그림자, 안개. 하나의 빨간색 오브젝트는 점화될 때 주변을 밝힘
인용 카드큰 세리프체 인용 부호, 흰색 줄, 모노로 입력된 텍스트, 빨간색 키워드, 아래에 출처 줄과 날짜
날짜 도장빨간색 글로우 시계 + "FRIDAY, MARCH 29, 2024" + 하나의 컨텍스트 줄
각주출처가 명시된 주장이 화면에 있을 때마다 오른쪽 상단에 딤 모노로 [n]

9:16 안전 영역: 콘텐츠를 x 60-960, y 240-1440 내에 유지하세요. 캡션은 y ~1470에, 모노체로 어두운 태그 위에, 키워드는 빨간색으로 위치합니다. 절대 얼굴 위에 배치하지 마세요.

3. 모션

  • 하드 컷 거의 없음. 이 레지스터의 긴 다큐멘터리는 10분 동안 몇 번만 컷합니다. 샷은 콘텐츠를 통해 연결: 빨간색 도장 속으로 들어가면 그것이 지도의 시작 노드가 됨; 지도의 빨간색 노드 속으로 들어가면 그것이 빨간색 3D 블록이 됨.
  • 카메라는 절대 멈추지 않음: 느린 푸시인 (샷당 5-8 %), 컨텍스트를 드러내기 위한 풀아웃, 경로 추적 팬. 모든 움직임을 in/out 이징; 로그 공간에서 줌.
  • 카드는 감쇠 스프링으로 팝 (스케일 0.82에서 1); 태그는 18px 떨어져 제자리에 떨어짐; 텍스트는 타자기 입력됨.
  • 빨간색 경로는 내레이터의 속도로 그려짐: 헤드는 각 노드의 단어에 도달.
  • 1.5-3초마다 무언가를 변경하고 각 히트를 단어의 2프레임 이내에 맞추세요.

4. 오디오 레시피

  • 음악은 절대 멈추지 않음. 처음 5분 동안 -45dB 미만의 침묵 없음. 단조의 다크 앰비언트 드론/패드; 음악 전용 콜드 오픈 (롱 폼 ~12초, Reels ~0초).
  • 내레이션 위에, 음악은 약 10dB 아래. VO 엔벨로프에서 덕킹 (사이드체인 스타일). 0.6초 이상의 VO 공백에서 음악을 키우고, 공개 단어 직전에 음악을 드롭아웃.
  • 롱 폼 목표: 약 -16 LUFS 통합, LRA 약 6 LU. 차분하고 밀도 높으며, 역동적이지 않음. Reels는 -14 LUFS / -1.5 dBTP로 제공.
  • SFX는 드물고 물리적: 입력된 텍스트에 대한 타이핑 틱, 카드와 태그가 착지할 때의 부드러운 쿵, 경로가 그려지는 동안의 데이터 차터, 공개 시점의 서브 드롭, 평결 시점의 유리 핑 또는 차임.
  • 음성: 차분하고 낮고 절제된 내레이터: 짧은 선언문, 사실 뒤에 멈춤. 크리에이터의 자체 녹음을 먼저 사용; 음성 복제는 지출 승인이 필요. TTS 대체는 초안 전용이며 레이블이 지정되어야 함.
  • 예제의 audio/score.py는 단어 타이밍에서 전체 음악과 믹스를 구축합니다.

5. 파이프라인

  1. 사실과 출처는 NOTES.md에 입력; 스크립트와 비트 시트 승인 받기 (animated-video 중단점 1).
  2. VO, 그다음 words.json (Whisper 또는 TTS 단어 경계); audio/fix_words.py에서 토큰 분할 수정.
  3. cue()에서 src/lib.ts의 액트 정의; 동일한 큐를 사용하여 audio/score.py로 음악 구축.
  4. src/kit/casefile.tsx 및 씬 패턴 복사; snap.sh로 키프레임 보드 렌더링 (중단점 2: 스타일 프레임/키 프레임).
  5. --scale=1.3333333333333333 (1440x2560)으로 렌더링, 그다음 -14 LUFS로 투패스 loudnorm, H.264 High, CRF 14, maxrate 24M, yuv420p 제한 범위, BT.709 태그, faststart.
  6. QA: 전체 디코드, blackdetect, 라우드니스, 콘택트 시트, 모든 전환 주변의 조밀한 프레임, VO의 Whisper. 4가지 QA 상태를 별도로 보고.

첫 번째 버전을 만들면서 발견한 문제점

  • 전체 스크립트 edge-tts 실행은 느리게 진행됨 (180단어에 88초). scripts/tts_lines.py (라인당 하나의 TTS 호출, 제어된 간격, "|"는 섹션 시작)를 사용한 다음 scripts/squeeze.py (0.45초 이상의 일시 중지를 단축하고 단어 타이밍 재매핑): 68.6초가 58.5초가 됨.
  • cue("Before"), cue("PHP") 및 기타 반복되는 단어는 오류를 발생시킴. 2단어 구문을 사용하거나 nth를 전달.
  • 3D 와이드 샷에서 단일 블록 행은 프레임을 비워둠. 깊이를 위해 뒷 행 (z = -1.6, -3.2, -4.8)을 추가.
  • 다음 비트 약 6프레임 전까지 버그 슬롯에 카메라 고정. 더 일찍 이동하면 문장 중간에 주제가 프레임 밖으로 밀려남.
  • 오버레이 카드는 최소 1.5초 동안 화면에 표시되어야 함. 마지막 단어가 아닌 이전 단어에서 시작.
  • 공유 브라우저를 통해 탐색은 현재 탭(사용자 자신의 탭 포함)에 있을 수 있음. 먼저 자신의 탭을 선택.
  • edge-tts는 "March 2024"를 하나의 단어 경계로 반환. chunk() 전에 분할하거나 캡션이 오류를 발생시킴.
  • cue("It") 및 기타 반복되는 단어는 nth 또는 더 긴 구문(cue("It had"))이 필요.
  • 방사형 빨간색 큐브와 블룸 마감은 주황색/노란색으로 과포화됨. 방사형을 0.5 이하로 유지하고, 기본 색상을 어둡게 (#b8120c) 유지하고 씬 블룸을 0.5로 유지.
  • 세로 3D에서 타워는 카드 밴드(y 300-750)와 캡션(y 1470) 사이에 위치해야 함. 6단위 높이 모델의 경우 카메라를 약 23단위 뒤로 당김.
  • 터미널의 HTML 줌은 약 1.12x 이상에서 가장자리를 자름. 모서리가 아닌 판독값에 줌.
  • 약 300px보다 넓은 맵 노드 레이블은 프레임 밖으로 나감. 노드 아래 중앙에 배치.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬