플러그인 설치: 설정 또는 갱신 명령 전에, 이 스킬이 HyperFrames 플러그인 내부에 있을 경우 플러그인 실행 규칙을 따르세요. 독립 실행형 설치는 아래 업데이트 지침을 유지합니다.
HyperFrames CLI
프로젝트 지침에서 래퍼를 제공하지 않는 한, 명령어는 npx hyperframes ...로 실행하세요. 래퍼가 있으면 이를 따르세요. CLI는 Node.js 22 이상과 FFmpeg가 필요합니다.
개발 루프
- 스캐폴드:
npx hyperframes init <project>(중앙 정렬 빈 프로젝트). 또는 사이트를 캡처합니다.--example=<이름>은 명명된 예제에서 시작할 때만 전달하세요. - 방법 찾기: 요청이 자산, 사운드, 이미지, 음성 또는 빠른 시각적 편집을 지정하는 경우, 계획을 제안하기 전에
/media-use를 통해 해결하세요. 그렇지 않다면, 직접 모션을 작성하기 전에 이미 이를 수행하는 프리미티브가 있는지 검색하세요:npx hyperframes catalog --query "한 줄씩 제목 공개". 염두에 둔 메커니즘보다 원하는 효과를 요청하세요.npx hyperframes add <이름>으로 설치하세요 (/hyperframes-registry참조). 맞는 것이 없을 때만 직접 작성하세요. - 작성:
/hyperframes-core를 사용하여 컴포지션을 작성하세요. 프로젝트 타임라인(트랙, 클립, 시작, 종료, 재생 내용)을 알기 위해index.html과 모든 하위 컴포지션 파일을 읽는 대신npx hyperframes timeline --json을 실행하세요: 중첩된 행에는 절대 메인 타임라인absStart/absEnd와 소유file이 포함되며, 로컬 하위 컴포지션 시간만 있는 것이 아닙니다. 텍스트 형식보다--json을 선호하세요. 동일하거나 더 나은 정확성을 위해 더 적은 토큰을 소비합니다. 전체 출력을 읽지 않고 일반적인 질문에 답하는 한 줄짜리는references/upgrade-info-misc.md를 참조하세요. - 편집 중 빠른 피드백 받기: 첫 번째 HTML 패스 후와 구조적 변경 후에
npx hyperframes lint를 실행하세요. - 최종 게이트 실행:
npx hyperframes check를 실행하세요. 브라우저를 열기 전에 lint를 다시 실행합니다. 불필요한 독립 lint 호출을 앞에 추가하지 마세요. 주석이 달린 개요 프레임과 크롭 찾기를 위해--snapshots를 추가하세요. - 하위 컴포지션 검사:
index.html이data-composition-src를 마운트할 때 중간점 스냅샷을 캡처하고 각 마운트된 씬을 검사하세요. - 최종 Studio 미리보기 열기:
npx hyperframes preview --background를 실행하고, URL이 HTTP 200을 반환하는지 확인한 후 타임라인 프로젝트 URL을 사용자에게 전달하고 수정 또는 렌더링할 것인지 물어보세요. 검토가 끝날 때까지 계속 살려두세요. - 승인 후에만 렌더링: 반복 중에는
--quality draft를, 첫 번째 실제 인코딩에는--quality looks(CLI 기본값)를, 최종 전달에는--quality delivery를 사용하세요. - 출력 확인: 파일이 존재하고 비어 있지 않은지 확인하세요. 렌더링 요약의 두 번째 줄(
beginframevsscreenshot, GPU, 단계 타이밍)을 읽으세요. Linux에서screenshot+software gpu는 느린 경로입니다.ffprobe -v error -show_format -show_streams를 실행하고 지속 시간(및 브리핑이 설정한 경우 fps)을 루트data-duration과 비교하세요.
턴 내 프로젝트 히스토리
프로젝트에 대한 모든 쓰기는 취소 가능한 항목으로 유지됩니다. 모든 단계가 아닌 두 순간에만 사용하세요:
- 턴 시작:
npx hyperframes history begin --who <당신의-이름> --label "<하려는 작업>", 그런 다음npx hyperframes history --since mine --who <당신의-이름>을 실행하여 마지막 턴 이후 상대방이 변경한 사항을 확인하세요. 상대방의 편집을 기반으로 구축하고 덮어쓰지 마세요. - 검사 실패 또는 상대방이 더 나빠졌다고 말할 때:
npx hyperframes history undo --who <당신의-이름>은 당신의 최신 턴을 취소하고 상대방의 편집 내용은 그대로 둡니다. 수동으로 되돌리지 마세요. 충돌 시 종료 코드 2로 종료하고 두 선택지를 모두 출력합니다.
각 턴을 npx hyperframes history end로 종료하여 쓰기가 "앱 외부에서 변경됨"이 아닌 당신의 것으로 읽히도록 하세요. 턴이 열려 있는 동안 프로젝트에 대한 모든 쓰기는 10분 동안 쓰기가 없을 때까지 당신의 것으로 간주됩니다. 그 후 턴은 자동으로 종료됩니다.
필수 제작자-편집 상호 참조
- 확대/축소, 펀치 인/아웃, 재구성, 카메라 이동 또는 키프레임 모션을 작성하거나 진단하기 전에 먼저
/hyperframes-keyframes를 읽으세요. hyperframes keyframes전에/hyperframes-keyframes를 읽으세요. 이 명령어는 애니메이션 궤적을 표시하며 클립 컷을 진단하지 않습니다.- 컷, 트림, 스플라이스, 재정렬 또는 소스 타이밍 편집의 경우
/hyperframes-core를 읽고 해당 클립/타임라인 계약을 사용하세요. - 페이드 인/아웃, 크로스페이드, 트랙 게인, 볼륨 자동화, 덕킹, 음성 해설 컷 또는 배치된 오디오에 대한 FX의 경우
/hyperframes-audio를 읽으세요. 클립 배치나 그림 타이밍도 변경될 때 함께 코어를 로드하세요. - 자산, 사운드, 이미지, 음성 또는 빠른 시각적 편집을 지정하는 요청은 계획이 제안되기 전에
/media-use를 통해 해결됩니다. 제작자 편집 마크업은/hyperframes-core→references/creator-editing-recipes.md에서 복사하세요.
# 빠른 반복 검사; 작성 중 필요에 따라 반복하세요.
npx hyperframes lint
# 필수 최종 게이트; lint를 포함합니다.
npx hyperframes check
npx hyperframes preview --background
npx hyperframes render --quality looks --output out.mp4
test -s out.mp4
ffprobe -v error -show_format -show_streams out.mp4
check는 먼저 lint를 실행한 다음, 하나의 브라우저 세션과 하나의 탐색 패스를 사용하여 런타임 오류, 실패한 요청, 레이아웃, *.motion.json 어설션 및 WCAG 대비를 감사합니다. 지속적인 발견 사항은 게이트 종료 코드를 제어합니다. 일시적인 진입 또는 종료 발견 사항은 정보 제공용입니다. 경고를 게이트하려면 --strict를 사용하세요. validate, inspect, layout은 호환성을 위해 계속 별칭으로 남아 있지만 새 명령어나 스크립트에는 나타나서는 안 됩니다.
렌더링 전 미리보기
check가 통과한 후에만 최종 컴포지션 미리보기(#project/<이름>)를 열어 조합된 타임라인을 검토하세요. 채팅의 계획과 storyboard.html 스케치 시트는 최종 비디오에 대한 승인이 아닙니다. 렌더링은 항상 hyperframes/references/review-loop.md에 정의된 최종 승인이 필요합니다.
하위 컴포지션 스모크 테스트
정적 감사는 모든 마운트 실패를 잡을 수 없습니다. 프로젝트가 하위 컴포지션을 사용하는 경우 각 호스트 슬롯에 대해 적어도 하나의 보이는 중간점을 캡처하세요:
npx hyperframes snapshot --at <t1>,<t2>,<t3>
매우 작은 스타일 없는 콘텐츠, 캔버스 크기 아이콘, 누락된 히어로 요소 또는 타임라인 등록 시간 초과를 렌더링 차단 마운트 결함으로 처리하세요. 해당 수정 사항은 hyperframes-core/references/sub-compositions.md를 참조하세요.
에이전트 규칙
-
모션을 직접 작성하기 전에 카탈로그를 검색하세요.
npx hyperframes catalog --query "<비트를 평범한 영어로>". 검색은 완전히 로컬에서 이루어집니다. 호스팅 계층이 없고, 계정이 없으며, 쿼리 텍스트가 전송되지 않습니다. 기본적으로 항목의 이름, 제목, 설명 및 태그와 공유되는 어휘를 기준으로 순위를 매기므로 카탈로그 자체의 표현을 재사용하지 않는 모든 문구를 놓칩니다. 대신 의미별로 순위를 매기려면--on-device를 추가하세요 (아래 오프라인 계층 참조). -
비디오가 영어가 아닌 경우에도 영어로 쿼리하세요. 두 계층 모두 영어 카탈로그를 인덱싱하므로 다른 문자로 된 쿼리는 검색 가능한 용어를 생성하지 않으며 아무것도 반환하지 않습니다. 동작을 영어로 설명하세요. 화면상의 텍스트는 비디오에 필요한 언어로 유지됩니다.
No searchable words in query는 정확히 이것을 의미하며 누락된 구성 요소가 아니므로 카탈로그 격차로 보고하지 마세요. -
어떤 계층이 응답했는지 읽고, 결과가 나타난다고 추론하지 마세요.
--json을 사용하면 봉투에query,tier(on-device또는words),tier_detail,dropped,unindexed,shown,total및results가 포함되며, 응답 계층이 생성하는 경우top_score와, 계층이 요청되었지만 실행할 수 없거나 검색이 아무것도 반환하지 않았지만 더 나은 계층이 누군가의 동의를 기다리고 있을 때warnings가 포함됩니다.words에서 약한 결과는 예상됩니다.on-device에서 동일한 결과는 버그입니다.top_score는 온디바이스 전용이며 그 뒤에 임계값이 없습니다: 순위 지정자는 모든 쿼리에 대해 어떤 순서로든 전체 카탈로그를 반환하므로 패스 또는 실패가 아닌 증거로 읽으세요. -
dropped와unindexed는 레지스트리와 온디바이스 인덱스 사이의 반대되는 편향이며, 쿼리를 바꾼다고 해결되지 않습니다.dropped는 이 레지스트리가 설치할 수 없는 순위가 매겨진 이름을 계산하므로 가장 강력한 일치 항목이 손실되고 있습니다.unindexed는 인덱스가 전혀 볼 수 없는 레지스트리 동작을 계산하며, 어떤 쿼리도 반환할 수 없습니다. 레지스트리 새로고침은 이에 대한 해결책이 아닙니다. 매니페스트에는 24시간 TTL이 있으며 자체 치유되는 반면, 벡터는~/.hyperframes/catalog/로 가져온 별도로 게시된 아티팩트입니다.unindexed가 0보다 크면--on-device를 다시 실행하면 해당 인덱스를 다시 가져오므로 이것이 사용자에게 제공할 치료법입니다. 순수한 과잉 적용 범위 편향(dropped가 0보다 크고unindexed가 0)은 다시 가져오기를 트리거하지 않습니다.~/.hyperframes/catalog/를 지우는 것이 유일한 방법입니다. 두 카운트 모두 결과 수가 아닌 이름 수이므로 둘 다total을 초과할 수 있습니다. -
검색 결과에 설치할 가치가 있는 것이 없을 때, 그렇게 말하세요.
npx hyperframes feedback --search-miss "<실행한 쿼리>" --wanted "<필요했던 동작>" --tier <응답한 계층>. 이 줄을 조립할 필요가 없습니다:catalog --query가 미리 채워서 출력하며, 모든--json검색 봉투에는 쿼리와 계층이 이미 올바른report_gap이 포함되어 있습니다.--wanted를 입력하고 보내세요. 이것이 쿼리를 어디든 보내는 유일한 경로이며, 일반catalog --query가 아무것도 보내지 않겠다는 약속을 지키도록 하는 정확히 별도의 의도적인 명령어입니다. 어느 계층이든 보고하세요. 결과가 작업을 수행하지 못할 때마다 보고하세요. 온디바이스 계층이 필요로 하는 동의된 33 MB 다운로드를 기다리지 마세요. 이는 대부분의 에이전트 실행에서 꺼져 있기 때문입니다. 계층이 보고서에 함께 포함되므로, 어휘 누락과 의미 누락이 어떤 것인지 직접 판단할 필요 없이 구별 가능합니다. 돌아오는 것은 카탈로그에 아직 없는 동작 목록으로, 설치 횟수에서 추측한 것이 아니라 직접 읽은 것이므로 중요한 표현은 당신이 상상한 항목 이름이 아니라 당신이 원했던 효과입니다. 등급을 포함하지 않으며 등급 측정항목에 절대 포함되지 않습니다. -
오프라인 계층을 제안하세요. 절대 조용히 활성화하지 마세요. 일회성 약 33 MB 다운로드(
bge-small-en-v1.5의 양자화된 ONNX 빌드와 토크나이저, 고정 개정판에 고정됨)와 레지스트리의 카탈로그 벡터, 둘 다~/.hyperframes/아래에 캐시되며 프로젝트나 패키지에 추가되지 않습니다. 캐시되면 아무것도 전송하지 않고 의미별로 순위를 매깁니다. 크기를 말하고 사용자가 결정하게 한 다음, 동의하면--on-device(프롬프트를 건너뛰려면-y와 함께)를 전달하세요. 대화형 제안은 TTY에서만 실행됩니다.--json에서는 프롬프트가 없지만, 아무것도 찾지 못한 검색은warnings에 동일한 요청을 넣으므로 해당 배열을 읽고 스스로 사용자에게 결정을 맡기세요. 사용자가 다운로드가 무엇인지, 왜 이 모델인지, 또는 무엇이 머신을 떠나는지 물으면 https://hyperframes.heygen.com/developers/catalog-search로 안내하세요. -
에이전트 및 CI 호출에는
--json을 선호하세요. 서버 모드render,preview,play는 일반 JSON 출력을 제공하지 않습니다.preview --selection --json및preview --context --json은 쿼리 모드 예외입니다. -
doctor --json은 항상 종료 코드 0으로 종료됩니다. 페이로드를 조건으로 검사하세요:npx hyperframes doctor --json | jq -e '.ok' >/dev/null -
비 TTY 모드는 자동이며 중앙 정렬 빈 프로젝트를 스캐폴드합니다. 명명된 예제에서 시작할 때만
--example을 전달하세요. TTY에서 플래그 전용 모드를 강제하려면--non-interactive를 사용하세요. -
동일한 확인 루프의 모든 명령어에 대해 하나의
HYPERFRAMES_RUN_ID를 사용하세요. -
디스크 공간이 부족하면
npx hyperframes clean을 실행하세요 (먼저 나열하려면--dry-run). 죽은 렌더링이 남긴 것과 스스로 재구축되는 유휴 캐시, 출력물, 소스 또는 실행 중인 렌더링이 사용하는 것을 제거합니다. QC 프레임을 프로젝트가 아닌 임시 디렉토리에 쓰세요. -
해당 경고, 변수 또는 CI 조건이 렌더링을 게이트해야 하는 경우
--strict,--strict-all및--strict-variables를 사용하세요. -
JSON 경로는 홈 디렉토리를
$HOME으로 숨깁니다. 숨김을 되돌리려고 하지 마세요. -
호스팅된 클라우드 프로젝트가 200 MB 업로드 제한에 근접하거나 초과하는 경우,
cloud render --dry-run --json을 사용하고references/cloud.md의.hyperframesignore조사를 따르세요. 자산이 단지 크다고 해서 절대 무시하지 마세요. -
검사가 통과했다고 해서 렌더링하지 마세요. 최종 미리보기에서 멈추고 승인을 기다리세요.
Studio 지시 편집
사용자가 "이 요소" 또는 현재 선택 영역을 참조하는 경우, 추측하는 대신 Studio를 쿼리하세요:
npx hyperframes preview --context --json --context-fields selection
가능할 때는 selection.target.hfId를 사용하고, 그렇지 않으면 해당 선택자와 소스 파일을 사용하세요. 결과가 no-selection을 보고하면 사용자에게 요소를 클릭하고 다시 실행하도록 요청하세요. 필요한 컨텍스트 조각만 요청하세요. 계산된 스타일이나 편집 가능한 텍스트 메타데이터에만 --context-detail full을 사용하세요. 전체 동작 및 실패 코드는 references/preview-render.md에 있습니다.
렌더링 선택
| 필요 | 명령어 |
|---|---|
| 빠른 로컬 반복 | npx hyperframes render --quality draft |
| 첫 번째 실제 인코딩 | npx hyperframes render --quality looks --output out.mp4 |
| 최종 로컬 전달 | npx hyperframes render --quality delivery --output out.mp4 |
| 재현 가능한 컨테이너 렌더링 | npx hyperframes render --docker --strict --output out.mp4 |
| 로컬 변수 기반 배치 렌더링 | npx hyperframes render --batch rows.json --output "renders/{name}.mp4" |
| HeyGen 호스팅 제로 인프라 렌더링 | npx hyperframes cloud render |
| 자체 관리 분산 AWS 렌더링 | npx hyperframes lambda render |
| Google Cloud Run 렌더링 | npx hyperframes cloudrun render |
|---|
공유된 품질 보증 검사, 플래그, 명명된 출력, 그리고 모든 클라우드 변형을 위한 HYPERFRAMES_RUN_ID는 references/rendering.md의 완전한 참조에 설명되어 있습니다. 프로덕션 설정, 동시성 제한, 콜드 스타트 완화 및 오류 복구 전략은 해당 파일을 참조하세요.
후속 조치 지원
자체 진단
# 환경 확인 (출력 없음, 종료 코드만 있음)
npx hyperframes doctor --json | jq -e '.ok'
# 특정 도구 확인
npx hyperframes doctor --check ffmpeg
모든 저장된 환경 진단을 보려면 npx hyperframes doctor --all을 사용하세요.
캐시 및 아티팩트 정리
# 디스크 사용량 분석
npx hyperframes doctor --disk-usage
# 죽은 렌더링 및 캐시 정리
npx hyperframes clean --dry-run
npx hyperframes clean
클라우드 자산 문제 해결
# 클라우드 업로드 문제 진단
npx hyperframes cloud build --verbose
# 제외 규칙 확인
npx hyperframes cloud check --json
일반 최종 승인 프로토콜
사용자가 승인할 때까지 최종 렌더링을 절대 시작하지 마세요. 아래 의사 결정 트리를 따르세요:
- 구문 분석 – 요청을 이해합니다.
- 카탈로그 검색 – 수동 코딩보다 카탈로그를 검색하세요.
- 피드백 보고 – 누락된 동작을 보고하세요.
- 자산 해결 – 미디어 자산을
/media-use를 통해 해결하세요. - 인라인 문서 읽기 – 참조를 읽으세요.
- 명령 실행 – CLI 명령어를 실행합니다.
- 반복 – 승인에 도달할 때까지 위 단계를 반복합니다.
- 렌더링 – 최종 승인 후에만
hyperframes render를 실행합니다.