Communitygithub.com

remotion-gotchas-index

错题集:症状→修法索引,短修法行内、长修法指向专业 skill。渲染异常、画面不对、排版翻车时先查。触发词:错题、翻车、坑。

remotion-gotchas-index란 무엇인가요?

이 스킬은 Remotion 기반 영상 렌더링 작업 중 발생하는 다양한 문제들의 증상을 인덱싱하고, 각 문제에 대한 수정 방법을 빠르게 찾을 수 있도록 안내하는 '오답 노트'입니다. 렌더링 중단, 화면 깨짐, 레이아웃 오류, QC(품질 검사) 오탐지 등 실제 프로젝트에서 마주친 44개 이상의 버그와 해결책을 카테고리별로 정리하고 있습니다. 각 항목은 짧은 수정법은 해당 라인에 직접 기술하고, 긴 수정법은 전용 스킬 문서로 연결하여 문서가 비대해지는 것을 방지합니다. 이 인덱스는 Claude Code, Cursor와 같은 AI 에이전트 환경에서 '오답, 잘못됨, 함정' 등의 트리거 단어로 활성화되어 문제 진단 시간을 획기적으로 단축시켜 줍니다. macOS의 iCloud 동기화로 인한 dataless 파일 문제, 동시 렌더링으로 인한 교착 상태, QC 프로브의 거짓 양성 등 실제 현장에서 얻은 깊이 있는 노하우가 포함되어 있어 초보자부터 고급 사용자까지 유용하게 활용할 수 있습니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/jincheng2026/jc-remotion-skills/tree/main/skills/remotion-gotchas-index

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

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

문서

오답집 인덱스 (증상 → 수정 위치)

규칙: 각 함정은 수정 및 사람의 육안 검수 후에 등록됩니다. 수정 방법이 전용 스킬에 속하면 해당 스킬에 작성하고 여기에는 포인터만 남깁니다. 전용 소속이 없는 경우 (엔지니어링 워크플로우/렌더링 파이프라인류)는 행 내에 짧은 수정법을 허용합니다 (함정 확인 시 한눈에 수정법을 볼 수 있도록, 두 번 이동 불필요). 단, 다섯 줄을 초과하면 전용 파일로 이동시킨 후 다시 포인터로 변경합니다. 본 파일은 150줄을 초과하지 않으며, 초과 시 가장 긴 행 내 수정법을 먼저 이관합니다.

