docs: record final thermal regression and independent review

This commit is contained in:
KOKO\Mimi
2026-10-04 01:44:30 +09:00
parent 926e97e405
commit 9076aa2226
3 changed files with 69 additions and 7 deletions
@@ -2,7 +2,7 @@
- Feature ID: `shell-transient-heat-transfer`
- Owner: 메인 assistant
- 상태: 기존 전체 baseline 확보; 열해석 구현·검증 진행 중. 제품 검증 완료가 아니다.
- 상태: 열해석 구현·전체 회귀·독립 검토 완료. 새 필수 reference 비교는 미실행이며 제품 검증 완료가 아니다.
- 기준: [PRD](PRD.md), [ADR](ADR.md), [정식화](formulation.md),
[독립 수치 검토](numerical-review.md), [공통 tolerance](../TOLERANCE.md).
@@ -427,8 +427,65 @@ RMS/S=**0.049674084615673214**, max abs=**245.26294650091936**,
`blocking=false`다. 원본 INP/CSV SHA256은 실행 전후 승인 값과 같다.
새 필수 reference는 별도 경로의 모델·CSV를 아직 받지 못하여 미실행이다.
메인 통합 commit `9f7fb2e`에서 CMake 등록 뒤 configure/build/inventory는 native 0,
메인에서 CMake 등록을 반영한 작업트리의 configure/build/inventory는 native 0이다.
실행 JSON의 revision은 commit 전 `69fa4ca`이며 등록 변경은 `9f7fb2e`로 확정했다.
inventory **617개**, 새 compiler warning 없음이다. 짧은 물리·비교기 통합 검사
**10/10 PASS**도 native 0이다. 관련 로그는 메인의
`.dryforge/evidence/t10-integrated-*`와 작업 checkout의 위 `t10-final-*`에 보존한다.
전체 회귀와 독립 physics 완료 평가는 아직 진행 중이며 이 범위 검사로 대신하지 않는다.
전체 회귀의 최종 결과는 아래에 별도로 기록했다. 독립 physics 평가는
[물리 검토 보고서](physics-evaluation.md)에 기록했다.
### 독립 최종 구현 검토
독립 검토자가 `a3502c9..926e97e`의 열해석 구현과 Feature 계약을 읽기 전용으로
대조했다. 수정이 필요한 finding은 발견하지 못했다. Q4×P2 K/C·24개 Fourier flux trace,
raw 초기값을 사용하는 BE RHS·실제 delta·full residual 반력, 결정적 조립과 accepted
history의 소유권, 입력의 fail-closed 처리, candidate close/readback/atomic finalize,
reference identity와 공통 tolerance를 확인했다. 검토자는 파일을 변경하거나 검사를
실행하지 않았으며, 이 검토를 build/CTest의 실행 evidence로 취급하지 않는다.
새 필수 reference의 미제공과 physics 보고서의 두께 경계층·곡면·접합부 검증 한계는
그대로 남는다.
### 통합 전체 회귀와 남은 완료 조건
Production/test/CMake 소스가 `9f7fb2e`인 통합 구현에서
`ctest --preset windows-msvc-ninja-debug --output-on-failure`를 필터 없이 실행했다.
후속 commit은 문서만 변경했으며 최종 검토 revision `926e97e`와 해당 소스의 diff가 없다.
전체 **617개: 614 PASS, 2 FAIL, 1 SKIP**, native CTest exit **8**이다.
Baseline의 478개 검사 이름이 모두 포함되며 추가된 **139개는 모두 PASS**다.
전체 CTest green이라고 보고하지 않는다.
| 기존 비통과 항목 | 최종 판정 | 실행 시간 | Baseline과 수치 기록 대조 |
| --- | --- | --- | --- |
| `HhtShellPhysics.C08aRigidManufacturedOrbitFullCoordinateTimeConvergence` | FAIL | 928.48초 | status와 GTest metric body 정확히 일치 |
| `HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants` | FAIL | 2478.99초 | status와 GTest metric body 정확히 일치 |
| `HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved` | SKIP | 0.07초 | status와 판정 불가 사유 정확히 일치 |
세 항목은 기존의 무관한 HHT 미해결로 유지한다. 시간 정보만 제외한 assertion·metric
본문을 `compare_baseline_metrics.py`로 대조한 native exit은 0이며, 실패 기준을
완화하거나 검사를 제외하지 않았다. 독립 최종 검토에서도 새로운 코드 finding이 없다.
검토자가 종료 후 전체 617개 test block·집계·native exit 복구 기록·baseline 대조를
읽기 전용으로 확인했고 기존 검토 결론을 유지했다.
실행 중 세션 재시작으로 stdout 수집 wrapper가 종료되어
`t11-full-test.log`는 547번 시작까지만 기록됐다. 살아 있던 CTest PID 67836의 Windows
process handle을 유지하고 `GetExitCodeProcess`로 최종 native exit 8을 직접 캡처했다.
모든 617개 verdict와 `End testing`이 있는 CTest 원본 `LastTest.log`를 종료 직후 복사해
보존했다. Wrapper의 불완전한 stdout를 전체 결과 근거로 사용하지 않는다.
최종 evidence는 메인 `.dryforge/evidence/`의 다음 파일이다.
- `t11-full-test-recovered-exit.json`: native exit·argv·대상 source revision·복구 방법.
- `t11-full-LastTest.log`: 전체 검사별 실제 결과와 수치 출력.
- `t11-full-outcomes.json`: 617개 최종 verdict, baseline 포함 여부와 추가 139개 판정.
- `t11-hht-baseline-comparison.json`: 기존 2 FAIL·1 SKIP의 정확한 metric body 대조.
최종 원본 NT11 비교는 **87/729행 FAIL**, RMS/S=**0.049674084615673214**,
max abs=**245.26294650091845**, `numerical_passed=0`, `blocking=0`이다.
진단 분류 검사는 PASS지만 외부 수치 일치가 PASS라는 뜻이 아니다. 원본 INP/CSV의
SHA256은 전체 실행 후에도 STH-C08 값과 일치한다.
사용자가 새 reference 모델·NT11 CSV는 **아직 준비 중**이라고 답했다. 별도 경로의
파일·identity가 제공되면 승인 공통 tolerance로 새 필수 family를 실제 실행해야 한다.
그 전까지 기능의 외부 검증 완료·release 준비·dev 병합을 주장하지 않는다. 기존 원본,
현재 branch와 작업 checkout, 활성 실행 계획은 후속 비교를 위해 보존한다.