# Step 3: Numerical Review

## 담당 역할과 필수 스킬

- 담당 역할: `numerical-review-agent`
- 필수 스킬: `fesa-numerical-review`
- 스킬을 끝까지 읽고 formulation 작성자와 독립된 reviewer 관점으로 작업하라.

## 읽어야 할 파일

- `/AGENTS.md`
- `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/numerical-reviews/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md`
- `/docs/research/linear-static-3d-euler-beam-research.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`

## 작업

`docs/numerical-reviews/linear-static-3d-euler-beam-review.md`를 생성해 구현 전 수치
검토를 수행하라.

- Metadata와 `Review Verdict`를 포함하고 통과 시
  `status: pass-for-implementation-planning`을 사용한다.
- `[u,v,w,theta_x,theta_y,theta_z]` DOF 순서, `theta_y=-w'`, `My=-EIy*w''`, natural
  boundary/end-action 부호를 독립 재유도한다.
- 4x12 B matrix와 12x12 closed-form stiffness의 대응, 2-point Gauss exactness,
  symmetry, rank 6, six rigid modes, positive deformation energy를 검토한다.
- `R`, `T` orthogonality/right-handedness와 energy invariance를 검토한다.
- consistent constant line-load vector의 component와 부호를 검토하되 `*DLOAD` input은
  범위 밖임을 유지한다.
- free/constrained partition, nonzero prescribed displacement, residual reaction,
  SPD factorization 가정과 singularity/conditioning 위험을 검토한다.
- 구현 테스트 권고를 구체적 test id/criterion으로 제시하고 confirmed defect, risk,
  open issue를 분리한다.

확인된 수학 결함이 하나라도 있으면 `pass-for-implementation-planning`을 발행하지 말고
`needs-formulation-revision`으로 보고한 뒤 phase step을 `blocked`로 기록한다.

## Acceptance Criteria

```powershell
$path = 'docs/numerical-reviews/linear-static-3d-euler-beam-review.md'
if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @(
  'status: `pass-for-implementation-planning`',
  '## Review Verdict',
  '## Critical Findings',
  '## Numerical Risk Assessment',
  '## Consistency Checks',
  '## Verification Readiness',
  'rank 6',
  'rigid',
  '2-point'
)
foreach ($text in $required) {
  if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) {
    throw "Missing numerical review evidence: $text"
  }
}
git diff --check -- $path
```

## 검증 절차

1. Acceptance Criteria 명령을 실행한다.
2. review가 formulation을 직접 수정하지 않았는지 확인한다.
3. 모든 numerical risk가 test recommendation 또는 explicit limitation으로 연결되는지 확인한다.
4. 통과 시 Step 3을 `completed`와 verdict summary로 갱신한다. 수학 revision이 필요하면
   `blocked`, 문서 생성 자체가 반복 실패하면 `error`로 기록한다.

## 금지사항

- formulation 문서를 직접 편집하지 마라. 이유: 독립 review evidence를 보존해야 한다.
- C++ API/file ownership을 설계하거나 구현하지 마라. 이유: 다음 gate 책임이다.
- reference comparison 성공을 판정하지 마라. 이유: solver 결과가 아직 없다.
- Abaqus 실행과 `/reference/` 변경을 하지 마라. 이유: read-only baseline이다.
- 직접 commit하지 마라. 이유: Harness executor가 담당한다.