동족 탐색 (먼저 가족을 정한 후 항목을 조회하여 근친 항목 간 이리저리 이동하는 것을 방지):

  • 렌더링 멈춤/중단/사라짐 계열: 먼저 render-service.cjs 실행 자가 진단 실행 (2026-07-24부터 자동으로 #37 public 용량, #38 서명 중단, chrome 열리지 않을 때 자동 대체 시스템 Chrome 차단); 자가 진단 통과 후에도 멈춤 → #23 동시 데드락 → #25 dataless → #26 harness 회수 → #24 npm 패키지 손상 순으로 확인.
  • QC 거짓 양성 계열: #29 유령 박스 (null 게이팅) / #31 콜드 스타트 폰트 부풀림 (qcAllow 면제) / #32 Place 박스 높이 (육안 판단 후 통과); QC에서 '위반 제로' 보고 시 먼저 커버리지 확인 (#35).
#카테고리증상수정 위치
01화면 렌더링중국어가 자동으로 명조체로 변경 / 간헐적으로 정상remotion-design-system §6 #01 (fonts.ts + FontGuard)
02엔지니어링 워크플로우remotion still 출력 ○, 코드 변경 후 이미지 변경 없음remotion-design-system §6 #02
03엔지니어링 워크플로우축소 비교 이미지가 폰트 세부 사항 오판remotion-design-system §6 #03
04화면 렌더링JSX 속성에서 \uXXXX가 문자 그대로 표시됨 (예: icon="✅")remotion-design-system §6 #04
05디자인 언어컴포넌트 자체 그리기 플레이스홀더 복제 시 '느낌이 많이 다름'remotion-design-system §0 철칙 4 (진짜素材为主体)
06화면 렌더링backgroundClip:text 그라데이션 글자가 렌더링 시 어둡게 나타남remotion-design-system §6 #06 (纯色+textShadow)
07디자인 언어단순 평면 색상 블록/단순 평면 검은 배경/가짜 로고가 저렴해 보임remotion-design-system references/texture.md (果冻块+glow+暗角+真 logo)
08내보내기완성본 MG 글자 가장자리 후광/번짐, 'MG 추가 후 화질 저하'remotion-design-system §6 #08 (jpeg100+crf15 고정 config)
34디자인 미적 감각사용자가 '고급스럽지 않음 / 거침 / 실수 같음 / 부자연스러움 / 연결되지 않음 / 매끄럽지 않음'이라고 함design-system references/motion.md '매끄러움의 다섯 가지 법칙' — 귀인 표: ① 사전 뼈대 배치 (언급되지 않은 구조가 미리 드러남) ② 회피를 위해 연속된 물체를 조각냄 ③ 경계를 넘거나 공중에 떠서 틈 발생 (>2px이면 끊어짐) ④ 등속 운동으로 감속 정지 없음 ⑤ 상태가 순간적으로 전체 변화. 항목별로 대입, 감으로 파라미터 조정 금지; 하나를 수정할 때 다른 항목을 밟지 않도록 주의 (0722-01 '선이 원을 관통하지 않음' 수정 시 '조각냄' + '뼈대 노출' 밟아서 두 번 재작업)
09엔지니어링 워크플로우긴 렌더링 중간에 사라짐 / mp4 조각 / pgrep이 프로세스가 살아 있다고 오판remotion-design-system §6 #09 (nohup 분리 + 로그 + 줄 인식)
10롱폼 조립화면이 드러나거나 오랜 시간 정지, MG가 모두 왼쪽 구역에 축소되어 힘 없음remotion-design-system references/layout.md (takeover/주인공 순간) + remotion-assembly references/rhythm.md (밀도 감사)
11음향전체 영화에 음향 효과 없음 / 음향 효과가 묻혀서 들리지 않음 / 음량 기준 미달remotion-assembly references/audio.md (볼륨 규범+마스터링 loudnorm)
12롱폼 조립요소 진입 후 한 번도 움직이지 않아 답답함 / 챕터가 한 프레임에 하드 컷되어 사라짐remotion-design-system references/motion.md (Breathe + useExit 퇴장 규율)
13디자인 언어밝은 배경 위의 글자가 회색으로 보여 읽을 수 없음 (맨 글자 흰색 판에 누름)remotion-design-system §0 철칙 5 + references/texture.md
14롱폼 조립왼쪽 위 헤더/머리선이 글자와 겹침remotion-design-system references/layout.md (헤더 상호 배타적 점유)
15자막자막 내 단어 끊김 / 영어 파편 / 배경 없음remotion-assembly references/subtitle.md (의미 단위 분할+배경 상자+검증 스크립트)
16소재 캡처손으로 그린 제품 화면 재현 시 '아무리 조정해도 많이 다름'remotion-assembly references/broll.md §0 총론 (합성기는 그림판이 아님; 소재 4단계+캡처 편집 파이프라인)
17롱폼 조립AI 자체 점검 시 '매우 유사함', 사용자 보니 많이 다름 (정지 프레임 사각지대/육안 축소)remotion-assembly SKILL §2.5 분할 워크숍 (먼저 측정 후 코딩+사용자 동적 최종 검토)
18소재 캡처소재 부분이 '패치'처럼 보여 본편에 녹아들지 않음remotion-assembly references/broll.md 파이프라인 5단계 (색상 통일 레이어)
19애니메이션 타이밍전체 영화 진입이 PPT처럼 느림 / 모션 효과 시간이 디자인과 일치하지 않음remotion-design-system references/motion.md §0 (프레임 수는 60fps 기준으로 작성하지만 합성은 30fps, 초→프레임 변환 필요)
20디자인 언어조립 크기가 '아무리 조정해도 참조보다 작음'remotion-design-system references/specs.md (먼저 사양표 확인 후 코딩, 육안 판단 금지)
21음향음향 효과가 싸구려/허전하게 들림, 합성과 참고 영상 샘플 모두 거부됨remotion-assembly references/audio.md 규칙 8 (정답=전문 음향 효과 라이브러리: CapCut 캐시 디스크 라이브러리→@remotion/sfx→Mixkit→CC0→상업용 팩; 질감은 반드시 사용자가 청취 보드에서 번호를 골라야 하며, AI는 스펙트럼 하드웨어 손상만 필터링 가능)
22엔지니어링 워크플로우청취 보드/이어붙인 비디오가 뒤로 갈수록 음성과 영상이 맞지 않음remotion-sfx SKILL §2 이어붙이기 철칙 (-c copy 이어붙이기와 -shortest 금지: 세그먼트 길이 미세 차이가 누적되어 드리프트 발생, 반드시 동일 길이 고정+전체 재인코딩)
23엔터프라이즈 워크플로우렌더링이 이유 없이 중단/시간 초과, 반복 재시도에도 계속 중단동일 프로젝트 렌더링 동시 실행 금지 (경고 지뢰밭 '동시 실행 붕괴' 확정): 다중 세션/고아 프로세스 충돌 데드락. 진단=ps -o etime,pcpu (etime이 예상보다 몇 배 초과+CPU 0% 지속=좀비, 종료); 도구 시간 초과는 bash만 종료하고 고아 node가 연쇄 충돌, 렌더링은 반드시 nohup 진정한 백그라운드+로그 + 줄 인식 (오답 #09 동족); 렌더링 시작 전 먼저 현장 확인, 단 현장 확인 모드는 자체 일치를 방지해야 함: `pgrep -f "remotion render
24엔터프라이즈 워크플로우렌더링 시 Named export not found/plugin is not a function 등 패키지 내부 오류npm 동시 설치 시 패키지 손상 가능 (다중 세션 동시 npm i / 프로세스 상호 종료로 쓰기 중단): 증상=require가 빈 내보내기 반환, 의존성 트리 내부 TypeError; 수정법=손상 패키지 rm -rf node_modules/<패키지>+npm cache clean --force+재설치, 여러 곳 부패 시 직접 rm -rf node_modules && npm ci (먼저 node_modules/.remotion 브라우저 바이너리 이동 저장 후 삭제); 규율=동일 프로젝트 동시에 하나의 세션만 npm 작업 허용
25엔터프라이즈 워크플로우렌더링이 Bundling 특정 비율에 영구적으로 멈춤, 프로세스 트리 전체 CPU 0%, Node 변경/의존성 재설치 모두 무효소재 파일이 동기화 디스크에 의해 dataless 빈 껍데기로 추방됨 (2026-07-16 참사: 타사 동기화 앱 제거 시 747MB 주 소재를 추방하여 번들이 public/ 읽기 복사 시 영구적으로 차단, 하룻밤 내내 렌더링 연쇄 중단). 진단=ls -lO public/**에서 dataless 플래그 확인; 수정=원본/다운로드 소스에서 엔터티 복원 (brctl은 이미 제거된 provider에 대해 무효); 예방=소재 입고 시 진위 확인 시 dataless 확인 (broll.md 2b), 프로젝트를 동기화 디스크 관리 디렉터리에 두지 않음. 변형 (2026-07-28, iCloud가 node_modules 추방): CLI/Studio 시작 시 0% CPU에 조용히 멈춤, 버전 번호조차 출력 불가 ('Mac 저장 공간 최적화'가 의존성 파일을 추방, @remotion 패키지 내 거의 10,000개의 dataless, require 시 파일별로 클라우드 다운로드 대기); 수정법=의존성 재설치 후 node_modules.nosync/ 엔터티 디렉터리+동일 이름 심볼릭 링크 (*.nosync 명명으로 iCloud 동기화 안 함, 근본적인 재발 방지); 이전 디렉터리는 반드시 프로젝트 트리 밖으로 이동 (../.trash/로) — 프로젝트 내에서 이름 변경 시 Studio watcher가 재귀적으로 스캔하여 두 번째 중단 발생
26엔터프라이즈 워크플로우렌더링 프로세스가 하위 에이전트/에이전트 라운드 종료와 함께 '공중에서 사라짐', 동시 데드락 (#23)도 아니고 긴 렌더링 중단 (#09)도 아님하위 에이전트 라운드가 종료되면 harness가 포그라운드 또는 완전히 분리되지 않은 하위 프로세스 체인을 회수 → 렌더링이 중간에 종료되어 조각이 남음. 수정법은 #09 계열: 렌더링 시작은 반드시 부모 shell에서 완전히 분리 (nohup + run_in_background/setsid, 모든 fd 리디렉션), 완료 판단은 로그 +/마지막 줄만 인식, 에이전트 생존 여부는 무시; 하위 에이전트 내에서 긴 렌더링 시작 시 특히 치명적 (라운드 경계 = 프로세스 사망 시간), 필요한 경우 '이번 라운드에서 렌더링 시작 분리 → 다음 라운드에서 로그 인식' 두 단계로 분리
27엔터프라이즈 워크플로우렌더링 서비스 .mjs/ESM 진입점 import '@remotion/renderer'가 does not provide an export named 'Fragment' 오류package.json에 type:module이 없을 때 ESM 진입점으로 renderer를 로드하면 ESM 빌드의 react/jsx-runtime 상호 운용성 끊김 발생 (Node 24 확증); 수정법=서비스 스크립트를 .cjs + require로 변경하여 CommonJS 빌드를 통과 (증거: scripts/render-service.cjs 상단 주석)
28엔터프라이즈 워크플로우<Sequence layout="none" premountFor={N}>이 tsc를 통과할 때 premountFor가 존재하지 않음/타입 불일치 오류Remotion SequenceProps는 판별 유니온: premountFor는 기본/layout:"absolute-fill" 분기 (AbsoluteFillLayout)에서만 유효하며, {layout:"none"} 분기에는 이 속성이 없음 (타입은 node_modules/remotion Sequence.d.ts의 LayoutAndStyle 참조). 수정법=premount가 필요한 미디어는 반드시 기본 레이아웃 Sequence에 포함 (layout 미작성 또는 absolute-fill 작성); layout="none" 위치 지정이 필요한 경우 해당 미디어를 별도로 기본 레이아웃 Sequence에 포함시켜 프리마운트를 받음. 공식 지뢰밭 ③ (premountFor)의 실무 파생
29엔터프라이즈 워크플로우QC 프로브가 '유령 중첩' 거짓 양성 보고: 해당 프레임의 요소가 육안으로 전혀 보이지 않음QC 프로브 (src/design/qc.tsx)가 프레임별로 [data-qc]에 대해 getBoundingClientRect를 가져와 중첩 판단; 요소가 보이지 않는 기간에 여전히 DOM에 남아 있으면 (표준 숨김 또는 완전 불투명하지만 시각적으로 이미 양보한 경우) rect가 그대로 → 거짓 중첩 보고 (seg05 S5Appear 명중). 프로브 측은 opacity<0.15와 w/h<3만 필터링하여, 플레이스홀더형 유령은 막을 수 없음. 수정법=요소가 보이지 않는 기간에 컴포넌트가 직접 return null (null 게이팅 방식), 노드가 없으면 rect도 없음; 중첩 방지 플레이스홀더 규칙은 remotion-design-system references/layout.md §10.5 참조. 다른 변형 (Place 박스 높이)은 #32로 별도 항목화, 수정법은 #32를 기준으로 함
30엔터프라이즈 워크플로우Bash로 작성한 파일이 '명령 성공'했지만 곧 사라짐 / Read가 방금 생성된 파일을 볼 수 없음 / 렌더링 완료된 영상이 ls에 존재하지 않음새 세션은 기본적으로 샌드박스 실행: 권한이 없는 Bash 쓰기는 샌드박스 임시 복사본에 저장되며 명령 종료 시 증발 (0719-01 테스트 확증: 자막 데이터, 18개 Scene, 590MB 완성 영상 모두 증발, Write 도구로 작성한 3개 파일만 생존); /tmp 소프트 링크 경로로 프로젝트에 쓰면 리디렉션이 악화됨. 수정법=작업 시작 전 반드시 assembly SKILL §0.5 0단계 환경 자가 진단 수행, 통과 못 하면 중단, 사용자에게 Bash/편집 권한을 요청한 후 작업 시작; 금지: 소프트 링크로 중국어 경로 우회 (경로 전체에 큰따옴표만 추가), dangerouslyDisableSandbox로 자체 구조, 프로젝트를 /tmp로 복사하여 작업; 파일 산출물은 우선적으로 Write 도구를 사용하여 작성
31엔터프라이즈 워크플로우QC가 세그먼트 첫 몇 프레임에서만 중첩 보고, 육안으로 중첩 없음 (일반적으로 sub-zh × 카드 프레임)콜드 스타트 처음 몇 프레임에 폰트가 로드되지 않아 텍스트 상자가 대체 폰트로 측정되어 부풀어 오르고 rect가 교차 → 측정 거짓 양성 (0715-01 seg03 및 0715-02 S04 두 번 확증, #29 유령 계열 변형). 수정법=육안 확인 후 qcAllow 화이트리스트로 해당 요소 쌍을 면제 (나머지 단언은 유지), 몇 프레임의 거짓 양성 때문에 레이아웃을 변경하지 마세요
32엔터프라이즈 워크플로우전체 영상 QC에서 대량의 place@72,* 왼쪽 영역 상자 중첩 보고, 렌더링된 프레임에서 육안으로 요소가 겹치지 않음페이지/그룹 왼쪽 영역 Place 상자의 bounding이 시각적 콘텐츠보다 높음 (컨테이너 높이), 상자 교차 ≠ 시각적 교차 (0715-02 전체 영상 QC 15개 위반 유형 무작위 추출 모두 이 유형). 수정법=렌더링된 프레임을 육안으로 거짓 판단 후 통과; 근본 수정=Place 상자 높이를 실제 콘텐츠에 맞추거나 해당 그룹에 qcAllow 걸기; sub-clearance가 정리 공간 라인을 넘는 것은 별도로 진실/거짓 판단, 이 목록에 포함되지 않음
33화면 렌더링/내보내기완성본의 특정 구간에서 인물/비디오가 정지 프레임으로 고정, 원본 영상은 같은 구간에서 움직임 (4K 배경에서 자주 발생); 육안으로 '인물이 움직이지 않음', 그러나 md5/mpdecimate는 감지 불가4K 배경 OffthreadVideo 렌더링 시 디코딩이 버벅거려 반복 프레임 출력 (복잡한 SVG 애니메이션 구간이 더 쉽게 트리거) → 1080p H264 배경 소스로 전환 (합성 자체가 1080p, 4K는 낭비일 뿐만 아니라 디코딩까지 망가뜨림), 주 컴포넌트가 1080p 소스를 참조하도록 변경 후 재렌더링하면 해결. 진단 반드시 ffmpeg -vf freezedetect=n=-50dB:d=0.3 사용 — md5가 모두 다르다고 해서 화면이 움직이는 것은 아님 (정지 프레임의 압축 노이즈도 모든 프레임의 md5를 다르게 만들어 속일 수 있음), mpdecimate도 노이즈에 의해 방해를 받아 신뢰할 수 없으며, 오직 freezedetect만 노이즈 허용 오차가 있어 정확함; 소재 전환 구간 (인물 퇴장, 소재 자체 정지)의 freeze 보고는 정상이며 버그가 아님 (0721-01 확증: 63-69초 인물 구간 정지 프레임, 4K→1080p 소스 후 freezedetect 제로 프리즈). 첨부: 납품 인코딩 권장 -bf 0 -g 30 -movflags +faststart로 플레이어 호환성 향상 (Remotion 기본 다량 B-프레임, 일부 플레이어 seek 시 디코딩 버벅거림)
34화면 렌더링소재 구간 완성본에 대면적 순수 검은색/죽은 검은색 막대/빈 유리, 가장자리 세로 막대만 남음; 플레이스홀더와 진짜 소재 모두 영향을 받을 수 있음; 렌더링 후 자체 검사에서도 놓치기 쉬움 (샘플링 지점이 소재 재생 창에 포함되지 않음)OffthreadVideo '초대형 박스 스타일 width + objectFit/translate' 자르기 방식으로 렌더링 측 width가 적용되지 않음 → 콘텐츠가 카드 너비로 렌더링된 후 변위에 의해 잘림 (0721-01 여섯 구간 확증: S02/S06/S07/S10/S13/S16, 유일하게 올바른 S14는 'video 100% 카드 채움 + transform scale 오버슛' 사용). 수정법 및 렌더링 후 검수 게이트 = remotion-assembly references/broll.md 규칙 12
35엔터프라이즈 워크플로우편집 멤버/QC가 '전체 영상 위반 제로' 보고하지만 실제로는 대량 중첩 있음 — 거짓 게이트 통과QC 프로브 (src/design/qc.tsx)는 각 Scene 내에 걸려 있으며, 해당 구간 프레임 범위에서만 실행됨; Scene에 <QcProbe/> 누락 (선언만 qc?:boolean하고 실제로 사용 안 함) → 해당 구간에 단언 없음 → summary가 깨끗한 것은 거짓 게이트 통과 (0722-01 참사: 20개 구간 중 단 1개 구간만 프로브 장착, 위반 제로 보고했으나 실제로 8개 유형의 진짜 위반 존재). 수정법은 이미 고정: 프로브는 매 프레임 하트비트 QC{hb:1,n}를 보내고, render-service.cjs qc가 '커버리지 프레임 수/렌더링 프레임 수'를 확인, <90% 또는 전체 요소 0개 → [FAIL] 커버리지 부족 판정, '위반 제로'가 아님. 규율: '위반 제로'는 '테스트해서 문제 없음'과 '아예 테스트하지 않음'을 구분할 수 있어야 함; 프로덕션 모드 통합 단계에서는 먼저 짧은 구간 qc를 실행하여 커버리지가 기준에 도달했는지 확인 후 전체 영상 진행. 보충 (2026-07-24 검토 발견): 프로브는 루트에 장착해야 함 (조립 루트 {qc ? <QcProbe/> : null}, Koubo072101/072201처럼) — Scene 내에 장착 시 useCurrentFrame이 Sequence를 통해 로컬 프레임 (0부터 시작)을 반환하므로, 하트비트 프레임 번호가 글로벌 프레임 범위와 불일치: 전체 영상/교차 구간 QC 커버리지가 거짓 FAIL (각 구간 로컬 프레임이 서로 중첩되어 중복 제거 후 ≪ 총 프레임 수), 단일 구간 누락도 인접 구간 로컬 프레임에 의해 거짓 PASS로 가려질 수 있음; render-service는 이미 프레임 범위 필터를 추가했지만, 글로벌 커버리지는 루트 장착만 보장 가능. 단일 구간 QC 단거리 주행 시 이 함정을 찾을 수 없음 — 가드레일 검증은 실패를 트리거하는 시나리오로 테스트해야 함 (교차 구간 범위/의도적으로 프로브 하나 제거), 정상 구간만 테스트하지 마세요
36디자인 언어왼쪽 구역 정보 MG 텍스트가 밝은 배경에 흐릿하게 붙어 거의 읽을 수 없고, scrim이 작동하지 않는 것처럼 보임InfoScrim (src/design/InfoScrim.tsx) 그라데이션 기본값이 왼쪽 투명→오른쪽 어둡게로, 오른쪽만 압착함; 정보 MG를 왼쪽에 배치한 영상의 경우 (사용자가 왼쪽 정보로 결정) → 왼쪽 MG가 전체적으로 가장 밝은 영역 (흰색 캐비닛/밝은 벽)에 배경 없이 노출됨 (0722-01 확증; 0715-02도 같은 함정에 부딪혔지만 단일 구역에서만 임시 패치했고 베이스의 구멍은 막히지 않음). 수정법=InfoScrim에 side 파라미터 추가 (기본 'right'로 이전 영상 호환), 정보가 왼쪽에 있는 영상은 side="left" 전달. 교훈: 베이스 결함은 베이스를 보완하거나 입건하고, 단일 구역에서만 패치 금지 — 그 자리 패치는 다음 영상을 위한 함정을 남기는 것
37엔터프라이즈 워크플로우렌더링이 Bundling에 갇혀 나오지 못함, copyfile ... ETIMEDOUT, 프로세스는 살아 있지만 출력 없음public/footage/에 오래된 소재가 여러 개 쌓임 (0722-01 당시 2GB/6개), Remotion 번들이 매번 전체 public/를 임시 디렉터리로 복사 → copyfile 시간 초과 (#25 dataless와 구분: 이는 용량/복사 시간 문제이며, 파일 자체는 엔터티로 존재). 수정법=현재 영상의 소재만 public/footage/에 유지하고, 나머지는 ../footage-hold/로 이동 (2GB→466MB, 번들이 멈춤에서 1.8초로 개선). 규율: 수정 조치 납품 후 무턱대고 롤백하지 마세요 — 롤백 전에 '이 영상을 다시 렌더링해야 합니까?' 물어보세요 (0722-01 동일 함정, 납품 후 소재를 다시 이동시켜 두 번 밟음)
38엔터프라이즈 워크플로우파일에 접근하는 모든 프로세스가 영구적으로 멈춤, kill -9 무효, UE 좀비가 계속 쌓임; 의존성 재설치/Node 변경 모두 무효macOS 코드 서명 검증 데몬 (amfid/syspolicyd)이 멈춤 → 서명 검증이 필요한 바이너리가 exec 불가 (#25 dataless, #37 용량, #23 데드락과 모두 다르며, 시스템 수준). 진단법: ffprobe -version (시스템)은 정상이지만 node_modules/@remotion/compositor-darwin-arm64/ffprobe -version이 영구적으로 멈춤 = 서명 멈춤; `ps -axo pid,stat,comm
39소재 캡처Grok 이미지→비디오 세 가지 유형의 실패: 기본 저해상도 736×400 확대 시 흐림 / 요소 변형 증식(morph) / 특정 구도가 강제로 '채워짐'① 해상도: 명시하지 않으면 기본 736×400 (2.6배 확대 시 halftone/자르기 가장자리 흐려짐) — 명령어에 반드시 720p(1280×720) 명시, 실제 테스트 4/4 명중; CLI resolution_name은 480p/720p 두 가지뿐이며, 1080p 요청 시 롤백됨 (2026-07-24 테스트), 1080p는 xAI API (grok-imagine-video-1.5)를 사용하거나 도구 변경 필요. ② morph 증식: 기어가 자람/달력이 여러 칸/링이 부서짐 — prompt 끝에 해당 항목의 쉽게 깨지는 요소에 대한 잠금 제약 추가 ('단일 원래 크기 유지, 증식 금지', '칸 수/색상 변경 금지', '링 연속, 끊어짐 금지'). ③ 강제 보완: '희소 요소+넓은 빈 배경+빈 인형+얼굴 조각 노출'이 모델을 트리거하여 빈 공간을 채우고, 빈 구멍을 채우고, 완전한 얼굴을 생성 (14번 6개 버전 모두 실패) — 계속 금지 명령을 추가하지 말고, 트리거하는 입력 구도를 변경하세요 (조각 채우기/네거티브 스페이스를 선으로 경계 지정/얼굴 조각 노출 제거, 한 번에 성공). gbro headless 호출 시 --always-approve --permission-mode bypassPermissions --max-turns 10도 필요하여 비디오 도구를 트리거합니다. 자세한 내용은 remotion-broll SKILL 'AI 생성 콜라주 B-roll' 절 참조
40화면 렌더링명함 작은 원형 아바타가 비뚤어져 보이고, 골드 링 내부에 배경 쐐기 노출, CSS로 각도 조정 시 더 비뚤어짐작은 원형 자르기 창 내에서 CSS rotate+오프셋으로 아바타 기울기 수정 금지 — 회전은 img 중심을 기준으로 하고, 가시 창은 다시 중심에서 벗어나므로 두 가지가 겹쳐 기울어짐이 증폭되고 회전 시 가장자리 노출 (0724-01 두 번 만에 수정 성공). 정답=오프라인 이미지 굽기: PIL로 초상화를 바로잡고 (±몇 도) '얼굴이 중앙에 오는 정사각형'으로 잘라 에셋 저장, NamePlate avatarImgStyle에서 100%/left:0/top:0으로 창을 꽉 채워 직접 부착; 글로벌 에셋 public/assets/author-avatar.png가 이미 준비되어 있으므로 직접 참조
41엔터프라이즈 워크플로우render-service segment 전체 영상 렌더링 시 frame range 0-N is not inbetween 0-(N-1) 오류segment/splice의 시작/종료 파라미터는 경계 프레임 포함: 전체 영상 = 0 (durationInFrames-1) (1355프레임 합성 시 0 1354 전달), durationInFrames를 그대로 복사하면 오류 발생
42디자인 언어사용자가 자막이 '충분히 예쁘지 않다'고 말하지만 정확히 무엇이 문제인지 모름먼저 영어 줄이 중국어 폰트로 렌더링되었는지 확인 — 중국어 폰트의 라틴 문자형은 단지 보충용이며, 자간/간격이 모두 잘못되어 '무엇이 이상한지 설명하기 어려운' 주요 원인 (BilingualSub 구버전 en 줄이 FONT.zh로 렌더링됨, 2026-07-26 확증). 수정법=영어 줄은 반드시 비례 서양 폰트 FONT.subEn (Inter) 사용; 함께 중국어 줄의 폰트 두께 확인, 자막 레이어는 FONT.subZh (PingFang SC) 400 가는 체 사용, 패키징 레이어의 700을 사용하지 마세요. 폰트 질감 판단은 반드시 1:1로 로컬을 잘라서 확인해야 하며, 썸네일로는 확인할 수 없음 (#03과 동일); 개정 전에 여러 버전의 같은 프레임 대조본을 사용자에게 제공하여 선택하게 하고, 자신이 한 버전으로 결정하지 마세요
43롱폼 조립qc-master에서 FAIL 및 WARN이 전혀 없는데, 사용자가 '질감이 특히 많이 다름 / 모션 효과가 점점 더 나빠짐 / 자막이 skill 설명과 다름'이라고 함기술 검수는 '영상이 망가졌는지' 확인하는 것이지, '영상이 베이스를 사용했는지' 확인하는 것이 아님 — 두 가지는 별개이며, 전자의 초록불을 후자의 증거로 삼지 마세요. 0727-01 확증: 25개 구간 자체 구축 324줄 _kit.tsx로 카드 재창조, 모션 효과는 quad 페이드 인 변위 0뿐, design/motion 제로 참조, 25개 구간 중 8개만 퇴장 처리, 자막 77개 중 en 전부 빈 값으로 단일 행 중국어로 퇴화; qc-master 전체 PASS 그대로 통과. 수정법=조립 ⓪ 게이트 node scripts/check-scenes.mjs src/koubo/scenes-<영상명> (motion 제로 참조 / 제로 퇴장 시 FAIL) + check-subs.mjs의 en 누락 검사, 두 가지 모두 코드 작성 후 렌더링 전에 실행. 진단 순서: 먼저 어떤 기법이 빠졌는지 확인한 다음, 파라미터가 올바른지 확인 — check-scenes 명령어 하나로 바퀴를 재발명하고 있는지 확인할 수 있지만, '베이스를 사용하지 않음'이라는 한 가지 나쁨 유형만 다룹니다; 색상/리듬/폰트/구도는 각각 다른 진정한 원인이 있습니다 (typography/rhythm/#42/layout), 단일 경로를 만능 진단으로 사용하지 마세요. ⚠️ 부수적 교훈: 당시 check-subs 명령어 파라미터를 잘못 전달 (영상명 대신 파일 경로)하여 ENOENT 오류가 발생했지만, 오류 메시지를 보고 바로 넘어감, 따라서 행 시작에 걸린 단일 글자, 초과 폭 16.5자 두 가지도 함께 누락 — 검증 스크립트 오류 ≠ 검증 통과, 실행되지 않았다면 실행하지 않은 것

분류 참고 (기준 영상 시스템 기준 예약): 화면 렌더링 / 애니메이션 타이밍 / Studio 로컬 실행 / 내보내기 / 음향 / 소재 캡처 / 롱폼 조립 / 디자인 언어 / 엔지니어링 워크플로우.

경고 지뢰밭 (오답 목록 44개, 2026-07-16 사용자 제공 스크린샷)

규칙: 여기는 지뢰밭 지도이지 오답이 아닙니다 — 증상 이름만 있고 수정법은 없으며, 우리는 대부분 밟지 않았습니다. 어느 하나라도 명중 시: 수정 + 사람의 육안 검수 후 위 표의 공식 번호로 업그레이드합니다. 이미 우리의 기존 오답과 매칭되는 것은 바로 소속을 표시했습니다.

카테고리함정 (원문)우리의 상태
화면 렌더링LOGO 깜빡임 / 비디오 정지 프레임 / 투명 ProRes 검은 테두리 / 모션 효과 왼쪽 상단 고정 / 이미지 늘어남 / 웹페이지 chrome / 얼굴 가림 / 자막 충돌 / Emoji / Logo 검정이 검정 잡아먹음이미 대응 있음: 자막 충돌=#14 글자 겹침; Emoji=#04+아이콘 규범 (lucide 진짜 아이콘); 얼굴 가림=3개 영역 인물 출입 금지 (layout.md); Logo 검정이 검정 잡아먹음=logo dark/light 두 버전 규범 (texture.md). 나머지 6개는 밟지 않음, 경계: 비디오 정지 프레임 (OffthreadVideo 프레임 고정), 이미지 늘어남 (objectFit), 웹페이지 chrome (스크린샷에 브라우저 테두리가 카드에 포함됨)
애니메이션/타이밍Phase 인덱스 break 누락 / 모션 효과가 음성과 일치하지 않음 / spring overshoot이미 대응 있음: 모션 효과가 음성과 일치하지 않음=§2.5 단어 수준 정렬+주 시각 SRT 정렬; spring overshoot=motion.md §11 금지 항목. Phase 인덱스 break 누락은 밟지 않음 (switch 분기 누락 유형 문제)
Studio/로컬 실행Studio 즉시 종료 (SIGPIPE) / EMFILE 핸들 폭발 / staticBase hash 만료 / HEVC 검은 화면 / id 밑줄 / Studio+still 동시 실행 붕괴모두 밟지 않음. 두 가지 높은 확률 경계: HEVC 검은 화면 (iPhone 녹화 소재는 HEVC, 입고 시 먼저 H.264로 변환), Studio+still 동시 실행 붕괴 (Studio 실행 중 still/render 실행 시 충돌 가능 — 우리 워크플로우는 자주 동시 실행, 걸려도 먼저 코드 의심하지 마세요)
내보내기C 드라이브 부족 / OOM / 화질 흐림 / 렌더링 느림 / Encoded 오판이미 대응 있음: 화질 흐림=#08 (jpeg100+crf15); Encoded 오판=#09 완료 판단 기준은 로그 + 줄만 (동일: 로그 텍스트 ≠ 성공). OOM/렌더링 느림은 밟지 않음 (롱폼 4K 시 동시 프레임 수 경계)
음향impact-heavy가 전체 영상에 가득 / 그룹마다 whoosh 할당 / 음이 먼저, 모션이 나중이미 대응 있음: impact-heavy가 전체 영상에 가득=audio.md 헤비 SFX 전체 영상 ≤2곳 (사용자가 오프닝 whoosh 거부한 동일 원천 교훈); 그룹마다 whoosh 할당=연속 타격은 항목당 가벼운 pop이어야 하며 그룹당 하나의 헤비 음이 아님. '음이 먼저, 모션이 나중'은 밟지 않음, 보류 중인 확인 필요 (SFX 프레임과 모션 효과 프레임의 타이밍 규칙으로 의심, 명중 시 정의)
소재 캡처yt-dlp 403 / fetch가 프록시를 거치지 않음 / Wikimedia GFW / Firefox cookie / PNG가 실제로는 HTML부분적으로 있음: yt-dlp 캡처 파이프라인은 broll.md에 있음 (우리는 Lovable를 다운로드할 때 403을 만나지 않음, 만나면 먼저 cookie/UA/프록시 세 가지 추가). 'PNG가 실제로는 HTML' 전형적인 함정: 다운로드한 '이미지'가 실제로는 핫링크 방지 HTML 페이지를 반환한 것 — 입고 전 file 명령으로 진위 확인, 이 항목을 직접 소재 파이프라인의 고정 단계로 채택
롱폼 조립챕터에 호흡 공간 없음 / Host 카드↔Chip 충돌이미 대응 있음: 챕터에 호흡 공간 없음=motion.md §1/§2 장 간 정리 화면; Host 카드↔Chip 충돌=layout.md 규칙 9 상호 배타적 점유 (동일 유형 겹침)
디자인 언어House Style 미복제 / kicker overclaim / 종횡비 미계산 / 자막 복창House Style 미복제=우리 전체 design-system의 존재 이유. kicker overclaim (kicker 문구가 음성이 말하지 않은 내용까지 과장), 종횡비 미계산 (소재 변형), 자막 복창 (자막과 MG 텍스트가 같은 문장을 반복) 세 가지는 밟지 않음 — 자막 복창 경계: 우리의 판결 단어 chip과 Stamp가 중복되지 않는 판결은 동일한 원리
공식 지뢰밭 (remotion-dev/skills 명시, 2026-07-16 대조 산출, docs/공식skills대조.md 참조)① CSS transition/animation/Tailwind 애니메이션류=렌더링 시 반드시 깨짐 (공식 FORBIDDEN, codex로 코드 작성 시 가장 쉽게 혼입됨) ② ffmpeg 자르기 재인코딩 없음=시작 프레임 얼어붙음 (기준 영상 '비디오 정지 프레임' 원인 중 하나, -c copy 자르기 금지) ③ 미디어가 포함된 Sequence에 premountFor 없음=첫 프레임 버벅임/검은 프레임 ④ @remotion/transitions 총 시간 소모 (두 장면 겹침, SRT 하드 얼라인 시스템에서는 전체 영상 어긋남) ⑤ 외부 데이터 fetch 시 delayRender 미포함=빈 프레임 렌더링①②④⑤ 밟지 않음, 코드 작성 전 확인 항목; ③ premountFor는 규정에 따라 사용 (Scene06 첫 프레임 검은 화면 방지) → 실무 파생 새로운 함정 #28 (premountFor와 layout='none' 타입 상호 배제)
엔지니어링 워크플로우수정 범위 확대 / 글자 크기<48px / 자동 4K render 실행수정 범위 확대=분할 워크숍 '해당 구간만 렌더링/해당 구간만 수정' 규율의 반대 교재; 글자 크기<48px (1080p에서 48px 미만의 본문은 사용자가 읽을 수 없으며, specs.md 최소 설명 글자 20-22px과 시나리오 구분 필요: 여기서는 정보 주체를 의미함); 자동 4K render 실행 (확인 없이 자동으로 대규모 렌더링 실행하여 컴퓨터 손상) — 이 항목을 직접 규율로 채택: 렌더링은 사용자/계획이 확인한 범위에서만 시작

Individual skills in this repo

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

관련 스킬