docs: record in-progress pre-prune verification evidence
This commit is contained in:
@@ -61,7 +61,7 @@ CLI는 입력 `.inp` 하나, lexical sibling HDF5·log, warning/오류 진단과
|
||||
|
||||
## 이번 병합의 현재 검증 상태
|
||||
|
||||
직접 MSVC와 CMake/Ninja의 Debug solver/CLI 및 세 테스트 target build가 완료됐다.
|
||||
T2/T3 단계에서 직접 MSVC와 CMake/Ninja의 Debug solver/CLI 및 세 테스트 target build가 완료됐다.
|
||||
제품274개는 Refactor working bytes와 일치한다. 양쪽 실제 discovery는 unit849,
|
||||
integration72, reference43으로 총964개이며 canonical identity가 일치한다.
|
||||
최종 선별 실행은 CMake176개, Native15개, 합성 reference comparator28개,
|
||||
@@ -72,6 +72,56 @@ Python145개가 failure/error/skip 없이 통과했다. 이는 전체964개 실
|
||||
2026-10-18 사용자 지시로 `reference/temp`는 검증에 사용하지 않는다. 정식 경로에 없는
|
||||
`shellNL-meshfine`, `shellNL-meshfine_02`, `shellNL-meshfine-pressure` 자료는 복사·복원하지 않는다.
|
||||
해당 실제 비교는 자료 미확보로 미완료이며 테스트를 skip 처리하거나 통과로 바꾸지 않는다.
|
||||
전체 Debug 검증·독립 수치 검토·정식 자료의 필수 비교는 후속 실행 대상이다.
|
||||
전체 Debug 검증·독립 수치 검토·정식 자료 비교의 현재 진행은 아래 T5 중간 기록과 구분한다.
|
||||
정리 전 필수 검증을 충족하지 못하면 테스트 삭제와 최종 병합 완료 판정을 진행하지 않는다.
|
||||
문서 갱신 자체로 build/test를 추가 실행하지 않았다.
|
||||
T4 문서 갱신 자체로 build/test를 추가 실행하지 않았다.
|
||||
|
||||
### T5 정리 전 검증 중간 기록 — 전체 완료 아님
|
||||
|
||||
2026-10-18에 전체 Native Debug 솔루션, CMake Debug configure/build와 Ninja dependency
|
||||
검사를 새로 실행해 모두 exit0을 확인했다. 제품102 compile unit의 dependency가 유효하고,
|
||||
양쪽 세 테스트 executable의 실제 identity는 unit849·integration72·reference43,
|
||||
CTest964개로 일치한다. Public header111개는 각각 독립 TU로 private/vendor include 경로 없이
|
||||
MSVC C++17 `/EHsc /W4 /WX /MDd /Zs` 검사를 통과했다. CLI·test의 네 runtime 디렉터리에서
|
||||
DLL7개의 SHA256이 같다. 제품274개와 정식 reference32개 bytes도 중간 기록 전에 재확인했다.
|
||||
`reference/temp`의12개 경로는 byte 검증 대상에서 제외했고 입력·CSV·결과를 사용하지 않았다.
|
||||
|
||||
Native unit 전체는 필터 없이 계속 실행 중이며 **전체 종료 코드와 XML은 아직 없다**.
|
||||
중간 stdout에서 완료57개 identity를 관측했으며 다음 개별 검사는 새로 PASS 종료했다.
|
||||
|
||||
- `ReducedManufacturedControllerKeepsExactInitialOrbit`: 396862ms.
|
||||
- `C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence`: 7-grid, 7153515ms.
|
||||
- `C08bInitialPhysicalSpectrumProbe`: 716ms.
|
||||
- `PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid`: 539678ms.
|
||||
|
||||
현재 `C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants`의8-grid를 수행한다.
|
||||
h=1/64·1/128·1/256·1/512·1/1024의 계산 요약이 생성됐으나 남은8192·16384·32768증분
|
||||
fine-grid와 최종 시간수렴·물리 gate는 미완료다. 모든 grid의 총 증분수는57840이다.
|
||||
CPU/RSS 상승이나 부분 로그를 전체 통과 근거로 삼지 않는다. Native 나머지 executable,
|
||||
전체 CTest와 Python suite는 같은 직렬 큐에서 대기하며 임의 timeout·skip·필터를 추가하지 않았다.
|
||||
|
||||
Refactor 원본 밖 별도 source snapshot304개에서 Native Debug 기준 solver/CLI를 새로
|
||||
빌드해 exit0과 DLL7개 일치를 확인했다. 정적5모델을 포함한 정식 입력11개에 대해 기준·Native·
|
||||
CMake 실행물을 같은 scratch 입력 경로와 bytes에서 직렬 실행하고 schema·identity·각 field를
|
||||
대조하는 후속 큐를 준비했다. **새 실제 모델 실행·비교는 아직 시작하지 않았다.** 보고서 JSON의
|
||||
case·policy·quantity와 실제 exit를 확인하며, parity의 빈 결과·자료 부재·dtype 차이·불일치는
|
||||
nonzero로 남긴다. Exact field assertion의 불일치를 새 물리 허용치 위반으로 승격하지 않고
|
||||
출처·dtype·identity·rounding 차이를 분류한 뒤 기존 승인 기준과 대조한다. 임시 도구의 합성
|
||||
증거 하한 검사9건은 솔버나 물리 검증 통과가 아니다. 빈 결과·자료 누락의 옛 false-green을
|
||||
각각 exit0으로 재현하고 수정 후 exit1·exit2가 되는 것을 확인했다.
|
||||
|
||||
독립 수치 검토는 명백한 식 오류나 승인 기준 변경을 발견하지 못했으나 `CONCERNS`다.
|
||||
inverse→factor solve·Jet·eigen whitening·paired 산술과 spatial RM 변환은 rounding graph에
|
||||
영향이 있어 비트 보존을 가정하지 않는다. 특히 `hdf5_primitives.cpp`, dynamic/nonlinear HDF5
|
||||
writer의 `J^T m=g` LU action은 T2 영향 routing 누락을 T5 manifest에 보충하고 finite-rotation
|
||||
virtual-work·완전 inverse action·HDF5 reaction readback 검사 identity에 연결했다.
|
||||
이 정적 검토를 실제 전체 실행·reference closure의 승인으로 해석하지 않는다.
|
||||
|
||||
정식 `shellNL-meshfine`·`shellNL-meshfine-pressure`는 자료 미확보로 미실행이고,
|
||||
`shellNL-meshfine_02`는 자료 부재와 현재 comparator 연결 부재를 함께 남긴다.
|
||||
Thermal 새 필수 reference 부재와 기존 NT11 diagnostic/nonblocking 불일치도 유지한다.
|
||||
필수 gate를 충족하지 않았으므로 테스트 삭제·T6 진입·최종 병합 완료 판정을 진행하지 않는다.
|
||||
|
||||
중간 근거는 `.build/merge-verification/t5-20261018-01/before-prune/`에 있으며
|
||||
`running-checkpoint.json`과 `progress.jsonl`이 실행 큐·PID·현재 관측을 보존한다.
|
||||
파일 manifest의 `t5_before_prune_verification`은 이 중간 snapshot을 기록하며 T1/T2/T3 원필드는 보존했다.
|
||||
|
||||
@@ -32644,5 +32644,704 @@
|
||||
"removed_tests": [],
|
||||
"policy_failure_reproduction": "native ExceptionHandling을 메모리에서 false로 바꾸면 현재 policy 검사가 AssertionError로 거부하고 원문 설정에서는 통과한다. 파일은 수정하지 않는다.",
|
||||
"policy_failure_evidence": ".build/merge-verification/t3-20261018-01/policy-mutation.log"
|
||||
},
|
||||
"t5_before_prune_verification": {
|
||||
"status": "IN_PROGRESS_NOT_A_T5_COMPLETION_OR_T6_GATE",
|
||||
"snapshot_utc": "2026-10-18T02:59:51.000255+00:00",
|
||||
"base_commit": "0635cec53d9d617503d4ae9b57a97c82b8f9f9b9",
|
||||
"scope": "정리 전 전체 검증의 중간 근거. 제품·검사·등록·정식 reference 수정이나 테스트 삭제 없음. 미생성 exit/XML을 통과로 계산하지 않는다.",
|
||||
"raw_evidence": ".build/merge-verification/t5-20261018-01/before-prune",
|
||||
"user_decision": "reference/temp는 검증에 사용하지 않는다. 임시 입력/CSV/결과를 읽어 검증·비교·복사하거나 정식 자료로 대체하지 않았다.",
|
||||
"completed_build_checks": {
|
||||
"native-build": {
|
||||
"record": ".build/merge-verification/t5-20261018-01/before-prune/native-build.json",
|
||||
"log": ".build/merge-verification/t5-20261018-01/before-prune/native-build.log",
|
||||
"argv": [
|
||||
"MSBuild",
|
||||
"FESA.sln",
|
||||
"/m:2",
|
||||
"/p:Configuration=Debug",
|
||||
"/p:Platform=x64"
|
||||
],
|
||||
"actual_argv": [
|
||||
"cmd",
|
||||
"/d",
|
||||
"/c",
|
||||
"C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\native-build.cmd"
|
||||
],
|
||||
"cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker",
|
||||
"exit": 0,
|
||||
"seconds": 2.6927127838134766,
|
||||
"removed_filter_variables": {},
|
||||
"environment": {
|
||||
"TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\native-build-tmp",
|
||||
"TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\native-build-tmp",
|
||||
"PYTHONUTF8": "1",
|
||||
"PYTHONIOENCODING": "utf-8"
|
||||
},
|
||||
"log_sha256": "e49b0b496b2e4a0c6e6fa8aa1e108e405a75647df0ecb0ef08044bd178f8b422"
|
||||
},
|
||||
"configure": {
|
||||
"record": ".build/merge-verification/t5-20261018-01/before-prune/configure.json",
|
||||
"log": ".build/merge-verification/t5-20261018-01/before-prune/configure.log",
|
||||
"argv": [
|
||||
"cmake",
|
||||
"--preset",
|
||||
"windows-msvc-ninja-debug"
|
||||
],
|
||||
"actual_argv": [
|
||||
"cmd",
|
||||
"/d",
|
||||
"/c",
|
||||
"C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\configure.cmd"
|
||||
],
|
||||
"cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker",
|
||||
"exit": 0,
|
||||
"seconds": 1.9974191188812256,
|
||||
"removed_filter_variables": {},
|
||||
"environment": {
|
||||
"TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\configure-tmp",
|
||||
"TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\configure-tmp",
|
||||
"PYTHONUTF8": "1",
|
||||
"PYTHONIOENCODING": "utf-8"
|
||||
},
|
||||
"log_sha256": "6723be76fc9b32cb2579c441582eadd6a31d0f42bebdf7d33a274235f1f3305c"
|
||||
},
|
||||
"cmake-build": {
|
||||
"record": ".build/merge-verification/t5-20261018-01/before-prune/cmake-build.json",
|
||||
"log": ".build/merge-verification/t5-20261018-01/before-prune/cmake-build.log",
|
||||
"argv": [
|
||||
"cmake",
|
||||
"--build",
|
||||
"--preset",
|
||||
"windows-msvc-ninja-debug",
|
||||
"--parallel",
|
||||
"2"
|
||||
],
|
||||
"actual_argv": [
|
||||
"cmd",
|
||||
"/d",
|
||||
"/c",
|
||||
"C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\cmake-build.cmd"
|
||||
],
|
||||
"cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker",
|
||||
"exit": 0,
|
||||
"seconds": 3.918487310409546,
|
||||
"removed_filter_variables": {},
|
||||
"environment": {
|
||||
"TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\cmake-build-tmp",
|
||||
"TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\cmake-build-tmp",
|
||||
"PYTHONUTF8": "1",
|
||||
"PYTHONIOENCODING": "utf-8"
|
||||
},
|
||||
"log_sha256": "db6dcbe64f97503b1513ba88244422e134ec6a15385f58b854eda665b462b76f"
|
||||
},
|
||||
"ninja-deps": {
|
||||
"record": ".build/merge-verification/t5-20261018-01/before-prune/ninja-deps.json",
|
||||
"log": ".build/merge-verification/t5-20261018-01/before-prune/ninja-deps.log",
|
||||
"argv": [
|
||||
"ninja",
|
||||
"-C",
|
||||
".build/cmake-debug",
|
||||
"-t",
|
||||
"deps"
|
||||
],
|
||||
"actual_argv": [
|
||||
"cmd",
|
||||
"/d",
|
||||
"/c",
|
||||
"C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\ninja-deps.cmd"
|
||||
],
|
||||
"cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker",
|
||||
"exit": 0,
|
||||
"seconds": 1.740182876586914,
|
||||
"removed_filter_variables": {},
|
||||
"environment": {
|
||||
"TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\ninja-deps-tmp",
|
||||
"TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\ninja-deps-tmp",
|
||||
"PYTHONUTF8": "1",
|
||||
"PYTHONIOENCODING": "utf-8"
|
||||
},
|
||||
"log_sha256": "98e36f6181baa49c61172dcf61a757ef89295bdb8383037071599da5022780db"
|
||||
},
|
||||
"headers-compile": {
|
||||
"record": ".build/merge-verification/t5-20261018-01/before-prune/headers-compile.json",
|
||||
"log": ".build/merge-verification/t5-20261018-01/before-prune/headers-compile.log",
|
||||
"argv": [
|
||||
"cl",
|
||||
"@C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\headers\\compile.rsp"
|
||||
],
|
||||
"actual_argv": [
|
||||
"cmd",
|
||||
"/d",
|
||||
"/c",
|
||||
"C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\headers-compile.cmd"
|
||||
],
|
||||
"cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker",
|
||||
"exit": 0,
|
||||
"seconds": 201.70288968086243,
|
||||
"removed_filter_variables": {},
|
||||
"environment": {
|
||||
"TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\headers-compile-tmp",
|
||||
"TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\headers-compile-tmp",
|
||||
"PYTHONUTF8": "1",
|
||||
"PYTHONIOENCODING": "utf-8"
|
||||
},
|
||||
"log_sha256": "99ec0b9178d41ec674584c6e2f94d8f414daf81af3e3b57f83d876f81ec8bf83"
|
||||
},
|
||||
"baseline-build": {
|
||||
"record": ".build/merge-verification/t5-20261018-01/before-prune/baseline-build.json",
|
||||
"log": ".build/merge-verification/t5-20261018-01/before-prune/baseline-build.log",
|
||||
"argv": [
|
||||
"MSBuild",
|
||||
"msvc/fesa_cli.vcxproj",
|
||||
"/m:2",
|
||||
"/p:Configuration=Debug",
|
||||
"/p:Platform=x64"
|
||||
],
|
||||
"actual_argv": [
|
||||
"cmd",
|
||||
"/d",
|
||||
"/c",
|
||||
"C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\baseline-build.cmd"
|
||||
],
|
||||
"cwd": "C:\\git\\FESADev\\.dryforge\\t5-refactor-baseline",
|
||||
"exit": 0,
|
||||
"seconds": 161.69524788856506,
|
||||
"removed_filter_variables": {},
|
||||
"environment": {
|
||||
"TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\baseline-build-tmp",
|
||||
"TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\baseline-build-tmp",
|
||||
"PYTHONUTF8": "1",
|
||||
"PYTHONIOENCODING": "utf-8"
|
||||
},
|
||||
"log_sha256": "1c763c2aee61f9f1975912373576f420322a892f260ec23c05dc495294d1b6c2"
|
||||
}
|
||||
},
|
||||
"source_fidelity": {
|
||||
"product_files": 274,
|
||||
"refactor_working_bytes_equal": true,
|
||||
"rechecked_before_interim_record": true,
|
||||
"hash_evidence": ".build/merge-verification/t5-20261018-01/before-prune/pre-execution-hashes.json",
|
||||
"canonical_reference_files_checked": 32,
|
||||
"canonical_reference_bytes_unchanged": true,
|
||||
"temp_paths_excluded_before_byte_reads": 12
|
||||
},
|
||||
"discovery": {
|
||||
"native_unit": 849,
|
||||
"native_integration": 72,
|
||||
"native_reference": 43,
|
||||
"cmake_unit": 849,
|
||||
"cmake_integration": 72,
|
||||
"cmake_reference": 43,
|
||||
"ctest": 964,
|
||||
"canonical_identity_match": true,
|
||||
"evidence": ".build/merge-verification/t5-20261018-01/before-prune/discovery-summary.json"
|
||||
},
|
||||
"public_header_check": {
|
||||
"independent_translation_units": 111,
|
||||
"mode": "MSVC C++17 /EHsc /W4 /WX /MDd /Zs; include/ and VS/Windows standard INCLUDE only, no private/vendor include path",
|
||||
"exit": 0,
|
||||
"translation_unit_map": ".build/merge-verification/t5-20261018-01/before-prune/headers-map.json",
|
||||
"environment": ".build/merge-verification/t5-20261018-01/before-prune/headers-environment.log"
|
||||
},
|
||||
"dependency_check": {
|
||||
"all_object_entries": 222,
|
||||
"production_object_entries": 102,
|
||||
"invalid_production_entries": []
|
||||
},
|
||||
"runtime_dlls": {
|
||||
"count": 7,
|
||||
"native_cli_native_tests_cmake_cli_cmake_tests_sha256_equal": true,
|
||||
"fresh_refactor_baseline_equal": true,
|
||||
"evidence": [
|
||||
".build/merge-verification/t5-20261018-01/before-prune/all-target-runtime-dll-parity.json",
|
||||
".build/merge-verification/t5-20261018-01/before-prune/baseline-runtime.json"
|
||||
]
|
||||
},
|
||||
"full_suite_execution": {
|
||||
"status": "RUNNING_NATIVE_UNIT_NO_SUITE_EXIT_OR_XML_YET",
|
||||
"serial_queue": [
|
||||
"Native unit849 unfiltered",
|
||||
"Native integration72 unfiltered",
|
||||
"Native reference43 unfiltered",
|
||||
"CTest964 unfiltered -j1",
|
||||
"Python entire tests/ suite"
|
||||
],
|
||||
"per_run_TMP_TEMP_and_raw_separated": true,
|
||||
"inherited_GTEST_CTEST_variables_removed": true,
|
||||
"pre_existing_fixed_reference_outputs_preserved": ".build/merge-verification/t5-20261018-01/before-prune/pre-existing",
|
||||
"explicit_ctest_timeout_properties": 0,
|
||||
"timeout_evidence": ".build/merge-verification/t5-20261018-01/before-prune/ctest-timeout-static.json",
|
||||
"native_completed_identity_count_in_stdout": 57,
|
||||
"native_completed_identities_in_stdout": [
|
||||
{
|
||||
"identity": "BuildInfo.VersionIsStableAndNonEmpty",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "BuildInfo.PublicHeaderHasNoBackendDependency",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory",
|
||||
"milliseconds": 2
|
||||
},
|
||||
{
|
||||
"identity": "ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisModel.ClassifiesActiveEntitiesInStableOrder",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisModel.RejectsMissingOrMultipleStep",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisState.AllocatesOnlyV0FullVectors",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisState.CopiesOrMovesWithoutAliasing",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisState.PreservesStepFrameAndStableRowOrder",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisState.CommitsFiniteShellGlobalEvidence",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation",
|
||||
"milliseconds": 5
|
||||
},
|
||||
{
|
||||
"identity": "DynamicAnalysisState.DefaultStateRejectsTrialAndCommit",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials",
|
||||
"milliseconds": 1
|
||||
},
|
||||
{
|
||||
"identity": "DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint",
|
||||
"milliseconds": 4
|
||||
},
|
||||
{
|
||||
"identity": "DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction",
|
||||
"milliseconds": 1
|
||||
},
|
||||
{
|
||||
"identity": "DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary",
|
||||
"milliseconds": 3
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate",
|
||||
"milliseconds": 4
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.RemovesOnlyActualFreeDirectorNull",
|
||||
"milliseconds": 1
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil",
|
||||
"milliseconds": 135
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.PreservesSmallResolvablePositivePartialRotationMass",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder",
|
||||
"milliseconds": 88
|
||||
},
|
||||
{
|
||||
"identity": "HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtTimeIntegrationTest.RejectsInvalidParametersAndTime",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError",
|
||||
"milliseconds": 6
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences",
|
||||
"milliseconds": 73
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration",
|
||||
"milliseconds": 40
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce",
|
||||
"milliseconds": 153
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum",
|
||||
"milliseconds": 2462
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature",
|
||||
"milliseconds": 3
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations",
|
||||
"milliseconds": 2
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect",
|
||||
"milliseconds": 0
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect",
|
||||
"milliseconds": 316
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit",
|
||||
"milliseconds": 396862
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence",
|
||||
"milliseconds": 7153515
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.C08bInitialPhysicalSpectrumProbe",
|
||||
"milliseconds": 716
|
||||
},
|
||||
{
|
||||
"identity": "HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid",
|
||||
"milliseconds": 539678
|
||||
}
|
||||
],
|
||||
"native_failed_identity_lines_so_far": [],
|
||||
"native_skipped_identity_lines_so_far": [],
|
||||
"native_current_identity": "HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants",
|
||||
"native_c08b_completed_time_grids": [
|
||||
{
|
||||
"h": "1/64",
|
||||
"increments": 16
|
||||
},
|
||||
{
|
||||
"h": "1/128",
|
||||
"increments": 32
|
||||
},
|
||||
{
|
||||
"h": "1/256",
|
||||
"increments": 64
|
||||
},
|
||||
{
|
||||
"h": "1/512",
|
||||
"increments": 128
|
||||
},
|
||||
{
|
||||
"h": "1/1024",
|
||||
"increments": 256
|
||||
}
|
||||
],
|
||||
"c08b_remaining_fine_grid_increments": [
|
||||
8192,
|
||||
16384,
|
||||
32768
|
||||
],
|
||||
"c08b_total_increments_all_grids": 57840,
|
||||
"c08b_final_convergence_and_physics_status": "NOT_COMPLETE",
|
||||
"warning": "stdout 관측은 전체 XML/exit를 대신하지 않는다. CPU/RSS/로그 크기를 수치 진척이나 통과의 근거로 쓰지 않는다.",
|
||||
"running_checkpoint": ".build/merge-verification/t5-20261018-01/before-prune/running-checkpoint.json",
|
||||
"native_stdout": ".build/merge-verification/t5-20261018-01/before-prune/native-fesa_unit_tests.log",
|
||||
"queued_suites_and_python": "NOT_RUN_YET"
|
||||
},
|
||||
"fresh_refactor_baseline": {
|
||||
"source_root": "C:/git/FESADev/.dryforge/t5-refactor-baseline",
|
||||
"source_pin": "11f09eeb9460115758eada96deda1d0b08c4a442",
|
||||
"tracked_selected_files_copied": 304,
|
||||
"copied_roots": [
|
||||
"include",
|
||||
"src",
|
||||
"msvc",
|
||||
"FESA.sln"
|
||||
],
|
||||
"excluded": [
|
||||
".build",
|
||||
"reference/temp",
|
||||
"original retained outputs"
|
||||
],
|
||||
"source_snapshot": ".build/merge-verification/t5-20261018-01/before-prune/baseline-source-snapshot.json",
|
||||
"build": "Native MSVC x64 Debug solver/CLI fresh build exit0",
|
||||
"fresh_model_execution": "NOT_RUN_YET; starts after all suites including Python exit",
|
||||
"model_queue": "11 available canonical inputs x Refactor baseline/Native/CMake; minimum static5 plus affected frequency/HHT/thermal models; serial, no arbitrary wall timeout",
|
||||
"pipeline_scripts": [
|
||||
".build/merge-verification/t5-20261018-01/before-prune/after-suites.py",
|
||||
".build/merge-verification/t5-20261018-01/before-prune/models.py",
|
||||
".build/merge-verification/t5-20261018-01/before-prune/hdf-parity.py",
|
||||
".build/merge-verification/t5-20261018-01/before-prune/reference-harness.cpp"
|
||||
],
|
||||
"parity_policy": "동일 scratch input 경로·bytes에서 새로 실행한 schema·identity·각 field 값과 실제 차이를 대조한다. 출처 동일성을 수치/물리 동등성으로 주장하지 않는다."
|
||||
},
|
||||
"independent_numerical_review": {
|
||||
"status": "CONCERNS_STATIC_REVIEW_ONLY",
|
||||
"report": ".build/merge-verification/t5-20261018-01/before-prune/numerical-review-ko.md",
|
||||
"sha256": "3a181a24665e778a19111e8d5e145c01547300dd4f2651f81b6cbfee31d884cd",
|
||||
"conclusion": "검토한 원문과 소스에서 명백한 식 오류·승인 기준 변경은 발견하지 못했으나 rounding graph·수명 영향과 실제 검증 의무는 남는다. 이 의견은 full T5 PASS 또는 T6 승인 근거가 아니다."
|
||||
},
|
||||
"supplemental_numerical_impact_classification": [
|
||||
{
|
||||
"path": "src/fesa/io/hdf5/hdf5_primitives.cpp",
|
||||
"category": "spatial reaction output arithmetic: analytic inverse-transpose multiply -> LU solve J^T m=g",
|
||||
"contract": "virtual-work spatial moment 변환식은 같으나 rounding graph가 달라 비트 보존을 가정하지 않는다. schema·identity·수치 허용치 변경 없음.",
|
||||
"reason": "T2 numerical routing 누락을 독립 수치 검토가 발견했다. T1/T2 원본 필드를 수정하지 않고 T5에 보충한다.",
|
||||
"required_oracle_identities": [
|
||||
"FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork",
|
||||
"FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent",
|
||||
"DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction",
|
||||
"NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment",
|
||||
"NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly",
|
||||
"NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal"
|
||||
],
|
||||
"current_full_execution_status": "PENDING; discovered but not reached in current Native full unit; CTest not started yet"
|
||||
},
|
||||
{
|
||||
"path": "src/fesa/io/hdf5/dynamic_hdf5_results_writer.cpp",
|
||||
"category": "spatial reaction output arithmetic: analytic inverse-transpose multiply -> LU solve J^T m=g",
|
||||
"contract": "virtual-work spatial moment 변환식은 같으나 rounding graph가 달라 비트 보존을 가정하지 않는다. schema·identity·수치 허용치 변경 없음.",
|
||||
"reason": "T2 numerical routing 누락을 독립 수치 검토가 발견했다. T1/T2 원본 필드를 수정하지 않고 T5에 보충한다.",
|
||||
"required_oracle_identities": [
|
||||
"FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork",
|
||||
"FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent",
|
||||
"DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction",
|
||||
"NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment",
|
||||
"NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly",
|
||||
"NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal"
|
||||
],
|
||||
"current_full_execution_status": "PENDING; discovered but not reached in current Native full unit; CTest not started yet"
|
||||
},
|
||||
{
|
||||
"path": "src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp",
|
||||
"category": "spatial reaction output arithmetic: analytic inverse-transpose multiply -> LU solve J^T m=g",
|
||||
"contract": "virtual-work spatial moment 변환식은 같으나 rounding graph가 달라 비트 보존을 가정하지 않는다. schema·identity·수치 허용치 변경 없음.",
|
||||
"reason": "T2 numerical routing 누락을 독립 수치 검토가 발견했다. T1/T2 원본 필드를 수정하지 않고 T5에 보충한다.",
|
||||
"required_oracle_identities": [
|
||||
"FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork",
|
||||
"FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent",
|
||||
"DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction",
|
||||
"NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment",
|
||||
"NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly",
|
||||
"NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal"
|
||||
],
|
||||
"current_full_execution_status": "PENDING; discovered but not reached in current Native full unit; CTest not started yet"
|
||||
}
|
||||
],
|
||||
"unresolved_reference_checks": [
|
||||
{
|
||||
"case": "shellNL-meshfine",
|
||||
"status": "NOT_RUN_MISSING_CANONICAL_MATERIAL",
|
||||
"reason": "정식 입력/CSV 미확보; temp는 사용하지 않는다."
|
||||
},
|
||||
{
|
||||
"case": "shellNL-meshfine_02",
|
||||
"status": "NOT_RUN_MISSING_CANONICAL_MATERIAL_AND_CURRENT_COMPARATOR_CONNECTION",
|
||||
"reason": "정식 자료도 없고 현재 ContractFor 연결도 없는 별도 후속 범위다."
|
||||
},
|
||||
{
|
||||
"case": "shellNL-meshfine-pressure",
|
||||
"status": "NOT_RUN_MISSING_CANONICAL_MATERIAL",
|
||||
"reason": "정식 입력/CSV 미확보; temp는 사용하지 않는다."
|
||||
},
|
||||
{
|
||||
"case": "thermal-new-required-reference",
|
||||
"status": "NOT_RUN_NOT_SUPPLIED",
|
||||
"reason": "새 필수 모델/NT11 CSV 미확보. 기존 NT11 비교는 diagnostic/nonblocking 불일치로 유지하며 새 필수자료 통과로 대체하지 않는다."
|
||||
}
|
||||
],
|
||||
"preserved_limits": [
|
||||
"ShellNL RF/RM review-only, stress Gauss/CSV mapping 미판정",
|
||||
"기존 thermal NT11 diagnostic 불일치를 외부 PASS로 승격하지 않음",
|
||||
"HHT C08a 현재 개별 PASS와 C08b·전체 회귀·전체 물리 closure 구분",
|
||||
"eigen S3 partial-BC 정적 충돌·성능 미완료 유지"
|
||||
],
|
||||
"helper_attempts": ".build/merge-verification/t5-20261018-01/before-prune/helper-preparation-attempts.json",
|
||||
"test_pruning": {
|
||||
"removed_tests": [],
|
||||
"status": "BLOCKED_BEHIND_REQUIRED_T5_CHECKS",
|
||||
"reason": "필수 실제 비교와 전체 실행 gate가 충족되지 않았다."
|
||||
},
|
||||
"temporary_evidence_floor": {
|
||||
"status": "synthetic tooling checks only; no FESA model execution",
|
||||
"checked_cases": {
|
||||
"scope": "임시 검증도구의 증거 하한 검사만 수행. FESA solver·물리·reference 검증이 아니다.",
|
||||
"checks": [
|
||||
{
|
||||
"synthetic_tooling_case": "empty",
|
||||
"exit": 1,
|
||||
"expected": 1,
|
||||
"report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-empty\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_tooling_case": "attribute-dtype-mismatch",
|
||||
"exit": 1,
|
||||
"expected": 1,
|
||||
"report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-attribute-dtype-mismatch\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_tooling_case": "missing-result",
|
||||
"exit": 2,
|
||||
"expected": 2,
|
||||
"report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-missing-result\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_tooling_case": "nonempty-identical",
|
||||
"exit": 0,
|
||||
"expected": 0,
|
||||
"report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-nonempty-identical\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_tooling_case": "comparator exit0 with malformed JSON",
|
||||
"exit": 2,
|
||||
"expected": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"validators": [
|
||||
".build\\merge-verification\\t5-20261018-01\\before-prune\\hdf-parity.py",
|
||||
".build\\merge-verification\\t5-20261018-01\\before-prune\\validate-report.py"
|
||||
],
|
||||
"aggregate": "Every solver/comparator/validator/parity exit is preserved; any nonzero yields nonzero aggregate. Known thermal diagnostic numeric FAIL remains separately classified, never numeric PASS.",
|
||||
"tool_source_sha256": {
|
||||
"models.py": "d59893216881fea11d48f28fc38e4d0c195815ea1c688ce5b20c308dd5708ce9",
|
||||
"hdf-parity.py": "a277726e72fd335d0e1e5af8fc4df46a62e71d45d57d91d3ee21e859d56cb9f8",
|
||||
"validate-report.py": "80a9729285969b81a4e2f2f7773a3f3588ddaff59586f1902c61e84c94796abc",
|
||||
"reference-harness.cpp": "dac5dbf6ad084420e94439224191ca328f1ef01a4fc9892512bc06e1782fac11"
|
||||
},
|
||||
"false_green_regression_checks": {
|
||||
"scope": "임시 도구의 false-green 재현/수정 확인만 수행. FESA 제품·물리·실제 reference 통과가 아니다.",
|
||||
"checks": [
|
||||
{
|
||||
"synthetic_case": "legacy-empty",
|
||||
"before_exit": 0,
|
||||
"after_exit": 1,
|
||||
"expected_after_exit": 1,
|
||||
"before_report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-legacy-empty\\legacy-false-green-parity.json",
|
||||
"after_report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-legacy-empty\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_case": "legacy-missing",
|
||||
"before_exit": 0,
|
||||
"after_exit": 2,
|
||||
"expected_after_exit": 2,
|
||||
"before_report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-legacy-missing\\legacy-false-green-parity.json",
|
||||
"after_report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-legacy-missing\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_case": "numeric-mismatch",
|
||||
"before_exit": null,
|
||||
"after_exit": 1,
|
||||
"expected_after_exit": 1,
|
||||
"before_report": null,
|
||||
"after_report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-numeric-mismatch\\parity.json"
|
||||
},
|
||||
{
|
||||
"synthetic_case": "nonfinite",
|
||||
"before_exit": null,
|
||||
"after_exit": 1,
|
||||
"expected_after_exit": 1,
|
||||
"before_report": null,
|
||||
"after_report": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\models\\tooling-floor-nonfinite\\parity.json"
|
||||
}
|
||||
]
|
||||
},
|
||||
"synthetic_case_count": 9,
|
||||
"parity_disposition": "Exact-field nonzero is a comparison assertion result, not a new physical acceptance tolerance. Differences require source/dtype/identity/rounding cause classification against existing approved policies; no tolerance added or relaxed.",
|
||||
"aggregate_validation_status": "Static implementation reviewed; actual full model aggregate has not run yet."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user