2026-10-11 기록 기준
같은 결과를 다시 얻는 명령에서 시작했습니다
저는 해루질GO의 검증을 “시험이 잘 됐다”는 보고로 끝내지 않으려 했습니다. 자동시험의 판정과 브라우저 관찰을 남기고, 마지막에는 제가 직접 키를 눌렀을 때의 결과까지 구분해야 했습니다. Aside에 맡긴 일은 통과 수를 늘리는 것보다 다음 사람이 같은 조건 에서 확인할 수 있는 실행 흐름을 만드는 것이었습니다.
제가 맡긴 요청의 요약이며, 실제 원문이 아닙니다. 격리본의 반복 검증 명령과 결과 파일을 남기고, 제외와 불확정을 성공으로 묶지 말아 주세요. 실제 기기 단계에서는 한 동작씩 안내하고 제 보고를 기다려 주세요. 실제 제공자 연결이나 원본 승격은 하지 마세요.
1. Aside는 시험뿐 아니라 판정 방식도 고쳤습니다
Aside가 정리한 명령은 npm run verify:local -- <결과 폴더>였습니다. 구문 검사와 전체 회귀시험을 실행해 LOCAL_VERIFICATION.json과 로그를 저장하는 명령입니다. 서비스를 시작하거나 원본을 승격하거나 외부 제공자를 활성화하는 명령은 아니었습니다. 저는 재현 방법과 실행 범위가 함께 남아 있는지 먼저 확인했습니다.
초기 spec reporter는 제외 사유를 표시하지 못했습니다. Aside는 이를 성공으로 넘기지 않고 판정 로직을 수정했고, 이후 TAP 출력에서 자료 부족에 따른 제외 이유를 확인했습니다. RESULT.json에는 초기 구문 실패, SVG 재시도 실패와 시험의 누락 import 수정, 최종 전 중단된 실행도 보존됐습니다. 실패 이력을 지우지 않으면서 현재 결과와 분리한 것입니다.
최신 기록은 구문 129파일, 시험 파일 51개, 전체 시험 432개 중 431통과·실패 0·취소 0·제외 1입니다. 제외 이유는 비공개 실제 좌표 fixture 미제공입니다. 저는 이를 “432개 전부 통과”로 줄이지 않았습니다. SOS 17개, 회피 레이어 lifecycle 7개, 정적 서비스워커 17개로 추가된 41개는 전체 집계에 이미 포함돼 다시 더 하지 않았습니다.
2. 브라우저 화면은 다른 증거로 남겼습니다
Aside는 원본 DB·기존 70점·사진·실계정 대신 합성 포인트와 배경, 모의 기기 API를 사용했습니다. GPS 거부·timeout·응답 순서 역전, 복사 실패의 수동 대체, 공유 취소·오류·미지원 등을 외부 네트워크 없이 확인했습니다. 전화는 차단했고 실제 GPS·복사·공유·기관 전송은 하지 않았습니다. 합성 캐시의 API·개인자료 항목도 0개였습니다.
BROWSER.json에는 확인 18건과 불확정 3건이 남았습니다. 프로그램 입력 뒤 SOS Space와 SVG Enter·Space의 시각 결과가 일관되게 확인되지 않은 항목들입니다. DOM KeyboardEvent로 SVG 팝업이 열린 결과와 단위시험은 따로 기록했습니다. 핸들러가 반응했다는 증거로 화면 결과까지 채우지 않았습니다. CDP 입력이나 isTrusted 값도 사람이 물리키를 눌렀다는 증명이 아니었습니다.
이제 남은 것은 제 PC에서 실제 키보드로 확인하는 일이었습니다. 그런데 자동검증에서 사람에게 넘어갈 때 첫 문제는 키가 아니라 서버가 계속 살아 있는지였습니다.
3. 사용자 시험의 수명을 임시 실행세션에서 분리했습니다
Aside는 임시 명령세션에서 로컬 서버를 띄우고 탭과 snapshot으로 지도 렌더를 확인했습니다. 하지만 제가 화면이 보이지 않는다고 보고했을 때 이전 주소는 연결되지 않았습니다. 별도 프로세스도 명령 중에는 응답했지만 종료 뒤 끊겼고, 유지하던 세션 역시 만료돼 찾을 수 없었습니다. Aside는 앞선 snapshot을 현재 서버가 살아 있다는 증거로 쓰지 않았습니다.
재실행만 반복하는 대신 제가 사용하는 기기가 해당 Windows PC인지 확인했습니다. Aside는 PC시험시작.cmd와 실행 helper를 준비해, 제가 연 창에서 합성 서버만 유지하도록 했습니다. 관리자 권한이나 방화벽 변경, 외부 호스트 공개, 원본 서비스 재시작은 요구하지 않았습니다. helper 자체검증에서 자식 실행·응답·종료를 확인했지만 준비 파일만으로 제 서버가 켜졌다고 가정하지도 않았습니다.
제가 검은 창에 준비 완료가 떴다고 답한 뒤에야 Aside는 READY의 새 주소와 실제 응답, 합성 화면을 확인했습니다. 저는 주소를 직접 열어 화면이 보인다고 보고했고, 시험 중에는 검은 창을 유지하도록 안내받았습니다. 합성 포인트와 경계는 각각 2개였으며 GPS·복사·공유는 모의 대체, 전화는 차단된 환경이었습니다.
4. 제 보고와 에이전트 탭을 합치지 않았습니다
Aside가 연결한 탭에는 제가 누른 결과가 반영되지 않았습니다. 제가 SOS가 열렸다고 보고한 사실과 에이전트 탭의 상태는 별개의 관찰이었습니다. Aside가 마우스로 연 예시 화면도 안내 자료일 뿐 제 물리키 성공의 독립 증거는 아니었습니다. 화면 표시 확인 1건은 키 시험 개수에서 제외했습니다.
저는 한 번에 한 동작과 기대 화면을 안내받고 결과를 답했습니다. 키 시험 8항목 중 성공 보고는 7건이었습니다. SOS Tab·Enter·Space, HTML 근거 버튼 Enter·Space, 지도 SVG 빗금 Tab·Enter였습니다. SVG에서 Space를 눌렀을 때는 팝업 없이 화면만 스크롤돼 실패 1건으로 남았습니다. GUIDE_STATE.json의 전체 물리키 통과도 false였습니다. Aside는 앞선 합성시험으로 이 실패를 덮거나 고쳤다고 보고하지 않았습니다.
5. 진단 범위를 Space 한 번으로 좁히고 멈췄습니다
저는 Space 1회 진단을 승인했습니다. Aside는 앱 코드를 수정하는 대신 QA 도구에 제한된 표시 기능을 추가했습니다. 제가 명시적으로 시작한 뒤 지도 비입력 영역에서 Space 한 번만 보고, 선택 요소 종류와 고정 키유형, 참·거짓 결과를 페이지에 표시하는 범위였습니다. 글자·입력값·비밀번호·좌표·계정·키 이력은 모으지 않고 서버로도 보내지 않았습니다.
진단은 이벤트가 끝난 뒤 기본동작 예방 여부와 팝업·스크롤 변화를 구분하도록 설계됐습니다. 진단 도구의 개인정보 보호 자체시험 9개는 모두 통과했지만 앱 시험 432개에 더하지 않았습니다. 도구가 안전하게 관찰할 수 있다는 사실과 SVG Space의 원인을 알아냈다는 판단은 별개였습니다.
저는 개발과 직접 시험을 나중에 이어가기로 했습니다. Aside는 자체 합성 서버의 정지 수락과 launcher의 STOPPED를 확인하고 자체 안내 탭을 닫았습니다. 제 별도 프로필 탭까지 닫혔는지는 미확인으로 남겼습니다. GUIDE_STATE.json에는 사용자 보류 상태와 재개 위치를 저장했습니다.
다음에는 시험 환경을 다시 준비하고, 선택 표시가 지도 빗금인지 확인한 뒤 Space 한 번의 진단 결과를 받아야 합니다. 구체적인 결과값은 아직 없어 원인은 미확정이며 앱 코드로 해결한 상태도 아닙니다. 멈춘 서버의 예전 주소를 그대로 쓰는 것도 아닙니다.
제가 배운 검증 흐름은 명령에서 시작해 사람의 보고까지 증거를 바꿔 가며 이어지는 과정이었습니다. 자동시험은 실제 키를 대신하지 않고, 사람의 실패 보고는 자동시험 전체를 무효로 만들지도 않습니다. Aside가 판정 기준과 서버 수명, 미해결 지점과 정지 상태까지 남겨야 제가 같은 Space 문제부터 다시 시작할 수 있었습니다.
근거 문서: LOCAL_VERIFICATION.json, RESULT.json, BROWSER.json, GUIDE_STATE.json, USER_ACTION_SCENARIOS.md, 실키보드 안내 작업기록.md.