docs: record in-progress pre-prune verification evidence

This commit is contained in:
KOKO\Mimi
2026-10-18 12:07:05 +09:00
parent 0635cec53d
commit ca5997fffa
2 changed files with 752 additions and 3 deletions
@@ -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."
}
}
}