phone-reel-pipeline은(는) 무엇을 하나요?
Android → Instagram 릴 파이프라인입니다. 폰이 영상을 제공하고 (선택적으로 트렌드 영감도 제공), PC가 모든 편집을 수행하며, 완성된 릴을 다시 폰으로 보내 사용자가 직접 게시합니다. 이 스킬은 자매 스킬들을 조정합니다. 자체 스크립트는 없으며, 다른 스킬의 로직을 중복하지 않습니다. 한 번의 호출로 전체 체인을 실행합니다. 에이전트가 직접 폰의 잠금을 해제하고 (vault PIN, 사용자 조작 불필요) 영감이 필요한 경우 Edits 앱을 직접 탐색합니다.
이 저장소의 자매 스킬 — phone-reel-pipeline이 이들을 라우팅하므로 직접 구현하지 마세요. phone-media-bridge는 장치 연결, 키가드 잠금 해제, 미디어 가져오기/보내기를 담당합니다. ig-edits-inspiration은 Edits 앱 영감 (읽기 전용 캡처 및 잠금 해제된 폰의 자체 탐색)을 담당합니다. reel-maker는 PC 릴 제작을 담당합니다 (그리고 자체적으로 clip-picker 및 video-tool-router에 위임합니다. 여기서는 이 두 스킬을 직접 호출하지 마십시오). 각 단계 전에 상대 경로에 있는 자매 스킬의 SKILL.md를 읽으십시오. 해당 문서는 플래그, 경로 및 주의 사항에 대해 권위가 있습니다.
사용 시기
트리거: "휴대폰으로 엔드 투 엔드 릴", "내 휴대폰 영상으로 릴 만들어 줘", "휴대폰에서 릴로", "휴대폰에서 가져와서 릴 만들어 줘", 또는 장치 → PC → 장치를 한 번에 처리하는 모든 작업.
사용하지 말아야 할 경우:
- 순수 PC 편집 (영상이 이미 디스크에 있고 폰이 필요 없는 경우) → reel-maker를 직접 호출하세요.
- 영감만 필요한 경우 ("요즘 트렌드가 뭐야?", "이 편집의 로드맵", 아직 제작하지 않음) → ig-edits-inspiration을 직접 호출하세요.
- 게시: 항상 사용자가 폰에서 수동으로 합니다. 이 저장소의 어떤 스킬도 게시, 예약 또는 업로드하지 않습니다. 자동 게시는 명시적으로 거부되었습니다.
워크플로우
0단계 — 장치 확인 + 잠금 해제
adb devices -l을 실행합니다. 브릿지 스크립트 체인을 통해 adb를 찾습니다 (--adb 플래그, ADB 환경 변수, PATH, 그 다음 WinGet platform-tools 대체). 장치 목록이 비어 있으면 중지하고 다음 사용자 체크리스트를 출력합니다:
- 무선: 폰이 PC와 동일한 Wi-Fi에 연결되어 있고, 무선 디버깅이 켜져 있어야 합니다 (연결이 끊긴 경우 코드로 다시 페어링 +
adb connect <ip>:<port>). - USB: 데이터 전송이 가능한 케이블 (충전 전용 아님), 파일 전송(MTP) 모드, USB 디버깅 활성화, 폰에서 RSA 지문 프롬프트를 수락해야 합니다.
장치가 unauthorized로 표시되면 진행하지 마십시오. 사용자에게 폰에서 RSA 프롬프트를 수락하도록 요청한 후 adb devices -l을 다시 실행하십시오. 장치가 device로 표시될 때만 계속 진행하십시오. 그런 다음 자동 실행 (사용자 조작 불필요)을 위해 잠금을 해제합니다:
C:\Python314\python.exe %USERPROFILE%\GitHub\editor-pack\skills\phone-media-bridge\scripts\unlock.py
ALREADY_UNLOCKED → 진행합니다. VAULT_ENTRY_MISSING → vault 팝업을 통해 phone-1:password를 수집합니다 (python "%USERPROFILE%\.agents\skills\secure-vault\vault.py" gui --request "phone-1:password"), 그런 다음 다시 실행합니다. 전체 규칙은 phone-media-bridge 0b단계를 참조하십시오.
1단계 — 영감 (선택 사항, 사용자가 트렌드 기반 편집을 원하는 경우에만)
한 가지 질문을 합니다: 트렌드 기반 (Edits 영감) 또는 직접 제작 (참조 링크 또는 자유 형식)? 사용자가 트렌드 안내를 원하면 ig-edits-inspiration에 위임합니다. Edits 앱에서 캡처하고 (읽기 전용 캡처 선호, 해당 교리에 따라 잠금 해제된 폰에서 자체 UI 탐색 허용) reel-maker 형태의 레시피를 반환합니다. 해당 레시피는 3단계의 제작 사양이 됩니다. 사용자에게 직접 Edits를 탐색하도록 요청하는 것은 빠른 대체 경로이지 필수 사항이 아닙니다. 사용자가 요청하지 않은 경우 에이전트가 직접 실행합니다. 사용자가 영감을 건너뛰면 2단계로 바로 이동합니다. reel-maker 1단계는 이미 참조 링크를 수용하므로 사용자가 제공한 모든 링크는 변경 없이 함께 전달됩니다.
2단계 — 미디어 가져오기
phone-media-bridge에 위임합니다. 인벤토리 단계를 실행한 다음 사용자에게 폴더별 요약 (폴더 이름, 클립 수, 총 크기 — 전체 파일 덤프 아님)을 간결하게 보여주고 한 가지 질문 (다중 선택)을 합니다: 어떤 폴더/클립을 가져올까요? 그런 다음 가져오기 단계를 실행합니다. 가져온 영상은 skills\phone-media-bridge\scripts\phone_pull 정션 (실제 위치는 D:\EditorPackArchive)에 저장됩니다. 영상은 D: 드라이브에 유지됩니다. 편집기는 D: 드라이브에서 읽으며 C:로 복사하지 마십시오. 재개 가능: 가져오기 중간에 폰 연결이 끊어지면 가져오기 단계를 다시 실행하십시오. 주의 사항을 참조하십시오.
3단계 — PC 제작
1단계의 레시피 (또는 참조 링크)와 2단계의 영상 폴더를 사용하여 reel-maker 흐름을 호출합니다. reel-maker는 clip-picker + video-tool-router에 자체적으로 위임합니다. 여기서 해당 라우팅을 중복하지 마십시오. 명시적으로 전달해야 할 두 가지 사항: (a) 폰 영상은 종종 HEVC/HDR이므로 video-tool-router의 HLG 10비트 보호가 적용됩니다 (그레이딩/자막 입히기 전에 톤 매핑하지 않으면 색상이 바랠 수 있습니다). (b) HEVC 디코딩은 느리므로 3단계가 실행 시간을 지배할 것으로 예상하십시오 (clip-picker 주의 사항 참조).
4단계 — 다시 보내기 (승인 게이트)
중요 규칙: 이번 실행에서 사용자가 해당 파일에 대해 명시적으로 승인하지 않으면 절대로 폰으로 아무것도 보내지 마십시오. 3단계 완료가 폰으로 보내기 권한을 의미하지는 않습니다. 3단계가 끝나면 로컬 PC 경로, 길이, 크기를 보고하고 "폰으로 보낼까요?"라고 물은 후 '예'일 때만 진행하십시오. 포괄적인 "릴 만들어 줘" 명령은 절대 폰으로 보내기 승인으로 간주되지 않습니다.
승인되면 phone-media-bridge 보내기 단계 (push_reel.py)에 위임합니다. 완성된 reel_<name>_vN.mp4를 폰의 /sdcard/Movies/Reels/로 보냅니다. 파일이 장치에 있는지 확인하고 (adb shell ls) PC 복사본과 바이트 크기를 비교하여 보고합니다.
5단계 — 인계 (사용자가 게시)
phone-media-bridge 단계 중 폰에서 Instagram을 여는 단계를 실행합니다 (push_reel.py --open-app). 그런 다음 중지합니다. 사용자가 Instagram 앱에서 수동으로 게시합니다. 절대 자동 게시하지 마십시오. 명시적으로 거부되었습니다. 보고: 릴 경로 (폰 경로 + PC 경로), 버전 번호, 게시 전 확인할 사항 목록 (자막 읽을 수 있음, 오디오 있음, 올바른 화면 비율).
출력
- 폰의
reel_<name>_vN.mp4(/sdcard/Movies/Reels/) + PC 프로젝트 폴더에 보관된 복사본 (버전 관리됨, v1을 덮어쓰지 않음). - 엔드 투 엔드 상태 보고서: 단계별 통과 / 건너뜀 / 실패, 단계별 실제 소요 시간, 각 단계를 처리한 자매 스킬, 정직한 주의 사항 (아래 참조). 예시: 0단계 통과 (장치
<시리얼>, vault를 통해 잠금 해제, 5초) → 1단계 건너뜀 (사용자가 직접 제작 선택) → 2단계 통과 (3개 클립, 1.2GB, 4분) → 3단계 통과 (reel_<name>_v1.mp4, 22분) → 4단계 통과 (푸시 확인, 크기 일치) → 5단계 인계 완료 (Instagram 열림, 사용자가 게시할 예정).
주의 사항
- 새 클론 후 정션 누락:
skills\phone-media-bridge\scripts\phone_pull은D:\EditorPackArchive에 대한 정션이며 새 클론에서는 유지되지 않습니다. 2단계 전에 phone-media-bridge 문서에 따라 다시 생성하십시오. - 실행 중 폰 연결 해제: 가져오기는 재개 가능합니다 (가져오기 단계 다시 실행). 보내기는 재개 불가능합니다.
push_reel.py를 다시 실행하고adb shell ls로 다시 확인하십시오. - 실행 중 폰 재잠금:
unlock.py는 화면 켜짐 유지 + 30분 제한 시간을 설정하지만 재부팅 또는 수동 잠금은 키가드를 다시 활성화합니다.unlock.py를 다시 실행하고 (PIN은 vault에 유지, 사용자 조작 불필요) 계속 진행하십시오. - HEVC 디코딩은 느립니다 (clip-picker 주의 사항). 폰 영상의 접촉 시트 및 모션 스코어링은 H.264보다 오래 걸립니다. 미리 알리고 샘플링을 줄여 보상하지 마십시오.
- 절대 자동 게시하지 않음: Instagram 게시 흐름의 UI 자동화, 예약, 업로드가 없습니다. 사용자를 위해 앱을 여는 것이 마지막 자동화 단계입니다.
정직한 보고 규칙
- 각 단계별로 실제로 확인된 것과 가정된 것을 보고하십시오.
adb devices -l에서 장치 시리얼이 보임 ("폰 연결됨"이 아님), dumpsys를 통해 잠금 해제 확인 ("폰 열림"이 아님), 가져오기 바이트 수 일치 ("파일 복사됨"이 아님),adb shell ls+ 크기 일치로 푸시 확인, Instagram 열림 ("릴 게시됨"이 아님). - 단계가 건너뛰어진 경우 (예: 영감 없음) 명시적으로 말하고 출력이 존재한다고 암시하지 마십시오.
- 시간 측정 정직: 단계별 실제 소요 시간을 보고하십시오. HEVC 트랜스코딩/스코어링 시간은 실제 작업이며 숨겨야 할 오버헤드가 아닙니다.
- 품질 문제를 조용히 전달하지 말고 플래그를 지정하십시오. 흔들리는 선택, 색이 바랜 HDR, 빌린 오디오 재게시 제한 (reel-maker 5단계 규칙 적용).