git2video — 실제 Git 히스토리로 릴리스 비디오 만들기
저장소의 실제 Git 히스토리를 읽어 정확하고 세련된 릴리스 비디오를 만듭니다: 수집 → 스토리보드 → 검증 → 렌더링 → QA → 전달. 100% 로컬에서 실행됩니다(Node ≥ 22, ffmpeg, Playwright Chromium 필요 — doctor로 먼저 확인). 렌더링 중 네트워크는 필요 없으며, diff에서 비밀 정보는 제거되고 이메일은 출력에 절대 나타나지 않습니다.
skills/git2video/scripts/doctor.mjs # 환경 확인, MISSING 행 수정
scripts/collect.mjs # git -> story.json (그룹화된 커밋, 브레이킹 체인지, 통계, 정리된 diff)
scripts/validate.mjs # 오디오 없는 스토리보드, 렌더링 전 통과 필수
scripts/render.mjs # 스토리보드 -> video.mp4 (+ webm/gif), layout-audit.json
scripts/qa.mjs # 스크립트 기반 게이트: out/qa/ 디렉토리에 report.json + report.md
references/storyboard-guide.md # 장면 유형, 데이터 형식, 작성 규칙 — 스토리보드 작성 전 필독
references/faq.md # 문제 해결
워크플로우
1. 히스토리 수집
node skills/git2video/scripts/collect.mjs --repo <저장소-디렉토리> --out /tmp/g2v/story.json \
[--from <태그|SHA|YYYY-MM-DD>] [--to HEAD] [--max-commits 400] [--include-contributors] [--gh]
기본값: 마지막 태그 → HEAD; 태그 없음: 최근 30일. 실행 후 /tmp/g2v/story.json을 읽으세요.
2. storyboard.json 작성 (당신, 즉 에이전트 — 먼저 references/storyboard-guide.md를 읽으세요). 30~45초 릴리스 비디오를 위한 일반적인 구성:
제목 (3~4초) → 하이라이트 (5~8초) → diff (5~8초) → 통계 (4~5초) →
타임라인 (선택, 4~6초) → 브레이킹 체인지 (3~5초, 있을 경우만) →
기여자 (3~5초, --include-contributors 옵션 사용 시만) → 아웃트로 (3~4초)
모든 장면에는 다음이 포함됩니다: id, type, duration (0.8~15초), narration
(최대 2문장; 슬롯 내 읽을 수 있어야 하며 0.35초/단어 기준), source (주장을 뒷받침하는 커밋 SHA),
data (유형별 — 형식은 가이드 참조). 모든 주장은 story.json에 근거해야 하며, 지어내지 마세요.
3. 검증
node skills/g2video/scripts/validate.mjs --storyboard /tmp/g2v/storyboard.json \
--story /tmp/g2v/story.json
렌더링 전에 모든 오류를 수정하세요. 사용자가 짧은 테스트 클립을 요청한 경우에만
--min/--max 플래그로 총 시간 범위를 조정하세요.
4. 렌더링
node skills/git2video/scripts/render.mjs --storyboard /tmp/g2v/storyboard.json \
--out /tmp/g2v --preset 16:9 --fps 30 --theme dark [--formats mp4,webm,gif]
프리셋: 16:9@1920, 9:16@1080, 1:1@1080. 테마: dark (기본), light, neon. 렌더링은 동일한 머신에서 결정론적입니다; 40초 30fps 비디오 기준 약 2~4분 소요. v0.1은 무음입니다: 내레이션은 자동으로 캡션으로 표시됩니다.
5. QA (스크립트 기반, 주관 평가 아님)
node skills/git2video/scripts/qa.mjs --storyboard /tmp/g2v/storyboard.json --out /tmp/g2v
out/qa/report.md를 읽으세요. PASS → 전달. FAIL → report.json 세부 정보를 확인하고, 스토리보드를 수정하고, 다시 렌더링하고, QA를 재실행하세요. 최대 3번의 수정 루프. 그 후에도 실패하는 항목과 그 이유를 정직하게 보고하세요.
6. 전달. 사용자에게 알립니다: video.mp4 (+webm/gif)의 절대 경로,
한 줄의 QA 결과, 3번째 루프에서 남은 문제, 그리고 다음 옵션을 제안합니다:
다른 프리셋 (세로), 테마 변형 (light/neon), 또는 README에 포함할 GIF (--formats gif).
엄격한 규칙
- 커밋, 통계, diff를 절대 지어내지 마세요: 모든 장면의
source는 story.json의 실제 SHA를 참조합니다. 히스토리가 특정 장면 유형을 지원하지 않으면 해당 장면을 건너뛰세요. - 기여자 이메일을 출력에 넣지 마세요; 이름은 --include-contributors 옵션 사용 시에만 포함.
- 렌더링 중에 skills/git2video/templates/ 또는 scripts/ 아래 파일을 편집하지 마세요; 결정론적 엔진과 QA가 이 파일들을 기준으로 동작합니다. 장면/테마/자산 스타일 변경은 별도의 선언된 작업으로만 수행하세요.
- 채우기용 장면보다는 수는 적어도 정확한 장면을 선호하세요; 내레이션은 최대 2문장으로 유지하세요.