diff --git a/docs/cpp-object-oriented-modular-refactoring/README.md b/docs/cpp-object-oriented-modular-refactoring/README.md index abd3fde..e58a0c6 100644 --- a/docs/cpp-object-oriented-modular-refactoring/README.md +++ b/docs/cpp-object-oriented-modular-refactoring/README.md @@ -64,7 +64,7 @@ CLI는 입력 `.inp` 하나, lexical sibling HDF5·log, warning/오류 진단과 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개, +당시 선별 실행은 CMake176개, Native15개, 합성 reference comparator28개, Python145개가 failure/error/skip 없이 통과했다. 이는 전체964개 실행·실제 모델 비교 완료가 아니다. 근거는 작업 공간의 `.build/merge-verification/t2-20261018-01/`와 `t3-20261018-01/`에 있다. 원래 dev와 Refactor 저장소 및 기준자료는 보존했다. @@ -76,7 +76,7 @@ Python145개가 failure/error/skip 없이 통과했다. 이는 전체964개 실 정리 전 필수 검증을 충족하지 못하면 테스트 삭제와 최종 병합 완료 판정을 진행하지 않는다. T4 문서 갱신 자체로 build/test를 추가 실행하지 않았다. -### T5 정리 전 검증 중간 기록 — 전체 완료 아님 +### T5 최초 중간 snapshot — 2026-10-18 03:00 UTC, 이후 범위 변경 전 이력 2026-10-18에 전체 Native Debug 솔루션, CMake Debug configure/build와 Ninja dependency 검사를 새로 실행해 모두 exit0을 확인했다. 제품102 compile unit의 dependency가 유효하고, @@ -125,3 +125,57 @@ Thermal 새 필수 reference 부재와 기존 NT11 diagnostic/nonblocking 불일 중간 근거는 `.build/merge-verification/t5-20261018-01/before-prune/`에 있으며 `running-checkpoint.json`과 `progress.jsonl`이 실행 큐·PID·현재 관측을 보존한다. 파일 manifest의 `t5_before_prune_verification`은 이 중간 snapshot을 기록하며 T1/T2/T3 원필드는 보존했다. + + +### T5 사용자 승인 정적 범위 — 검증 완료, 제한 유지 + +사용자는 장시간 HHT 동해석 검증을 중단하고 정적 해석 검증 후 다음 단계로 진행하도록 +범위를 변경했다. 위 최초 snapshot의 전체 큐·미완료 gate 설명은 당시 이력이다. 현재는 +HHT·solid dynamic·eigen/frequency·transient thermal 실제 수치 실행을 유예하고 해당 테스트를 +보존한다. 기존 전체 큐와 후속 watcher는 `user_cancelled_static_only`로 종료했으며, +부분 stdout·미생성 XML·취소 근거를 보존했다. 이를 수치 실패나 통과로 계산하지 않는다. + +현재964개 identity를 source body·경로·행·SHA256에 대응시켜 정적·공통631개(unit555, +integration35, reference41)를 선택하고333개를 유예했다. 과거 정적553개는 분류 근거로만 +읽었으며 그중11개를 유예하고 현재 추가 공통89개를 포함했다. 순수 SO3 미분·좌표변환, +mock 수명·dispatch, parser/mapping 및 합성 comparator 정책 검사는 포함하고 실제 비정적 +procedure를 호출하는 검사는 제외했다. 선택표는 `before-prune/static-only/selection.json`에 있다. + +새 직렬 실행은 Native·CMake의 선택631개, 명시적 목록 CTest631개 및 Python 합성·정책 +검사다. 고유 C++ 검사 수는631개이며 실행 경로별 수를 합쳐 고유 검사 수로 보고하지 않는다. +Native·CMake 각631개 및 CTest631개가 실제 exit0·skip0으로 확인됐다. Native/CMake의 +unit555·reference41은 처음 실행에서 통과했고 integration35는 아래 환경 대조 후 전부 통과했다. +CTest JUnit의 실제 이름을 canonical identity로 역매핑해 선택631개와 누락·중복0을 확인했다. +Python 합성·정책145개도 exit0·failure/error/skip0이며 실제 비정적 물리 검증으로 세지 않는다. +정식 정적5모델도 fresh Refactor 기준·통합 Native·통합 CMake에서 같은 scratch 입력 bytes/경로로 +총15번 실행했고 등록 비교15개·보고서 검증15개·schema/identity/field parity5개가 모두 exit0이다. +추가 정식 shellNL 자료의 부재와 `_02` comparator 연결 부재는 미완료로 유지하며, 확보된 +정적 범위의 gate가 충족되면 다음 단계로 진행할 수 있다는 사용자 지시를 따른다. + +임시 parity 도구의0길이 dataset만 있는 파일 false-green도 실제 exit0으로 재현했다. +필수 inventory와 파일 전체의 비어있지 않은 data 검사를 추가한 도구는 같은 경우 exit1, +의미있는 합성 동일값 exit0·불일치 exit1을 보였다. 개별0길이 dataset은 허용한다. +이는 임시 도구 검증이며 제품 물리·reference 통과를 대신하지 않는다. 현재 근거 경로는 +`.build/merge-verification/t5-20261018-01/before-prune/static-only/run-20261018-01/`이다. + + +정적 모델의 beam은 U/UR·RF/RM·section actions6가족212행, shell은 U blocking·UR warning-only +2가족294행을 기존 기준으로 비교했다. ShellNL은 translation blocking·rotation warning-only와 +내부 force/moment balance·accepted free residual을 통과했다. RF/RM3가족의 수치 비교는 +**false/review-only**로 보존하며 stress mapping은 여전히 미판정이다. Hex8 선형·비선형 정적은 +각 Step-1/increment10의 U(length)·RF(force)·S(force/length²)를 원본 CSV·source identity와 +기존5%/1% 기준으로 비교했다. 개별 quantity/frame/policy·원본/실행물/결과 hash 및 literal +argv/cwd/env는 manifest와 raw `final-static-summary.json`·각 closed execution record에 있다. + +초기 Native/CMake integration에서는 같은 application 검사1개가 각각 output-busy로 실패했다. +Native 실패 lock 경로261자, CMake260자였으며 동일 Native exe·동일 identity에서 TMP/TEMP만 +바꾼 대조가 긴 경로 exit1→짧은 task-owned 경로 exit0을 보였다. 짧은 고유 TMP에서 양쪽 +integration35개 전체를 다시 실행해 identity35·exit0·failure/error/skip0을 확인했다. 원래 +실패 XML/log와 최초 큐 aggregate exit1은 환경/경로 한계로 보존했다. 제품·테스트·허용치는 +바꾸지 않았다. 모델 input/result/lock 길이도 사전 확인했으며 최대193자다. + +독립 정적 수치 보충 검토는 `CONCERNS / required_static_missing=false`다. 선택631개의 +정적 수치 필수 coverage 누락은 발견하지 못했으며, 이를 RF/RM·stress mapping 또는 유예 +기능의 물리 승인으로 확대하지 않는다. 사용자 수정 범위의 정리 전 정적 gate는 충족했으므로 +다음 단계로 진행할 수 있다. 비정적333개·누락 정식 fine/_02/pressure 비교·열해석 새 reference +부재와 기존 NT11 diagnostic 제한은 미완료로 유지한다. 테스트 정리·최종 병합은 아직 수행하지 않았다. diff --git a/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json b/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json index 7b6dc8b..dd40513 100644 --- a/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json +++ b/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json @@ -33343,5 +33343,1111 @@ "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." } + }, + "t5_static_scope_verification": { + "status": "APPROVED_STATIC_SCOPE_COMPLETE_WITH_CONCERNS", + "user_scope_change": "HHT 등 비정적 실제 수치 검증 유예, 정적 검증 후 다음 단계 허용; 테스트 보존", + "source_pin": "0c763baa1d91b89cb48486320acaa2ce18c002c7", + "raw": ".build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01", + "cancelled_full_queue": { + "classification": "user_cancelled_static_only", + "reason": "사용자 명시 지시: HHT 동해석 검증을 중단하고 정적해석만 검증 후 다음 단계로 진행. 중단을 수치 FAIL/PASS로 계산하지 않는다.", + "utc": "2026-10-18T03:09:27Z", + "verified_task_processes": [ + { + "pid": 16232, + "name": "python.exe", + "argv": [ + "C:\\Users\\baram\\AppData\\Roaming\\uv\\python\\cpython-3.11-windows-x86_64-none\\python.exe", + ".build/merge-verification/t5-20261018-01/before-prune/after-suites.py" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "create_time": 1792263155.385302, + "root_orchestration": true + }, + { + "pid": 23232, + "name": "python.exe", + "argv": [ + "C:\\Users\\baram\\AppData\\Roaming\\uv\\python\\cpython-3.11-windows-x86_64-none\\python.exe", + ".build/merge-verification/t5-20261018-01/before-prune/suites.py" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "create_time": 1792262211.6124952, + "root_orchestration": true + }, + { + "pid": 25804, + "name": "fesa_unit_tests.exe", + "argv": [ + "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\native\\Debug\\tests\\fesa_unit_tests.exe", + "--gtest_output=xml:C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\native-fesa_unit_tests.xml" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "create_time": 1792262212.862038, + "root_orchestration": false + } + ], + "outcomes": [ + { + "pid": 16232, + "action": "terminated_verified_task_process" + }, + { + "pid": 23232, + "action": "terminated_verified_task_process" + }, + { + "pid": 25804, + "action": "terminated_verified_task_process" + } + ], + "still_alive_verified_pids": [], + "preserved_partial_outputs": [ + { + "path": ".build\\merge-verification\\t5-20261018-01\\before-prune\\native-fesa_unit_tests.log", + "size": 139053, + "sha256": "3c4d78a1aad62f195d8463e1d0e8438c3c0865972cfdf2a956db5f75d3a583e4" + } + ], + "post_termination_pid_checks": [ + { + "pid": 16232, + "alive": false + }, + { + "pid": 21216, + "alive": false + }, + { + "pid": 23232, + "alive": false + }, + { + "pid": 25804, + "alive": false + } + ] + }, + "selection": { + "source_pin": "0c763ba", + "total": 964, + "counts": { + "unit": { + "selected": 555, + "deferred": 294 + }, + "integration": { + "selected": 35, + "deferred": 37 + }, + "reference": { + "selected": 41, + "deferred": 2 + } + }, + "historical_selected": 553, + "historical_now_deferred": [ + "EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil", + "EigenReduction.RemovesOnlyActualFreeDirectorNull", + "EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs", + "EigenReduction.PreservesSmallResolvablePositivePartialRotationMass", + "EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace", + "EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate", + "EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil", + "DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver", + "DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema", + "ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints", + "ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections" + ], + "newly_selected": [ + "DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics", + "DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure", + "DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle", + "LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection", + "LoadAssembly.SelectsFirstOrderedOverflowDiagnostic", + "SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls", + "SparseAssembly.PreservesZeroShapesAndEmptyRows", + "SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow", + "SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows", + "ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass", + "Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass", + "Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance", + "Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros", + "Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy", + "Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic", + "Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow", + "Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits", + "Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits", + "Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns", + "Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape", + "Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma", + "Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits", + "Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback", + "Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes", + "Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary", + "Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid", + "Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus", + "Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration", + "Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits", + "Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState", + "Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags", + "Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits", + "Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure", + "EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy", + "NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity", + "NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian", + "NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms", + "NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue", + "ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary", + "ThermalDofManager.RejectsChangedThermalLayoutInventory", + "ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks", + "ThermalDofManager.RejectsThermalLayoutsForStructuralModels", + "DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks", + "DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind", + "DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate", + "DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection", + "DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls", + "DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides", + "DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction", + "DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides", + "DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput", + "DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse", + "HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries", + "HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent", + "HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits", + "DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse", + "InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels", + "InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio", + "Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints", + "Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse", + "Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks", + "Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren", + "Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData", + "Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp", + "Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits", + "HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation", + "ThermalDomainMapping.MapsApprovedShellThermalReference", + "ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity", + "ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager", + "SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch", + "SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle", + "ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials", + "ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain", + "ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms", + "MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls", + "MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes", + "TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState", + "TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse", + "TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes", + "EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes", + "ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy", + "ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks", + "ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies", + "ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData", + "ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues", + "ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance", + "ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation", + "ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy", + "ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance" + ], + "no_past_pass_inherited": true, + "all_identities_one_to_one": true + }, + "parity_floor": { + "scope": "temporary tooling evidence, not FESA physics validation", + "checks": [ + { + "name": "length-zero-v2-false-green", + "exit": 0 + }, + { + "name": "length-zero-only", + "exit": 1, + "expected": 1 + }, + { + "name": "meaningful-identical", + "exit": 0, + "expected": 0 + }, + { + "name": "meaningful-mismatch", + "exit": 1, + "expected": 1 + } + ] + }, + "missing_canonical_reference_status": "shellNL-meshfine/pressure 자료 미확보, _02 자료 및 comparator 연결 미확보; PASS/삭제 근거 아님", + "deferred_actual_physics": [ + "HHT", + "solid dynamic", + "eigen/frequency", + "transient thermal" + ], + "past_pass_inheritance": false, + "final_static_summary": { + "path": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\final-static-summary.json", + "sha256": "6ad49397d827a8f35ab8400d62582e544e2b5a9a4d2f5e50f7b9030972e336a8" + }, + "selection_evidence": { + "path": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\selection.json", + "sha256": "5f129bce23afb05a76efc288db37cc3c698132cb90a615ce863dc360929b8861", + "source_files": 82 + }, + "scope_execution": { + "unique_selected_cpp": 631, + "deferred_cpp": 333, + "native": { + "unit": 555, + "integration_short_tmp": 35, + "reference": 41, + "exit": 0, + "skip": 0 + }, + "cmake_direct": { + "unit": 555, + "integration_short_tmp": 35, + "reference": 41, + "exit": 0, + "skip": 0 + }, + "ctest": { + "count": 631, + "identity_match": true, + "exit": 0, + "skip": 0 + }, + "python_synthetic_policy": { + "count": 145, + "exit": 0, + "failure": 0, + "error": 0, + "skip": 0 + }, + "original_suite_aggregate_exit": 1, + "original_suite_nonzero_classification": "environment/path limit; preserved, same-exe long1 short0; both integration35 short TMP confirmed0", + "actual_model_count": 15, + "registered_comparisons": 15, + "model_stage_count": 50, + "model_stage_aggregate_exit": 0, + "products274_and_canonical_references32_unchanged": true, + "original_manifest_top_fields_unchanged": true + }, + "same_exe_path_probe": [ + { + "name": "path-probe-long", + "argv": [ + "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\native\\Debug\\tests\\fesa_integration_tests.exe", + "--gtest_filter=ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior", + "--gtest_output=xml:C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\path-probe-long.xml" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "TMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\native-Debug-integration-tmp", + "TEMP": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\native-Debug-integration-tmp", + "exit": 1, + "seconds": 0.0917518138885498, + "exe_sha256": "2f840c974d76511ab3ce36b2acfcf640729802e185eb0b076dce087fc2e414df", + "removed_filters": {}, + "log_sha256": "8acb5c13977c6f95949da7c6ea9e7a4a809bbd85bd23e645f1a25868c7f08eb2", + "xml_sha256": "5ba4b6fd33e8d16300de594aba6b69cfc522e84f9015aaf1298e48838a8c8eee", + "failure_count": 2 + }, + { + "name": "path-probe-short", + "argv": [ + "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\native\\Debug\\tests\\fesa_integration_tests.exe", + "--gtest_filter=ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior", + "--gtest_output=xml:C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\path-probe-short.xml" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "TMP": "C:\\git\\FESADev\\.dryforge\\tmp\\t5s1\\probe-short", + "TEMP": "C:\\git\\FESADev\\.dryforge\\tmp\\t5s1\\probe-short", + "exit": 0, + "seconds": 0.6247260570526123, + "exe_sha256": "2f840c974d76511ab3ce36b2acfcf640729802e185eb0b076dce087fc2e414df", + "removed_filters": {}, + "log_sha256": "a4e3e2819e1c36c2e1dc93c48a24c27608399be5ffe5cce59012d3a3bd526286", + "xml_sha256": "39302958daa00efb48893d54f98e16248994f4e153fa769826a918340ebaa612", + "failure_count": 0 + } + ], + "integration_short_tmp_confirmation": [ + { + "name": "native-Debug-integration-short-tmp", + "argv": [ + "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\native\\Debug\\tests\\fesa_integration_tests.exe", + "--gtest_flagfile=C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\native-Debug-integration.flags", + "--gtest_output=xml:C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\native-Debug-integration-short-tmp.xml" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "TMP": "C:\\git\\FESADev\\.dryforge\\tmp\\t5s1\\native-Debug-integration-short-tmp", + "TEMP": "C:\\git\\FESADev\\.dryforge\\tmp\\t5s1\\native-Debug-integration-short-tmp", + "exit": 0, + "seconds": 8.323283672332764, + "count": 35, + "skip": 0, + "failed_testcases": 0, + "failure_assertions": 0, + "errors": 0, + "identity_match": true, + "exe_sha256": "2f840c974d76511ab3ce36b2acfcf640729802e185eb0b076dce087fc2e414df", + "removed_filters": {}, + "log_sha256": "a36fd261722050a6008de4ca6a5e9a96f7515a88ff7ca638056fe6dc8cb8922f", + "xml_sha256": "a2838c6f90f48c7fc4e730156fe23260fa227ba5b42e6184be7040e6c3471f54" + }, + { + "name": "cmake-debug-integration-short-tmp", + "argv": [ + "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\cmake-debug\\tests\\fesa_integration_tests.exe", + "--gtest_flagfile=C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\cmake-debug-integration.flags", + "--gtest_output=xml:C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\cmake-debug-integration-short-tmp.xml" + ], + "cwd": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker", + "TMP": "C:\\git\\FESADev\\.dryforge\\tmp\\t5s1\\cmake-debug-integration-short-tmp", + "TEMP": "C:\\git\\FESADev\\.dryforge\\tmp\\t5s1\\cmake-debug-integration-short-tmp", + "exit": 0, + "seconds": 8.566259622573853, + "count": 35, + "skip": 0, + "failed_testcases": 0, + "failure_assertions": 0, + "errors": 0, + "identity_match": true, + "exe_sha256": "ce14dd8bea3f4b78f67d1d6079107087e96a6270f075226304b91e2191d62ebb", + "removed_filters": {}, + "log_sha256": "7fc1442f2c1da1f9dd9de4c495f54969babc6b596a51ceeaf1c302c53a04d5de", + "xml_sha256": "56ba509e0595bde41fedff7b079480a3a2830d7235331fc93cefd28ba705b7ab" + } + ], + "static_numerical_review": { + "status": "CONCERNS", + "required_static_missing": false, + "copy_sha256": "991e8c06781437e4637d6ea8a6ebf3f2da373a063de192e1dc11e564c2909b1d" + }, + "concerns": [ + "HHT/solid dynamic/eigen/frequency/transient thermal actual verification", + "missing fine/_02/pressure canonical comparison", + "ShellNL RF/RM numeric pass", + "ShellNL stress mapping", + "full964 pass", + "test pruning or final repository integration" + ], + "t6_scope_disposition": "사용자 수정 지시에 따라 확보된 정적 gate 통과 후 다음 단계 허용; 비정적·누락자료 미완료를 PASS/테스트삭제 근거로 사용하지 않음", + "tool_source_sha256": { + "final-static-check.py": "0866727db4e094b03faad59b74e9bdd72fc9785ba7734ac71513bd3d8e3c4c83", + "hdf-inventory.py": "1820a0ab855dfbfd8ea4c84f123668309f1d3a380be332e15a179c7c7ca1f4e4", + "hdf-parity-v2.py": "a277726e72fd335d0e1e5af8fc4df46a62e71d45d57d91d3ee21e859d56cb9f8", + "hdf-parity.py": "253cb7c40b76ec6e3a46f365573d8a2afdbfec4b2221ff9876135581faa19b3f", + "models.py": "de000d628eec1326373c29e46359dded468e7b48fee4406426b84fd3876a9af7", + "parity-floor.py": "179c538476e597491e39f3ef1d9d4570734ef3da2cbf91c747f8f29f174e6d16", + "path-probe.py": "67c073d064321725bc647683a11ddb88c6a6f1a5e9fcbd693cc34c45f6993e63", + "post-suite-check.py": "72f0dbb161388f1cc5fcdcc181e30f42fb0a06cee41882327c344b2986ee5699", + "publish-static-evidence.py": "daf9f3f4590513027ff1d1789dd61b57ddc8b6e05848b5772af69f4b609bdb8a", + "retry-integration.py": "84f331c2951fc8fd79d824457f341e33b22c735fa9dfeaf5ab8eb093e40a47e3", + "runner-deep-tmp.py": "b1a977948a9eafdc25cd94e0046b69fbd18f8ffcfa82e7ee73fab7993f8d203e", + "runner.py": "a71ca7d688fe93cf9009a1598db1bf801db1d34064099a317e81d03c01589b8f", + "static-suites.py": "b8d4f64fd7403ee92550fcd09eb01e034e508d35ee577f60dc268ed5d3bbd46d", + "validate-report.py": "296084e5af8fa79aa12af07b061afd29a80338684623ce7086f69e4035f90f80" + }, + "static_models": [ + { + "case": "beam", + "original_input": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\reference\\cantilever beam\\cantilever beam.inp", + "original_input_sha256": "e406ea9560321b791dbdb829e03bd24593b9875e0195d35b86bd931eda122ef3", + "same_scratch_path_and_bytes": true, + "step_frame": "Step-1/frame0", + "policy": "승인 공통 near-zero=1%, relative=5%, RMS=1%; exact-zero 유지. shell UR warning-only, shellNL RF/RM review-only; 내부평형 별도 기존 gate.", + "families": [ + { + "identity": "displacement-translation", + "passed": true, + "blocking": true, + "row_count": 33, + "components": [ + "UX", + "UY", + "UZ" + ] + }, + { + "identity": "displacement-rotation", + "passed": true, + "blocking": true, + "row_count": 33, + "components": [ + "URX", + "URY", + "URZ" + ] + }, + { + "identity": "reaction-force", + "passed": true, + "blocking": true, + "row_count": 33, + "components": [ + "RF1", + "RF2", + "RF3" + ] + }, + { + "identity": "reaction-moment", + "passed": true, + "blocking": true, + "row_count": 33, + "components": [ + "RM1", + "RM2", + "RM3" + ] + }, + { + "identity": "section-force", + "passed": true, + "blocking": true, + "row_count": 20, + "components": [ + "N" + ] + }, + { + "identity": "section-moment", + "passed": true, + "blocking": true, + "row_count": 60, + "components": [ + "T", + "My", + "Mz" + ] + } + ], + "source_identities": null, + "original_artifacts": [ + { + "path": "reference/cantilever beam/cantilever beam displacements.csv", + "original_sha256": "7b3312fbc8848e81d9a0fd4ff2b56bc1954636a2c14b5c1cbb269cb9477d3c31", + "worker_sha256": "7b3312fbc8848e81d9a0fd4ff2b56bc1954636a2c14b5c1cbb269cb9477d3c31" + }, + { + "path": "reference/cantilever beam/cantilever beam elemental forces.csv", + "original_sha256": "0093c0a506142bd3dc8eeeb87d5f08fd7490567a1ed144920029a2d2f38d119a", + "worker_sha256": "0093c0a506142bd3dc8eeeb87d5f08fd7490567a1ed144920029a2d2f38d119a" + }, + { + "path": "reference/cantilever beam/cantilever beam reactions.csv", + "original_sha256": "bf30cdb0cd50106885de14d63492737736c587426ebd787de4f7ee6aa86daa23", + "worker_sha256": "bf30cdb0cd50106885de14d63492737736c587426ebd787de4f7ee6aa86daa23" + }, + { + "path": "reference/cantilever beam/cantilever beam.inp", + "original_sha256": "e406ea9560321b791dbdb829e03bd24593b9875e0195d35b86bd931eda122ef3", + "worker_sha256": "e406ea9560321b791dbdb829e03bd24593b9875e0195d35b86bd931eda122ef3" + } + ], + "internal_equilibrium": null, + "variants": [ + { + "variant": "refactor-baseline", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "4e7701173036406ad58f3610d896f53ee5d7fd3ad395e12f9afeb632d0fbfa89", + "comparison_json_sha256": "ad00680aa610a516c8ea83473ad6329a00aa67d69ff983c2be7ce0673a535bd2", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\beam\\refactor-baseline\\execution.json", + "closed_execution_record_sha256": "9b8d73f91d4832f1ae8ca66c7f790bf693667cfac4f1ca5131e1ab8e83081e3c" + }, + { + "variant": "integrated-native", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "bdfe4f223469c44682a4dbe4413800c05eb8dd4656a27ddabed9fe56358e5cf7", + "comparison_json_sha256": "ad00680aa610a516c8ea83473ad6329a00aa67d69ff983c2be7ce0673a535bd2", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\beam\\integrated-native\\execution.json", + "closed_execution_record_sha256": "bf9c503067be9f0750e6c0001ce67d6bd85e5776f5a59be0a77c72b135f3caca" + }, + { + "variant": "integrated-cmake", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "bdfe4f223469c44682a4dbe4413800c05eb8dd4656a27ddabed9fe56358e5cf7", + "comparison_json_sha256": "ad00680aa610a516c8ea83473ad6329a00aa67d69ff983c2be7ce0673a535bd2", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\beam\\integrated-cmake\\execution.json", + "closed_execution_record_sha256": "703ce7ed8823a0655d62f92f0d9c3958cd48320d3ec6e6468f46e276e3c73b04" + } + ], + "parity_exact_field_equality": true, + "parity_json_sha256": "c0d9219b7f41ae3f6f1447660f4b98ac26dd02c37a0a83a605e0a43b7420c226" + }, + { + "case": "shell", + "original_input": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\reference\\shell\\shell.inp", + "original_input_sha256": "4005851e1ab22fd3a16ac17a8d5da3e051233f69f37419079f3553ad134ecfcf", + "same_scratch_path_and_bytes": true, + "step_frame": "Step-1/frame0", + "policy": "승인 공통 near-zero=1%, relative=5%, RMS=1%; exact-zero 유지. shell UR warning-only, shellNL RF/RM review-only; 내부평형 별도 기존 gate.", + "families": [ + { + "identity": "displacement-translation", + "passed": true, + "blocking": true, + "row_count": 147, + "components": [ + "U1", + "U2", + "U3" + ] + }, + { + "identity": "displacement-rotation", + "passed": true, + "blocking": false, + "row_count": 147, + "components": [ + "UR1", + "UR2", + "UR3" + ] + } + ], + "source_identities": null, + "original_artifacts": [ + { + "path": "reference/shell/shell displacements.csv", + "original_sha256": "c81d94e0b4a849f87aa0f79c83a79b94d5661ac79e44ed826919ab432c87746b", + "worker_sha256": "c81d94e0b4a849f87aa0f79c83a79b94d5661ac79e44ed826919ab432c87746b" + }, + { + "path": "reference/shell/shell reactions.csv", + "original_sha256": "0e34eec27e700c3c0c744c1dafd8a3b95efef34b8616fe96665876586fe82d41", + "worker_sha256": "0e34eec27e700c3c0c744c1dafd8a3b95efef34b8616fe96665876586fe82d41" + }, + { + "path": "reference/shell/shell stresses.csv", + "original_sha256": "2b75a5b0deb045a283c9bb7e9b1153b79f7537ff487214bf4a23316b59b660a7", + "worker_sha256": "2b75a5b0deb045a283c9bb7e9b1153b79f7537ff487214bf4a23316b59b660a7" + }, + { + "path": "reference/shell/shell.inp", + "original_sha256": "4005851e1ab22fd3a16ac17a8d5da3e051233f69f37419079f3553ad134ecfcf", + "worker_sha256": "4005851e1ab22fd3a16ac17a8d5da3e051233f69f37419079f3553ad134ecfcf" + } + ], + "internal_equilibrium": null, + "variants": [ + { + "variant": "refactor-baseline", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "5b65511a17d5c95165c71f06999d1dfcd50b0b100a5d33e79f46bad61efbb094", + "comparison_json_sha256": "8c3dcd1805e3a9c899bb05d4a93292f158c5c7b04931a86d3a610db074f0e0a7", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\shell\\refactor-baseline\\execution.json", + "closed_execution_record_sha256": "ef780ccb8093fc27a809099a2e02b2e9466beb0fa09dbd6a1a193d7a64be248e" + }, + { + "variant": "integrated-native", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "f9bd051f14553ff09d931977563e8045beeacd6bddd3f07e2b7c265d4579d353", + "comparison_json_sha256": "8c3dcd1805e3a9c899bb05d4a93292f158c5c7b04931a86d3a610db074f0e0a7", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\shell\\integrated-native\\execution.json", + "closed_execution_record_sha256": "dbd6d65b9a6925fee6829c918e8f8db22437325d701f1dd35a083071ff5933ae" + }, + { + "variant": "integrated-cmake", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "61d4076756aff52bd11d3f1634dfaad15897082f623f4cacea5a3fec55066511", + "comparison_json_sha256": "8c3dcd1805e3a9c899bb05d4a93292f158c5c7b04931a86d3a610db074f0e0a7", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\shell\\integrated-cmake\\execution.json", + "closed_execution_record_sha256": "a7a8f35103feb265ce09542bcdefde7fda7e910fcc5ed2e50474947804515d99" + } + ], + "parity_exact_field_equality": true, + "parity_json_sha256": "6c9333ec2d260c94f77128a594017ac620772b0541c1f4f56000ae4a1c2c28c4" + }, + { + "case": "shellNL", + "original_input": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\reference\\shellNL\\shellNL.inp", + "original_input_sha256": "4bf3ecb0f7f1e8462c573e993dbc97ac5d920c91cf6f23ad4c6891d77ffbada2", + "same_scratch_path_and_bytes": true, + "step_frame": "Step-1/frame9/increment10/load factor1", + "policy": "승인 공통 near-zero=1%, relative=5%, RMS=1%; exact-zero 유지. shell UR warning-only, shellNL RF/RM review-only; 내부평형 별도 기존 gate.", + "families": [ + { + "identity": "coarse.translation", + "passed": true, + "disposition": "blocking", + "rows": 147 + }, + { + "identity": "coarse.rotation", + "passed": true, + "disposition": "warning-only", + "rows": 147 + }, + { + "identity": "coarse.local_reaction_inplane_force", + "passed": false, + "disposition": "review-only", + "rows": 48 + }, + { + "identity": "coarse.local_reaction_transverse_force", + "passed": false, + "disposition": "review-only", + "rows": 24 + }, + { + "identity": "coarse.local_reaction_physical_moment", + "passed": false, + "disposition": "review-only", + "rows": 48 + } + ], + "source_identities": null, + "original_artifacts": [ + { + "path": "reference/shellNL/shellNL displacements.csv", + "original_sha256": "4e0f99ca9372b1adf7faf102f43bc0b887dc743fdeda378e4342d2cf8e0c0786", + "worker_sha256": "4e0f99ca9372b1adf7faf102f43bc0b887dc743fdeda378e4342d2cf8e0c0786" + }, + { + "path": "reference/shellNL/shellNL reactions.csv", + "original_sha256": "001cb1541a9e94424e5e650509d46bc8724970df4de47184d9db09c7938ab069", + "worker_sha256": "001cb1541a9e94424e5e650509d46bc8724970df4de47184d9db09c7938ab069" + }, + { + "path": "reference/shellNL/shellNL stresses.csv", + "original_sha256": "5500e5114b1c44887528e30cec054a1eb0f68be3f4b8ce81fa59fc74a881483f", + "worker_sha256": "5500e5114b1c44887528e30cec054a1eb0f68be3f4b8ce81fa59fc74a881483f" + }, + { + "path": "reference/shellNL/shellNL.inp", + "original_sha256": "4bf3ecb0f7f1e8462c573e993dbc97ac5d920c91cf6f23ad4c6891d77ffbada2", + "worker_sha256": "4bf3ecb0f7f1e8462c573e993dbc97ac5d920c91cf6f23ad4c6891d77ffbada2" + } + ], + "internal_equilibrium": [ + { + "identity": "coarse.global_force_balance", + "rows": 3, + "numerator": 8.250208361466102e-07, + "scale": 100000.0043929911, + "normalized": 8.250207999035198e-12, + "passed": true + }, + { + "identity": "coarse.global_moment_balance", + "rows": 3, + "numerator": 1.1424141050618153e-10, + "scale": 295586.7896222235, + "normalized": 3.864902442094535e-16, + "passed": true + }, + { + "identity": "coarse.accepted_free_force_residual", + "rows": 75, + "numerator": 0.03147525900497561, + "scale": 100000.00000106171, + "normalized": 3.1475259004641434e-07, + "passed": true + }, + { + "identity": "coarse.accepted_free_moment_residual", + "rows": 75, + "numerator": 3.5872449718902036e-07, + "scale": 0, + "normalized": null, + "passed": true + } + ], + "variants": [ + { + "variant": "refactor-baseline", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "473b21e57e86bf920603b9174e23bf08e54ccfcf3830048319b170b721a78ae8", + "comparison_json_sha256": "1849a26e3244c2a15c0301855081dfe218fa2d76d4b89e3171480a43457c3124", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\shellNL\\refactor-baseline\\execution.json", + "closed_execution_record_sha256": "1e68a78c45907d6dadf07bc166115155bc625ee7db61416e8e2d58672c37e305" + }, + { + "variant": "integrated-native", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "110ab7ba28a8b42fa66a4b883185fd1371a29d3caafcba69e144218622c03380", + "comparison_json_sha256": "1849a26e3244c2a15c0301855081dfe218fa2d76d4b89e3171480a43457c3124", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\shellNL\\integrated-native\\execution.json", + "closed_execution_record_sha256": "ded05fcef56b37440683c3258feb237b49c6e1d22b0e75c525b5d56481189e83" + }, + { + "variant": "integrated-cmake", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "733139c6c831dde9e3977b4b3a9da5bd279b7b428a32950e5b0d20f0c4ed93c7", + "comparison_json_sha256": "1849a26e3244c2a15c0301855081dfe218fa2d76d4b89e3171480a43457c3124", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\shellNL\\integrated-cmake\\execution.json", + "closed_execution_record_sha256": "47a86f6f77a7a5819ea6a70c0aa5ced27f256abc1fd38efc5b7578d1ff2d3b2a" + } + ], + "parity_exact_field_equality": true, + "parity_json_sha256": "7ae0e493480d1da86bc883cafd289dd9665666ebd1d473dd27e7515afcf83699" + }, + { + "case": "hexa_linearstatic", + "original_input": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\reference\\hexa\\hexa_linearstatic.inp", + "original_input_sha256": "67183909c5dc962a4d4b65ffb81f7bd65b72e89a5d015c8369a8e0226347a647", + "same_scratch_path_and_bytes": true, + "step_frame": "Step-1/increment10", + "policy": "승인 공통 near-zero=1%, relative=5%, RMS=1%; exact-zero 유지. shell UR warning-only, shellNL RF/RM review-only; 내부평형 별도 기존 gate.", + "families": [ + { + "absolute_rms": 1.7343612573050297e-11, + "case": "hexa_linearstatic", + "coordinate_system": "global-cartesian", + "diagnostic_code": null, + "identity": "hexa_linearstatic:Step-1:increment-10:U-global", + "impact": "blocking", + "increment": 10, + "maximum_absolute_error": 6.096261212854004e-11, + "near_zero_band": 1.86131289e-05, + "passed": true, + "policy": { + "near_zero_ratio": 0.01, + "relative_rms_tolerance": 0.01, + "relative_tolerance": 0.05, + "zero_scale": "exact-zero" + }, + "quantity": "U", + "reference_scale": 0.00186131289, + "reference_sha256": "1ff49aea3ec601cfd796d6a2fb6a4f91be3fc3de9426cdf3744d981216d4bd5f", + "relative_rms": 9.31794577162698e-09, + "rms_passed": true, + "row_count": 1326, + "rows_passed": true, + "step": "Step-1", + "unit_dimensions": "length" + }, + { + "absolute_rms": 0.003753553196815386, + "case": "hexa_linearstatic", + "coordinate_system": "global-cartesian", + "diagnostic_code": null, + "identity": "hexa_linearstatic:Step-1:increment-10:RF-global", + "impact": "blocking", + "increment": 10, + "maximum_absolute_error": 0.014747577370144427, + "near_zero_band": 5134.97094, + "passed": true, + "policy": { + "near_zero_ratio": 0.01, + "relative_rms_tolerance": 0.01, + "relative_tolerance": 0.05, + "zero_scale": "exact-zero" + }, + "quantity": "RF", + "reference_scale": 513497.094, + "reference_sha256": "3e04e71ec075ffef098cf4870d77f9c400557fccb375369da8bf67cf67c1e36b", + "relative_rms": 7.309784691430768e-09, + "rms_passed": true, + "row_count": 51, + "rows_passed": true, + "step": "Step-1", + "unit_dimensions": "force" + }, + { + "absolute_rms": 0.01175146192247426, + "case": "hexa_linearstatic", + "coordinate_system": "global-cartesian", + "diagnostic_code": null, + "identity": "hexa_linearstatic:Step-1:increment-10:S-global", + "impact": "blocking", + "increment": 10, + "maximum_absolute_error": 0.12245092866942286, + "near_zero_band": 34301.45, + "passed": true, + "policy": { + "near_zero_ratio": 0.01, + "relative_rms_tolerance": 0.01, + "relative_tolerance": 0.05, + "zero_scale": "exact-zero" + }, + "quantity": "S", + "reference_scale": 3430145.0, + "reference_sha256": "8840a502b9d28a91e5685349301a56fed37d2ac62327b71304716b714db577e8", + "relative_rms": 3.4259373648852337e-09, + "rms_passed": true, + "row_count": 14400, + "rows_passed": true, + "step": "Step-1", + "unit_dimensions": "force/length^2" + } + ], + "source_identities": { + "RF": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/reference/hexa/hexa_linearstatic_RF.csv", + "sha256": "3e04e71ec075ffef098cf4870d77f9c400557fccb375369da8bf67cf67c1e36b" + }, + "S": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/reference/hexa/hexa_linearstatic_S.csv", + "sha256": "8840a502b9d28a91e5685349301a56fed37d2ac62327b71304716b714db577e8" + }, + "U": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/reference/hexa/hexa_linearstatic_U.csv", + "sha256": "1ff49aea3ec601cfd796d6a2fb6a4f91be3fc3de9426cdf3744d981216d4bd5f" + }, + "input": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/.build/merge-verification/t5-20261018-01/before-prune/static-only/run-20261018-01/models/hexa_linearstatic/hexa_linearstatic.inp", + "sha256": "67183909c5dc962a4d4b65ffb81f7bd65b72e89a5d015c8369a8e0226347a647" + }, + "results": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/.build/merge-verification/t5-20261018-01/before-prune/static-only/run-20261018-01/models/hexa_linearstatic/refactor-baseline/hexa_linearstatic_results.h5", + "sha256": "4b873c562a4235fccaa4a0223d4127f9bb831dc3cb0030f4e95b636f330f3191" + } + }, + "original_artifacts": [ + { + "path": "reference/hexa/hexa_linearstatic.inp", + "original_sha256": "67183909c5dc962a4d4b65ffb81f7bd65b72e89a5d015c8369a8e0226347a647", + "worker_sha256": "67183909c5dc962a4d4b65ffb81f7bd65b72e89a5d015c8369a8e0226347a647" + }, + { + "path": "reference/hexa/hexa_linearstatic_RF.csv", + "original_sha256": "3e04e71ec075ffef098cf4870d77f9c400557fccb375369da8bf67cf67c1e36b", + "worker_sha256": "3e04e71ec075ffef098cf4870d77f9c400557fccb375369da8bf67cf67c1e36b" + }, + { + "path": "reference/hexa/hexa_linearstatic_S.csv", + "original_sha256": "8840a502b9d28a91e5685349301a56fed37d2ac62327b71304716b714db577e8", + "worker_sha256": "8840a502b9d28a91e5685349301a56fed37d2ac62327b71304716b714db577e8" + }, + { + "path": "reference/hexa/hexa_linearstatic_U.csv", + "original_sha256": "1ff49aea3ec601cfd796d6a2fb6a4f91be3fc3de9426cdf3744d981216d4bd5f", + "worker_sha256": "1ff49aea3ec601cfd796d6a2fb6a4f91be3fc3de9426cdf3744d981216d4bd5f" + } + ], + "internal_equilibrium": null, + "variants": [ + { + "variant": "refactor-baseline", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "4b873c562a4235fccaa4a0223d4127f9bb831dc3cb0030f4e95b636f330f3191", + "comparison_json_sha256": "b6fe5cef31878764d446b7115b6c9719c2230f3b693f8c0337c39b3acf3f8b57", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\hexa_linearstatic\\refactor-baseline\\execution.json", + "closed_execution_record_sha256": "fa8d379fc09382d45a20be01c6819a653e918cde9d4185df388df85e4ba32288" + }, + { + "variant": "integrated-native", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "a15569ea49fa4471a44e234dd8bea4746ff23555199d7c3b190ee98ac88d6862", + "comparison_json_sha256": "b831efdc22de87c9e9291ec072e962825916ec6c3b9972bf0c016171007e15d6", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\hexa_linearstatic\\integrated-native\\execution.json", + "closed_execution_record_sha256": "be49e9d99f045fb41d730897430c18da8ed0c06541fa866691aea1637e4c8ce4" + }, + { + "variant": "integrated-cmake", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "d7403f7eb7cffc114d0160239139a07b59416beb1e438c4dea5c663fe2f4a508", + "comparison_json_sha256": "663cdb6b90d3424152a667ea0d4234e1e0134437cb1b3b5c1fde2c952ba60ab5", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\hexa_linearstatic\\integrated-cmake\\execution.json", + "closed_execution_record_sha256": "d91ec0e13064081fbb90f9a91cea606cc3ec1cfd4518a320761f43245391d045" + } + ], + "parity_exact_field_equality": true, + "parity_json_sha256": "1712feb9f4e805464a1e3ccbff14506db5dc4fd1a41a929af1e71507be7b848e" + }, + { + "case": "hexa_nonlinearstatic", + "original_input": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\reference\\hexa\\hexa_nonlinearstatic.inp", + "original_input_sha256": "7858254025b96c6bfe3fb6498605ecf9c473425c2bc3593f5fbdc6902fd7c6cb", + "same_scratch_path_and_bytes": true, + "step_frame": "Step-1/increment10", + "policy": "승인 공통 near-zero=1%, relative=5%, RMS=1%; exact-zero 유지. shell UR warning-only, shellNL RF/RM review-only; 내부평형 별도 기존 gate.", + "families": [ + { + "absolute_rms": 4.0384401297166145e-10, + "case": "hexa_nonlinearstatic", + "coordinate_system": "global-cartesian", + "diagnostic_code": null, + "identity": "hexa_nonlinearstatic:Step-1:increment-10:U-global", + "impact": "blocking", + "increment": 10, + "maximum_absolute_error": 9.832466004058268e-10, + "near_zero_band": 1.86110672e-05, + "passed": true, + "policy": { + "near_zero_ratio": 0.01, + "relative_rms_tolerance": 0.01, + "relative_tolerance": 0.05, + "zero_scale": "exact-zero" + }, + "quantity": "U", + "reference_scale": 0.00186110672, + "reference_sha256": "bd6c2fe2b2bb2ffb0bc2ea52f67513c3967a396b5707bbebc9533fde7be25ac6", + "relative_rms": 2.1699132490997694e-07, + "rms_passed": true, + "row_count": 1326, + "rows_passed": true, + "step": "Step-1", + "unit_dimensions": "length" + }, + { + "absolute_rms": 3.45450971453263, + "case": "hexa_nonlinearstatic", + "coordinate_system": "global-cartesian", + "diagnostic_code": null, + "identity": "hexa_nonlinearstatic:Step-1:increment-10:RF-global", + "impact": "blocking", + "increment": 10, + "maximum_absolute_error": 12.82618010538863, + "near_zero_band": 5134.45594, + "passed": true, + "policy": { + "near_zero_ratio": 0.01, + "relative_rms_tolerance": 0.01, + "relative_tolerance": 0.05, + "zero_scale": "exact-zero" + }, + "quantity": "RF", + "reference_scale": 513445.594, + "reference_sha256": "3ba67a4fb75b2ce3edee13d35b2ea66ac7d52fc16e612c086ed1122a834fee7b", + "relative_rms": 6.728093014919571e-06, + "rms_passed": true, + "row_count": 51, + "rows_passed": true, + "step": "Step-1", + "unit_dimensions": "force" + }, + { + "absolute_rms": 32.03072457600377, + "case": "hexa_nonlinearstatic", + "coordinate_system": "global-cartesian", + "diagnostic_code": null, + "identity": "hexa_nonlinearstatic:Step-1:increment-10:S-global", + "impact": "blocking", + "increment": 10, + "maximum_absolute_error": 93.3499531284906, + "near_zero_band": 34298.1775, + "passed": true, + "policy": { + "near_zero_ratio": 0.01, + "relative_rms_tolerance": 0.01, + "relative_tolerance": 0.05, + "zero_scale": "exact-zero" + }, + "quantity": "S", + "reference_scale": 3429817.75, + "reference_sha256": "a8866a730f0d65b1e3921d504d255b72158b4a2b9ee30fc691712d94982b07ba", + "relative_rms": 9.338899880614289e-06, + "rms_passed": true, + "row_count": 14400, + "rows_passed": true, + "step": "Step-1", + "unit_dimensions": "force/length^2" + } + ], + "source_identities": { + "RF": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/reference/hexa/hexa_nonlinearstatic_RF.csv", + "sha256": "3ba67a4fb75b2ce3edee13d35b2ea66ac7d52fc16e612c086ed1122a834fee7b" + }, + "S": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/reference/hexa/hexa_nonlinearstatic_S.csv", + "sha256": "a8866a730f0d65b1e3921d504d255b72158b4a2b9ee30fc691712d94982b07ba" + }, + "U": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/reference/hexa/hexa_nonlinearstatic_U.csv", + "sha256": "bd6c2fe2b2bb2ffb0bc2ea52f67513c3967a396b5707bbebc9533fde7be25ac6" + }, + "input": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/.build/merge-verification/t5-20261018-01/before-prune/static-only/run-20261018-01/models/hexa_nonlinearstatic/hexa_nonlinearstatic.inp", + "sha256": "7858254025b96c6bfe3fb6498605ecf9c473425c2bc3593f5fbdc6902fd7c6cb" + }, + "results": { + "path": "C:/git/FESADev/.dryforge/worktrees/worker/.build/merge-verification/t5-20261018-01/before-prune/static-only/run-20261018-01/models/hexa_nonlinearstatic/refactor-baseline/hexa_nonlinearstatic_results.h5", + "sha256": "4ba47cc3faafba3d965120cac84ce1f97e612e5378d6ad1ece3a3ce71134a33e" + } + }, + "original_artifacts": [ + { + "path": "reference/hexa/hexa_nonlinearstatic.inp", + "original_sha256": "7858254025b96c6bfe3fb6498605ecf9c473425c2bc3593f5fbdc6902fd7c6cb", + "worker_sha256": "7858254025b96c6bfe3fb6498605ecf9c473425c2bc3593f5fbdc6902fd7c6cb" + }, + { + "path": "reference/hexa/hexa_nonlinearstatic_RF.csv", + "original_sha256": "3ba67a4fb75b2ce3edee13d35b2ea66ac7d52fc16e612c086ed1122a834fee7b", + "worker_sha256": "3ba67a4fb75b2ce3edee13d35b2ea66ac7d52fc16e612c086ed1122a834fee7b" + }, + { + "path": "reference/hexa/hexa_nonlinearstatic_S.csv", + "original_sha256": "a8866a730f0d65b1e3921d504d255b72158b4a2b9ee30fc691712d94982b07ba", + "worker_sha256": "a8866a730f0d65b1e3921d504d255b72158b4a2b9ee30fc691712d94982b07ba" + }, + { + "path": "reference/hexa/hexa_nonlinearstatic_U.csv", + "original_sha256": "bd6c2fe2b2bb2ffb0bc2ea52f67513c3967a396b5707bbebc9533fde7be25ac6", + "worker_sha256": "bd6c2fe2b2bb2ffb0bc2ea52f67513c3967a396b5707bbebc9533fde7be25ac6" + } + ], + "internal_equilibrium": null, + "variants": [ + { + "variant": "refactor-baseline", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "4ba47cc3faafba3d965120cac84ce1f97e612e5378d6ad1ece3a3ce71134a33e", + "comparison_json_sha256": "b69456e5379fc8ad880b571de562975ea0498a30c2aa2c3e40e48665ee56a87c", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\hexa_nonlinearstatic\\refactor-baseline\\execution.json", + "closed_execution_record_sha256": "14f8a9b88c694638bd78a87caa9fe2843f356fb93397f68b088bf582a0cbd617" + }, + { + "variant": "integrated-native", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "1f1e38f17c556e8b6665a148df54f664d5ba32ccce06fc994743117376a2be7e", + "comparison_json_sha256": "6882a517c8ff33887faa1a561dbf6d9da3d0e19783525ffbccd3349073a7e3fc", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\hexa_nonlinearstatic\\integrated-native\\execution.json", + "closed_execution_record_sha256": "05bdc431fcd010514d2e39aa47267ed1f953dada1363ea7d3e31cedd5cacf47a" + }, + { + "variant": "integrated-cmake", + "native_exit": 0, + "comparison_exit": 0, + "validation_exit": 0, + "result_sha256": "7804976c4689ddfd1ca4d8771bd7f67769012a9479cdf3348d2c1f86b00558cb", + "comparison_json_sha256": "5fd36891de72e2dcee58a2211aa3f96a02972f453f5ab28bd0311641380eef1a", + "closed_execution_record": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\models\\hexa_nonlinearstatic\\integrated-cmake\\execution.json", + "closed_execution_record_sha256": "06fb959abc86c50986bf6a0159cca149f8a6cf5c096fecc0eb908d052550b387" + } + ], + "parity_exact_field_equality": true, + "parity_json_sha256": "541545aab76de46ce701e608f0299ba650bd263646ac55b12247cfc7266d7129" + } + ], + "hdf_schema_identity_inventory": { + "path": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\hdf-schema-identity-inventory.json", + "sha256": "72b672a1cfcde5873552a2a9758981ae0f262f3a944cd71219ac5d7d83f2f3bd" + } } }