docs: add shell pressure feature workflow

This commit is contained in:
KOKO\Mimi
2026-09-01 02:34:04 +09:00
parent c54a528709
commit 2d071069b9
17 changed files with 4835 additions and 1 deletions
+114
View File
@@ -0,0 +1,114 @@
# 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 `<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`–`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.