6.1 KiB
반복 작업에서 확인할 점
Windows에서 스킬 검증이 디코딩 오류로 멈출 때
검증기가 기본 시스템 인코딩으로 한국어 SKILL.md를 읽으면 UnicodeDecodeError가 날 수 있다. 파일 오류와 구분하고 python -X utf8로 같은 검증을 다시 실행해 종료코드 0을 확인한다. 이 문제를 해결하려고 전역 Python·conda 설정을 바꾸지 않는다.
상대 경로가 제작 폴더에서 다른 파일을 가리킬 때
JSON의 경로는 저장소 루트 기준인데 Markdown 링크는 그 파일의 폴더 기준이다. review.md 양식을 깊은 제작 폴더로 복사하면 원래 문서 링크는 그대로 쓸 수 없다. JSON 데이터 경로는 유지하고 문서 링크만 실제 위치에서 해석해 파일이 존재하는지 확인한다.
제목 수정 뒤 음성 재생성을 요구할 때
전체 단계 순서만 따라 무효화하면 제목을 읽지 않는 음성·이미지까지 다시 만들게 된다. 각 artifact의 실제 inputs 관계를 따라 영향만 계산한다. 현재 전달 관계에서 04 제목은 13 합성과 14 검수에 영향을 주며 05–12는 제목만 바뀌면 보존할 수 있다. story/final의 승인 버전은 다시 확인한다.
설명용 컷을 실제 시간처럼 사용할 때
예제의 32000ms·4000ms는 계약 설명을 위한 가정이다. 실제 통합 WAV가 없으면 정렬·길이 근거가 없으므로 컷을 완료로 확정할 수 없다. 예제의 timing_evidence와 진행 기록의 현재 포인터를 확인하고, 실제 WAV·통합 단위 구간을 받은 뒤 컷을 새로 작성한다.
새로운 역할이나 스킬이 목록에 보이지 않을 때
TOML·YAML 파싱 성공은 현재 세션이 파일을 탐색했다는 증거가 아니다. 프로젝트 루트에서 새 Codex 세션으로 목록을 확인한다. 임시로 지침 파일을 직접 읽어 담당 작업을 수행할 수 있지만 이를 자동 탐색 검증으로 기록하지 않는다.
여러 Blender Scene 중 선택한 장면이 정지 화면으로 렌더될 때
원본의 애니메이션 평가 검사와 영상의 프레임 수가 맞아도, 렌더의 활성 컨텍스트가 다른 Scene이면 선택한 장면이 정지할 수 있다. 프레임을 설정하기 전에 bpy.context.window.scene을 렌더할 Scene으로 맞추고 실제 결과를 다시 확인한다. 초기 활성 장면에 움직이는 물체가 없는 검사 원본에서도 두 선택 장면을 각각 검증한다.
PNG 파일 SHA-256은 메타데이터 때문에 달라질 수 있고 H.264 압축 흔적도 픽셀 차이를 만들 수 있다. 기대한 움직임은 원본 렌더 PNG의 디코드 RGB와 실제 MP4의 시작·중간·끝 화면을 함께 비교한다. 파일 해시는 원본·산출물의 식별 근거이며 움직임이나 품질의 증거를 대신하지 않는다. 실행기 수정 뒤에는 새 스크립트 해시를 포함한 별도 attempt로 다시 렌더하고 옛 정지 결과를 채택하지 않는다.
분자가 액체의 표시 영역 밖에 놓일 때
분자를 잘 보이게 하려고 불투명한 물 체적 앞에 배치하면, 분자가 실제 물 영역 밖에 떠 있거나 아래·옆 경계를 넘을 수 있다. 절개 설명이라는 문구와 원자 수·결합 종류·영상 디코드 검사는 이 오류를 해결하지 않는다. 분자는 실제 물 영역 안에 두고 앞면·윗면을 열어 내부가 보이는 설명용 절개를 만든다. 절개면을 물의 고체 벽·막으로 설명하지 않는다.
분자 중심만 검사하지 않고 평가된 원자·내부 실선·활성 분자간 점선의 전체 mesh 정점을 모든 애니메이션 프레임과 경계에서 실제 물 영역과 대조한다. 카메라의 투영 윤곽 및 실제 표시 면과도 비교하고 최종 PNG·MP4를 직접 본다. 중심은 내부지만 원자 정점 일부가 밖인 실제 실패 원본을 검사에 포함한다. 제출한 이전 결과는 보존하고 수정은 새 revision에서 진행한다.
일부 끝점 렌더 뒤 다음 프레임을 요청하면 실패할 때
11의 결과 배열에 첫 PNG만 등록돼 있어도 배열 자체는 비어 있지 않다. continuous의 양쪽 결과가 모두 있다고 가정하면 아직 없는 끝점 ID를 조회해 다음 렌더를 막는다. 두 frame ID가 실제 등록된 경우에만 동일 파일 여부를 검사하고, 완성 검사는 별도로 전체 62개 ID를 요구한다. 첫 시작 PNG만 존재하는 상태에서 끝점 요청, 공유한 다음 시작, 같은 논리 프레임의 다른 Scene 요청을 차례로 실행해 부분 진행과 장면 분리를 함께 확인한다.
로컬 FFmpeg에서 프레임 추출 명령이 실패할 때
Remotion에 포함된 현재 FFmpeg는 select 필터와 rawvideo 출력 muxer를 제공하지 않는다. 일반 FFmpeg 예제를 그대로 쓰면 영상 결함과 관계없이 검사 명령이 실패한다. 단일 프레임 PNG는 입력 뒤에 -ss와 -frames:v 1을 두고, 전체 디코드는 -c:v rawvideo -c:a pcm_s16le -f null -로 확인한다. rawvideo 코덱과 출력 muxer를 구분하고 실제 명령 종료코드와 프레임 수를 확인한다.
합성 후 검토 상태만 바꿨는데 입력 해시가 달라질 때
project.json은 렌더 입력과 현재 진행 상태를 함께 담는다. 최종 검토로 넘어가며 13/14 상태나 final 기록만 바꿔도 전체 파일 해시는 달라진다. 렌더 당시 사본은 입력 identity의 SHA와 연결해 보존하고 현재 주제·설정·01–12 포인터/상태·topic/story/scenes 승인은 그 사본과 엄격히 대조한다. 같은 13/14 버전의 정상적인 상태 진행만 원 입력 변경과 구별한다. 원본 미디어·선행 결과·합성 코드의 해시 차이는 이 예외로 허용하지 않는다.
제출한 verify_final.py를 다시 실행하면 새 디코드 WAV와 technical-check.json을 작성하므로 기존 manifest와 해시가 달라질 수 있다. 검사 후 manifest를 확정하고, 이미 제출한 결과의 재검토는 별도 증거 폴더에서 읽기 전용으로 수행한다. 재실행 결과를 제출하려면 새 검사 근거와 manifest를 함께 갱신한다.