# Phase 4 결과 수집 — 대상 판별 규칙 `SKILL.md` §Phase 4 에서 분리한 상세. **누구에게 `SendMessage` 를 보내고 누구에게 안 보내는가**를 정한다. 판별 근거는 `_workspace/_progress.md` 의 상태 열이다(enum 4종 → `data-protocol.md` §진행 원장). ## 알림 대기 대상 **이번 실행에서 기동한** 백그라운드 에이전트의 완료 알림을 전부 받은 뒤 산출 파일 완성을 확인한다. 알림 전 파일 유무로 실패를 단정하지 않는다. **`생략` 으로 적힌 에이전트는 알림 대상이 아니다** — 기동하지 않았으므로 알림을 보내지 않는다. 기다리지 말고 파일 존재로 판정한다. ## 상태별 처리 (3분기) | 원장 상태 | `SendMessage` | 교차 확인 질문 답 | |---|---|---| | **`완료`** (= 살아 있는) | 보낸다 — 핵심 발견 3건 요청 | 회신 내용으로 채운다 | | **`실패`** | 보내지 않는다 | `미검증` + 사유 | | **`생략`** | 보내지 않는다 | **산출물 파일을 직접 읽어** 채우고 `이전 실행 산출물에서 확인(YYYY-MM-DD)` | **`살아 있는` = 완료 알림을 정상 수신했고 산출 파일이 실패 판정 ①②③에 걸리지 않은 에이전트.** 이 정의가 없으면 전부 죽었다고 보고 교차 질문 2건을 통째로 `미검증` 처리하게 된다. > ⚠ **`실패` 와 `생략` 을 한 처리로 묶지 마라.** 묶으면 `부분`·`이어서` 실행이 **매번** 교차 질문 > 2건을 `미검증` 으로 떨어뜨린다 — 산출물은 멀쩡히 있는데도 그렇다. > `실패` 는 답할 근거가 없는 것이고, `생략` 은 답할 근거가 **파일에 있는** 것이다. ## 교차 확인 질문 (반드시 물을 것) - 아키텍처가 정의한 3계층 경계가 구현에서 실제로 지켜지는가? 위반 지점은 어디인가? - 런타임 시뮬 플래그(`isSimul`) 경로가 디바이스 시뮬 분기와 일관되는가? (`Simulation|x64`는 별도 빌드가 아니므로 "구성"으로 묻지 않는다 — `optimize-ptop-build` §3단계 참조) 상충하는 답이 나오면 어느 쪽도 지우지 않고 양쪽을 **근거(파일:라인)와 함께 병기**한다. > 위 표의 분기를 늘리거나 상태 enum을 바꾸면 `data-protocol.md` §진행 원장(정의부)과 > `SKILL.md` §성공 기준의 교차 질문 항목을 **같은 편집에서** 고친다 > (`docs/harness-ptop.md` §소비처 확인 의무 ①~④).