Communitygithub.com

robertomanfroi/videos-opus

게이트웨이 스킬: 휴대폰으로 촬영한 동영상을 Reel로 편집합니다. 사용자가 '이 영상 편집해 줘', '릴 만들어 줘', '내 비디오 변환해 줘' 등으로 요청하거나, 영상 경로를 붙여넣거나, 편집 방법을 물을 때 사용합니다. 영상을 자동으로 찾고, 적합성을 확인하고, 스타일을 한 번 묻고, 해당 스타일 스킬(estilo-celular, estilo-editorial, estilo-explicativo, estilo-colagem, estilo-anuncio)에 위임한 후 완성된 영상을 'prontos' 폴더에 제공합니다.

videos-opus란 무엇인가요?

이 스킬은 사용자가 휴대폰으로 촬영한 영상을 Reel 형식으로 편집하는 완전한 워크플로우를 제공하는 게이트웨이 역할을 합니다. 사용자는 복잡한 폴더 구조나 명령어를 알 필요 없이 자연어로 요청하기만 하면 됩니다. 스킬은 자동으로 최신 영상을 찾고, 3분 이상인 경우 사용자에게 알리며, 요청에 가장 적합한 편집 스타일(셀룰러, 에디토리얼, 설명형, 콜라주, 광고)을 추론합니다. 프리미엄 비주얼 표준(윤곽선, 섬광, 흔들림 없음)을 모든 스타일에 적용하며, 선택적으로 프린트 화면을 추가할 수 있습니다. 편집이 완료되면 사용자 정의 프로필을 기반으로 컷의 이유, 사용된 자료, 의문점을 포함한 최종 응답을 생성합니다. 또한 '조정' 워크플로우를 통해 기존 결과물을 수정할 수 있으며, 각 요소(자막 위치, 특정 구간 제거, 프린트 변경)가 독립적으로 수정 가능합니다. Claude Code, Cursor, Codex 등의 AI 어시스턴트와 함께 사용하도록 설계되었습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/robertomanfroi/videos-opus/tree/HEAD/kit/.claude/skills/editar

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

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

문서

편집 — 게이트웨이

사용자는 폴더, 경로, 터미널에 대해 알 필요가 없습니다. 그녀는 휴대폰으로 촬영하고, 컴퓨터(다운로드, 바탕화면, WhatsApp Web, Google Drive…)로 영상을 옮긴 후 포르투갈어로 여러분과 대화합니다. 그녀가 보는 모든 것은 응답과 완성된 영상입니다. 짧고, 간단한 포르투갈어로, 전문 용어 없이 말하세요.

M=.claude/skills/_motor · K = videos-opus 스킬 실행기: "<VO>\bin\node.exe" "<VO>\scripts\video.mjs" kit, 여기서 <VO>는 videos-opus 스킬 폴더입니다(이 가이드를 읽도록 한 SKILL.md가 있는 폴더). 실행기는 경로에 휴대용 프로그램을 추가하고 킷 작업 폴더에서 모든 것을 실행합니다($K pasta로 확인). 이 가이드의 경로(video-projects/…, prontos/…, perfil.json)는 해당 폴더를 기준으로 합니다: 파일을 읽거나 편집하려면 이 경로와 결합하세요. $K --em <하위폴더> …는 하위폴더 내에서 실행됩니다. npx, Python, 또는 분리된 node는 사용하지 않습니다: 모든 것은 $K를 통해 실행됩니다.

프리미엄 비주얼 표준(필수, 모든 스타일에 적용): 글자에 외곽선 절대 사용 금지, 광선/나선, 불꽃, 흰색 플래시 또는 떨림 금지; 부드러운 그림자 또는 어두운 베일로 가독성 확보; 느리고 부드러운 움직임; 은은한 사운드. 세부 사항은 videos-opus 스킬의 SKILL.md에 있는 "프리미엄 비주얼 표준" 섹션 참조. 이는 스타일 가이드의 내용보다 우선합니다.

단계 0 — 재개 또는 조정?

