diff --git a/docs/shell-surface-pressure-load/coordination.md b/docs/shell-surface-pressure-load/coordination.md index 2ef2be7..e8ab3a5 100644 --- a/docs/shell-surface-pressure-load/coordination.md +++ b/docs/shell-surface-pressure-load/coordination.md @@ -8,7 +8,7 @@ - request_date: `2026-08-30` - last_updated: `2026-09-01` - 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를 사용한다. - 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 사용한다. @@ -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 | | 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 | -| 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 | | 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는 변경하지 않는다. - missing_evidence: 없음 -### Active Dispatch — Gate 6 Implementation Recovery +### Paused Dispatch — Gate 6 Implementation Recovery - dispatch_id: `GATE6-IMPL-RECOVERY-001` - 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. - 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 -- target_sub_agent: `implementation-planning-agent` -- output_paths: `phases/index.json`; `phases/shell-surface-pressure-load/index.json`; `phases/shell-surface-pressure-load/step1.md`–`step7.md` -- status: `passed`; phase materialization complete -- 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를 확인함. +- target_sub_agent: `correction-agent` +- output_paths: `docs/shell-surface-pressure-load/corrections.md`; `phases/shell-surface-pressure-load/step3.md`–`step7.md` +- status: `corrected-for-implementation-rerun` +- 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: 없음 -- 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: 없음 - 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-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` | `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 -- active_blockers: 없음 +- active_blockers: 없음; correction bundle clean commit 후 same Implementation Agent rerun 필요 - critical_user_questions: 없음 - 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으로 보존. - 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-002: Nonlinear follower pressure의 current-surface force와 external tangent를 fixed-global `*CLOAD`와 혼합하지 않는다. - RISK-003: Reference artifact 또는 공통 tolerance를 기능 통과를 위해 수정하지 않는다. @@ -210,16 +229,16 @@ ## 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`회 -- 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`로 전환한다. ## 7. Final Workflow Closure - closure_status: `pending` - 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 @@ -230,5 +249,6 @@ - tolerance_policies: 변경 없음 - 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`를 확인함 +- 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 기록 - 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`를 각각 생성함 diff --git a/docs/shell-surface-pressure-load/corrections.md b/docs/shell-surface-pressure-load/corrections.md new file mode 100644 index 0000000..166e7b5 --- /dev/null +++ b/docs/shell-surface-pressure-load/corrections.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`로 반환한다. diff --git a/phases/shell-surface-pressure-load/index.json b/phases/shell-surface-pressure-load/index.json index 36039e6..6af4849 100644 --- a/phases/shell-surface-pressure-load/index.json +++ b/phases/shell-surface-pressure-load/index.json @@ -45,4 +45,4 @@ } ], "created_at": "2026-09-01T01:29:29+0900" -} \ No newline at end of file +} diff --git a/phases/shell-surface-pressure-load/step3.md b/phases/shell-surface-pressure-load/step3.md index 8d1c06e..4585730 100644 --- a/phases/shell-surface-pressure-load/step3.md +++ b/phases/shell-surface-pressure-load/step3.md @@ -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을 소유한다. @@ -121,9 +121,7 @@ Use `.harness/config.json` first if present; otherwise: 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 "^(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 --output-on-failure ``` Acceptance: @@ -134,9 +132,10 @@ Acceptance: - rotation blocks are bitwise/exact zero; - at least one approved off-diagonal antisymmetric tangent pair is nonzero; - 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를 수동 실행하지 않는다. ## 불변식, 실패 처리와 증거 diff --git a/phases/shell-surface-pressure-load/step4.md b/phases/shell-surface-pressure-load/step4.md index 5ae6317..7ad2772 100644 --- a/phases/shell-surface-pressure-load/step4.md +++ b/phases/shell-surface-pressure-load/step4.md @@ -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 범위다. -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 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)\." -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 ``` +위 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: - 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; - failed pressure candidate leaves prior final bytes unchanged or no misleading final; - 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. ## 불변식, 실패 처리와 증거 diff --git a/phases/shell-surface-pressure-load/step5.md b/phases/shell-surface-pressure-load/step5.md index 1ac8e28..27e3385 100644 --- a/phases/shell-surface-pressure-load/step5.md +++ b/phases/shell-surface-pressure-load/step5.md @@ -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을 소유한다. @@ -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 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)\." -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 ``` -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. ## 불변식, 실패 처리와 증거 diff --git a/phases/shell-surface-pressure-load/step6.md b/phases/shell-surface-pressure-load/step6.md index 4905b9b..9e179ad 100644 --- a/phases/shell-surface-pressure-load/step6.md +++ b/phases/shell-surface-pressure-load/step6.md @@ -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. -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 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)\." -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 ``` -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. ## 불변식, 실패 처리와 증거 diff --git a/phases/shell-surface-pressure-load/step7.md b/phases/shell-surface-pressure-load/step7.md index cefd4ff..b58e765 100644 --- a/phases/shell-surface-pressure-load/step7.md +++ b/phases/shell-surface-pressure-load/step7.md @@ -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. @@ -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" ` "-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 +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 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 @@ -91,7 +90,7 @@ Any nonzero command, zero tests, new warning, runtime staging failure, artifact 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. +- `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. @@ -99,7 +98,7 @@ Do not claim release readiness. A passing Gate 6 report recommends only `pass-fo ## 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. +- 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.