증상
scripts/setup.test.sh의 아래 assertion이 /opt/ccc-node가 아닌 체크아웃에서 항상 실패합니다.
FAIL: setup records manifest hashes matching the installed bytes after the rewrite
PASS=105 FAIL=1
validate-harness가 이 때문에 로컬에서 FAIL로 끝나므로, 노드에서 하네스를 돌리는 사람은 자기 변경이 깨뜨린 줄 알고 조사에 들어갑니다. 실제로 그렇게 한 번 헛조사가 발생했습니다.
CI는 초록입니다
main 최근 실행과 진행 중인 PR 모두 validate-harness가 통과합니다. CI 러너의 체크아웃 경로가 조건을 만족하기 때문입니다. 코드 회귀가 아닙니다.
재현 / 확인 방법
origin/main을 별도 worktree에 체크아웃해 나란히 돌리면 기준선과 작업 브랜치가 동일하게 실패합니다.
$ git worktree add /tmp/ccc-baseline origin/main
$ (cd /tmp/ccc-baseline && bash scripts/setup.test.sh) # PASS=105 FAIL=1
$ bash scripts/setup.test.sh # PASS=105 FAIL=1
확인 경로: /root/work/ccc-node-1042 (즉 /opt/ccc-node 아님)
원인 추정
조건은 #1070이 이미 서술한 것과 같습니다:
On a node whose checkout is not /opt/ccc-node (or whose harness dir is not /root/.claude), setup.sh records the repo-skill manifest hashes before step 2b rewrites the canonical paths inside the installed skill files.
해당 assertion은 그 수정본이 도입했습니다:
45163c1 fix(setup): re-record skill manifest hashes after the canonical-path rewrite (#1071)
제품 코드는 고쳐졌지만 테스트가 체크아웃 위치에 대해 hermetic하지 않아, 정경로 재작성이 일어나는 환경에서만 통과하는 것으로 보입니다. 정확한 지점은 setup.sh의 정경로 재작성 단계(#1070 본문의 L673-698 부근)와 테스트 픽스처가 가정하는 경로를 대조해야 확정됩니다.
영향
기능 영향은 없습니다(CI 통과, 프루닝 로직 자체는 #1071에서 수정됨). 비용은 개발자 시간입니다 — 노드에서 하네스를 돌릴 때마다 무관한 빨간불이 뜨고, 무시하도록 학습되면 진짜 실패를 놓칩니다.
제안
테스트 픽스처가 체크아웃 경로와 무관하게 동작하도록 만들거나, 조건이 본질적이라면 해당 케이스를 명시적으로 skip하고 사유를 남기는 편이 낫습니다. 지금처럼 조용히 실패하는 것이 가장 나쁩니다.
관련: #1070, #1071
증상
scripts/setup.test.sh의 아래 assertion이/opt/ccc-node가 아닌 체크아웃에서 항상 실패합니다.validate-harness가 이 때문에 로컬에서 FAIL로 끝나므로, 노드에서 하네스를 돌리는 사람은 자기 변경이 깨뜨린 줄 알고 조사에 들어갑니다. 실제로 그렇게 한 번 헛조사가 발생했습니다.CI는 초록입니다
main 최근 실행과 진행 중인 PR 모두
validate-harness가 통과합니다. CI 러너의 체크아웃 경로가 조건을 만족하기 때문입니다. 코드 회귀가 아닙니다.재현 / 확인 방법
origin/main을 별도 worktree에 체크아웃해 나란히 돌리면 기준선과 작업 브랜치가 동일하게 실패합니다.확인 경로:
/root/work/ccc-node-1042(즉/opt/ccc-node아님)원인 추정
조건은 #1070이 이미 서술한 것과 같습니다:
해당 assertion은 그 수정본이 도입했습니다:
제품 코드는 고쳐졌지만 테스트가 체크아웃 위치에 대해 hermetic하지 않아, 정경로 재작성이 일어나는 환경에서만 통과하는 것으로 보입니다. 정확한 지점은
setup.sh의 정경로 재작성 단계(#1070 본문의 L673-698 부근)와 테스트 픽스처가 가정하는 경로를 대조해야 확정됩니다.영향
기능 영향은 없습니다(CI 통과, 프루닝 로직 자체는 #1071에서 수정됨). 비용은 개발자 시간입니다 — 노드에서 하네스를 돌릴 때마다 무관한 빨간불이 뜨고, 무시하도록 학습되면 진짜 실패를 놓칩니다.
제안
테스트 픽스처가 체크아웃 경로와 무관하게 동작하도록 만들거나, 조건이 본질적이라면 해당 케이스를 명시적으로 skip하고 사유를 남기는 편이 낫습니다. 지금처럼 조용히 실패하는 것이 가장 나쁩니다.
관련: #1070, #1071