Communitygithub.com

embedded-captions — 뮤트 피드 출고

토킹헤드/런치 컷 로컬 자막. 35 스타일. HyperFrames 53.9K★. PH/X 뮤트 필수.

embedded-captions — 뮤트 피드 출고란 무엇인가요?

Launch Video 3단계: HyperFrames 53.9K★. 로컬 자막 출고. 5막 다음.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/embedded-captions

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

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

문서

플러그인 설치: 설정 또는 최신 상태 확인 명령 전에, 이 스킬이 HyperFrames 플러그인 내부에 있을 경우 플러그인 실행 규칙을 따르세요. 독립 실행형 설치는 아래 업데이트 지침을 유지합니다.

첫째, 이 스킬을 최신 상태로 유지하세요 — 사용자에게 확인 후 실행: npx hyperframes skills update embedded-captions. 모든 것이 최신 상태이면 빠른 no-op입니다. 그렇지 않으면 이 스킬과 이 스킬이 의존하는 핵심 도메인 스킬을 사용하기 전에 업데이트합니다.

임베디드 캡션

하나의 카탈로그, 미리 준비됨 (CATALOG.md — 35개 정체성; 그 뒤에 있는 엔진은 백엔드 세부 사항). Standard (기본값)는 깨끗한 그대로의 레일(대부분의 텍스트를 전달하는 하단 서드 자막) + 임베디드 클라이맥스를 장면 내부에 합성하여 최고점에 배치합니다. Cinematic은 순수 임베디드 — 레일 없음, 모든 캡션이 피사체 뒤에 합성됩니다(영웅 타이포그래피, 누적, 효과로서의 가림). Theme는 완전한 테마 구성을 나타냅니다 — 본문 패러다임 × 영웅 세트피스 × 전면 효과 × 플레이트 반응, 레지스트리에서 구성됨 (themes/README.md): ordnance terminal neonsign stardust stomp. 대부분의 설명/내레이션은 Standard입니다; 임베디드는 드물고, 얻기 힘든 최고점입니다 — 모든 단어를 임베딩하는 것은 흔한 실수입니다. Theme는 VFX 수준의 요청("炸", "特效", "像 AE 做的")을 위한 것입니다.


런타임 전제 조건

플러그인 설치는 매트 처리, 전사 및 렌더링을 위해 번들로 제공되고 매니페스트에 고정된 CLI를 사용합니다. 소스 체크아웃이 필요하지 않습니다. 로컬 미리보기 및 캡션 측정 도우미는 Sharp, Puppeteer (Chromium 브라우저 포함) 및 GSAP도 필요합니다. 읽기 전용 플러그인이 아닌 캡션 프로젝트에 설치하세요:

npm install --prefix <project> --save-dev --save-exact [email protected] [email protected] [email protected]

프로젝트의 lockfile을 유지하세요. 이러한 종속성이 이미 존재하는 경우 덮어쓰지 말고 잠긴 버전을 사용하세요. Bash와 FFmpeg/ffprobe가 PATH에 있어야 합니다. 매트 처리 및 전사는 첫 번째 사용 시 자체 모델을 다운로드할 수 있습니다.

렌더링은 합성 전에 CLI가 성공적으로 종료될 때까지 기다립니다. 이전 HF_TIMEOUT_S 셸 감시자는 더 이상 사용되지 않습니다: 큰 부분 파일은 렌더링이 완료되었음을 증명하지 않습니다. 명시적인 빌드 체크아웃 인수 또는 HYPERFRAMES_ROOT는 플러그인 핀 대신 기여자 CLI를 선택합니다. 중단된 렌더링은 일반적으로 CLI/터미널을 통해 취소합니다. 캡션 도우미는 프로세스 스냅샷에서 렌더링을 강제 종료하거나 복구하지 않습니다.

운영 흐름 (요약)

/hyperframes를 통해 라우팅되며, 의도 레이어는 입력(어느 클립)만 확인하고 정체성 선택을 지연된 요청으로 알립니다 — 후보 목록은 조사된 클립이 필요하므로 아래 1단계에 남습니다. 레이어의 실행 형태 질문은 적용되지 않습니다(푸티지는 변경되지 않았고, 검토할 스토리보드가 없습니다). BRIEF.md가 있는 경우 확인된 입력과 사용자 메모를 포함합니다 — 먼저 읽으세요.

