fix: avoid duplicate shell pressure verification

This commit is contained in:
KOKO\Mimi
2026-09-01 14:04:57 +09:00
parent adebfae374
commit 47d7b721e0
8 changed files with 131 additions and 36 deletions
@@ -8,7 +8,7 @@
- request_date: `2026-08-30` - request_date: `2026-08-30`
- last_updated: `2026-09-01` - last_updated: `2026-09-01`
- process_classification: `architectural` - process_classification: `architectural`
- current_goal: 승인된 isolated recovery worktree에서 scoped `danger-full-access` Harness fallback으로 Step 1–7을 순차 실행하고 Gate 6 implementation/build/reference evidence를 확보한다. - current_goal: Correction evidence를 보존해 clean commit한 뒤 같은 Implementation Agent/Executor를 Step 3부터 재개하고 Gate 6 implementation/build/reference evidence를 완결한다.
- approved_scope: Abaqus subset `*SURFACE, TYPE=ELEMENT`와 `*DSLOAD`의 uniform `P`를 S4/S4R `SPOS|SNEG` surface에 적용한다. Linear static은 reference configuration load를, nonlinear static은 current-configuration follower load와 external tangent를 사용한다. - approved_scope: Abaqus subset `*SURFACE, TYPE=ELEMENT`와 `*DSLOAD`의 uniform `P`를 S4/S4R `SPOS|SNEG` surface에 적용한다. Linear static은 reference configuration load를, nonlinear static은 current-configuration follower load와 external tangent를 사용한다.
- scope_boundaries: Unsupported surface/load variants는 fail-closed로 거부하고 stable source identity와 deterministic load/reduction order를 보존한다. 기존 authoritative HDF5 output을 우선 유지하되 Stage 5 I/O gate가 evidence로 최종 확정한다. - scope_boundaries: Unsupported surface/load variants는 fail-closed로 거부하고 stable source identity와 deterministic load/reduction order를 보존한다. 기존 authoritative HDF5 output을 우선 유지하되 Stage 5 I/O gate가 evidence로 최종 확정한다.
- reference_case: `reference/shellNL-meshfine-pressure/`의 existing `.inp`와 CSV를 exact path/name 그대로 read-only 사용한다. - reference_case: `reference/shellNL-meshfine-pressure/`의 existing `.inp`와 CSV를 exact path/name 그대로 read-only 사용한다.
@@ -25,7 +25,7 @@
| 3. Formulation | `formulation-agent` | `passed` | `docs/shell-surface-pressure-load/formulation.md` | Pressure virtual work, equivalent nodal load, follower linearization과 numerical integration 계약이 구현 가능함 | `ready-for-numerical-review`; force/residual/tangent sign, common `2x2` rule, `24x1`/`24x24` dimensions, dimensionless geometry contract, deterministic assembly, requirement trace 24/24; owner `passed`; Coordinator audit 통과 | 없음 | 1 | | 3. Formulation | `formulation-agent` | `passed` | `docs/shell-surface-pressure-load/formulation.md` | Pressure virtual work, equivalent nodal load, follower linearization과 numerical integration 계약이 구현 가능함 | `ready-for-numerical-review`; force/residual/tangent sign, common `2x2` rule, `24x1`/`24x24` dimensions, dimensionless geometry contract, deterministic assembly, requirement trace 24/24; owner `passed`; Coordinator audit 통과 | 없음 | 1 |
| 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/shell-surface-pressure-load/numerical-review.md`; `docs/shell-surface-pressure-load/reference-model.md` | Numerical review와 exact reference contract가 함께 `pass-for-io-definition`임 | Aligned `pass-for-io-definition`; `tau_J=1e-12`, analytical/objectivity `1e-12`, FD `h=1e-5`/error `1e-8`, global balance `1e-8`; exact 729-row reference inventory, U/UR 2,187 logical rows each; owner evidence와 Coordinator audit 통과 | 없음 | 1 | | 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/shell-surface-pressure-load/numerical-review.md`; `docs/shell-surface-pressure-load/reference-model.md` | Numerical review와 exact reference contract가 함께 `pass-for-io-definition`임 | Aligned `pass-for-io-definition`; `tau_J=1e-12`, analytical/objectivity `1e-12`, FD `h=1e-5`/error `1e-8`, global balance `1e-8`; exact 729-row reference inventory, U/UR 2,187 logical rows each; owner evidence와 Coordinator audit 통과 | 없음 | 1 |
| 5. I/O definition | `io-definition-agent` | `passed` | `docs/shell-surface-pressure-load/io.md` | Abaqus subset, semantic mapping, diagnostics, HDF5 projection과 reference rows가 명확함 | `ready-for-implementation-planning`; exact assembly `SURFACE`/step `DSLOAD P`, Domain/Step/AnalysisModel mapping, ordered fail-closed validation, unchanged schema `0/1`, exact HDF5/reference projection, trace 24/24; owner `passed`; Coordinator audit 통과 | 없음 | 1 | | 5. I/O definition | `io-definition-agent` | `passed` | `docs/shell-surface-pressure-load/io.md` | Abaqus subset, semantic mapping, diagnostics, HDF5 projection과 reference rows가 명확함 | `ready-for-implementation-planning`; exact assembly `SURFACE`/step `DSLOAD P`, Domain/Step/AnalysisModel mapping, ordered fail-closed validation, unchanged schema `0/1`, exact HDF5/reference projection, trace 24/24; owner `passed`; Coordinator audit 통과 | 없음 | 1 |
| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/shell-surface-pressure-load/implementation-plan.md`; `docs/shell-surface-pressure-load/implementation-report.md`; `docs/shell-surface-pressure-load/build-test.md`; `docs/shell-surface-pressure-load/reference-comparison.md` | 승인 계획, TDD evidence, MSVC/x64/Debug build/CTest와 blocking reference comparison이 모두 통과함 | Original workspace attempt는 `environment/sandbox-msvc-filetracker-access-denied`로 CMake configure 전 차단; implementation correction 대상 아님. User-approved isolated recovery baseline은 MSVC x64 Debug configure/build, nonzero discovery, full CTest `302/302 PASS`; `GATE6-IMPL-RECOVERY-001` 실행 대기 | Implementation Agent recovery evidence 대기 | 2 | | 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/shell-surface-pressure-load/implementation-plan.md`; `docs/shell-surface-pressure-load/implementation-report.md`; `docs/shell-surface-pressure-load/build-test.md`; `docs/shell-surface-pressure-load/reference-comparison.md`; `docs/shell-surface-pressure-load/corrections.md` | 승인 계획, TDD evidence, MSVC/x64/Debug build/CTest와 blocking reference comparison이 모두 통과함 | `GATE6-CORR-001 passed`: Step 1 RED/focused `36/36`/full `310/310`, Step 2 RED/focused/LastTest `321 pass, 0 fail` audit; pending Step 3–7은 agent RED+targeted/focused/nonzero discovery, automatic Stop single whole-project full verification로 최소 교정. Stale Step 3 `started_at` Coordinator 정규화 완료 | Correction bundle clean commit 후 same Implementation Agent Step 3 rerun 대기 | 2 |
| 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/shell-surface-pressure-load/physics-evaluation.md` | Direction, symmetry, resultant, reaction과 equilibrium 검토가 `pass-for-release-agent`임 | Gate 6 evidence 대기 | Gate 6 미통과 | 0 | | 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/shell-surface-pressure-load/physics-evaluation.md` | Direction, symmetry, resultant, reaction과 equilibrium 검토가 `pass-for-release-agent`임 | Gate 6 evidence 대기 | Gate 6 미통과 | 0 |
| 8. Release readiness | `release-agent` | `pending` | `docs/shell-surface-pressure-load/release.md` | Acceptance traceability와 limitation을 포함한 verdict가 `ready-for-release`임 | Gate 7 evidence 대기 | Gate 7 미통과 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/shell-surface-pressure-load/release.md` | Acceptance traceability와 limitation을 포함한 verdict가 `ready-for-release`임 | Gate 7 evidence 대기 | Gate 7 미통과 | 0 |
@@ -145,7 +145,7 @@
- stop_condition: Planning files만 materialize하고 실행·Step selection·status advancement·timestamp·commit·push를 하지 않는다. Source/tests/CMake/docs/reference/tolerance는 변경하지 않는다. - stop_condition: Planning files만 materialize하고 실행·Step selection·status advancement·timestamp·commit·push를 하지 않는다. Source/tests/CMake/docs/reference/tolerance는 변경하지 않는다.
- missing_evidence: 없음 - missing_evidence: 없음
### Active Dispatch — Gate 6 Implementation Recovery ### Paused Dispatch — Gate 6 Implementation Recovery
- dispatch_id: `GATE6-IMPL-RECOVERY-001` - dispatch_id: `GATE6-IMPL-RECOVERY-001`
- feature_id: `shell-surface-pressure-load` - feature_id: `shell-surface-pressure-load`
@@ -163,14 +163,29 @@
- stop_condition: Execute only in the recovery worktree. Do not touch the original backup workspace, push, run Abaqus/reference solvers, change upstream contracts/tolerance/reference artifacts, advance Gate 7, or revert other agents' docs/coordination changes. Scope `danger-full-access` only to the single Executor process and remove it afterward. Repeated/unclear implementation failure returns to Coordinator for bounded correction routing. - stop_condition: Execute only in the recovery worktree. Do not touch the original backup workspace, push, run Abaqus/reference solvers, change upstream contracts/tolerance/reference artifacts, advance Gate 7, or revert other agents' docs/coordination changes. Scope `danger-full-access` only to the single Executor process and remove it afterward. Repeated/unclear implementation failure returns to Coordinator for bounded correction routing.
- missing_evidence: completed Steps 1–7, three Gate 6 reports, owner return, Coordinator evidence audit - missing_evidence: completed Steps 1–7, three Gate 6 reports, owner return, Coordinator evidence audit
### Completed Dispatch — Gate 6 Correction
- dispatch_id: `GATE6-CORR-001`
- feature_id: `shell-surface-pressure-load`
- target_sub_agent: `correction-agent`
- required_inputs:
- Step 1/2 commits `ca3e4bc`, `d5fc316`, `c3b671d`, `adebfae` and ignored `step1-output.json`, `step2-output.json`
- observed process evidence: Step 2 agent full CTest PID `21572` at `12:44:03`; Stop hook PIDs `21496/20712` at `12:45:41`; Stop full CTest PID `8816` at `12:46:01`; final test PID `21964`; parallel overlap while Harness waited for pipe EOF
- approved `implementation-plan.md`, `step3.md`–`step7.md`, `fesa-cpp-msvc-tdd`, project Harness and Stop-hook ownership contracts
- current phase index with stale pending Step 3 `started_at=2026-09-01T13:11:27+0900`
- expected_outputs: `docs/shell-surface-pressure-load/corrections.md`; minimally corrected `phases/shell-surface-pressure-load/step3.md`–`step7.md`; normalized Step 3 pending index entry if required
- acceptance_gate: Root cause/evidence, Step 1/2 RED/focused/full evidence and timeout classification are auditable. Pending Steps require agent-owned RED+focused verification only and preserve Stop hook as the single whole-project full verification owner. Acceptance/tolerance/reference strength and final Gate 6 report evidence remain unchanged; diff has no code/test/reference/upstream-contract edits.
- stop_condition: Do not commit, execute Harness/build/test, modify Step 1/2, source/tests/CMake/reference/tolerance/upstream docs, advance phase/Gate 7, or revert other agents' changes. Return exact rerun/commit recommendation to Coordinator.
- missing_evidence: 없음
### Latest Sub-Agent Return ### Latest Sub-Agent Return
- target_sub_agent: `implementation-planning-agent` - target_sub_agent: `correction-agent`
- output_paths: `phases/index.json`; `phases/shell-surface-pressure-load/index.json`; `phases/shell-surface-pressure-load/step1.md`–`step7.md` - output_paths: `docs/shell-surface-pressure-load/corrections.md`; `phases/shell-surface-pressure-load/step3.md`–`step7.md`
- status: `passed`; phase materialization complete - status: `corrected-for-implementation-rerun`
- evidence_summary: Existing top-level entries/status/timestamps를 보존하고 pending feature entry 하나를 append함. Task index는 승인된 7 slugs를 Step 1–7과 matching files로 등록함. Coordinator audit에서 Executor path resolution, pending statuses, self-contained required/prior files, exact interfaces/tests, expected RED, minimal GREEN, MSVC/x64/Debug focused/full commands, no hidden scope, exact reference hashes/read-only policy와 final literal comparison/report order를 확인함. - evidence_summary: `harness-parallel-duplicate-full-verification-timeout` attempt 2의 PID/timestamp/process overlap을 기록하고 Step 1/2 RED/focused/full evidence와 four commits를 감사함. Pending Steps에서 agent-owned targetless whole-project build/unfiltered full CTest만 제거하고 RED, targeted build, focused feature/regression/reference suites, nonzero discovery, warning/contract checks, exact reference hashes/tolerance와 Step 7 literal report sequence를 유지함. Automatic Stop을 exactly one whole-project full verification owner로 명시함. Coordinator가 pending Step 3 stale `started_at` 한 필드만 제거함.
- blockers: 없음 - blockers: 없음
- open_evidence_gaps: Implementation Agent의 actual RED/GREEN/VERIFY, build/CTest, reference comparison과 three reports 대기 - open_evidence_gaps: Step 3–7 Implementation Agent actual RED/focused/Stop evidence, final reference comparison과 three reports 대기
- critical_user_question: 없음 - critical_user_question: 없음
- forbidden_area_assertion: source, tests, CMake, phases, `docs/TOLERANCE.md`, reference artifact 변경 없음 - forbidden_area_assertion: source, tests, CMake, phases, `docs/TOLERANCE.md`, reference artifact 변경 없음
@@ -191,14 +206,18 @@
| 2026-09-01 | `GATE6-IMPL-001` | `blocked` | Original shared-workspace Step 1의 공식 CMake compiler identification이 MSBuild FileTracker `0x80070005`로 차단됨. 첫 `environment/sandbox-msvc-filetracker-access-denied`; correction-agent 비대상. Dirty workspace를 backup으로 보존 | `needs-user-decision` | | 2026-09-01 | `GATE6-IMPL-001` | `blocked` | Original shared-workspace Step 1의 공식 CMake compiler identification이 MSBuild FileTracker `0x80070005`로 차단됨. 첫 `environment/sandbox-msvc-filetracker-access-denied`; correction-agent 비대상. Dirty workspace를 backup으로 보존 | `needs-user-decision` |
| 2026-09-01 | `GATE6-RECOVERY-APPROVAL` | `passed` | User approved isolated linked recovery worktree와 per-run `danger-full-access`; root created clean baseline `2d07106` and independently verified MSVC x64 Debug configure/build, nonzero discovery, full CTest `302/302 PASS` | `ready-for-implementation` | | 2026-09-01 | `GATE6-RECOVERY-APPROVAL` | `passed` | User approved isolated linked recovery worktree와 per-run `danger-full-access`; root created clean baseline `2d07106` and independently verified MSVC x64 Debug configure/build, nonzero discovery, full CTest `302/302 PASS` | `ready-for-implementation` |
| 2026-09-01 | `GATE6-IMPL-RECOVERY-001` | `pending` | Same Implementation Agent controller recovery execution/evidence 대기 | `needs-implementation` | | 2026-09-01 | `GATE6-IMPL-RECOVERY-001` | `pending` | Same Implementation Agent controller recovery execution/evidence 대기 | `needs-implementation` |
| 2026-09-01 | `GATE6-IMPL-RECOVERY-001` | `needs-rework` | Step 1/2 commits completed, but agent full CTest and Stop-hook full CTest overlapped in parallel and caused repeated 1800-second timeout/slowdown. Harness safe-stopped after Step 2 commits; Step 3 source edit 없음 | `needs-correction` |
| 2026-09-01 | `GATE6-CORR-001` | `pending` | Exactly one Correction Agent root-cause audit/minimal verification-ownership correction 대기 | `needs-correction` |
| 2026-09-01 | `GATE6-CORR-001` | `passed` | Owner `corrected-for-implementation-rerun`; Coordinator audit에서 correction scope가 `corrections.md`, Step 3–7 wording와 stale pending Step 3 timestamp 제거에 한정되고 source/tests/CMake/hooks/reference/upstream contract no-change, focused/reference strength와 single Stop full gate 유지 확인 | `needs-implementation` |
## 5. Risk, Blocker, and User-Decision Register ## 5. Risk, Blocker, and User-Decision Register
- active_blockers: 없음 - active_blockers: 없음; correction bundle clean commit 후 same Implementation Agent rerun 필요
- critical_user_questions: 없음 - critical_user_questions: 없음
- USER-DECISION-001: `resolved 2026-09-01`; 7-Step draft, phase materialization, Harness implementation/verification execution 승인. `--push`는 승인되지 않음. - USER-DECISION-001: `resolved 2026-09-01`; 7-Step draft, phase materialization, Harness implementation/verification execution 승인. `--push`는 승인되지 않음.
- USER-DECISION-002: `resolved 2026-09-01`; isolated linked recovery worktree와 해당 Executor process에 한정한 `danger-full-access` 승인. Original dirty workspace는 immutable backup으로 보존. - USER-DECISION-002: `resolved 2026-09-01`; isolated linked recovery worktree와 해당 Executor process에 한정한 `danger-full-access` 승인. Original dirty workspace는 immutable backup으로 보존.
- RISK-008: Recovery Executor/commands의 workdir을 `C:/git/FESADev/.worktrees/shell-surface-pressure-load-recovery`로 고정하고 environment fallback을 process 종료 직후 제거한다. - RISK-008: Recovery Executor/commands의 workdir을 `C:/git/FESADev/.worktrees/shell-surface-pressure-load-recovery`로 고정하고 environment fallback을 process 종료 직후 제거한다.
- RISK-009: Pending Step agent가 full CTest를 실행하는 동안 Stop hook이 별도 full CTest를 시작하면 process overlap, timeout과 false failure가 발생한다. Agent는 RED+focused VERIFY, Stop hook은 single whole-project full VERIFY를 소유하도록 경계를 명시한다.
- RISK-001: Element-based `*DLOAD` pressure와 surface-based `*DSLOAD` pressure의 sign/target 의미를 혼합하지 않는다. - RISK-001: Element-based `*DLOAD` pressure와 surface-based `*DSLOAD` pressure의 sign/target 의미를 혼합하지 않는다.
- RISK-002: Nonlinear follower pressure의 current-surface force와 external tangent를 fixed-global `*CLOAD`와 혼합하지 않는다. - RISK-002: Nonlinear follower pressure의 current-surface force와 external tangent를 fixed-global `*CLOAD`와 혼합하지 않는다.
- RISK-003: Reference artifact 또는 공통 tolerance를 기능 통과를 위해 수정하지 않는다. - RISK-003: Reference artifact 또는 공통 tolerance를 기능 통과를 위해 수정하지 않는다.
@@ -210,16 +229,16 @@
## 6. Rework-Loop Control and Stop Condition ## 6. Rework-Loop Control and Stop Condition
- normalized_failure_attempts: `upstream-io-contract-mismatch` 1회 교정 완료; `environment/sandbox-msvc-filetracker-access-denied` 1회, approved isolated recovery로 routing함 - normalized_failure_attempts: `upstream-io-contract-mismatch` 1회 교정 완료; `environment/sandbox-msvc-filetracker-access-denied` 1회 recovery routing 완료; `harness-parallel-duplicate-full-verification-timeout` 2회 관측, first Correction Agent response explicitly dispatched
- automatic_rework_limit: 동일 normalized failure classification `2`회 - automatic_rework_limit: 동일 normalized failure classification `2`회
- current_attempt: `implementation-recovery` 2회차 dispatch 준비(첫 구현 시도는 environment-blocked, implementation defect 아님); `implementation-planning` 1회 완료; phase materialization 1회 완료; `io-definition` 1회 완료; `numerical-reference-review` 1회 완료; `formulation-contract` 1회 완료; `research-evidence` 1회 완료; `requirements-baseline` 1회 완료 - current_attempt: `correction` 1회 완료; implementation recovery Step 1/2 완료, Step 3 rerun 대기; `implementation-planning` 1회 완료; phase materialization 1회 완료; `io-definition` 1회 완료; `numerical-reference-review` 1회 완료; `formulation-contract` 1회 완료; `research-evidence` 1회 완료; `requirements-baseline` 1회 완료
- stop_condition: 동일 classification이 2회이면 자동 재작업을 중단하고 `needs-user-decision` 또는 `blocked`로 전환한다. - stop_condition: 동일 classification이 2회이면 자동 재작업을 중단하고 `needs-user-decision` 또는 `blocked`로 전환한다.
## 7. Final Workflow Closure ## 7. Final Workflow Closure
- closure_status: `pending` - closure_status: `pending`
- required_evidence: Gates 1–8 owner evidence와 `release.md`의 `ready-for-release` recommendation - required_evidence: Gates 1–8 owner evidence와 `release.md`의 `ready-for-release` recommendation
- current_boundary: Gates 1–5와 Gate 6 planning/phase subgates `passed`; Stage 6 implementation `in-progress`; Gate 6 three-report evidence 전 Gate 7 금지. - current_boundary: Gates 1–5와 Gate 6 planning/phase/correction subgates `passed`; Stage 6 Step 1/2 완료, Step 3–7 미완료; correction bundle commit 전 Harness 재실행 금지, Gate 6 three-report evidence 전 Gate 7 금지.
## 8. No-Change Assertion ## 8. No-Change Assertion
@@ -230,5 +249,6 @@
- tolerance_policies: 변경 없음 - tolerance_policies: 변경 없음
- phase_planning: `phases/index.json`에 pending entry append; `phases/shell-surface-pressure-load/index.json`과 `step1.md`–`step7.md` 생성 - phase_planning: `phases/index.json`에 pending entry append; `phases/shell-surface-pressure-load/index.json`과 `step1.md`–`step7.md` 생성
- recovery_baseline: Root가 isolated recovery worktree/branch와 baseline commit `2d07106`을 준비하고 MSVC x64 Debug full baseline `302/302 PASS`를 확인함 - recovery_baseline: Root가 isolated recovery worktree/branch와 baseline commit `2d07106`을 준비하고 MSVC x64 Debug full baseline `302/302 PASS`를 확인함
- correction_change: `corrections.md` 생성, Step 3–7 verification ownership 문구 최소 교정, pending Step 3 stale `started_at` 제거; source/tests/CMake/hooks/scripts/reference/tolerance/upstream docs 변경 없음
- coordinator_change: `docs/shell-surface-pressure-load/coordination.md` 생성 및 Gates 1–5와 Gate 6 planning evidence 기록 - coordinator_change: `docs/shell-surface-pressure-load/coordination.md` 생성 및 Gates 1–5와 Gate 6 planning evidence 기록
- specialist_change: Requirement Agent가 `requirements.md`, Research Agent가 `research.md`, Formulation Agent가 `formulation.md`, Numerical Review Agent가 `numerical-review.md`와 `reference-model.md`, I/O Definition Agent가 `io.md`, Implementation Planning Agent가 `implementation-plan.md`를 각각 생성함 - specialist_change: Requirement Agent가 `requirements.md`, Research Agent가 `research.md`, Formulation Agent가 `formulation.md`, Numerical Review Agent가 `numerical-review.md`와 `reference-model.md`, I/O Definition Agent가 `io.md`, Implementation Planning Agent가 `implementation-plan.md`를 각각 생성함
@@ -0,0 +1,76 @@
# Shell Surface Pressure Load Correction Report
## 1. Metadata
- feature_id: `shell-surface-pressure-load`
- source failure report: `phases/shell-surface-pressure-load/step1-output.json`, `phases/shell-surface-pressure-load/step2-output.json`, `.harness/build/Testing/Temporary/LastTest.log`
- source implementation plan: `docs/shell-surface-pressure-load/implementation-plan.md`
- status: `corrected-for-implementation-rerun`
- owner_agent: `correction-agent`
- date: `2026-09-01`
- normalized failure: `harness-parallel-duplicate-full-verification-timeout`
- attempt count: `2`
## 2. Failure Triage
- classification: `harness`
- first failed command: `python scripts/execute.py shell-surface-pressure-load`
- failed target or test: 제품 test 실패가 아니라 Implementation Agent가 실행한 unfiltered full CTest와 automatic Stop whole-project CTest의 중복 실행으로 인한 Harness outer timeout
- evidence tail: Step 2 agent full CTest PID `21572`가 `12:44:03`에 시작되었고, agent command가 `12:45:41`에 반환되기 전에 Codex Stop-hook `stop_validation.py` PIDs `21496`/`20712`가 시작되었다. 별도 Stop full CTest PID `8816`은 `12:46:01`에 시작되었으며 최종 test PID `21964`가 실행되는 동안 Harness는 pipe EOF를 기다렸다. 같은 형태의 overlap이 두 번의 1800초 timeout/slowdown을 만들었다.
## 3. Root Cause Summary
Root cause는 implementation defect, test defect 또는 CMake registration issue가 아니다. Pending Step 문서가 Implementation Agent에게 whole-project `cmake --build`와 unfiltered full CTest를 직접 실행하도록 요구하면서 `.codex/hooks.json`의 automatic Stop도 동일한 whole-project 검증을 수행했다. 장시간 reference tests가 병렬로 중복 실행되어 Executor가 Codex process와 pipe 종료를 기다리다 timeout됐다. 따라서 Step 2 output의 `exitCode: 124`는 product test failure가 아니라 Harness orchestration timeout이다.
## 4. Correction Scope
변경 범위는 pending Step의 실행 지시를 단일 검증 소유권으로 정규화하는 문구뿐이다.
- changed documentation: `phases/shell-surface-pressure-load/step3.md`–`step7.md`
- new report: `docs/shell-surface-pressure-load/corrections.md`
- retained agent-owned checks: test-first RED, targeted MSVC x64 Debug build, focused feature/regression CTest, nonzero discovery, warning/contract checks
- retained Stop-owned check: exactly one automatic whole-project MSVC x64 Debug build and unfiltered full CTest
- retained final gate: literal `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`, exact artifact hashes/immutability, approved matching/tolerance and report completeness
- excluded unchanged files: source, public/private headers, tests, CMake, hooks, scripts, `.harness/config.json`, `requirements.md`, `research.md`, `formulation.md`, `numerical-review.md`, `reference-model.md`, `io.md`, `implementation-plan.md`, `coordination.md`, `docs/TOLERANCE.md`, reference artifacts
`phases/shell-surface-pressure-load/index.json`의 pending Step 3 stale `started_at` 정규화는 Coordinator-owned 작업으로 남겼으며 이 correction에서는 index를 수정하지 않았다.
## 5. Verification Evidence
### Step 1/2 evidence audit
| Step | RED evidence | focused evidence | whole-project evidence | audit decision |
| --- | --- | --- | --- | --- |
| Step 1 | 신규 surface/DSLOAD semantic mapping 부재로 targeted RED가 실제 관찰됨 | parser/domain focused tests `36/36 passed` | MSVC Debug build passed, full CTest `310/310 passed` in `954.19 sec`; feature commit `ca3e4bc`, output commit `d5fc316` 존재 | feature/test evidence는 신뢰 가능하며 outer 1800초 timeout은 Harness overlap으로 분리 |
| Step 2 | invalid pressure input/diagnostic negative-contract assertions의 expected RED가 실제 관찰됨 | Step 2 targeted/focused verification passed | `.harness/build/Testing/Temporary/LastTest.log` LastWrite `2026-09-01 13:11:27`, `Test Passed.` 321, `Test Failed.` 0, CTest error marker 0; feature commit `c3b671d`, output commit `adebfae` 존재 | `exitCode: 124`는 test failure가 아니라 overlapping agent/Stop full CTest timeout |
### Correction verification
- targeted reproducer: 실행하지 않음. 요구된 correction은 기존 두 overlap의 PID/timestamp 및 output/log evidence를 감사하는 문서/phase-instruction 교정이며 Harness/build/test 실행은 명시적으로 금지되었다.
- config-resolved full MSVC build/test: 이번 correction에서 실행하지 않음. 다음 Implementation Agent는 focused commands까지만 수행하고 automatic Stop이 exactly one whole-project validation을 소유한다.
- Stop result: 이번 correction turn에서는 Stop/Harness를 실행하지 않음.
- Harness Python pytest: hook/script/config를 변경하지 않았으므로 해당 없음.
- static verification: pending Step 3–7에서 agent-owned unfiltered full CTest와 target 없는 whole-project build가 제거되고, focused/reference commands와 automatic Stop 책임이 남는지 `rg` 및 `git diff --check`로 확인한다.
## 6. Traceability
| requirement id | task id | test id/evidence | failing command | corrected file | acceptance criterion |
| --- | --- | --- | --- | --- | --- |
| `FESA-REQ-SHELL-PRESSURE-005`–`021` | Steps 3–5 | 각 Step의 named kernel/assembly/linear/nonlinear focused suites | agent-owned whole-project build/full CTest followed by automatic Stop | `step3.md`–`step5.md` | RED와 focused regression은 agent가 수행하고 Stop이 단 한 번 full MSVC/CTest를 수행 |
| `FESA-REQ-SHELL-PRESSURE-017`–`024` | Step 6 | `ShellSurfacePressureReference.*` 및 reference regressions | agent-owned whole-project build/full CTest followed by automatic Stop | `step6.md` | exact artifacts, projection, prechecks, common tolerance와 reference classification 유지 |
| `FESA-REQ-SHELL-PRESSURE-001`–`024` | Step 7 | feature suites, nonzero discovery, final reports and Stop evidence | duplicate full verification | `step7.md` | focused gates 뒤 `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`; automatic Stop single full gate; 24/24 report coverage |
## 7. Handoff Recommendation
Coordinator는 **같은 Implementation Agent**에 아래 rerun을 요청한다.
1. `phases/shell-surface-pressure-load/index.json`에서 pending Step 3의 stale `started_at`만 Executor 계약에 맞게 제거하고 Step 1/2 completed fields와 모든 status를 보존한다.
2. 별도 승인된 기존 명령 `python scripts/execute.py shell-surface-pressure-load`로 Step 3부터 재개한다.
3. 각 Step에서 planned test-first RED와 targeted build/focused feature/regression CTest 및 nonzero discovery를 기록한 뒤 status/summary를 갱신하고 agent turn을 종료한다.
4. agent가 target 없는 whole-project build나 unfiltered full CTest를 시작하지 않도록 하며 automatic Stop이 exactly one whole-project MSVC x64 Debug build/test를 소유하게 한다.
5. Step 7은 reference artifact를 변경하지 않고 literal `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`를 완료하며, Stop/Executor evidence를 포함해 Gate 6 보고서를 완결한다.
6. 성공 후 Executor가 feature/output metadata commit을 생성하도록 하고 commit/push는 Executor 계약과 사용자 승인 범위에 따른다.
## 8. Stop Condition
동일 normalized classification `harness-parallel-duplicate-full-verification-timeout`이 이미 두 번 발생했으므로 automatic rework는 여기서 중단한다. 수정된 단일-owner 검증 지시로 같은 Implementation Agent rerun을 한 번 요청한다. 같은 overlap이 다시 발생하면 코드 우회 없이 `blocked`로 Coordinator에 반환한다. Upstream contract, tolerance, reference artifact 또는 formulation 변경이 필요해지는 경우에는 `needs-upstream-decision`; MSVC/path/permission 자체가 막히면 `needs-environment-fix`로 반환한다.
@@ -45,4 +45,4 @@
} }
], ],
"created_at": "2026-09-01T01:29:29+0900" "created_at": "2026-09-01T01:29:29+0900"
} }
+4 -5
View File
@@ -2,7 +2,7 @@
## 실행 범위와 상태 소유권 ## 실행 범위와 상태 소유권
이 Step의 단일 책임은 one four-node shell facet의 reference/current surface-pressure `24x1` external force와 exact `24x24` external tangent를 backend-neutral하게 계산하는 것이다. Parser, full-space assembler, analysis procedure and HDF5 integration은 범위 밖이다. Same Step에서 RED, expected failure, minimal GREEN and complete VERIFY를 수행한다. 이 Step의 단일 책임은 one four-node shell facet의 reference/current surface-pressure `24x1` external force와 exact `24x24` external tangent를 backend-neutral하게 계산하는 것이다. Parser, full-space assembler, analysis procedure and HDF5 integration은 범위 밖이다. Same Step에서 RED, expected failure, minimal GREEN and focused VERIFY를 수행한 뒤 종료하며, automatic Stop hook이 exactly one whole-project full verification을 소유한다.
Implementation Agent는 Step 3 record의 `status`와 한 줄 `summary`/`error_message`/`blocked_reason`만 기록한다. Executor는 branch, retry, timestamps, commit, advancement, top-level status and output JSON을 소유한다. Implementation Agent는 Step 3 record의 `status`와 한 줄 `summary`/`error_message`/`blocked_reason`만 기록한다. Executor는 branch, retry, timestamps, commit, advancement, top-level status and output JSON을 소유한다.
@@ -121,9 +121,7 @@ Use `.harness/config.json` first if present; otherwise:
cmake --build .harness/build --config Debug --target fesa_unit_tests cmake --build .harness/build --config Debug --target fesa_unit_tests
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureKernel\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureKernel\."
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(Mitc4Shell|NonlinearMitc4Shell|NonlinearMitc4ShellTangent)\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(Mitc4Shell|NonlinearMitc4Shell|NonlinearMitc4ShellTangent)\."
cmake --build .harness/build --config Debug
ctest --test-dir .harness/build -C Debug --show-only=json-v1 ctest --test-dir .harness/build -C Debug --show-only=json-v1
ctest --test-dir .harness/build -C Debug --output-on-failure
``` ```
Acceptance: Acceptance:
@@ -134,9 +132,10 @@ Acceptance:
- rotation blocks are bitwise/exact zero; - rotation blocks are bitwise/exact zero;
- at least one approved off-diagonal antisymmetric tangent pair is nonzero; - at least one approved off-diagonal antisymmetric tangent pair is nonzero;
- every invalid geometry/nonfinite case fails without a contribution; - every invalid geometry/nonfinite case fails without a contribution;
- nonzero CTest inventory, full pass, no new MSVC warning. - nonzero CTest inventory, focused feature/regression pass, no new MSVC warning;
- automatic Stop의 exactly one whole-project MSVC x64 Debug build/unfiltered CTest pass.
The Stop hook runs automatically; do not execute hook entry points manually. 위 명령과 증거를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Stop hook이 자동으로 exactly one whole-project build/full CTest를 수행하며 hook entry point를 수동 실행하지 않는다.
## 불변식, 실패 처리와 증거 ## 불변식, 실패 처리와 증거
+5 -4
View File
@@ -4,7 +4,7 @@
이 Step의 single responsibility는 Step 3 local evaluator를 deterministic full-space pressure assembler와 linear-static reference-configuration path에 연결하고 existing schema-0/CLI/reaction/equilibrium behavior를 검증하는 것이다. Nonlinear follower procedure는 Step 5 범위다. 이 Step의 single responsibility는 Step 3 local evaluator를 deterministic full-space pressure assembler와 linear-static reference-configuration path에 연결하고 existing schema-0/CLI/reaction/equilibrium behavior를 검증하는 것이다. Nonlinear follower procedure는 Step 5 범위다.
Complete test-first RED, expected failure, minimal GREEN, focused and full VERIFY in this Step. Update only Step 4's selected status and one-line Codex-owned payload. Executor owns branch, retry, timestamps, commit, advancement, top-level phase status and output JSON. Complete test-first RED, expected failure, minimal GREEN and focused VERIFY in this Step, then end so automatic Stop owns exactly one whole-project full verification. Update only Step 4's selected status and one-line Codex-owned payload. Executor owns branch, retry, timestamps, commit, advancement, top-level phase status and output JSON.
## 읽어야 할 파일 ## 읽어야 할 파일
@@ -131,11 +131,11 @@ Use `.harness/config.json` first if present; otherwise:
cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(SurfacePressureAssembly|LinearShellSurfacePressure|ShellSurfacePressureApplication)\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(SurfacePressureAssembly|LinearShellSurfacePressure|ShellSurfacePressureApplication)\."
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(LoadAssembly|SparseAssembly|LinearStaticCli|Mitc4ShellCli|Hdf5ResultsWriter)\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(LoadAssembly|SparseAssembly|LinearStaticCli|Mitc4ShellCli|Hdf5ResultsWriter)\."
cmake --build .harness/build --config Debug
ctest --test-dir .harness/build -C Debug --show-only=json-v1 ctest --test-dir .harness/build -C Debug --show-only=json-v1
ctest --test-dir .harness/build -C Debug --output-on-failure
``` ```
위 targeted build, focused feature/regression tests와 nonzero discovery evidence를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Automatic Stop hook이 exactly one whole-project MSVC x64 Debug build/full CTest를 수행한다.
Acceptance: Acceptance:
- normalized analytical force/moment/reaction/mesh/order errors `<=1e-12`; - normalized analytical force/moment/reaction/mesh/order errors `<=1e-12`;
@@ -144,7 +144,8 @@ Acceptance:
- schema `0`, existing mandatory datasets only, no pressure-specific path; - schema `0`, existing mandatory datasets only, no pressure-specific path;
- failed pressure candidate leaves prior final bytes unchanged or no misleading final; - failed pressure candidate leaves prior final bytes unchanged or no misleading final;
- inputs without pressure retain current results; - inputs without pressure retain current results;
- nonzero CTest inventory, full pass, no new MSVC warning and runtime staging succeeds. - nonzero CTest inventory, focused feature/regression pass, no new MSVC warning and runtime staging succeeds;
- automatic Stop의 exactly one whole-project MSVC x64 Debug build/unfiltered CTest pass.
## 불변식, 실패 처리와 증거 ## 불변식, 실패 처리와 증거
+4 -4
View File
@@ -2,7 +2,7 @@
## 실행 범위와 상태 소유권 ## 실행 범위와 상태 소유권
이 Step의 단일 책임은 current-configuration follower pressure force와 generally nonsymmetric exact external tangent를 nonlinear full-Newton trial/commit lifecycle과 existing schema-1 output에 연결하는 것이다. Same Step에서 test-first RED, expected failure, minimal GREEN, focused/full VERIFY를 완료한다. 이 Step의 단일 책임은 current-configuration follower pressure force와 generally nonsymmetric exact external tangent를 nonlinear full-Newton trial/commit lifecycle과 existing schema-1 output에 연결하는 것이다. Same Step에서 test-first RED, expected failure, minimal GREEN and focused VERIFY를 완료한 뒤 종료하며, automatic Stop hook이 exactly one whole-project full verification을 소유한다.
Implementation Agent는 Executor-selected Step 5만 수행하고 Step 5 `status`와 한 줄 `summary`/`error_message`/`blocked_reason`만 기록한다. Executor가 branch, retry, timestamps, commits, advancement, top-level status and output JSON을 소유한다. Implementation Agent는 Executor-selected Step 5만 수행하고 Step 5 `status`와 한 줄 `summary`/`error_message`/`blocked_reason`만 기록한다. Executor가 branch, retry, timestamps, commits, advancement, top-level status and output JSON을 소유한다.
@@ -122,12 +122,12 @@ Use `.harness/config.json` first if present; otherwise:
cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearShellSurfacePressure|ShellSurfacePressureApplication)\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearShellSurfacePressure|ShellSurfacePressureApplication)\."
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearStaticProcedure|NonlinearStaticControl|TangentSolver|NonlinearHdf5ResultsWriter|NonlinearStaticReference)\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearStaticProcedure|NonlinearStaticControl|TangentSolver|NonlinearHdf5ResultsWriter|NonlinearStaticReference)\."
cmake --build .harness/build --config Debug
ctest --test-dir .harness/build -C Debug --show-only=json-v1 ctest --test-dir .harness/build -C Debug --show-only=json-v1
ctest --test-dir .harness/build -C Debug --output-on-failure
``` ```
Acceptance: local FD `<=1e-8`; objectivity/current-area normalized error `<=1e-12`; factor-one global force/moment balance `<=1e-8`; existing free force/moment residual nonzero-scale relative `<=1e-2`, zero-scale absolute `<=1e-3`; exact zero-scale rules; schema-1 unique factor-one frame projections exact; serial/parallel order exact; invalid trial rollback exact; all discovered tests pass with no warning/runtime staging failure. 위 targeted build, focused feature/regression tests와 nonzero discovery evidence를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Automatic Stop hook이 exactly one whole-project MSVC x64 Debug build/full CTest를 수행한다.
Acceptance: local FD `<=1e-8`; objectivity/current-area normalized error `<=1e-12`; factor-one global force/moment balance `<=1e-8`; existing free force/moment residual nonzero-scale relative `<=1e-2`, zero-scale absolute `<=1e-3`; exact zero-scale rules; schema-1 unique factor-one frame projections exact; serial/parallel order exact; invalid trial rollback exact; focused tests pass with nonzero discovery and no warning/runtime staging failure; automatic Stop's exactly one whole-project MSVC x64 Debug build/unfiltered CTest passes.
## 불변식, 실패 처리와 증거 ## 불변식, 실패 처리와 증거
+4 -4
View File
@@ -4,7 +4,7 @@
이 Step's single responsibility is to add deterministic comparison support between FESA schema-1 factor-one HDF5 and the exact stored shell-pressure displacement CSV using the unchanged common tolerance. It does not generate reference data and does not write final Gate 6 reports; Step 7 owns closure reports. 이 Step's single responsibility is to add deterministic comparison support between FESA schema-1 factor-one HDF5 and the exact stored shell-pressure displacement CSV using the unchanged common tolerance. It does not generate reference data and does not write final Gate 6 reports; Step 7 owns closure reports.
Complete RED, expected failure, minimal GREEN and full VERIFY here. Update only Step 6's status and one-line Codex-owned payload. Executor owns all timestamps, commits, retry/advancement, top-level status and output JSON. Complete RED, expected failure, minimal GREEN and focused VERIFY here, then end so automatic Stop owns exactly one whole-project full verification. Update only Step 6's status and one-line Codex-owned payload. Executor owns all timestamps, commits, retry/advancement, top-level status and output JSON.
## 읽어야 할 파일 ## 읽어야 할 파일
@@ -115,12 +115,12 @@ Use `.harness/config.json` first if present; otherwise:
cmake --build .harness/build --config Debug --target fesa_reference_tests cmake --build .harness/build --config Debug --target fesa_reference_tests
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\."
ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearStaticReference|ReferenceTolerancePolicy|Mitc4Reference)\." ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearStaticReference|ReferenceTolerancePolicy|Mitc4Reference)\."
cmake --build .harness/build --config Debug
ctest --test-dir .harness/build -C Debug --show-only=json-v1 ctest --test-dir .harness/build -C Debug --show-only=json-v1
ctest --test-dir .harness/build -C Debug --output-on-failure
``` ```
Acceptance: exact input/CSV size+hash unchanged before/after; 729 unique node keys; 2,187 rows in each U/UR family; all prechecks precede tolerance; common policy unchanged; U blocking and UR warning-only; reaction/stress dispositions exact; deterministic report; all discovered/full tests pass without new warning/runtime staging failure. 위 targeted build, focused pressure/reference regressions와 nonzero discovery evidence를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Automatic Stop hook이 exactly one whole-project MSVC x64 Debug build/full CTest를 수행한다.
Acceptance: exact input/CSV size+hash unchanged before/after; 729 unique node keys; 2,187 rows in each U/UR family; all prechecks precede tolerance; common policy unchanged; U blocking and UR warning-only; reaction/stress dispositions exact; deterministic report; focused tests pass with nonzero discovery and no new warning/runtime staging failure; automatic Stop's exactly one whole-project MSVC x64 Debug build/unfiltered CTest passes.
## 불변식, 실패 처리와 증거 ## 불변식, 실패 처리와 증거
+5 -6
View File
@@ -2,7 +2,7 @@
## 실행 범위와 상태 소유권 ## 실행 범위와 상태 소유권
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. 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. 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.
@@ -51,14 +51,13 @@ cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 `
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` "-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" ` "-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" "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
cmake --build .harness/build --config Debug 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 --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 "^(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\." 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. 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 -> COMPARE -> CLASSIFY -> REPORT
@@ -91,7 +90,7 @@ Any nonzero command, zero tests, new warning, runtime staging failure, artifact
Write complete Korean Markdown reports: 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. - `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. - `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. - `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. Do not claim release readiness. A passing Gate 6 report recommends only `pass-for-physics-evaluation` through Coordinator.
@@ -99,7 +98,7 @@ Do not claim release readiness. A passing Gate 6 report recommends only `pass-fo
## Final Acceptance Criteria ## 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. - 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. - 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. - 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. - 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. - Pressure reference U blocking passes, UR remains warning-only, reaction review-only, stress excluded; internal equilibrium passes.