Communitygithub.com

zz-mv-gongzuotai · MV 프로젝트 총괄

MV 프로젝트 총괄 스킬: 의뢰인의 가사/스토리 스크립트로 정적 workbench.html을 생성하고, MV 생성 음악 계획, 자산 목록, 표준 스토리보드 및 비디오 세그먼트 계획을 수립한 후, 음악, 자산 이미지, 비디오 세그먼트를 단계별로 생성하고 검토 후 재실행합니다. 최종 산출물은 각 MV별 로컬 디렉터리(음악/자산/비디오 세그먼트 + handoff)이며, 러프 컷과 최종 영상은 포함하지 않습니다. Key/잔액은 `mvwb` 명령어를 사용하며, 모델 프롬프트와 RunningHub/Router 사용법은 이 스킬의 `references/` 디렉터리에 있습니다.

zz-mv-gongzuotai · MV 프로젝트 총괄란 무엇인가요?

이 스킬은 MV 제작 프로젝트의 단일 진입점입니다. 의뢰인의 가사 또는 스토리 스크립트를 입력받아 정적인 `workbench.html` 대시보드를 생성하고, 이를 통해 전체 프로젝트의 진행 상황과 자산을 한눈에 파악할 수 있습니다. 스킬은 표준화된 4단계(원문 입력, 빈 작업대 생성, MV 텍스트 프레임워크 작성, 생성 및 검토)를 따르며, 각 단계마다 자체 검사와 사용자 확인 절차를 거쳐 품질을 보장합니다. Music(ACE), Assets(MOSS), Video(H3/Muse) 생성을 위해 사전 정의된 모델과 라우팅을 사용하며, RunningHub 및 Router API를 통해 비용을 관리합니다. 최종적으로는 각 MV에 대해 음악, 자산 이미지, 비디오 세그먼트를 포함한 로컬 디렉터리와 함께 편집 단계로 넘겨주는 handoff 파일을 생성합니다. 또한, 여러 MV를 동시에 생성할 때는 genome 기반의 차별화 규칙을 적용하여 동일한 캐릭터, 스토리, 음악 조합이 반복되지 않도록 합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhouchengke2046/mv-workbench/tree/HEAD

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

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

문서

zz-mv-gongzuotai · 단일 스킬의 MV 프로젝트 총괄

포지셔닝

  • 이 스킬은 전체 MV 프로젝트의 유일한 진입점입니다.
  • 작업대는 총괄 정보만 표시하며, 생성은 agent가 이 스킬의 scripts/를 호출하여 수행합니다.
  • 프로세스는 비디오 세그먼트까지입니다. 러프 컷, 편집, 최종 영상 제작은 하지 않습니다. 비디오 세그먼트 + handoff는 다음 단계(편집)에 전달됩니다.

명령어에서 mvwb는 설치된 글로벌 명령어를 의미합니다. ~/.local/bin이 PATH에 없으면 ~/.agents/skills/zz-mv-gongzuotai/start/mvwb를 사용합니다(설치 시 복사 및 실행 권한 부여). 여전히 사용할 수 없으면 python3 ~/.agents/skills/zz-mv-gongzuotai/scripts/mvwb.py를 사용합니다.

