Files
FESADev/phases/shell-surface-pressure-load/step7.md
T
2026-09-01 14:04:57 +09:00

8.5 KiB
Raw Blame History

Step 7: verify-and-report-pressure-feature

실행 범위와 상태 소유권

This final Implementation-owned Step inspects all prior artifacts, performs fresh targeted MSVC/focused CTest and exact pressure-reference gates, and completes the three Gate 6 evidence documents. Code changes are not the default scope. The required sequence is literally ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT after agent-owned focused gates; automatic Stop owns exactly one whole-project full verification.

Implementation Agent may update only Step 7's status and one-line summary/error_message/blocked_reason. Executor owns branch, retry, timestamps, commits, advancement, top-level phase completion and output JSON. This Step does not approve physics Gate 7 or release readiness.

읽어야 할 파일

  • AGENTS.md
  • docs/PRD.md
  • docs/ARCHITECTURE.md
  • docs/ADR.md
  • docs/CODINGSTYLE.md
  • docs/HARNESS.md
  • docs/HARNESS_WORKFLOW.md
  • .codex/hooks.json
  • .harness/config.json if it exists at execution time
  • CMakeLists.txt, src/fesa/CMakeLists.txt, tests/CMakeLists.txt
  • Every docs/shell-surface-pressure-load/*.md upstream and approved plan
  • phases/shell-surface-pressure-load/index.json
  • All production/test files created or modified in Steps 1–6
  • tests/reference/shell_surface_pressure_reference_test.cpp
  • tests/reference/nonlinear_static_reference_comparison.h/.cpp
  • Exact read-only artifacts listed in Step 6 and reference-model.md

Read all prior Step summaries and changed files. Verify that every production change has a first-failing test record and that source/interface names remain consistent with the approved plan.

소유 파일

  • Create/complete: docs/shell-surface-pressure-load/implementation-report.md
  • Create/complete: docs/shell-surface-pressure-load/build-test.md
  • Create/complete: docs/shell-surface-pressure-load/reference-comparison.md

Production, tests, CMake and phase files are read-only in this Step except Step 7's selected status/payload. If verification exposes an implementation defect, classify and return it to Coordinator/the owning earlier Step; do not silently repair it here.

RED evidence preflight

First prove the three reports are absent/incomplete or contain no fresh final passing evidence. This expected evidence-state failure is Step 7 RED. Then inspect prior reports/summaries for recorded test-first RED commands and expected failures. If any source/test/CMake change lacks RED evidence, classify evidence-gap and stop; do not fabricate history.

Record the preflight result before running final gates.

Fresh MSVC x64 Debug gates

If .harness/config.json exists, it takes precedence and the reports must record its exact resolved configure/build/test commands. Otherwise run exactly:

cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 `
  "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" `
  "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
  "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
  "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests fesa_reference_tests
ctest --test-dir .harness/build -C Debug --show-only=json-v1
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpSyntax|ShellSurfacePressureInput|ShellSurfacePressureDomain|ShellSurfacePressureKernel|SurfacePressureAssembly|LinearShellSurfacePressure|NonlinearShellSurfacePressure|ShellSurfacePressureApplication|ShellSurfacePressureReference)\."
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\."

Acceptance requires every agent-owned exit 0, nonzero discovered tests including every named feature suite, focused CTest pass, no new /W4 /WX warning, correct MSVC/x64/Debug selection and successful MKL/TBB/HDF5 runtime staging. Record these results, complete the reports and selected Step status/summary, then end the agent turn. Do not run a targetless whole-project build or unfiltered full CTest: automatic Stop runs exactly one whole-project MSVC x64 Debug build/unfiltered CTest and its result is authoritative Harness evidence. No Harness/Python files are in scope, so do not run Python tests unless separately authorized Harness/Python changes actually occurred; then record uv run --with pytest python -m pytest -v -rs and why.

ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT

ARTIFACT CHECK

Before running the pressure case, record path, SHA-256, bytes and timestamp for:

  • required input reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure.inp: 56,665 bytes, 53718ccc9b41c23fcc1b509a51d66f1347e87aca43a74f1d6cec4d2085f4b90e;
  • required displacement CSV: 111,182 bytes, 2fe53f98eac9f04779100721c3edf8049eb1dbfe733ebcbd819aeeed03b81198;
  • reaction CSV as review-only inventory;
  • stress CSV as excluded inventory.

Confirm source history/commands do not invoke Abaqus. Copy only the exact input to .harness/build/reference/shell-surface-pressure-load/.

COMPARE

Run FESA only on the copied input and locate generated schema-1 <stem>_results.h5 and log. Use ShellSurfacePressureReference comparison to select exact Step-1 unique factor-one accepted frame and project /model/nodes plus nodal displacements by (Part-1-1, source node label, component). Require 729 wide CSV rows, 2,187 U logical rows and 2,187 UR logical rows. Reject missing/extra/duplicate/nonfinite/schema/frame/identity errors before unchanged common tolerance.

CLASSIFY

  • Blocking fail: any precheck, U1/U2/U3 tolerance, required internal free-residual/global-equilibrium or artifact immutability failure.
  • Warning-only: UR1/UR2/UR3 deviations when all blocking gates pass.
  • Review-only/excluded: reaction/stress cannot change the verdict.
  • Classify failures as implementation | test | configure | compile | link | reference-comparison | infrastructure | environment | artifact | regression | evidence-gap | upstream-contract.

Any nonzero command, zero tests, new warning, runtime staging failure, artifact mutation, cardinality mismatch or U/internal blocking failure leaves Step non-completed. Retain evidence and return to Coordinator; do not adjust tolerance or artifacts.

REPORT

Write complete Korean Markdown reports:

  • implementation-report.md: metadata, task order, RED/GREEN/VERIFY evidence per Step, exact changed files/interfaces, 24-requirement coverage, implementation acceptance, limitations and handoff.
  • build-test.md: owner_agent: implementation-agent, environment/toolchain/config selection, each agent-owned command, exit, duration, stdout/stderr tail, test discovery/count/results, warning/runtime inventory, automatic Stop whole-project command ownership/evidence disposition, failure classification, no-change assertion and open issues.
  • reference-comparison.md: exact artifact inventory and pre/post snapshots, generated HDF5/log, schema/frame projection, source identity/component matching, row prechecks, unchanged tolerance, per-family/per-row decisions, maximum absolute/relative applicable error, RMS and other contract-applicable metrics, U/UR disposition, internal gates, deterministic classification, no-change assertion and open issues.

Do not claim release readiness. A passing Gate 6 report recommends only pass-for-physics-evaluation through Coordinator.

Final Acceptance Criteria

  • All 24 FESA-REQ-SHELL-PRESSURE-001–024 map to at least one implemented task and passing test/evidence; orphan count zero.
  • Fresh targeted MSVC x64 Debug build, focused suite and nonzero discovery pass with zero new warnings; automatic Stop's exactly one whole-project MSVC x64 Debug build/unfiltered CTest passes.
  • Exact artifacts remain byte-for-byte unchanged after FESA-only run.
  • Schema 0/1 contracts and no-pressure regressions pass; no pressure dataset/schema/version/CLI expansion.
  • Pressure reference U blocking passes, UR remains warning-only, reaction review-only, stress excluded; internal equilibrium passes.
  • Reports contain commands, exits, durations, tails and classification; no fabricated RED evidence.
  • Automatic Stop whole-project validation succeeds. Do not run hook entry points manually.

금지사항

  • Do not fix source/tests/CMake silently, generate reference data, run Abaqus, alter tolerance, upstream docs or artifact bytes.
  • Do not approve physics/release gates, create Executor output JSON, invoke scripts/execute.py, update timestamps, commit or push.
  • Do not select another Step. 이유: this is the final Executor-selected implementation evidence Step only.