8.0 KiB
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.mddocs/PRD.mddocs/ARCHITECTURE.mddocs/ADR.mddocs/CODINGSTYLE.mddocs/HARNESS.mddocs/HARNESS_WORKFLOW.md.codex/hooks.json.harness/config.jsonif it exists at execution timeCMakeLists.txt,src/fesa/CMakeLists.txt,tests/CMakeLists.txt- Every
docs/shell-surface-pressure-load/*.mdupstream 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.cpptests/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
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 <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 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–024map 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.