아래의 제작 설명은 깁니다. 파이프라인 자체는 짧습니다 — 그리고 결정적인 모든 것은 계산되거나 컴파일되며, 수동으로 작성되지 않습니다:

  1. 결정 게이트 (나쁜 클립 거부) → CATALOG.md에서 하나의 정체성 선택 (35개 정체성; 엔진/컴파일러는 조회로 파생됨 — 모드/카테고리 질문 절대 표시하지 않음)
  2. hyperframes init (프로젝트 디렉토리가 이미 비디오와 함께 존재하면 건너뜀 — matte.cjs/transcribe.cjs는 dir의 모든 비디오를 source.mp4로 채택) → bash scripts/prepare.sh <project> (병렬로 matte ∥ transcribe ∥ audio-envelope, 그다음 시네마 팔레트/광학/조명을 사용한 safe-zones v2 — 하나의 명령, 잊는 것 없음)
  3. 작은 JSON의 창의적 선택 작성 (먼저 safe-zones.json 읽기): Cinematic → plan.json → fill-timings.cjs → fit-fonts.cjs → make-composition.cjs; Theme → theme.json → make-theme.cjs (rail/panel/poem/takeover 패러다임; anchor는 조용한 레일 기본값)
  4. 시각적 QA: node scripts/preview-frames.cjs <project> → 약 2초/프레임의 신뢰할 수 있는 합성 미리보기 (렌더링 없음). 렌더링 비용을 지불하기 전에 § 시각적 QA 확인.
  5. render-and-composite.sh → 게이트 (타이밍 / 가림+영웅 / 오버플로우 / 핸드오프) → final.mp4

사람들이 놓치는 중요한 규칙:

  • 레일(기본값) + 임베디드(승격). drop (필러, 표시되지 않음) / rail (그대로의 하단 서드 자막, 앞에, 대부분의 텍스트 전달) / embed (피사체 뒤에 합성된 최고점 단어). Standard 모드는 둘 다 수행하며, 최고점만 임베딩합니다. § 캡션 모델 참조.
  • 비디오는 변경되지 않은 상태로 제공됩니다 (Standard/Cinematic; Theme 모드의 PLATE 예산이 유일한 허용 예외 — 테마 DNA에 정의된 레지스터 게이트 반응 비트(차지-딤, 펀치, 쉐이크, 그레인)가 매트 합성 후 적용되어 피사체+텍스트+플레이트가 하나의 프레임으로 움직입니다) — 캡션만 추가됩니다. 매트는 피사체가 임베디드 트랙을 가릴 수 있게 합니다. 푸티지를 절대 그레이딩/재색/스캔라인하지 마세요.
  • 두 개의 규칙집: 레일 → references/rail.md (얇음), 임베디드 제작 → references/composition-craft.md (풍부함, 임베디드 전용). 필요에 따라 훑어보세요.

캡션 모델 — 레일 + 임베디드

모든 말하는 구절은 다음 세 가지 중 하나입니다:

무엇어떻게 표시되는지
drop필러 — 음/어, 더듬음, 자기 수정표시되지 않음
rail기본값 — 일반적인 말하는 내용 (그대로)깨끗한 하단 서드 자막, 앞에, 읽기 쉽게. 한 단어에 인라인 emphasis 강조(액센트 색상 / 활성 단어 팝) 가능 — 레일에 유지됩니다.
embed승격된 최고점 — 헤드라인 비트피사체 뒤에 합성된 큰 단어 하나 (매트 가림), 설계된 입장 + 퇴장

레일은 대부분의 텍스트를 전달합니다. 임베디드는 드물고, 얻기 힘든 최고점입니다. 희소성은 클립당이 아닌 비트/블록당입니다: 블록(생각)당 ≤1 영웅, 절대 두 개가 동시에 보이지 않음, 영웅 창 사이에 최소 비트의 여백 (컴파일러는 0.6초 미만에서 경고). 짧은 클립 → 보통 1–2개; 긴 설명 → 섹션당 약 하나. 여러 영웅 중 가장 큰 작성된 영웅이 APEX입니다 (전체 락업 임베디드 + 너비 맞춤 상승을 받는 유일한 영웅); 더 작은 영웅은 MINOR 최고점으로서 자신의 열을 과장된 강조 줄(전경, 감쇠된 움직임)로 탑니다 — 모든 비트가 매트 쇼케이스를 필요로 하지 않으며, 이것이 바로 apex를 이벤트로 유지하는 이유입니다. 모든 단어를 임베딩하는 것은 여전히 흔한 실수입니다.

레일 표면 정체성은 정확히 이것을 구성합니다 (레일 = rail.html, 임베디드 = index.html의 클라이맥스). 열 흐름 정체성은 레일을 버리고 모든 것을 임베디드 스타일로 만듭니다 — 단어를 읽어야 하는 설명/내레이션이 아닌 분위기-중시 요청에만 추천합니다 (CATALOG.md는 정체성별로 이를 인코딩합니다).


0단계 — CATALOG에서 하나의 정체성 선택