새 영상을 찾기 전에 상태를 확인하세요:

  • 조정 요청("…부분 빼 줘", "자막 바꿔 줘", "마지막 영상") → prontos/ULTIMO.json을 읽습니다: 마지막으로 전달된 영상의 slug와 프로젝트가 나와 있습니다. 해당 프로젝트의 조정으로 바로 이동합니다.
  • 최근 24시간 내에 수정된 video-projects/*/projeto.json에서 etapa가 entregue와 다른 경우 → "<slug>(이)라는 영상이 <etapa> 단계에서 중단되었습니다. 계속하시겠습니까?"라고 묻습니다. 예인 경우 해당 단계부터 재개합니다.
  • 진행 중인 렌더링(video-projects/<slug>/renders/progresso.json에서 fase: renderizando) → $K node $M/renderizar.mjs <slug> --esperar 실행.

단계 1 — 영상 찾기

사용자가 말한 경우실행
경로 붙여넣기(따옴표 포함 또는 미포함)$K node $M/achar-video.mjs "<경로>"
"내 마지막 영상", "방금 보낸 것", 또는 아무 말 없음$K node $M/achar-video.mjs --ultimo
"어떤 영상인지 맞춰 봐?", 또는 이전 실행에서 여러 개가 나온 경우$K node $M/achar-video.mjs

JSON {ok, video, motivo, aviso, confirmar, candidatos[], checks{}}를 읽으세요:

  • ok: true이고 confirmar: false인 경우 → video로 진행합니다(스크립트가 이미 meus-videos/에 복사본을 저장했습니다). 한 줄로 확인: "IMG_2041.mp4 찾았습니다, 오늘 14:02, 3분 — 편집 중."
  • ok: true이고 confirmar: true인 경우 → 시간 소모 전에 물어보세요: "이 영상인가요: IMG_2041.mp4, 어제 14:02에 수신, 3분?" (meus-videos에 없거나 2시간 이상 전에 도착한 영상 — Downloads의 WhatsApp 영상일 수 있음).
  • aviso(3분 이상 영상) → 말하고 어떤 부분을 사용할지 물어보세요; Reel은 최대 90초입니다.
  • motivo: "vários candidatos; escolher"인 경우 → 최대 4개의 candidatos를 이름, 날짜/시간, 크기와 함께 보여주고 질문합니다. 그런 다음 선택한 경로로 다시 실행하세요.
  • motivo: "nenhum vídeo recente encontrado"인 경우 → 설명: "새로운 영상을 찾을 수 없습니다. 휴대폰에서 컴퓨터로 영상을 옮기고(예: WhatsApp Web으로 자신에게 보내고 다운로드; Downloads에 저장됩니다) 알려주세요, 또는 파일 경로를 여기에 붙여넣으세요."
  • 다른 motivo(소리 없음, 가로, 짧음, 도착 중, 공간 부족) → 한 문장으로 이유를 반복하고 중단하세요. 가로 영상: 세로로 다시 촬영하도록 제안하세요. 적합하지 않은 영상에 분석 시간을 소비하지 마세요.

스크립트는 이미 다운로드가 완료될 때까지 파일 크기가 증가하는 것을 기다립니다. 우회하지 마세요.

단계 2 — 스타일

요청을 이해하세요:

사용자 말스타일스킬
셀룰러, 날것, "인스타그램에서 편집한 것 같아", 자연스러움, 단순함, 스타일 언급 없고 영상은 그녀가 말하는 것셀룰러estilo-celular
에디토리얼, 잡지, 고급스러움, 우아함, "편집된 느낌", 세리프체에디토리얼estilo-editorial
설명형, 뉴스, 설명, "위에 이미지 있는", 교훈적설명형estilo-explicativo
콜라주, 오려내기, 오려낸 사진, 스크랩북콜라주estilo-colagem
광고, ad, 트래픽, 스폰서, 판매, 제안광고estilo-anuncio

사용자가 말하지 않았고 추론할 수 없는 경우, 한 번만 물어보고 카탈로그를 5줄(이름 + 1문장)로 보여주세요. 해당 스타일의 스킬이 이 설치에 아직 존재하지 않는 경우, 그 점을 알리고 셀룰러 스타일을 제안하세요.

단계 3 — 프로필

킷 작업 폴더에서 perfil.json을 읽으세요. 존재하지 않거나 nome/usuario가 누락된 경우, .claude/skills/perfil-criadora.md를 따라 모든 것을 한 번에 물어보세요. 계속하기 전에 저장하세요.

단계 4 — 추가 사항(의미 있는 경우에만)

  • 프린트(기본값: 프린트 없음). 영상이 결과, 숫자, 댓글, 게시물 또는 프로필에 대해 이야기하는 경우, 지금, 분석 전에 한 줄로 물어보세요: "영상에 프린트를 추가하시겠습니까? 지금 바탕화면의 내 프린트 폴더에 넣어주세요; 그렇지 않으면 추가하지 않고 진행하며, 나중에 요청하실 수 있습니다." 응답 없이 기다리지 마세요: 응답이 없으면 프린트 없이 진행하고 전달 시 조정으로 제안하세요. 이는 스타일 스킬이 정확한 화면을 요청하라고 말하는 것보다 우선합니다. 최대 12개의 가장 최근 프린트만, 연락처 시트 형식으로 확인하세요.
  • 광고: 제품/제안과 CTA를 하나의 질문으로 물어보세요.
  • 프린트, 숫자, 로고 또는 사용후기를 절대 임의로 만들지 마세요. 누락된 경우 정확한 화면을 요청하거나 생략하세요.

단계 5 — 위임

선택한 스타일의 SKILL.md를 읽고 처음부터 끝까지(프로젝트 → 컷 → 확인 → 프린트 → 구성 → 스냅샷 → renderizar.mjs) 흐름을 따르세요. 프로젝트 slug: 주제의 2-4개 단어, 소문자, 하이픈 사용(duas-noites-engrene). novo-projeto에서 이름이 이미 존재한다고 말하면, 제안하는 이름을 사용하세요(-2).

각 느린 단계 전에 한 줄: "분석 중 — 몇 분 정도 걸릴 수 있습니다." / "최종 영상 렌더링 중…". 콜라주 스타일: 가장 오래 걸린다고 미리 알리고(사람 오려내기 + 렌더링: 그래픽 카드가 없는 PC에서 40분 이상 소요 가능) 계속할지 또는 셀룰러를 선호하는지 물어보세요. 오려내기는 백그라운드에서 실행하세요.

단계 6 — 전달

이전 단계의 renderizar.mjs는 이미 확인, 렌더링, 검증 및 prontos/와 바탕화면의 편집된 영상 폴더로 복사합니다 — prontos.mjs를 다시 실행하지 마세요. 코드 3으로 종료된 경우, --esperar를 실행하여 PRONTO가 나타날 때까지 기다리세요.

최종 응답, 3~5줄:

  1. 위치: "완료! 편집된 영상 폴더, 바탕화면에 duas-noites-engrene-2026-10-09.mp4(65초)로 저장되었습니다."
  2. 컷한 내용: 일시 정지, 반복, 제외된 구간(초 단위가 아닌 그녀의 언어로).
  3. 사용한 자료: 프린트 및 제목.
  4. 의문점: 분석 도구가 잘못 인식했을 수 있는 이름, 확실하지 않은 구간.
  5. 조정 방법: "무언가 바꾸시겠습니까? 예: '가격 부분 빼 줘' 또는 '자막을 더 아래로'."

영상을 게시, 전송 또는 삭제하지 마세요. 원본은 원래 위치에 남아 있습니다(킷의 meus-videos/에 복사본).

조정(전달 후 사용자가 돌아온 경우)

사용자가 요청한 부분만 수정하고, prontos/ULTIMO.json의 프로젝트(또는 사용자가 지정한 프로젝트)에서 $K node $M/renderizar.mjs <slug>로 한 번 렌더링하세요. 빠른 맵:

요청수정 대상재실행
구간 제거/단축assets/keeps.json컷 → 분석 → 조립 → 렌더링
자막 더 위/아래reel.json(capTop)조립 → 렌더링
프린트 또는 제목 교체/제거src/index.template.html조립 → 스냅샷 → 렌더링
자막 오타assets/caption-fixes.json({"틀린": "맞음"}, 대소문자/구두점 무관)조립 → 렌더링
다른 강조 단어assets/enfase.json(에디토리얼) / assets/emphasis.json(콜라주)조립 → 렌더링
다른 스타일다른 slug로 새 프로젝트모든 것

renderizar.mjs는 -v2, -v3 등으로 덮어쓰지 않고 전달합니다. 구간을 자른 후 요소의 시간이 변경됩니다: 조립 전에 ancoras.mjs로 다시 계산하세요.

Individual skills in this repo

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

관련 스킬