21 KiB
최종 검증 기록
지면·여섯 풍경·끌기 개선 검증 (2026-10-11 KST)
검사 소스는 b438ee266bdda86ec40833792a004413d1182a39, APK SHA-256은 172A20915A9E82C06E557AFC6113189EDE659CA75CAA4A8A2FFF910E7C74CA49다. 전체 묶음의 지면·큰 소품·경계 정지, 소품 접지, 다섯 번호씩 여섯 고정 풍경과 변형, 끌기 시점 보조·수동 복귀, 이어하기의 모양 보존 위치 보정·문제 슬롯만 초기화를 구현했다. 승인 자산455개·30개 비시각 정의·초기173개 구 ID와 위치를 보존했다.
| 실제 명령 | 결과 | 실제 종료 |
|---|---|---|
pwsh -NoProfile -File tools/verify.ps1 -Phase EditMode -Milestone Final |
177/177 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase PlayMode -Milestone Final |
112/112 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidBuild -Milestone Final |
APK 제작 | 0 |
| AndroidSmoke | 사용자 지시로 생략 | 실행하지 않음 |
사용자는 “안드로이드 기기 검증은 건너뛰겠습니다. 먼저 Unity 에디터에서 검증하세요”라고 지시했다. 현재 APK 설치·기기 실행·정상30개 Android 진행·FPS는 검증하지 않았다. 실제 세 단계 명령·로그·UTC·소스·APK 해시와 생략 범위는 artifacts/verification/PlaygroundInteraction/completion.json에 있다. 문서만 추가된 소스는 제품 파일 동일성으로 검사 소스에 연결하며 검사를 다시 실행한 것으로 표기하지 않는다.
현재 Main의 여섯 대표 풍경·각 다음 번호 변형을 스마트폰2400×1080·태블릿1600×1000의 기본/회전 확대 시점48장과 끌기 보조2장으로 직접 확인했다. Editor Camera.Render의 모의 가로 viewport·검수 fixture이며 Android 캡처가 아니다. 직접 관찰50개와 해시는 EditorObservation/editor-visual-observer.json, 화면은 index.html에 있다. 원래173개 구의 실제 선택·끌기·취소는 Final/DragCapture/root-final-173-drag-proof.json에 있다. PNG만으로 접촉·ID·성능을 판정하지 않는다.
반복 식생을 줄이고 기존 자갈을 활용해 여섯 대표 풍경의 환경 FBX 삼각형 합계를 이전 개선 배치 대비22~47% 줄였다. 여섯 Editor Camera.Render CPU 중앙값 비교 중 하나는 상승했고 측정 날짜·호스트 부하도 다르므로 전체 성능 향상·GPU 비용·기기 FPS를 주장하지 않는다. 원문은 ResourceSceneryFix/editor-resource-observations.json에 있다.
일부 아치 뒤 기사 발견성·세계 숫자 대비·수동 회전 확대의 하단 안내 겹침은 현재 관찰 제한으로 남긴다. 원래 배치를 유지하며 지원 시점의 실제 입력과 자동 끌기 여백 검사는 별도로 통과했다. 모든 시점 무가림·5~7세 가독성·실기기 성능·iOS·스토어 배포는 확인하지 않았다. 기능 브랜치에서 결과를 준비했으며 최종 승인과 dev 통합 선택은 별도다. 아래 날짜의 이전 제품·실패·성공 기록은 해당 소스의 이력이다.
이전 승인 모델 적용의 최종 실행 (2026-10-09 KST)
제품 소스는 3346eb559bdfba24332feb4d9be4b7104520233e다. 네 단계 실제 종료 0을 확인했다. 최종 제품 전체의 새 사용자 승인은 별도이며 2026-10-08 KST의 승인은 모델 다섯 묶음·원본 2개·FBX 23개의 정확한 바이트에만 적용한다.
| 실제 명령 | 결과 | 실제 외부 종료 |
|---|---|---|
pwsh -NoProfile -File tools/verify.ps1 -Phase EditMode -Milestone Final |
103/103 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase PlayMode -Milestone Final |
53/53 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidBuild -Milestone Final |
ARM64 IL2CPP APK 생성 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidSmoke -Milestone Final |
226/226, 네 child 종료 0 | 0 |
현재 빌드 APK는 57,215,937바이트, SHA-256 DA533F235A9869E5A68F4A244AF9A89E34A8E6FB9E7C7F2F57D830939507B829다. 표준 사본·Final 사본·Fresh30의 실제 설치 후 가져온 APK는 같은 바이트다. 실제 APK의 승인 44개 PCM과 고지 3개의 정확한 바이트를 대조했다. 실행 소스·시각·실제 종료 원문은 completion.json, 별도 오프라인 원문 대조는 문서 근거 확인에 연결한다.
성공한 Smoke는 2026-10-08 17:04:22.995971017:19:58.4677196 UTC에 실행했다. Fresh30 151/151, FinalBoundary 37/37, RapidBoundary 39/39, ContentBoundary 69/69가 각각 종료 0이다. 하위 수를 독립 제품 기능 수로 합산하지 않는다. 새 저장에서 실제 입력으로 130을 순서대로 해결했으며 저장 push는 0회다. 각 단계 실제 성공·전체 구 ID 보존, 두 미완료 퍼즐과 최근 자유 놀이·부분 계수·카메라의 독립 복원, 0..10·반납·재공급·취소·손상 복구·오프라인·전체 숫자 발화·마지막 발화 보존을 확인했다. 별도 빠른 계수·경계 QA 상태는 정상 진행 증거와 구분한다.
세 자연 테마, 2+3 합체·떨어진 선택 구의 분리, 10개 단독/한 묶음, 0·재공급·재진입의 현재 Editor 화면 119개는 artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture에 있다. 적용 검수 갤러리는 실제 Unity 렌더링의 스마트폰 2400×1080·태블릿 1600×1000 모의 viewport와 Android AVD 화면을 구분한다. 합성 Core 검수 상태는 정상 30단계 진행 증거가 아니다. 이전 101개 시각 검수의 원문은 GameReview이며 소스 b4d8854의 이력으로 보존한다.
자원 측정은 active hierarchy의 상주 MeshFilter 인덱스 합계이며 Renderer가 꺼진 원래 바닥을 포함한다. GPU 제출 삼각형 수가 아니다. 전체 Editor-loaded texture의 메모리·치수와 Camera.Render CPU wall time은 Android FPS·GPU 비용·실기기 성능을 증명하지 않는다.
원래 30개 비시각 정의·구 ID/총량/초기 위치·기존 GUID·44개 음성·6표정·폰트·UI·Mixer·Core·저장 경계를 유지했다. yaw 210도·pitch −45도·거리 15의 지면 아래 시점에서 새 지면 뒷면은 원래 Island보다 보드를 더 많이 가린다. 같은 여섯 물리 Raycast가 원래 바닥을 먼저 맞아도 시각적 가림이 같다는 뜻은 아니다. 실제 대조는 FinalProduct/EditorCapture/belowground-raycast-comparison.txt와 같은 폴더의 원본/새 지면 PNG에 있다. 기존 카메라·pick·초기 배치 보존을 우선했으며 카메라 범위·복귀 동작은 별도 UX 결정으로 남겼다. 실제 기기·아이 대상 사용성·iOS·스토어 검증은 후속이다.
원경 하단의 실제 틈을 보정하기 위해 30개 Stage의 FarHorizon 120개 x/z 배치 반경만 35에서 27로 옮겼다. 승인 메시·31개 재질·높이·회전·크기·다른 배치와 카메라·입력·Collider는 유지했다. 실제 가져온 sharedMesh의 별도 물리 장면에서 중앙 24m 복도 표본 누락은 366→반경 28의 6→반경 27의 세 풍경 각각 0이었다. 같은 카메라의 근접 A/B와 지적된 두 전체 화면에서도 중앙 틈 제거를 확인했으며 모든 외곽·픽셀·시점의 무틈을 보장하지 않는다. 원문은 artifacts/verification/VisualUpgrade/HorizonFix/result.json과 HorizonFix/final의 119개 PNG다.
원경 보정 전 제품 소스 83182e7f3e86926bf130817d401a331829401fac의 성공 검증·APK·갤러리는 artifacts/verification/VisualUpgrade/BeforeHorizonFix/manifest.json에 2,311개 파일과 SHA로 보존했다. 그 결과를 새 제품의 증거로 혼용하지 않는다.
이번 첫 AndroidSmoke는 2026-10-08 16:58:49.3785491~17:00:52.0393312 UTC에 실제 종료 1이었다. Fresh30 stage5의 ADB shell wm size 관찰 명령에서 localhost:5037 연결이 약 21초 뒤 timeout 10060으로 실패했다. AVD 충돌이나 게임 판정 실패로 원인을 단정하지 않는다. 실패 원문·부분 결과 1,257개는 artifacts/verification/VisualUpgrade/HorizonFailedSmokeAttempt1/manifest.json에 보존했다. 실행 소유자는 정상 장치와 같은 조회 명령의 종료 0을 확인한 뒤 실패한 Smoke만 재실행했다. 먼저 통과한 EditMode·PlayMode·AndroidBuild는 재실행하지 않았으며 소스와 제품 732개 바이트·APK SHA는 그대로였다. 실제 완료 시각은 2026-10-08 17:19:58.7340281 UTC다. 실패 시도를 통과로 바꾸지 않았다.
2026-10-07 제품의 이전 Final 원문은 PreviousFinal 보존 목록에 2,517개 파일과 SHA로 보존했다. 원경 보정 전 제품의 첫 Smoke는 실제 종료 1이며 원문 113개를 FinalProduct/FailedAndroidAttempt1에 보존했다. Unity 빌드 뒤 서로 다른 SDK의 ADB daemon 연결이 막힌 실행 소유자는 daemon을 재연결하고 실제 device/boot를 확인한 뒤 같은 clean 소스·APK로 실패한 Smoke만 재실행했다. 실패 결과를 통과로 바꾸지 않았다. 보존·정리 원문은 과거 잔여 2,480개를 고정 사본과 정확한 SHA 대조 후 제거한 기록이다. 당시 실행 UTC·소스·APK가 맞는 원문만 당시 결과로 채택했다.
T8 이전 통합 dev 검사 (2026-10-07)
당시 완료 검사는 루트 C:/git/MagnetismHeroes, 고정 소스 ea2ad4506ce2288f7777c0eb017833723679f487에서 수행했다. 아래 작업 디렉터리의 이전 결과와 구분한다. 네 실제 명령의 외부 종료가 모두 0이고 실행 전후 tracked 변경과 소스 변경이 없다.
| 실제 명령 | 결과 | 외부 종료 |
|---|---|---|
pwsh -NoProfile -File tools/verify.ps1 -Phase EditMode -Milestone Final |
100/100, 실패·건너뜀·미확정 0 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase PlayMode -Milestone Final |
47/47, 실패·건너뜀·미확정 0 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidBuild -Milestone Final |
release ARM64 IL2CPP APK 생성·검사 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidSmoke -Milestone Final |
Final 226/226, 하위 네 검사 실제 종료 0 | 0 |
Smoke는 2026-10-06 17:46:54.09349318:03:58.028723 UTC에 실행됐다. 새 저장·실제 입력의 Fresh30 151/151, FinalBoundary 37/37, RapidBoundary 39/39, ContentBoundary 69/69가 통과했다. 정상 130 진행에는 저장 push나 완료 기록 주입이 없다. 두 미완료 퍼즐·최근 자유 놀이 독립 복원과 부분 계수·카메라, 별도 명시 QA 상태의 빠른 계수·전체 숫자 발화·마지막 발화 보존, 취소·손상 복구·오프라인을 확인했다.
당시 고정 APK·Final 사본·그때 설치 후 가져온 APK의 SHA-256은 **0D341465FD2DC4809DF8FA423490A9CFB3BA755220A8685479399CACBD9BDDE8**다. 아래 이전 작업 APK 223F...는 별도 보존본이다. 당시 실제 APK에서도 승인 44개 PCM, 원본/편집본/runtime 132개 해시와 고지 3개의 정확한 일치를 확인했다. 효과음·배경음악은 제외하며 한국어 음성은 유지한다.
실제 원문은 artifacts/verification/Final의 *-outer.json, phase 기록·XML·네 child report와 JSON/PNG/PCM이다. 고정 보존 목록은 2,527개 파일의 SHA를 대조한 사본이다. 독립 원문 확인은 실제 234개 조건과 종료 0을 기록한다. 이전 작업 원문 16,032개는 Implementation5eb, 실패한 첫 통합 검사와 진단 1,146개는 BaseD9Failure에 따로 보존했다.
첫 통합 검사 d9의 AndroidSmoke는 18번의 가려진 구를 검사 도구가 좌우 회전만 반복하여 실제 종료 1이었다. 같은 APK·같은 구 ID/위치를 상하 회전 한 번과 탭으로 성공시킨 실제 진단을 남겼다. ea2는 계수 검사에 주기적 상하 회전을 추가한 한 줄의 QA 수정이며 제품 규칙·자산·저장 스키마는 변경하지 않았다. 수정 후 통합본의 네 검사를 새로 모두 수행했다. 실패 결과를 통과 결과로 바꾸지 않았다.
이후 변경은 개발 지침·인수인계 문서와 Unity가 실제 import하여 생성한 문서 메타데이터 3개다. import는 실제 종료 0이며 기존 제품 tracked 파일의 변경은 없었다. 원문은 artifacts/verification/T8/DocumentationImport에 있다. 제품 파일 동일성은 별도 기록으로 확인한다. 실제 Android 기기 조작·성능·학습 효과, iOS·스토어 게시 검증은 수행하지 않았다.
최종 소스 73ffcbef의 전체 구현·기획·개발 문서 최종 독립 검토는 approved, blocking 0·남은 advisory 0이다. 후보의 실제 출력 경로와 예정 runtime 경로를 구분하는 문서 보완도 재검토했다. 검토 원문에 검토 범위·근거·한계를 기록했다. 사용자가 2026-10-07 “승인합니다”로 최종 결과와 개발 문서를 승인했다.
이전 작업 디렉터리의 고정 검사 기록
2026-10-07 KST. 작업 디렉터리의 고정 소스 5ebb86e2a82c6005f870460e8434d7ad99c0e99d에서 Final 네 단계를 모두 실행했다. 검사 전후 tracked 변경은 없으며 아래 종료 코드는 실제 외부 명령의 값이다. 루트 통합·completion 네 단계와 최종 인수는 별도 단계다.
T7은 사용자가 명시한 첫 버전 범위에서 완료됐다. 효과음·배경음악은 제외하며 추가 음원 요청이나 자리표시자를 요구하지 않는다. 승인된 한국어 음성 44개는 유지한다. T8에서는 게임 규칙·자산·저장 스키마를 변경하지 않았다. 기반 7db006544cc471240e4342c4fa4affcb7c616d71과 Assets/Packages/ProjectSettings/SourceAssets의 모든 tracked blob이 같다.
실행 결과
| 실제 명령 | 결과 | 외부 종료 코드 |
|---|---|---|
pwsh -NoProfile -File tools/verify.ps1 -Phase EditMode -Milestone Final |
100/100, 실패·건너뜀·미확정 0 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase PlayMode -Milestone Final |
47/47, 실패·건너뜀·미확정 0 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidBuild -Milestone Final |
실제 APK 생성·검사 통과 | 0 |
pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidSmoke -Milestone Final |
Final 226개 게이트 통과 | 0 |
AndroidSmoke는 2026-10-06 17:00:44.546~17:16:16.506 UTC에 실행됐다. Final 디스패치가 실제 다음 네 검사를 순서대로 호출하며 각각 실제 종료 0이다.
| 검사 | 통과 | 증명 범위 |
|---|---|---|
| Fresh30 | 151/151 | 새 저장에서 실제 터치로 1~30 순차 해결, 저장 push/완료 주입 0회 |
| FinalBoundary | 37/37 | 실제 30 완료 후 공급·반환·빈 보드·핀치·분리 취소·음성 취소·손상 파일 복구 |
| RapidBoundary | 39/39 | 명시적인 별도 평면 10구 QA 배치, 오프라인 빠른 계수와 전체 음성 |
| ContentBoundary | 69/69 | 기존 콘텐츠·도움·시범·저장·음성 경계의 별도 실제 입력/QA 교차 검사 |
Fresh30은 각 단계의 실제 완료 JSON·원래 구 ID·목표 묶음을 확인했다. 서로 다른 두 미완료 퍼즐과 최근 자유 놀이가 동시에 저장되고, 양수의 부분 계수와 바뀐 카메라를 포함해 강제 종료 후 각각 복원됐다. 6/10 최초 시범, 순차 해금, 재플레이 완료 기록 유지, 자동 다음 단계 이동 없음, 30 이후 31 없음도 확인했다. 모양이나 특정 구 ID 조합을 새로운 성공 조건으로 추가하지 않았다. Stage15에서 요청한 터치 ID와 실제 선택 ID가 달랐지만 올바른 2+3으로 이미 완료된 경우는 실제 목표·전체 ID 보존으로 판정하고, 요청 ID 일치 검사 통과로 표기하지 않는다.
APK와 음성
이전 작업의 고정 APK와 그 작업의 표준 사본·Fresh30 설치 후 가져온 installed-base.apk는 모두 다음 SHA-256이었다. 당시 배포용 파일은 위 통합본의 APK였다.
223F26C5E2EFAE6A7C50A36CF654195C7EF3AD37DCCDC3001B8CF6E3A515C8C7
실제 APK의 AudioClip 44개를 고정된 검증 도구 UnityPy 1.25.4로 추출했다. 이름 유일성·44개 완전성과 승인 runtime WAV의 PCM 바이트·형식이 모두 정확히 일치한다. 승인 원본/편집본/runtime 해시 132개와 사용 고지 3개도 일치한다. incremental BuildReport의 빈 packed-assets 목록을 자산 존재 증거로 사용하지 않는다. 동일 inspector로 실제 APK 양성 종료 0, 자산 누락/실제 PCM 변형 사본 각각 종료 1을 확인했다. 검증 도구·모델 가중치·TTS 서버는 APK 의존성이 아니다.
RapidBoundary는 이번 Fresh30의 실제 30 완료 원문과 Stage20 실제 수집/성공 원문을 출처로 남기고 위치·카메라·한 묶음·계수 전 상태만 QA용으로 구성했다. 완료 기록은 출처와 정확히 같다. 이 저장 주입은 새로운 정상 진행 증거가 아니다. 실제 11회 탭(중복 포함)을 0.441초에 수행했다. 첫 읽기의 계수 9 이후 약 82ms 뒤 실제 Free20을 관찰했으며 각 읽기 JSON/UTC를 보존했다. PCM 시작보다 앞선 녹음 wrapper 시작으로 계산한 Free 관찰 시각 상한 1.676초는 열 번째 전체 발화 끝 7.383초보다 이르다. 하나~열 전체 발화·FIFO·중복 추가 발화 없음·같은 구/카메라의 Free 전이 이후 마지막 발화 완결을 확인했다. 녹음 전체 길이는 23.893초다.
안내/숫자 취소는 실제 발화 시작의 양성 PCM과 이동·일시 정지 후 마지막 3초 무음을 함께 확인했다. 완전 발화 비교는 취소된 파일을 거부했다. 전체 발화 양성과 앞/뒤/중간 잘림·중복·잡음·다른 발화 여섯 음성 비교 대조군도 실제 0/1 결과로 확인했다. 기존 44개 청취 승인과 이번 객관적 PCM 검사는 구분한다.
환경·시각 확인·원문
Unity 6000.6.3f1, Medium_Phone_API_37.0 AVD(API37/x86_64, arm64 번역), 2400×1080 가로 화면이다. 실제 APK는 arm64-v8a, minSdk26/targetSdk36이다. Editor와 native 녹음은 모두 종료했고 AVD는 유지했다. 네트워크 airplane/wifi/data 0/1/1과 audio speaker/submix/default 5/5/5를 실제 복원했다. 마지막 ContentBoundary가 남긴 Stage11 QA 상태는 Fresh30 정상 완료 원문과 구분한다. 실기기 성능·FPS, iOS, 스토어 배포는 검사하지 않았다.
이전 작업의 시각 확인 원문은 실제 Android PNG/SHA/터치 명령과 관찰 범위를 연결한다. 해당 작업 Stage13/15의 2+3 친구 얼굴·숫자·구 수량, Stage28의 실제 선택5, 분리 경계의 실제 전체 선택5/떨어진 양끝 선택2를 직접 확인했다. Stage15의 이전 아래쪽 시점은 가독성 합격 근거에서 제외하고 해당 작업의 정상 시점을 사용한다. Editor Camera.Render RT나 모든 시점·해상도의 가독성 합격으로 확대하지 않는다.
해당 작업의 지정 목록은 고정 manifest.json의 1,982개 지정 파일과 해시다. 당시 원시 증거 위치는 C:/git/MagnetismHeroes/.dryforge/worktrees/T8/artifacts/verification/Final이며 현재 루트 completion 증거와 구분한다. 네 외부 명령/phase 기록, XML, 네 child report, 실제 JSON/PNG/PCM, 해당 APK의 UUID 추출 파일만 명시적으로 연결한다. Final 폴더에 남은 이전 UUID·도구 설치 이력 전체를 해당 소스의 증거로 주장하지 않는다. 문서 전용 후속 커밋과 검사 소스의 관계는 고정 사본 같은 폴더의 source-documentation-relationship.json에 기록한다.
실패·사전 검사 원문은 artifacts/verification/T8-red/에 보존했다. Final 첫 퍼즐 fallthrough, PowerShell 인수/선택 배열, 화면 밖·소품 가림 입력, 이미 완료된 보드 재시도, 재사용된 recorder PID, 계수 마지막 입력/저장 관찰 경쟁을 게임 규칙 우회 없이 수정했다. 정상 임의 3D 배치에 모든 구가 한 시점에서 보인다는 추가 조건을 요구하지 않는다. 녹음은 시작 때 확인한 원래 process handle을 유지하여 재사용된 브라우저 PID를 기다리거나 종료하지 않는다. 이전 폴더의 이동 관계도 원문에 남겼다.