84 lines
3.8 KiB
Markdown
84 lines
3.8 KiB
Markdown
# Step 2: Formulation Alignment
|
||
|
||
## 담당 역할과 필수 스킬
|
||
|
||
- 담당 역할: `formulation-agent`
|
||
- 필수 스킬: `fesa-formulation-spec`
|
||
- 스킬의 `SKILL.md`를 끝까지 읽고 수학 계약과 구현 계약의 경계를 지켜라.
|
||
|
||
## 읽어야 할 파일
|
||
|
||
- `/AGENTS.md`
|
||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||
- `/.codex/skills/fesa-formulation-spec/SKILL.md`
|
||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||
- `/docs/linear-static-3d-euler-beam/research.md`
|
||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||
|
||
Step 0–1 산출물과 완료 summary를 확인하라.
|
||
|
||
## 작업
|
||
|
||
기존 `docs/linear-static-3d-euler-beam/formulation.md`를 승인된 V0 요구조건과
|
||
연구 근거에 맞춰 정렬하라. 기존 정식화의 정확한 수학적 의미를 유지해야 하며, 이
|
||
step은 새 요소를 다시 설계하는 작업이 아니다.
|
||
|
||
- Metadata의 source requirement/research 경로와 status를 실제 산출물에 맞게 바꾸고
|
||
`feature_id: 3d-isoparametric-euler-beam`, `status: ready-for-numerical-review`를 기록한다.
|
||
- 기존 strong/weak form, DOF 순서, `theta_y=-w'`, B matrix, constitutive matrix,
|
||
2-point Gauss, 12x12 stiffness, transformation, line-load vector, recovery 식을 유지한다.
|
||
- 승인된 입력 의미를 수학 계약에 연결한다: `n1 -> local y`, `t x n1 -> local z`,
|
||
`Iy=I11`, `Iz=I22`, `I12=0`, scale-aware geometry validation.
|
||
- equilibrium end action, endpoint section resultant, Gauss generalized values, section-point
|
||
axial `S11`을 구분하고 stress reference comparison은 N/A임을 분명히 한다.
|
||
- 기존 Open Issues 중 승인 설계에서 해결된 tolerance, orientation, HDF5 distinction,
|
||
requirement/research 부재 항목을 제거하거나 resolved decision으로 바꾼다.
|
||
- Euler–Bernoulli slenderness 적용 범위는 limitation으로 유지하되 승인되지 않은 임의
|
||
warning/error threshold를 추가하지 않는다.
|
||
|
||
수식 결함을 발견해 정확한 의미를 보존하면서 정렬할 수 없으면 문서를 조용히 수정하지
|
||
말고 Step 2를 `blocked`로 기록한다.
|
||
|
||
## Acceptance Criteria
|
||
|
||
```powershell
|
||
$path = 'docs/linear-static-3d-euler-beam/formulation.md'
|
||
$required = @(
|
||
'status: `ready-for-numerical-review`',
|
||
'docs/linear-static-3d-euler-beam/requirements.md',
|
||
'docs/linear-static-3d-euler-beam/research.md',
|
||
'theta_y=-',
|
||
'2점 Gauss',
|
||
'equilibrium end action',
|
||
'section resultant',
|
||
'S11',
|
||
'n1'
|
||
)
|
||
foreach ($text in $required) {
|
||
if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) {
|
||
throw "Missing aligned formulation contract: $text"
|
||
}
|
||
}
|
||
if (Select-String -LiteralPath $path -SimpleMatch 'status: `needs-research`' -Quiet) {
|
||
throw 'Stale formulation status remains'
|
||
}
|
||
git diff --check -- $path
|
||
```
|
||
|
||
## 검증 절차
|
||
|
||
1. Acceptance Criteria 명령을 실행한다.
|
||
2. 기존 수식의 DOF/component 순서와 부호가 승인 전 문서 의미와 동일한지 diff로 검토한다.
|
||
3. requirement/research의 모든 math handoff가 정식화 section 또는 limitation에 연결되는지 확인한다.
|
||
4. Step 2를 `completed`와 변경 요약으로 갱신한다. 수학 결함이나 upstream 충돌은
|
||
`blocked`, 반복 편집 실패는 `error`로 기록한다.
|
||
|
||
## 금지사항
|
||
|
||
- C++ class, header, storage API를 설계하지 마라. 이유: formulation은 수학 계약이다.
|
||
- 승인된 부호·DOF·적분 규칙을 편의상 바꾸지 마라. 이유: reference 의미가 달라진다.
|
||
- B31/Timoshenko 또는 `*DLOAD` parser 지원을 추가하지 마라. 이유: V0 범위 밖이다.
|
||
- Abaqus 실행 및 reference artifact 변경을 하지 마라. 이유: 이 gate는 문서 정렬만 담당한다.
|
||
- 직접 commit하지 마라. 이유: Harness executor가 담당한다.
|