작업대와 Key (하드 규칙)

  • 작업대는 프로젝트 내 정적 workbench.html입니다. 더블 클릭하거나 브라우저에서 file://...로 직접 여세요. 백그라운드 서비스를 시작하지 마세요.
  • mvwb server, python -m http.server, 포트, 서비스 버전을 금지합니다. 작업대는 순수 조회 페이지이며 설정 진입점이 없습니다.
  • 사용자가 "작업대 열어줘"라고 하면: mvwb open [--workspace NAME]을 실행하며, 이는 로컬 HTML만 엽니다.
  • 초기에는 Router Key만 발급합니다. 학생은 교사가 보낸 zz-keys.json 파일을 프로젝트 루트 디렉터리에 넣습니다(보통 {"router": "..."}만 포함). agent는 mvwb keys import --file <프로젝트>/zz-keys.json --delete-source를 실행합니다. 한 번 가져오면 전역에 적용되며, 발급 파일은 가져온 후 삭제합니다.
  • Key는 작업대를 거치지 않습니다. 사용자는 zz-keys.json 가져오기, start/setup-keys.* 더블 클릭, 또는 터미널에서 mvwb keys set을 통해 처리합니다. agent는 mvwb keys import --file <path> --delete-source를 실행합니다. agent는 안내만 하고 Key를 요구하지 않습니다. 비대화형 환경에서는 keys set을 호출하지 마세요.
  • 예비 Key는 B001 알림을 통해 처리합니다. Router가 동일한 10분 내에 연속 3회 이상 실패하고 예비 키가 설정되지 않은 경우, agent는 B001 알림 블록을 생성합니다. 학생은 알림 원문을 교사에게 전달하고, 교사가 예비 zz-keys.json(runninghub/apimart 필드 포함) 발급 여부를 결정합니다. 발급 후 가져오면 활성화되고 잔액/작업대가 새로고침됩니다. agent는 mvwb keys watch를 사용하여 추가 대화 없이 처리할 수 있습니다.
  • 알림 형식은 통일됩니다: 모든 실패/차단/경고는 scripts/alerts.py(코드표는 references/alerts.md 참조)를 통해 전달되며, 학생은 알림 원문 전체를 그대로 전달하기만 하면 됩니다. "교사에게 예비 키 달라고 해"와 같은 직접적인 표현은 금지합니다. 예비 키는 항상 B001 알림을 통해 교사가 결정합니다.
  • Key는 DATA, HTML, 스크립트, 로그 또는 스크린샷에 기록되지 않습니다. 다운로드한 가져오기 파일은 가져온 후 반드시 삭제합니다. 사용자가 이미 Key를 대화창에 보낸 경우, 해당 Key를 무효화하고 다시 보내도록 안내합니다.
  • 잔액/비용은 Router(위안화)만 확인합니다. 상단에 Router 잔액만 표시하며, 모든 비용은 ¥으로 환산하여 DATA에 기록합니다(RunningHub 코인→CNY 환율은 config/models.json의 fx.rh_coin에 있으며 교사가 유지 관리합니다).
  • 파일 생성/교체 시마다: data.json 업데이트 → mvwb build → mvwb check --data ...를 수행합니다. check에서 누락이 보고되면 작업대에 표시되지 않으므로 완료로 간주할 수 없습니다.

최종 인도물

각 MV당 하나의 디렉터리이며, 음악, 자산, 비디오 세그먼트가 모두 포함됩니다.

workspaces/<project>/
├─ 原文/
│  ├─ lyric_original.md      의뢰인 가사 원문
│  ├─ story_script.md        의뢰인 스토리 스크립트 원문 (씬 분할 안 함)
│  └─ lyric.json             L01… 라인 번호 매핑
├─ workbench.html            프로젝트 작업대 (읽기 전용 표시 + 로컬 Key 가져오기)
├─ data.json                 작업대 데이터 소스 (agent 업데이트)
└─ MV001/
   ├─ mv_manifest.json       단계 상태/버전/비용
   ├─ 00_framework.md        음악/자산/세그먼트 계획
   ├─ 01_music/
   │  ├─ song_v1.mp3
   │  └─ timeline_v1.json    각 구절 시작/종료 시간 (세그먼트/인도용)
   ├─ 02_assets/
   │  ├─ assets_v1.json
   │  ├─ role_xxx.png
   │  ├─ scene_xxx.png
   │  └─ prop_xxx.png
   ├─ 03_segments/
   │  ├─ segments_v1.json    G1/G2… 현재 버전 + 히스토리
   │  ├─ G1_v1.mp4
   │  ├─ G1_v2.mp4           검토 재실행 히스토리
   │  └─ G2_v1.mp4 …
   └─ handoff_v1.json        편집자에게 전달할 목록

handoff_v1.json은 편집에 필요한 필드만 포함합니다.

{
  "mv_id": "MV001",
  "status": "ready",
  "segments": [
    {
      "segment_id": "G1",
      "line_ids": ["L01", "L02"],
      "music_start": 0.0,
      "music_end": 6.0,
      "duration": 6.0,
      "video_file": "03_segments/G1_v1.mp4",
      "model": "muse-video-ext",
      "resolution": "720x1280",
      "notes": "검토 통과한 현재 버전"
    }
  ]
}

실행 계약 (매 단계 필수)

자세한 입력/출력/자가 진단은 references/step-contract.md를 참조하세요. 각 단계는 고정된 다섯 가지 항목을 수행합니다.

