`plan_file: null`과 `review_file: ~`은 YAML에 실제로 존재하는 키인데
mapstructure가 present nil을 생략과 같은 nil pointer로 접어버려, 승인 경계가
빈 문자열과 공백만 거부하고 null 형태는 조용히 built-in default로 떨어뜨렸다.
Viper가 돌려주는 raw preset 구조에는 두 키가 nil 값으로 남아 있으므로, strict
decode 전에 그 presence를 검사해 필드 경로와 함께 거부하고 실제로 없는 키만
fallback 신호로 남긴다.
두 필드와 두 가지 YAML null 표기를 모두 회귀로 고정하고, 기존 빈/공백, 생략,
상대 경로, clone 독립성, refresh redaction 근거는 그대로 유지한다.
Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
원격 evidence는 push된 commit이 있어야 만들 수 있으므로 구현 commit을 먼저
올린 뒤 그 commit으로 원격을 검증했다. 검증 대상 commit, 로컬 전체 suite와
race/full/self-test 결과, Darwin/arm64 재빌드 결과를 남긴다. 승인된 operator
설정 파일 두 개가 여전히 없어 live API 검증은 외부 차단 상태이며, 이를 통과로
기록하지 않고 정확한 복구 조건과 열두 개 입력 목록을 함께 남긴다.
직전 루프의 plan/review 로그와 이번 루프 pair도 함께 보존한다.
Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`plan_file`/`review_file`이 평범한 문자열이라 decode 직후 trim-empty가 곧
생략으로 취급되었고, 그 결과 loader의 빈 경로 거부가 설정값에 대해 도달할 수
없었다. 명시적으로 설정한 빈 값과 공백 값이 조용히 built-in default로
떨어지는 승인 경계 결함이므로 optional 표현으로 바꿔 생략만 fallback 신호가
되게 한다. 설정된 값은 파일 접근 전에 trim 후 빈 경로 거부까지 도달한다.
pointer cell이 snapshot 사이에서 aliasing되지 않도록 Templates 전용 deep
clone을 두고, 네 가지 명시 빈/공백 경계와 clone 독립성, 그리고 refresh가
경로나 본문을 노출하지 않는다는 기존 근거를 함께 회귀로 고정한다.
Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
원격 evidence는 push된 commit이 있어야 만들 수 있으므로 구현 commit을
먼저 올린 뒤 그 commit으로 원격을 검증했다. 검증 대상 commit, 원격 재빌드
결과, 그리고 승인된 smoke 입력 파일 부재로 live API 검증이 외부 차단된
사실과 정확한 재개 조건을 남긴다.
Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md
공식 리뷰가 지적한 두 가지 승인 경계 결함을 고친다. `plan_file`/`review_file`은
edge.yaml 디렉터리 기준 상대 경로만 허용하고 절대/빈 경로는 파일 접근 전에 거부한다.
필수 heading과 Review `PASS`는 부분 문자열이 아니라 정확한 단독 줄로 검증하며,
문서화된 placeholder를 제거한 뒤 남는 `{{`/`}}`를 거부해 문법을 닫는다.
리뷰가 존재한다고 기술했지만 실제로는 없던 회귀 근거를 추가한다. admission 시
고정된 effective 템플릿 쌍이 clone과 workspace 재검증을 통과하는지, refresh가
이미 승인된 요청이 아니라 새 요청에만 적용되는지, custom Review 템플릿이 내부
artifact만 바꾸고 caller 최종 출력은 그대로인지를 각각 확정 검증한다.
현재 문서도 실제 동작에 맞춘다. Edge 실행 spec의 낡은 Plan JSON Schema 서술을
direct PlanMD 검증으로 고치고, outer Anthropic 계약과 input spec에 템플릿이
Edge 내부 stage 입력일 뿐 caller 요청/응답 계약을 바꾸지 않음을 명시한다.
Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md