# Step 7: verify-and-report-pressure-feature ## 실행 범위와 상태 소유권 This final Implementation-owned Step inspects all prior artifacts, performs fresh MSVC/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 build/test gates. 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: ```powershell 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 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 ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\." ``` Acceptance requires every exit `0`, nonzero discovered tests including every named feature suite, full CTest pass, no new `/W4 /WX` warning, correct MSVC/x64/Debug selection and successful MKL/TBB/HDF5 runtime staging. 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 `_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 command, exit, duration, stdout/stderr tail, test discovery/count/results, warning/runtime inventory, 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 MSVC x64 Debug build, focused suite, nonzero discovery and full CTest pass with zero new warnings. - 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.