Communitygithub.com

iqam20/git2video

실제 Git 히스토리(태그, 커밋, diff)를 기반으로 릴리스 비디오(MP4/WebM/GIF)를 제작합니다. 완전 오프라인, 무료, 스크립트 기반 QA 루프를 갖춘 도구입니다. 사용자가 '릴리스 비디오', '체인지로그 비디오', '공지 클립', '이 저장소의 릴리스 영상'을 요청할 때 사용하세요.

git2video란 무엇인가요?

git2video는 실제 Git 저장소의 히스토리(태그, 커밋, diff)를 읽어 정확하고 세련된 릴리스 비디오를 생성하는 AI 에이전트 스킬입니다. 수집 → 스토리보드 → 검증 → 렌더링 → QA → 전달의 6단계 워크플로우를 따르며, 로컬에서 100% 실행됩니다(Node ≥ 22, ffmpeg, Playwright Chromium 필요). 네트워크 없이 렌더링되며, diff에서 비밀 정보가 제거되고 이메일이 출력에 나타나지 않습니다. Claude Code, Cursor, Codex 등 터미널 기반 AI 코딩 에이전트와 함께 사용하기에 적합하며, 실제 Git 데이터를 기반으로 하므로 가짜 커밋이나 통계를 만들지 않습니다. 최대 3번의 QA 수정 루프를 통해 품질을 보장하며, 최종적으로 MP4, WebM, GIF 형식으로 결과물을 제공합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iqam20/git2video/tree/HEAD/skills/git2video

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

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

문서

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문장으로 유지하세요.

관련 스킬