하나의 프론트엔드, 그 뒤에 세 엔진. 사용자는 CATALOG.md에서 IDENTITY를 선택합니다 (35개 항목: 10 클래식 + 25 테마); 엔진, 컴파일러 및 작성 파일은 카탈로그 행에서 조회로 파생됩니다. "Standard vs Cinematic vs Theme"를 질문으로 절대 표시하지 마세요 — 이는 백엔드 이름입니다 (제품은 여러 엔진이 있어도 하나의 UX를 가집니다). 카탈로그는 라우팅에 필요한 모든 것을 인코딩합니다: 읽기 표면, 음성, 추천 대상, 장면 요구 사항, 진정으로 가까운 쌍(loud↔ordnance, neon↔neonsign, cream↔stardust)에 대한 인접 메모.

정체성 선택은 선호 게이트입니다 (../hyperframes/references/brief-contract.md § 1): 자율 모드("놀라게 해줘" / "나를 위해 결정해 줘")에서는 직접 후보 목록에서 선택하고 그 이유를 한 줄로 말하세요. 질문하지 마세요.

절차: 클립 조사 → 카탈로그에서 2–3개 정체성 후보 목록 작성 → 하나를 추천하고 한 줄 이유 제시 → 사용자가 선택 (자율 모드: 당신이 선택하고 이유를 말함) → 해당 정체성의 파일을 작성합니다. 정체성은 엔진에 고정됩니다 (크로스 콤보 없음; 하나를 여는 것은 검증 이벤트입니다 — dna/README.md 참조).

항상 추천을 제시하고 작성하기 전에 사용자가 선택하게 하세요. 조용히 기본값으로 설정하지 마세요.

(전체 정체성 테이블은 CATALOG.md에 있습니다 — 라우팅의 단일 진실 공급원. 아래 엔진 문서는 각 백엔드의 작성 계약을 설명합니다.)

CATALOG.md가 여기서 전체 답변 공간입니다: 이 워크플로우는 HyperFrames 컴포넌트 레지스트리를 검색하지 않습니다. 구성 워크플로우는 명명된 룩을 작성하기 전에 npx hyperframes catalog를 실행합니다. 이것은 실행해서는 안 됩니다. 해당 엔진은 cinematic.json / theme.json을 소비하고 스스로 구성을 내보내는 잠긴 컴파일러이므로, 레지스트리 항목 — 포함된 caption-* 블록 — 마운트할 대상이 없습니다. 레지스트리 블록은 설계된 캔버스에 텍스트 스타일을 지정합니다. 이 스킬은 매트를 통해 누군가의 푸티지에 캡션을 새깁니다. 어떤 정체성도 요청에 맞지 않을 때는 그렇게 말하고 카탈로그 밖으로 나가지 말고 가장 가까운 것을 선택하세요.

추천 휴리스틱: CATALOG.md의 "단축 목록 작성 휴리스틱"을 사용하세요 — 이는 정체성 수준입니다 (예: "炸"는 ordnance/stomp/terminal/loud를 단축 목록으로 작성하고 무엇이 폭발해야 하는지에 따라 선택), 절대 카테고리 수준이 아닙니다. 확실하지 않음 → anchor.

  • Cinematic → 잠긴 템플릿에 plan.json을 작성하고, make-composition.cjs에 의해 컴파일됩니다.
  • Theme → themes/README.md를 읽고, theme.json을 작성하고, scripts/render-theme.sh를 실행합니다 (컴파일 + 렌더 + 플레이트 반응 → final_fx.mp4).

결정 게이트 — 먼저 실행

비디오를 조사하고 두 모드 전에 장면을 분류하세요.

ffprobe <video.mp4>                    # 사양
ffmpeg -ss <t> -i <video.mp4> -vframes 1 sample.png   # 20/50/80% 지점에서

샘플을 읽으세요. 다음 경우 거부:

  • 여러 화자 / 하드 컷 (각 샷을 분할 및 렌더링하거나 거부)
  • 인간 피사체 없음 (이 스킬은 말하는 머리용)
  • 3초 미만, 음성 없음, 또는 얼굴이 명확하게 보이지 않음 — transcribe.cjs는 오디오가 거의 무음일 때 경고합니다 (Whisper는 침묵 위에 "Thank you." 같은 단어를 환각할 수 있음); 이를 주의하고 거부하여 조작된 단어에 캡션을 달지 마세요.
  • 소스에 이미 하드코딩된 캡션/자막/무거운 텍스트 그래픽이 있는 경우 — 두 번째 캡션 시스템을 추가하면 충돌이 발생하고 푸티지는 변경되지 않은 상태로 제공됩니다 (덮기/인페인팅 없음). 번인 텍스트는 종종 클립 중간에만 나타납니다: 1fps 연락처 시트를 샘플링하세요 (ffmpeg -i in.mp4 -vf "fps=1,scale=160:-1,tile=10x5" sheet.png), 3개의 스팟 프레임을 신뢰하지 마세요.
  • 전사 결과가 쓰레기인 경우 — 비원어민/강한 악센트 음성은 자신감 있는 횡설수설로 전사될 수 있습니다. 작성 전에 transcript.json을 온전하게 읽으세요. 언어로 구문 분석되지 않으면 WHISPER_MODEL=medium을 한 번 시도하고, 그렇지 않으면 거부하세요 (조작된 단어의 그대로의 레일은 캡션이 없는 것보다 나쁩니다).
  • 바쁜 핸드헬드 및 빠른 움직임 (매트 깜빡임)