단계먼저 질문 (없는 경우만)산출물자가 진단관문
0 초기화프로젝트명, 개수, 길이, 스타일, 비율, 예산workspace + data.json + workbench.htmlmvwb check = 0 누락파라미터 확인
1 원문가사/스크립트 파일原文/* + lyric.json줄 수/id 연속성/씬 미분할 확인원문 확인
2 빈 작업대배치 파라미터DATA + 정적 HTMLbuild + check + 더블 클릭 가능 확인작업대 확인
3 프레임워크검토 의견manifest + framework + segments길이/누락 구절/세그먼트 ≤ 10초프레임워크 확인 + 견적
4 생성지정 항목음악/자산/비디오 세그먼트/handoff파일 존재/길이/QA/타임라인 확인항목별 locked
  • 대화 출력은 「결론 + 산출물 경로 + 자가 진단 결과 + 확인 대기」 형식으로 통일하며, 전체 JSON을 붙여넣지 않습니다.
  • 자가 진단은 반드시 실제 실행하고 결과를 인용해야 합니다. 실패 시 현재 단계에 멈추고, 조용히 다음 단계로 넘어가지 않습니다.

네 단계

Step 1 · 원문

  1. 먼저 原文/, 甲方资料/, 输入/ 디렉터리에서 가사/스크립트를 찾습니다. 파일명에 歌词, lyric, 脚本, script가 포함되어야 합니다.
  2. 찾으면 읽기 전용으로 저장하며, 다시 쓰지 않고, 행을 나누지 않으며, "최적화"하지 않습니다.
  3. 찾지 못한 경우: 먼저 사용자에게 의뢰인 자료가 있는지 묻습니다. 없으면 제품/스토리/인물/스타일/길이/참고 항목을 기준으로 초안 작성을 안내합니다.
  4. 저장:
原文/lyric_original.md    노래 제목/벌스/코러스, 원문
原文/story_script.md      스토리 스크립트 원문, 씬 분할 안 함
原文/lyric.json          L01… 라인 번호 매핑

관문: 원문 확인. 사용자가 "문제없어/이 버전으로 할게"라고 말하면 잠금니다. 원문 수정 = 작업대 재시작.

Step 2 · 빈 작업대

mvwb init my_project          # 빈 프로젝트: 原文/ 빈 상태, mvs=[], workbench.html 생성됨
mvwb init demo_project --demo # 예시가 필요할 때: 전체 demo 복사
# workspaces/my_project/原文/ 채운 후 agent가 빈 작업대 생성

Agent는 templates/workbench.html + DATA.json을 사용하여 재구축합니다.

python3 scripts/build_workbench.py \
  --template templates/workbench.html \
  --data workspaces/my_project/data.json \
  --out workspaces/my_project/workbench.html

정적 작업대 열기:

mvwb open --workspace my_project

생성 후 멈추고 다음 항목을 묻습니다(없는 것만 물으며, 각 항목에 기본값 제공):

  1. 프로젝트 이름은 무엇인가요? 기본값: 고객명/날짜.
  2. 한 번에 몇 개를 생성하시겠습니까? 기본값: 1개 샘플 (처음에는 1–5개 권장).
  3. 각 항목의 길이는? 기본값: 30초 (15/30/45/60초).
  4. 스타일은 무엇인가요? 기본값: 참고 패키지 기준 (3D 픽사 / 실사 단편 / 일본식 치유 / 의뢰인 참고 영상).
  5. 비율은? 기본값: 9:16 세로 (1080×1920).
  6. 인물/장면/제품 참고 자료? 이미지가 있으면 이미지, 없으면 텍스트 설명.
  7. 예산 상한선? 제시되지 않으면 먼저 견적을 제시하고, 제출하지는 않습니다.

출력은 다음만 반환합니다. 산출물 경로 + 자가 진단 결과 + 이 7개 항목 확인. 관문: 배치 파라미터 확인. 이 단계에서는 비용이 발생하지 않습니다.

길이 계약 (사용자 목표 vs 음악 실제)

길이누가 정함용도
target_duration사용자가 Step 2에서 설정 (예: 45초)음악 요청 시간, MV 총 목표 길이, 예산/세그먼트 수, 프레임워크 계획
actual_duration / timeline_v1.json음악 생성 후 읽기스토리보드/비디오 세그먼트 실제 길이, Muse seconds, H3 프레임 수, handoff
  • 총 길이는 사용자 설정을 따릅니다. 음악 생성 시 target_duration을 ACE의 116:value에 전달합니다. 프레임워크의 총 길이, 세그먼트 수, 예산은 모두 이를 기준으로 계획합니다.
  • 각 세그먼트 길이는 음악 실제 길이를 따릅니다. 음악이 생성된 후 actual_duration과 구절별 timeline을 읽어 스토리보드/비디오 세그먼트의 duration을 업데이트합니다. 비디오 세그먼트는 계획된 길이가 아닌 실제 구절 길이에 따라 생성합니다.
  • 편차 처리: 실제와 목표 차이가 >1초 또는 >2%이면 일시 중지하고 사용자에게 '실제 길이 수락 / 음악 재생성 / 후반 편집' 중 선택하도록 합니다. 계획된 길이로 몰래 비디오를 생성하지 마세요.
  • 비디오만 있고 음악이 없는 경우: 먼저 target_duration으로 임시 계획을 세웁니다. 음악이 추가되면 모든 비디오 세그먼트를 stale로 표시하고 실제 타임라인에 따라 재실행합니다.
  • 이렇게 하면 사용자가 설정한 총 길이를 존중하면서도 화면과 음악이 구절별로 정확하게 정렬됩니다.

Step 3 · MV 텍스트 프레임워크

MV001…MV00N을 생성합니다. 각 항목:

  • 비율 기본값 9:16 세로 (작업대는 1080×1920 기준, Muse 출력은 720×1280). 사용자가 명시적으로 지정한 경우에만 변경합니다.

  • 먼저 genome을 작성합니다. cast_id/outfit_id/face_seed, story_id, music, visual, edit; 규칙은 references/variation.md 참조. 동일 배치 내 임의의 두 항목은 최소 3개 차원이 달라야 하며, 동일 역할+동일 복장, 동일 스토리 갈등, 동일 genre+BPM+vocal, 동일 장면 패키지는 금지됩니다.

  • 차별화 표를 출력합니다 (각 항목의 cast/story/music/visual/edit). 중복 조합이 있으면 중단하고, 풀(pool)의 다음 항목을 사용합니다. 작업을 시작하지 마세요.

  • mv_manifest.json: 모든 stages는 not_started, genome, cost/spent=0.

  • 00_framework.md: 음악 계획, 자산 목록, 표준 스토리보드, 비디오 세그먼트 계획. 여기의 duration은 계획값이며, target_duration을 총 목표로 합니다.

  • 자산 목록은 사용자 검토용입니다. 인물 삼면도/장면 빈 쇼트/소품은 이후 비디오 일관성을 확보하기 위한 것으로, 선택 사항이 아닙니다. 사용자에게 "자산 이미지가 없으면 각 비디오의 인물/장면이 일관되지 않습니다"라고 설명하세요.

  • 03_segments/segments_v1.json: 먼저 계획을 작성하고, videos: [].

  • DATA.mvs 업데이트: 음악/자산은 비어 있고, 스토리보드/세그먼트는 계획 있음; keys 스냅샷 유지.

사용자에게 프레임워크 요약을 보여줍니다.

프레임워크에 수정할 부분이 있나요? 어떤 MV, 어떤 샷, 어떤 구절을 수정할까요? 지목한 부분만 수정합니다.

관문: 프레임워크 검토 통과 + 생성 범위/견적 확인.

Step 4 · 생성 및 검토

4.0 사전 점검

mvwb keys status
mvwb keys import --file workspaces/my_project/zz-keys.json --delete-source
mvwb keys watch --timeout 600 --data workspaces/my_project/data.json
mvwb keys balance --data workspaces/my_project/data.json
mvwb quote --model muse-video-ext --seconds 2

Key 부족 / 잔액 부족 / 조회 실패: 중단. 견적 = 수량 × 단가. 사용자 확인 후 실행.

4.1 순서: 음악 → 타임라인 → 자산 → 비디오 세그먼트

단계명령어산출물
음악mvwb rh --app 2075301815628943362 ...01_music/song_v1.mp3
타임라인mvwb timeline ...01_music/timeline_v1.json
자산mvwb rh --app 2116462203997081601 ...02_assets/* + assets_v1.json
H3 영상mvwb rh --wf 2110943749894402050 ...03_segments/G*_v1.mp4
Muse 영상mvwb muse --prompt ... --seconds N --size 720x1280 --out ...03_segments/G*_v1.mp4
음악/자산 (Router)`tokentech_task.py musicimage ...(프로토콜은references/providers/router.md` 참조)
인도handoff_v1.json 작성편집자에게 전달
  • 음악을 먼저 잠급니다. 실제 duration/timeline을 읽은 후 세그먼트 길이를 업데이트합니다. 자산은 참고 패키지 기준, 비디오 세그먼트는 실제 구절 길이에 따라 개별 생성합니다.
  • 자산은 역할 카드를 기준으로 생성합니다. 역할 삼면도는 references/prompts/casting-style.md의 템플릿 + 스타일 패키지를 사용합니다. MOSS 규칙은 왼쪽 칸 얼굴, 가운데 칸 전신단, 머리가 완전히 프레임 밖으로 나가야 함, 오른쪽 칸 뒷면입니다. 각 역할은 먼저 4장의 후보를 생성하고, 1장을 선택한 후 잠급니다.
  • 동일 MV 내 역할 일관성: 모든 자산/비디오 세그먼트는 동일한 cast_id의 역할 카드와 outfit_id를 참조합니다. 갈아입기는 스토리상 필요한 경우에만 발생하며 기록됩니다.
  • MV 간 중복 금지: 동일 배치의 cast_id, 스토리, 음악, 장면 패키지는 genome에 따라 차별화합니다. 자산을 잠그기 전에 두 항목을 샘플링하여 "같은 사람이 옷만 바꿔 입고 새 MV"가 되는 것을 방지합니다.
  • 각 세그먼트에 대해 여러 개의 비디오를 생성할 수 있습니다. 현재 첫 번째, 히스토리에 G1_v2.mp4 추가.
  • 새 버전은 *_v{n+1}.json으로 작성하고, 이전 버전을 덮어쓰지 않습니다.
  • stages/status/spent 업데이트, DATA 재구축.
  • 재구축 후 반드시 자가 진단: mvwb build --data ... --out ... && mvwb check --data .... 누락 파일 수는 0이어야 하며, 그렇지 않으면 경로를 수정하거나 재생성합니다.
  • 페이지는 정적 file://이며, 상대 경로는 workbench.html이 있는 디렉터리를 기준으로 합니다. 수동으로 절대 경로로 변경하지 마세요.

4.2 검토 루프

생성이 완료되었습니다. 어떤 부분을 수정할까요? 어떤 MV, 어떤 비디오 세그먼트, 어떤 이미지/노래를 수정할까요?

  • 지목된 항목만 재실행. 새 버전 + 히스토리.
  • 음악이 locked되면 수정할 수 없습니다. 음악 변경 = 새 MV 생성.
  • 동일 배치 내 음악은 먼저 근사 중복 제거를 수행합니다. genre + BPM 대 + vocal이 모두 동일할 수 없습니다. 처음 10초가 같은 노래처럼 들리면 music_id를 변경합니다.
  • 자산 qa: pass / warn / fail: fail은 반드시 재실행해야 합니다. warn은 사용자 확인 후에만 사용할 수 있습니다.
  • 자산 변경 → 이에 의존하는 비디오 세그먼트를 stale로 표시.
  • 스토리보드/비디오 세그먼트 계획 변경 → 해당 비디오 세그먼트를 stale로 표시.
  • 사용자가 "확정/통과"라고 말함 → 해당 stage를 locked로 설정.

4.3 인도

모든 비디오 세그먼트가 locked된 후:

  • handoff_v1.json(또는 handoff_v1.csv) 작성.
  • 각 세그먼트 확인: video_file 존재, duration ≤ 10초, music_start/end가 타임라인과 일치.
  • 프로젝트 종료. 편집자는 비디오 세그먼트와 handoff를 받아 다음 단계를 진행합니다.

다음 MV: 동일 작업대 내에서 MV002를 계속 생성하며, 이미 잠긴 음악/자산 규칙을 재사용합니다. 먼저 프레임워크를 생성한 후 생성합니다. 가사/고객이 변경되면 mvwb init <프로젝트명>으로 새 workspace를 만들고, 이전 프로젝트를 덮어쓰지 마세요.

검토/버전 규칙

상태의미UI
not_started생성되지 않음회색 원
draft산출물 있음, 검토 대기호박색 원
locked확정됨녹색 원
stale상위 항목 변경, 재실행 필요주황색 원
failed실패빨간색 원
  • 상위 항목이 locked되지 않으면 하위 항목을 시작하지 않습니다.
  • 지목된 부분만 수정. 나머지는 그대로 유지.
  • 히스토리를 덮어쓰지 않습니다. spent는 누적 히스토리 비용.
  • 작업대는 원 색상만 표시하고, 상태 텍스트는 표시하지 않습니다.

모델 및 프롬프트 라우팅

단계기본값참조할 reference
음악 ACE-Step2075301815628943362references/prompts/ace.md
자산 MOSS2116462203997081601references/prompts/moss.md
H3 다중 파라미터 비디오2110943749894402050references/prompts/h3.md
Muse 비디오 (Router)muse-video-extreferences/prompts/muse.md
S2V 립싱크1979183169033375745references/prompts/h3.md
RunningHub API—references/providers/runninghub.md
Router API/잔액—references/providers/router.md
작업대 DATA 계약—references/workbench-contract.md
4단계 실행 계약—references/step-contract.md
변이/차별화/중복 제거—references/variation.md
Key 발급/가져오기—references/key-distribution.md
알림/경고 코드표—references/alerts.md
역할 카드/스타일/남녀/치유계—references/prompts/casting-style.md
인도 필드—references/handoff.md
  • 비디오는 세그먼트별로 모델을 확인합니다. 다른 세그먼트는 다른 모델을 사용할 수 있지만, 동일 MV의 스타일 패키지/색상은 통일합니다.
  • 다중 참조 이미지: 역할 삼면도(사면도 금지)/장면 보드/소품/제품 실사. 이미지 하나당 하나의 역할. 먼저 1개 세그먼트 샘플을 실행합니다.

Key

  • 유일한 실제 원본: ~/.config/mv-workbench/keys.json (0600).
  • 설정: mvwb keys set runninghub, mvwb keys set router (터미널 숨김 입력).
  • 잔액: mvwb keys balance --data workspaces/<project>/data.json → mvwb build.
  • 원본 Key는 HTML/DATA/로그에 들어가지 않습니다. DATA.keys에는 마스크 처리된 값과 잔액 스냅샷만 있습니다.
  • 생성 명령어는 통일적으로 mv_keys.py exec을 통해 주입합니다. 쉘에 남아 있는 Key에 의존하지 마세요.

자주 사용하는 명령어

mvwb doctor
mvwb open
mvwb open --workspace my_project
mvwb init my_project
mvwb keys status
mvwb keys import --file workspaces/my_project/zz-keys.json --delete-source
mvwb keys watch --timeout 600 --data workspaces/my_project/data.json
mvwb keys balance --data workspaces/my_project/data.json
mvwb quote --model muse-video-ext --seconds 2
mvwb build --data workspaces/my_project/data.json --out workspaces/my_project/workbench.html
mvwb check --data workspaces/my_project/data.json
mvwb rh --app <id> --name <tag> --overrides <json> --out <dir>
mvwb muse --prompt "..." --seconds 2 --size 720x1280 --out out.mp4
python3 scripts/providers/tokentech_task.py image --prompt "..." --seed 123 --out out.png
python3 scripts/providers/tokentech_task.py music --lyrics "..." --style "..." --seconds 60 --out out.mp3
mvwb timeline <lyric.json> <audio.mp3> --out <dir>

하지 않는 것

  • 러프 컷, 편집, 자막/믹싱/최종 영상을 만들지 않습니다.
  • 자동 검토하지 않습니다. 사용자가 수정을 요청한 후에만 지목된 항목을 재실행합니다.
  • 고객의 가사/스크립트/자료를 공개 저장소에 제출하지 않습니다.

파일

SKILL.md          agent 진입점 (본 파일)
start/            사람의 진입점: 설치, mvwb 명령어, 원클릭 Key 설정
scripts/          mvwb, keys, alerts, build, timeline, providers
references/       workbench 계약, step 계약, 알림 코드표, 프롬프트, provider
templates/        workbench.html
contracts/        timeline/storyboard/segments/mv 계약
demo/             오리지널 데모 (바로 열 수 있음)
config/           모델 가격 / fx 환율 / keys 예시
workspaces/       학생 프로젝트 (프로젝트당 하나의 디렉터리)

버전

  • v0.4.4 (2026-11-14): Router 작업 프로토콜 실제 연결 완료 (moss 이미지 생성 / ace 음악 생성): POST /v1/responses + metadata.nodeInfoList를 RunningHub 노드에 직접 전달; scripts/providers/tokentech_task.py 추가; 길이/BPM/가사/스타일/네거티브/seed 전체 파라미터 제어 가능; 요금은 RH 실행 시간 기준 실시간 차감.
  • v0.4.3 (2026-11-14): 작업대 UI 간소화 — 페이지 내 Key 설정 제거; 잔액은 숫자만 표시, 마스크 미표시; MV 헤더 누적 로고 삭제; 음악/자산 빈 상태 정렬; 페이지 내 "읽기 전용" 문구 모두 제거; 상단 바 순서 생성 시간 → 잔액.
  • v0.4.2 (2026-11-14): 디렉터리 재구성 분류 — 진입 클래스 (설치/mvwb/setup-keys) start/로 이동, 개발자 파일 dev/와 docs/로 이동; Key 예시 파일명 config/zz-keys.example.json으로 변경; 루트 디렉터리에는 SKILL/README/LICENSE/NOTICE만 남김.
  • v0.4.2 (2026-11-14): 디렉터리 분류 — 진입 클래스 start/로 이동, 개발 파일 dev/, docs/로 이동; 루트 디렉터리에는 4개 파일만 남김; Key 예시 파일명 config/zz-keys.example.json으로 변경.
  • v0.4.1 (2026-11-14): 알림 형식 통일 (scripts/alerts.py + references/alerts.md 코드표); 예비 Key를 B001 알림을 통해 교사에게 전달하는 방식으로 변경; keys/providers/check/build 전체 연동; 매뉴얼에 "알림 원문을 교사에게 보내기" 추가. (2026-11-14): Router 메인 체인 + 예비 Key 필요 시 발급; 상단에 Router 잔액만 표시; 비용은 일괄 ¥으로 환산 (fx.rh_coin); keys 계층에서 apimart 독립 세그먼트 지원; quote 출력을 인민폐로 환산.
  • v0.3.9 (2026-11-14): 교사가 발급하는 Key 파일명을 zz-keys.json으로 통일; watcher가 mv-keys-import*.json과 zz-keys.json을 동시에 인식.
  • v0.3.8 (2026-11-14): 발급 Key JSON을 두 개 필드 {"runninghub":"...","router":"..."}로 간소화; issued_to/expires_at/mv_keys_import는 선택 사항으로, 등록 또는 watcher 자동 수집 시에만 필요.
  • v0.3.7 (2026-11-14): 교사 Key 발급 표준 추가: zz-keys.json을 프로젝트 루트 디렉터리에 배치, keys import --delete-source; 형식 예시와 발급 규칙은 references/key-distribution.md 참조.
  • v0.3.6 (2026-11-14): mvwb keys watch 추가; agent는 먼저 다운로드 디렉터리를 모니터링하고, 사용자가 작업대에서 Key를 입력하고 다운로드하면 자동 가져오기/삭제, 선택적으로 잔액 새로고침 및 작업대 재구축.
  • v0.3.5 (2026-11-14): 작업대 우측 상단 "Key 설정" 로컬 입력 → mv-keys-import.json 다운로드 → agent keys import --delete-source; 서비스 없음, 네트워크 없음.
  • v0.3.4 (2026-11-14): 원클릭 setup-keys (Mac/Win); keys set 비대화형 환경에서 traceback 대신 거절; 작업대 비디오 썸네일에 첫 프레임 표시; keys init 프롬프트를 --data로 변경.
  • v0.3.3 (2026-11-14): 변이/차별화 규칙 및 역할 스타일 프롬프트 패키지 추가 (샤오홍슈 패션/일본식 귀여움/한국형 오빠/치유계 영화/미남미녀); Step 3에서 genome 및 차별화 표 요구.
  • v0.3.2 (2026-11-14): 사용자 매뉴얼과 정렬: Key는 사용자가 로컬에서 입력; 프로젝트명/3단계 확인, 음악 잠금 및 길이 편차, 자산 QA, 대규모 수정 견적, data.json 디렉터리 추가.
  • v0.3.1 (2026-11-14): 설치 업그레이드 시 workspaces 유지; init 기본값 빈 프로젝트 (--demo는 데모 복사); build/check 상대 경로가 skill 루트 디렉터리로 대체; 패키지 내 문서 간소화.
  • v0.3.0 (2026-11-14): 백그라운드 서비스 제거, 작업대 순수 정적으로 복귀; Key/잔액을 CLI로 변경; 4단계 실행 계약과 mvwb check 추가; 전달 파라미터 수정.

관련 스킬