# Step 4: Release Evidence Gate ## 읽어야 할 파일 - `/AGENTS.md` - `/docs/PRD.md` - `/docs/ARCHITECTURE.md` - `/docs/ADR.md` - `/docs/VALIDATION.md` - `/docs/BUILDING.md` - `/docs/INPUT_FORMAT.md` - `/docs/RELEASE_CHECKLIST.md` - `/docs/HDF5_SCHEMA.md` ## 작업 새 실행 증거로 PRD section 8의 내부 배포 수용 조건을 모두 판정한다. - Debug와 Release configure/build/test를 각각 실행한다. - test count가 0이 아닌지 확인한다. - Harness Python self-test를 실행한다. - reference, determinism, install-tree, HDF5 inspection, scale benchmark 결과를 checklist ID에 연결한다. - 현재 검증 범위가 Abaqus displacement/reaction이며 내력/응력은 synthetic adapter coverage임을 release note에 명시한다. - 하나라도 증거가 없거나 실패하면 release를 완료 처리하지 말고 `blocked` 또는 `error`로 기록한다. ## Acceptance Criteria ```powershell uv run --with pytest python -m pytest -v -rs cmake --preset windows-debug cmake --build --preset windows-debug ctest --preset windows-debug --output-on-failure cmake --preset windows-release cmake --build --preset windows-release ctest --preset windows-release --output-on-failure .\out\build\windows-release\Release\fesa_phase1_scale_benchmark.exe cmake --install out\build\windows-release --config Release --prefix out\package\fesa ``` 모든 명령이 종료 코드 0이고 release checklist의 각 criterion이 해당 출력 또는 validation report 항목으로 추적되어야 한다. ## 검증 절차 1. 위 명령을 생략 없이 새로 실행한다. 2. warning, test count, reference maximum error, benchmark와 install manifest를 기록한다. 3. 성공한 경우에만 step/phase를 `completed`로 갱신한다. 4. 미제공 외부 데이터가 필요하면 범위를 확대하지 말고 정확한 blocker를 기록한다. ## 금지사항 - 실패 테스트를 disable하거나 제외하지 마라. 이유: release 증거를 조작한다. - 구현되지 않은 Abaqus 내력/응력 qualification을 선언하지 마라. 이유: golden이 없다. - 자동 push하지 마라. 이유: 사용자가 `--push`를 명시한 경우에만 허용된다.