사전 점검 (비용 없음, 최악의 실패 방지)

  1. 샷 컷 점검. 20%, 50%, 80%에서 프레임 샘플링. 다른 피사체/장면이 나타나면 컷 전에 클립을 자르세요.
  2. 레터박스/필러박스 점검. 첫 번째 프레임에 검은 막대가 있습니까? 안전한 콘텐츠 사각형을 계산하고 그 안에 캡션 배치를 제한하세요.
  3. 휘도 점검. 캡션 영역의 평균 휘도를 샘플링하세요 — 60 미만 → 밝은 텍스트가 그대로 읽힘, 60-180 → 글리프 스크림 추가, 180+ → 불투명 텍스트 + 스크림 (절대 맨 밝은 텍스트 사용 금지). Cinematic 템플릿은 크림+screen이며 LOCKED입니다 — 이 점검을 사용하여 _맞는 정체성을 선택_하세요 (밝은 장면 → ink, 또는 불투명 레일 anchor 테마), 절대 하나를 재색하지 마세요.
  4. 톤에 따른 정체성 추천 (당신이 추천하고 사용자가 선택 — 0단계 + CATALOG.md 참조). 설명/인터뷰/단어를 읽어야 함 → 레일/표면 정체성; 시적/소셜/"시네마틱" → 열 흐름 정체성; "炸 / 特效 / VFX" / 명명된 세계 → 테마 정체성. 확실하지 않을 때 → anchor (단어 읽힘, 장면 안전) — 하지만 후보 목록을 제시하고 사용자가 선택하게 하세요.

파이프라인 — 5단계

1. hyperframes init <project> --non-interactive --video <video.mp4> --skill=embedded-captions
2. bash scripts/prepare.sh <project>       # matte ∥ transcribe (병렬) → safe-zones. 하나의 명령.
                                           #   → frames_fg/ transcript.json safe-zones.json
3. [에이전트 단계 — 유일한 창의적 단계] 작은 JSON을 작성하세요; 모드별 아래 참조
   Cinematic: plan.json 작성 → node scripts/fill-timings.cjs → fit-fonts.cjs → make-composition.cjs
   Theme:     theme.json 작성 → bash scripts/render-theme.sh <project>   (컴파일 + 렌더 + 플레이트 효과)
4. node scripts/preview-frames.cjs <project>   # 약 2초/프레임 합성 미리보기 → § 시각적 QA (렌더 전에)
5. bash scripts/render-and-composite.sh <project>  # 게이트 → final.mp4 + history/ 스냅샷
   (Theme 모드: 3b/5단계 건너뜀 — render-theme.sh는 이미 컴파일 + 렌더-앤-컴포지트
    + _postfx.sh 실행; 결과물은 final_fx.mp4, final.mp4는 플레이트 반응 전)

1단계의 init는 설치된 스킬을 GitHub의 최신 스킬과 확인하고 오래된 것이 있으면 전역 세트를 업데이트합니다.

3단계는 모드에 따라 다릅니다:

3단계 — Cinematic 모드 (순수 임베디드)

  1. 먼저 safe-zones.json을 읽으세요. 내레이션 평면은 **zones.hugLeft/hugRight**에 배치됩니다 — 실루엣에 맞닿은 깨끗한 스트립 (몸에서 멀리 떨어진 텍스트는 임베디드가 아닌 떠 있는 것으로 읽힘; 먼 모서리는 기본값이 아닌 대체 수단). 영웅은 기본적으로 heroAnchor/heroBands.best (피사체에 중앙, ~30–55% 가림). recommendation:"fg"는 가독성을 위해 내레이션을 앞으로 이동시킵니다; heroBands.feasible일 때마다 영웅은 임베디드 상태 유지 — hero-fg는 최후의 수단입니다.
  2. DNA는 당신이 선택한 정체성입니다

[나머지 생략 - 번역 제한으로 인해]

Individual skills in this repo

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

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

heygen-com/hyperframes

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

관련 스킬