docs: align consolidated solver workflow

This commit is contained in:
KOKO\Mimi
2026-08-15 03:14:34 +09:00
parent a8efe2b738
commit 925c4851c9
71 changed files with 687 additions and 937 deletions
+28 -27
View File
@@ -15,7 +15,7 @@
- 프로젝트의 배경, 목적, 사용자, 범위는 `docs/PRD.md`에서 확인한다. - 프로젝트의 배경, 목적, 사용자, 범위는 `docs/PRD.md`에서 확인한다.
- 전체 아키텍처와 모듈별 책임은 `docs/ARCHITECTURE.md`에서 확인한다. - 전체 아키텍처와 모듈별 책임은 `docs/ARCHITECTURE.md`에서 확인한다.
- 주요 아키텍처 결정과 그 이유 및 트레이드오프는 `docs/ADR.md`에서 확인한다. - 주요 아키텍처 결정과 그 이유 및 트레이드오프는 `docs/ADR.md`에서 확인한다.
- AI 에이전트는 설계나 구현 결정을 내리기 전에 PRD에서 제품 범위를, ARCHITECTURE에서 소유권과 데이터 흐름을, ADR에서 이미 결정된 트레이드오프를 먼저 확인한다. 기능별 의미는 `docs/requirements/`, `docs/formulations/`, `docs/io-definitions/`, `docs/reference-models/`의 승인 문서를 source of truth로 삼는다. - AI 에이전트는 설계나 구현 결정을 내리기 전에 PRD에서 제품 범위를, ARCHITECTURE에서 소유권과 데이터 흐름을, ADR에서 이미 결정된 트레이드오프를 먼저 확인한다. 기능별 요구조건, 연구, 정식화, 수치/reference 검토, I/O, 구현, 검증, 물리 및 release 의미는 `docs/<feature-id>/`의 승인 문서를 source of truth로 삼는다.
- Harness는 솔버 자체가 아니라 요구조건, TDD, phase 실행, 검증을 통제하는 개발 운영 인프라이다. 전체 실행 흐름은 `docs/HARNESS_WORKFLOW.md`, 설치와 설정은 `docs/HARNESS.md`를 따른다. - Harness는 솔버 자체가 아니라 요구조건, TDD, phase 실행, 검증을 통제하는 개발 운영 인프라이다. 전체 실행 흐름은 `docs/HARNESS_WORKFLOW.md`, 설치와 설정은 `docs/HARNESS.md`를 따른다.
- FESA는 Abaqus와 독립적인 솔버다. 문서와 구현은 full Abaqus compatibility뿐 아니라 - FESA는 Abaqus와 독립적인 솔버다. 문서와 구현은 full Abaqus compatibility뿐 아니라
Abaqus 요소 정식화, 적분, stabilization, 내부 상태 또는 결과 생성 절차의 동등성을 Abaqus 요소 정식화, 적분, stabilization, 내부 상태 또는 결과 생성 절차의 동등성을
@@ -119,37 +119,38 @@
## 개발 프로세스 ## 개발 프로세스
- TDD를 기본으로 한다. 구현은 `RED -> GREEN -> VERIFY` 순서를 따른다. - TDD를 기본으로 한다. 구현은 `RED -> GREEN -> VERIFY` 순서를 따른다.
- CRITICAL: 빌드 경고를 새로 추가하지 말 것. - CRITICAL: 빌드 경고를 새로 추가하지 말 것.
- 기능 개발은 다음 gate를 순서대로 통과해야 한다. - 기능 개발은 다음 8단계 gate를 순서대로 통과해야 한다.
1. 요구조건 분석 1. 요구조건
2. 연구자료 조사 2. 연구
3. 유한요소 정식화 3. 정식화
4. 수치 검토 4. 수치 검토 + reference model 계약
5. I/O 계약 정의 5. I/O 정의
6. reference model 계약 준비 6. 구현 계획 + C++ 구현 + build/test + reference comparison
7. C++ 구현 7. 물리 검토
8. build/test 검증 8. 배포 준비
9. reference comparison
10. physics sanity
11. release readiness
- 커밋 메시지는 conventional commits 형식을 따른다: `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`. - 커밋 메시지는 conventional commits 형식을 따른다: `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`.
## Agent/Skill Workflow ## Agent/Skill Workflow
AI 에이전트는 유한요소 구조해석 지식이 필요할 때 FEM wiki를 참조하기 위해 `.codex/skills/fem-theory-query` 스킬을 사용할 수 있다. `coordinator-agent`는 유일한 main agent로서 `docs/<feature-id>/coordination.md`의 8단계
worklist, sub-agent dispatch, evidence gate와 workflow closure를 관리한다. 나머지 모든
profile은 Coordinator가 한정된 단계 작업으로 호출하는 sub-agent이며, peer agent를 직접
호출하거나 다음 gate로 진행하지 않는다. 유한요소 구조해석 지식이 필요할 때는
`.codex/skills/fem-theory-query`를 보조 skill로 사용할 수 있다.
| 개발 과정 | Agent | Skill | 산출물 | | 단계 | 담당 sub-agent | 필수 skill | `docs/<feature-id>/` 산출물 |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| 요구조건 분석 | `requirement-agent` | `fesa-requirements-baseline` | `docs/requirements/<feature-id>.md` | | 1. 요구조건 | `requirement-agent` | `fesa-requirements-baseline` | `requirements.md` |
| 연구자료 조사 | `research-agent` | `fesa-research-evidence`, `fem-theory-query` | `docs/research/<feature-id>-research.md` | | 2. 연구 | `research-agent` | `fesa-research-evidence`, 필요 시 `fem-theory-query` | `research.md` |
| 유한요소 정식화 | `formulation-agent` | `fesa-formulation-spec` | `docs/formulations/<feature-id>-formulation.md` | | 3. 정식화 | `formulation-agent` | `fesa-formulation-spec` | `formulation.md` |
| 수치 검토 | `numerical-review-agent` | `fesa-numerical-review` | `docs/numerical-reviews/<feature-id>-review.md` | | 4. 수치 검토 + reference model 계약 | `numerical-review-agent` | `fesa-numerical-review` | `numerical-review.md`, `reference-model.md` |
| I/O 정의 | `io-definition-agent` | `fesa-io-contract` | `docs/io-definitions/<feature-id>-io.md` | | 5. I/O 정의 | `io-definition-agent` | `fesa-io-contract` | `io.md` |
| reference model | `reference-model-agent` | `fesa-reference-models` | `docs/reference-models/<feature-id>-reference-models.md` | | 6. 구현 계획 + C++ 구현 + build/test + reference comparison | `implementation-planning-agent`, `implementation-agent` | `fesa-cpp-msvc-tdd`, 계획 시 project-local `harness` | `implementation-plan.md`, `implementation-report.md`, `build-test.md`, `reference-comparison.md` |
| 구현 계획/구현 | `implementation-planning-agent`, `implementation-agent` | `fesa-cpp-msvc-tdd` | tests, source, implementation report | | 7. 물리 검토 | `physics-evaluation-agent` | `fesa-physics-sanity` | `physics-evaluation.md` |
| build/test | `build-test-executor-agent` | `fesa-cpp-msvc-tdd` | `docs/build-test-reports/<feature-id>.md` | | 8. 배포 준비 | `release-agent` | `fesa-release-readiness` | `release.md` |
| correction | `correction-agent` | `fesa-cpp-msvc-tdd` | `docs/corrections/<feature-id>.md` |
| reference 비교 | `reference-verification-agent` | `fesa-reference-comparison` | `docs/reference-verifications/<feature-id>-reference-verification.md` | `correction-agent`는 정규 단계가 아니라 반복되거나 원인이 불명확한 구현 실패를 다루는
| 물리 검토 | `physics-evaluation-agent` | `fesa-physics-sanity` | `docs/physics-evaluations/<feature-id>-physics-evaluation.md` | on-demand rework sub-agent다. Coordinator가 호출할 때만 `docs/<feature-id>/corrections.md`
| 배포 준비 | `release-agent` | `fesa-release-readiness` | `docs/releases/<feature-id>-release.md` | 원인, 수정과 재검증 결과를 기록하고 Implementation 단계로 반환한다.
Implementation Planning Agent는 구현 계획 요청에서 `.agents/skills/harness`를 반드시 Implementation Planning Agent는 구현 계획 요청에서 `.agents/skills/harness`를 반드시
사용한다. 먼저 여러 자기완결적 Step의 초안을 제시하고 사용자 승인을 받은 뒤에만 사용한다. 먼저 여러 자기완결적 Step의 초안을 제시하고 사용자 승인을 받은 뒤에만
+121 -361
View File
@@ -1,415 +1,175 @@
# 구조해석 솔버 개발 Agent 구성안 # FESA Solver Agent Design
## 목적 ## 목적과 범위
이 문서는 Abaqus, Nastran과 같은 유한요소법 기반 구조해석 솔버를 개발하기 위한 AI Agent 운영 구성을 정의한다.
번 구성안은 ALL-FEM 논문의 구조를 확장하거나 재사용하는 계획이 아니다. 논문은 Agent 설계를 위한 참고 자료로만 사용하며, 본 프로젝트는 C++/MSVC 기반 독립 솔버 개발 워크플로우를 따른다. 문서는 FESA 기능 개발을 조정하는 agent 계층, 8단계 workflow, gate와 산출물 계약을
정의한다. `coordinator-agent`가 유일한 main agent이며, 나머지 10개 profile은 Coordinator가
호출하는 sub-agent다. 모든 기능별 agent 산출물은 `docs/<feature-id>/`에 모은다.
## 설계 원칙 이 workflow는 개발 운영 계약이다. Solver C++ 아키텍처, CMake/CTest target, Harness
- 기능 요구조건, 이론 정식화, 코드 구현, 검증, 배포 역할을 분리한다. executor와 hook, Abaqus reference artifact 또는 승인된 FEM 기능 의미를 바꾸지 않는다.
- 실행 가능성만으로 성공을 판단하지 않고, 레퍼런스 결과와 물리량을 비교해 기능 완료를 판정한다.
- 테스트는 구현 전에 준비한다. 개발 대상 솔버 테스트와 레퍼런스 솔버 결과 비교 테스트를 함께 사용한다.
- Abaqus나 Nastran을 Agent가 직접 실행하지 않는다. 기능이 선언한 기존 `.inp`와 실제
비교에 필요한 Abaqus CSV만 read-only 검증 기준으로 사용한다. Canonical naming,
README, metadata, version 또는 provenance는 기본 readiness 조건이 아니다.
- FESA는 Abaqus와 독립적인 solver다. Agent는 Abaqus 내부 formulation, integration,
stabilization 또는 recovery equivalence를 요구하거나 추론하지 않는다.
- 기본 개발 환경은 C++17 이상, MSVC, CMake, CTest이다.
- 모든 기능은 tolerance 기준을 명시하고, 기준을 만족할 때만 배포 후보가 된다.
- Harness 운영은 `docs/HARNESS_WORKFLOW.md`의 계획, 독립 Step 실행, PreToolUse/Stop 검증 계층을 따른다.
## Harness Step 실행 ## Agent
계획과 구현 Agent는 작업 전 `docs/HARNESS.md``docs/HARNESS_WORKFLOW.md`를 읽는다. ### Coordinator Agent: main-agent orchestration
Implementation Planning Agent는 multi-Step 초안을 사용자에게 승인받은 뒤 planning files만
materialize하며 Step을 선택하거나 실행하지 않는다. Executor는 별도의 명시적 사용자 요청으로
`scripts/execute.py`를 실행할 때 branch, pending Step 선택, retry, timestamps, commits, Step
advancement와 phase status를 소유한다.
Implementation Agent는 approved plan, materialized phase files, Executor-selected current Coordinator Agent는 기능 요청을 접수하고 다음 실행 loop를 소유한다.
`stepN.md`만 사용해 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`를 완료하고
다음 Step을 시작하지 않는다. Agent가 쓸 수 있는 Harness metadata는 current Step의 `status`
`summary`, `error_message`, `blocked_reason` payload뿐이다. `.codex/hooks.json`이 PreToolUse
interception과 Stop whole-project validation을 자동 실행하므로 hook entry point를 수동 실행해
대체하지 않는다. 세부 schema와 recovery 절차는 `docs/HARNESS_WORKFLOW.md`를 따른다.
## 전체 Agent 구성 ```text
INTAKE -> STATE AUDIT -> WORKLIST UPDATE -> SUB-AGENT DISPATCH
-> EVIDENCE CHECK -> GATE DECISION -> STATUS REPORT
```
### Coordinator Agent - `docs/<feature-id>/coordination.md`의 8단계 worklist와 현재 workflow state를 관리한다.
전체 개발 흐름을 관리하는 상위 조정 Agent이다. - 한 번에 다음 유효 단계의 owner만 bounded task로 dispatch한다.
- 반환된 산출물 경로, status, evidence와 blocker를 검토한 뒤에만 gate를 전환한다.
- Specialist 판단이나 C++ 구현을 대신하지 않으며, evidence 없이 gate를 통과시키지 않는다.
- 동일한 normalized failure classification이 두 번 발생하면 자동 재작업을 멈추고
`needs-user-decision` 또는 `blocked`로 전환한다.
- Release evidence가 `ready-for-release`일 때 최종 closure를 기록한다.
책임: Worklist item은 `pending | in-progress | passed | needs-rework | blocked`만 사용한다.
- 기능 개발 요청을 단계별 작업으로 분해한다. Sub-agent는 전달받은 단계와 산출물만 처리하며 peer를 호출하거나 다음 단계로 진행하지
- 각 Agent의 산출물을 연결하고 누락된 결정을 추적한다. 않는다. 완료 시 output paths, status, evidence summary와 blockers를 Coordinator에 반환한다.
- 요구조건, 정식화, 테스트, 구현, 검증, 배포 단계의 진행 상태를 관리한다.
- 실패 시 어떤 Agent로 되돌릴지 결정한다.
주요 산출물: ## 10개 sub-agent 역할
- 기능별 개발 계획
- 단계별 승인 상태
- 실패 원인과 재작업 지시
### Requirement Agent ### Requirement Agent
솔버 기능 요구조건을 정의하는 Agent이다.
책임: 검증 가능한 범위, 제외 범위, `shall` 요구조건, acceptance criteria, verification quantity와
- 해석 기능의 범위, 입력, 출력, 제약조건을 정의한다. tolerance baseline을 `requirements.md` 정의한다.
- 대상 요소, 재료 모델, 경계조건, 하중 조건, 해석 타입을 명확히 한다.
- 검증해야 할 물리량과 tolerance 기준을 정한다.
주요 산출물:
- 기능 요구조건 문서
- acceptance criteria
- 검증 물리량 목록
예시 검증 물리량:
- 절점 변위
- 반력
- 요소 내력
- 응력
- 변형률
- 에너지 또는 잔차 기준
### Research Agent ### Research Agent
책, 논문, 매뉴얼, 공개 benchmark를 조사하는 Agent이다.
책임: 이론, solver manual, benchmark와 source reliability를 조사하고 확인된 사실과 추론 및
- 유한요소 정식화에 필요한 이론 자료를 수집한다. applicability limit를 `research.md`에 분리해 기록한다.
- 요소별 benchmark와 patch test 사례를 찾는다.
- Abaqus/Nastran 결과와 비교할 수 있는 공개 예제 또는 문헌 해를 조사한다.
- 자료의 신뢰도와 적용 범위를 평가한다.
주요 산출물:
- 연구자료 요약
- 공식, 가정, 한계 정리
- benchmark 후보 목록
### Formulation Agent ### Formulation Agent
코드 구현을 위한 유한요소 정식화를 작성하는 Agent이다.
책임: Strong/weak form, kinematics, constitutive contract, shape functions, element equation, numerical
- 약형, 형상함수, B matrix, constitutive matrix, 수치적분, 요소 강성 행렬을 정의한다. integration과 output recovery를 구현 가능한 수치 계약으로 `formulation.md`에 작성한다.
- 자유도 배치, 좌표계, 단위계, 부호 규약을 명확히 한다.
- 선형/비선형, 정적/동적, small/large deformation 여부를 구분한다.
- 구현 가능한 알고리즘 형태로 정식화를 정리한다.
주요 산출물:
- 요소별 정식화 문서
- 알고리즘 의사코드
- 수치적분 규칙
- edge case와 singular case 목록
### Numerical Review Agent ### Numerical Review Agent
정식화와 수치 알고리즘을 독립 검토하는 Agent이다.
책임: 독립적인 formulation 검토와 reference readiness를 하나의 merged gate로 소유한다. 차원,
- 수식의 차원, 부호, 좌표 변환, 적분 규칙을 검토한다. 부호, DOF 순서, 좌표 변환, Jacobian, 적분, 대칭성, rigid-body mode, locking과 검증 위험을
- rigid body mode, patch test, symmetry, positive definiteness 등 기본 수치 조건을 확인한다. `numerical-review.md`에 기록한다. 동시에 exact reference input/CSV, blocking/warning quantity,
- locking, hourglass mode, ill-conditioning 같은 위험을 식별한다. source identity/component, row precheck와 승인 tolerance를 `reference-model.md`에 정의한다.
- 구현 전 정식화 오류를 줄인다. 두 문서가 모두 준비되어야 I/O 단계로 handoff할 수 있다.
주요 산출물:
- 정식화 리뷰 결과
- 수치 위험 목록
- 추가 테스트 요구사항
### I/O Definition Agent ### I/O Definition Agent
솔버 입력과 출력 데이터 구조를 정의하는 Agent이다.
책임: 승인된 Abaqus `.inp` subset, semantic model mapping, validation diagnostic, authoritative
- mesh, node, element, material, section, boundary condition, load, step 입력 형식을 정의한다. `results.h5` schema와 reference CSV row schema를 `io.md`에 정의한다. Numerical/reference
- authoritative HDF5 result schema와 reference CSV comparison row schema를 정의한다. gate가 확정한 logical quantity와 source identity를 최종 HDF5 dataset projection 및 CSV
- Abaqus input file과 내부 입력 모델 사이의 대응 관계를 정리한다. column mapping으로 연결하는 책임은 이 agent에 있다.
- 결과 비교를 위해 FESA HDF5 dataset과 Abaqus reference CSV row의 ID/컴포넌트 규약을 맞춘다.
주요 산출물:
- 입력 데이터 schema
- 출력 데이터 schema
- HDF5 result schema
- 결과 비교용 deterministic CSV view schema
- 단위와 좌표계 규약
### Reference Model Agent
TDD와 검증에 사용할 기존 reference case를 inventory하는 Agent이다.
책임:
- 기능이 요구할 때만 테스트 모델 목적을 구분하고, 기본적으로 기존 case를 사용한다.
- 기존 reference case의 목적, exact input/required CSV path, blocking/warning quantity와
tolerance를 inventory한다.
- FESA HDF5 quantity와 source ID/component matching을 명시한다.
- 테스트 모델이 요구조건을 실제로 검증하는지 확인한다.
중요 제약:
- Agent는 Abaqus를 직접 실행하지 않는다.
- Abaqus 해석 결과 CSV는 사람이 생성하거나 별도 승인된 절차로 생성해 `reference/<model-id>/`에 저장한다.
- Agent는 저장된 reference artifact만 사용해 비교한다.
최소 reference case 구조:
```text
reference/
<case-dir>/
<declared-input>.inp
<declared-required-quantity>.csv
```
Directory와 filename은 제공된 값을 그대로 사용한다. Reference Model Agent는 canonical
이름, README, metadata, provenance 또는 비교하지 않는 quantity CSV를 요구하지 않는다.
### Implementation Planning Agent ### Implementation Planning Agent
코드 구현 전에 작업 단위와 테스트 순서를 설계하는 Agent이다.
책임: 승인된 upstream bundle을 자기완결적 TDD Step으로 분해해 `implementation-plan.md`를 만든다.
- 요구조건과 정식화를 C++ 구현 작업으로 분해한다. 계획 요청에서는 project-local `harness`를 사용하고 사용자에게 multi-Step 초안을 먼저
- 먼저 작성할 단위 테스트, 통합 테스트, 레퍼런스 비교 테스트를 정의한다. 제시한다. 승인 후에만 phase index와 `stepN.md`를 materialize하며 executor는 별도 명시
- 기존 architecture와 ownership boundary에 맞춰 변경 파일을 제한한다. 요청이 있을 때만 실행한다.
- 구현 Agent가 따라야 할 acceptance criteria를 제공한다.
주요 산출물:
- 구현 계획
- 테스트 우선순위
- 변경 파일 후보
- acceptance checklist
- 사용자 승인 전 multi-Step Harness 초안
- 승인 후 `phases/index.json`, `phases/<task-name>/index.json`, 자기완결적 `stepN.md`
필수 절차:
- 구현 계획 요청에서 project-local `$harness` skill을 사용한다.
- `docs/HARNESS.md``docs/HARNESS_WORKFLOW.md`를 읽고 multi-Step 초안만 사용자에게
제시한다.
- 한 Step은 하나의 layer/module만 다루고 각 Step에 prerequisite file, TDD
RED/GREEN/VERIFY, 정확한 MSVC/CMake/CTest command와 금지사항을 포함한다.
- Step 초안을 먼저 사용자에게 제시한다. 승인 전에는 `phases/` 파일을 생성하지 않는다.
- 승인 후에는 planning files만 materialize하고 Step 선택/실행은 하지 않는다. Harness executor
실행은 별도 사용자 요청이 있을 때만 수행한다.
### Implementation Agent ### Implementation Agent
C++ 코드를 구현하는 Agent이다.
책임: 승인된 Step 단위로 `RED -> observed failure -> minimal GREEN -> focused VERIFY`를 수행하고,
- `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, materialized phase files와 full MSVC x64 Debug build/CTest와 reference comparison까지 하나의 Implementation gate에서
Executor-selected current `stepN.md`를 읽고 현재 Step만 수행한다. 완료한다. `implementation-report.md`, `build-test.md`, `reference-comparison.md`를 각각 남기며
- 테스트를 먼저 작성하고 실패를 확인한다. 최종 성공 status는 `pass-for-physics-evaluation`다.
- 정식화와 I/O schema에 맞춰 최소 구현을 작성한다.
- C++17 이상, MSVC, CMake, CTest 환경에서 동작하도록 구현한다.
- 불필요한 일반화나 speculative abstraction을 피한다.
- current Step의 `status``summary`, `error_message`, `blocked_reason`만 기록한다.
branch, retry, timestamp, commit, advancement는 Executor에 맡긴다.
- `.codex/hooks.json`으로 자동 등록된 PreToolUse와 Stop을 사용하며 hook script를 수동
검증 대체물로 실행하지 않는다.
주요 산출물:
- C++ source/header 변경
- 테스트 코드
- CMake/CTest 변경
### Build/Test Executor Agent
빌드와 테스트를 실행하는 Agent이다.
책임:
- `.harness/config.json` 또는 자동 감지 결과에 맞는 MSVC build/test 명령을 실행한다.
- MSVC x64 Debug CMake configure/build/CTest 결과를 수집한다.
- 실패 로그를 요약하고 Correction Agent에 전달한다.
기본 CMake 검증 명령:
```powershell
cmake -S . -B .harness/build -A x64
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
```
Preset 또는 직접 MSBuild 프로젝트는 `.harness/config.json`에 선언된 명령을 따른다.
검증 대상:
- CMake configure
- MSVC Debug build
- CTest
- Harness self-test
### Correction Agent ### Correction Agent
빌드, 테스트, 런타임 실패를 수정하는 Agent이다.
책임: 정규 단계가 아닌 on-demand rework sub-agent다. 같은 실패가 반복되거나 원인이 불명확할
- 실패 로그를 원인별로 분류한다. 때 Coordinator가 호출한다. Upstream 계약을 바꾸지 않고 최소 수정과 재검증을 수행해
- 컴파일 오류, 링크 오류, 테스트 실패, 결과 비교 실패를 구분한다. `corrections.md`에 누적하고 Implementation Agent 재실행 요청을 Coordinator에 반환한다.
- 최소 수정으로 실패를 해결한다.
- 같은 실패가 반복되면 Coordinator Agent에 차단 상태를 보고한다.
주요 산출물:
- 수정 패치
- 실패 원인 요약
- 재검증 요청
### Reference Verification Agent
구현 솔버 결과와 저장된 레퍼런스 결과를 비교하는 Agent이다.
책임:
- 구현 솔버 `results.h5`의 rows와 `reference/<model-id>/`의 Abaqus reference CSV rows를 비교하고, FESA debug CSV views는 row identity 검토와 report evidence로만 사용한다.
- 절점 변위, 반력, 요소 내력, 응력의 tolerance 만족 여부를 평가한다.
- absolute tolerance, relative tolerance, norm-based tolerance를 구분해 적용한다.
- 결과 차이가 tolerance 밖이면 원인 후보를 분류한다.
주요 산출물:
- reference comparison report
- 실패한 물리량과 위치
- 최대 오차, 평균 오차, norm 오차
### Physics Evaluation Agent ### Physics Evaluation Agent
수치 결과가 물리적으로 타당한지 검토하는 Agent이다.
책임: Reference comparison 이후 equilibrium, reaction consistency, displacement direction, symmetry,
- 레퍼런스와 수치적으로 비슷해도 물리적으로 이상한 결과가 있는지 확인한다. element force balance, stress/strain sanity, rigid-body mode와 model coverage를 검토해
- 변위 방향, 반력 평형, 응력 집중, 대칭 조건, rigid body mode를 검토한다. `physics-evaluation.md`에 기록한다.
- 테스트 모델이 기능을 충분히 검증하지 못하면 추가 모델을 요구한다.
주요 산출물:
- 물리 검토 결과
- 추가 검증 모델 요구사항
- release 가능 여부 의견
### Release Agent ### Release Agent
기능 배포 준비를 담당하는 Agent이다.
책임: Requirements부터 physics까지 gate evidence와 acceptance traceability를 audit하고 known
- 요구조건, 테스트, 레퍼런스 비교, 물리 검토가 모두 통과했는지 확인한다. limitations, release notes draft와 release verdict를 `release.md`에 기록한다. 내부 readiness
- 기능 문서와 release note를 정리한다. 판정은 publish, deploy, package, tag 또는 external release 권한이 아니다.
- 알려진 제한사항과 tolerance 기준을 기록한다.
주요 산출물: ## 8단계 개발 프로세스
- release checklist
- 기능 문서
- known limitations
## 개발 프로세스 매핑 | 단계 | 담당 sub-agent | 필수 skill | `docs/<feature-id>/` 산출물 | 통과 조건 |
| --- | --- | --- | --- | --- |
| 1. 요구조건 | `requirement-agent` | `fesa-requirements-baseline` | `requirements.md` | 승인 범위, acceptance criteria, 검증량과 tolerance가 명확함 |
| 2. 연구 | `research-agent` | `fesa-research-evidence`, 필요 시 `fem-theory-query` | `research.md` | 이론과 검증 evidence 및 적용 한계가 충분함 |
| 3. 정식화 | `formulation-agent` | `fesa-formulation-spec` | `formulation.md` | 구현 가능한 수치 계약이 완성됨 |
| 4. 수치 검토 + reference model 계약 | `numerical-review-agent` | `fesa-numerical-review` | `numerical-review.md`, `reference-model.md` | 두 문서가 함께 `pass-for-io-definition`임 |
| 5. I/O 정의 | `io-definition-agent` | `fesa-io-contract` | `io.md` | Logical reference identity가 최종 HDF5 projection과 연결됨 |
| 6. 구현 계획 + C++ 구현 + build/test + reference comparison | `implementation-planning-agent`, `implementation-agent` | `fesa-cpp-msvc-tdd`, 계획 시 project-local `harness` | `implementation-plan.md`, `implementation-report.md`, `build-test.md`, `reference-comparison.md` | TDD, full MSVC/CTest와 blocking reference comparison이 모두 통과함 |
| 7. 물리 검토 | `physics-evaluation-agent` | `fesa-physics-sanity` | `physics-evaluation.md` | 물리 검토가 `pass-for-release-agent`임 |
| 8. 배포 준비 | `release-agent` | `fesa-release-readiness` | `release.md` | `ready-for-release`이며 Coordinator가 closure를 기록함 |
| 개발 과정 | 담당 Agent | 필수 산출물 | ## 8단계 workflow
| --- | --- | --- |
| 1. 솔버 기능 요구조건 정의 | Requirement Agent | 요구조건, acceptance criteria |
| 2. 연구자료 조사 | Research Agent | 자료 요약, benchmark 후보 |
| 3. 유한요소 정식화 | Formulation Agent, Numerical Review Agent | 정식화 문서, 리뷰 결과 |
| 4. 입출력 데이터 정의 | I/O Definition Agent | 입력/출력 schema |
| 5. Reference case 준비 | Reference Model Agent, Implementation Planning Agent | 기존 input/required CSV inventory, 비교 mapping, tolerance |
| 6. 코드 구현 | Implementation Agent | C++ 코드, 테스트 |
| 7. 레퍼런스 결과 비교 검증 | Reference Verification Agent, Physics Evaluation Agent | 비교 리포트, 물리 검토 |
| 8. tolerance 만족 시 완료 | Coordinator Agent | 기능 완료 승인 |
| 9. 기능 배포 | Release Agent | release checklist, 문서 |
## 표준 작업 흐름
```mermaid ```mermaid
flowchart TD flowchart TD
A["기능 요청"] --> B["Requirement Agent"] C["Coordinator: intake 및 worklist"] --> RQ["1. Requirement Agent"]
B --> C["Research Agent"] RQ --> RS["2. Research Agent"]
C --> D["Formulation Agent"] RS --> FM["3. Formulation Agent"]
D --> E["Numerical Review Agent"] FM --> NR["4. Numerical Review Agent<br/>numerical + reference gate"]
E --> F["I/O Definition Agent"] NR --> IO["5. I/O Definition Agent<br/>final HDF5 projection"]
F --> G["Reference Model Agent"] IO --> IP["6. Implementation Planning Agent"]
G --> H["Implementation Planning Agent"] IP --> IM["6. Implementation Agent<br/>TDD + MSVC/CTest + reference comparison"]
H --> I["Implementation Agent"] IM --> OK{"Implementation gate pass?"}
I --> J["Build/Test Executor Agent"] OK -- "yes" --> PH["7. Physics Evaluation Agent"]
J --> K{"빌드/테스트 통과?"} OK -- "repeated or unclear failure" --> CR["Correction Agent<br/>on-demand rework"]
K -- "아니오" --> L["Correction Agent"] CR --> IM
L --> I PH --> RL["8. Release Agent"]
K -- "예" --> M["Reference Verification Agent"] RL --> CL["Coordinator: closure"]
M --> N{"tolerance 만족?"}
N -- "아니오" --> L
N -- "예" --> P["Physics Evaluation Agent"]
P --> Q{"물리 검토 통과?"}
Q -- "아니오" --> L
Q -- "예" --> R["Release Agent"]
``` ```
## 검증 Gate Compile, link, ordinary test와 명확한 implementation-owned mismatch는 Implementation Agent가
먼저 수정한다. 반복되거나 불명확한 실패만 Correction loop로 보낸다. Upstream contract
gap은 Coordinator가 해당 owner 단계로 되돌린다.
### Gate 1: 요구조건 승인 ## Gate 계약
통과 조건:
- 대상 기능과 제외 범위가 명확하다.
- 입력, 출력, tolerance, 검증 물리량이 정의되어 있다.
- 레퍼런스 비교 방식이 정해져 있다.
### Gate 2: 정식화 승인 1. Requirements gate: `requirements.md`가 범위, acceptance criteria, 검증량과 tolerance를
통과 조건: 고정한다.
- 요소 정식화와 수치적분 규칙이 문서화되어 있다. 2. Research gate: `research.md`가 필요한 이론, benchmark와 applicability evidence를 제공한다.
- 좌표계, 자유도, 부호 규약이 명확하다. 3. Formulation gate: `formulation.md`가 구현 가능한 수치 계약을 제공한다.
- Numerical Review Agent가 주요 수치 위험을 검토했다. 4. Numerical/reference merged gate: `numerical-review.md``reference-model.md`가 함께 통과한다.
5. I/O gate: `io.md`가 source identity와 logical quantity를 authoritative `results.h5` dataset,
units, coordinates, component와 CSV column에 최종 투영한다.
6. Implementation gate: 승인 계획, RED/GREEN/VERIFY evidence, full MSVC x64 Debug build/CTest,
deterministic row precheck와 blocking/warning reference comparison이 모두 통과한다.
7. Physics gate: `physics-evaluation.md``pass-for-release-agent`다.
8. Release gate: `release.md``ready-for-release`이고 Coordinator가 closure를 기록한다.
### Gate 3: 테스트 준비 승인 Reference comparison은 source identity와 component로 행을 결정적으로 대응시키며 missing,
통과 조건: extra, duplicate 또는 nonfinite required row를 tolerance 전에 거부한다. CSV는 외부 reference이고
- 구현 전 실패해야 하는 테스트가 정의되어 있다. FESA의 authoritative output은 `results.h5`다.
- 기능이 요구하는 기존 input/CSV pair와 blocking/warning quantity가 명확하다.
- 필요한 source ID/component matching과 tolerance가 정의되어 있다.
### Gate 4: 구현 검증 ## 요구사항 단위 산출물 구조
통과 조건:
- CMake/MSVC/CTest validation이 통과한다.
- 단위 테스트와 통합 테스트가 통과한다.
- 관련 C++ test file이 있고 같은 구현 Step 안에 RED 실패와 후속 GREEN 성공 증거가 있다.
- Stop의 전체 MSVC build/test 검증이 통과한다.
### Gate 5: 레퍼런스 검증 ```text
통과 조건: docs/<feature-id>/
- 기능이 blocking으로 선언한 Abaqus CSV quantity와 구현 solver HDF5 quantity가 ├── coordination.md
tolerance 안에 있다. ├── requirements.md
- Warning-only quantity는 결과와 경고가 리포트에 남고 pass/fail을 바꾸지 않는다. ├── research.md
- Required source row/component의 누락, 추가, 중복 또는 nonfinite 값이 없다. ├── formulation.md
├── numerical-review.md
├── reference-model.md
├── io.md
├── implementation-plan.md
├── implementation-report.md
├── build-test.md
├── reference-comparison.md
├── corrections.md
├── physics-evaluation.md
└── release.md
```
### Gate 6: 배포 승인 산출물이 필요하지 않았거나 기존 workflow에 없었던 경우 placeholder를 만들지 않는다.
통과 조건: `corrections.md`는 실제 on-demand correction이 발생했을 때만 생성한다. Reference input/CSV는
- 요구조건의 acceptance criteria가 모두 만족된다. 현재 path와 name 그대로 read-only로 사용하고, 문서 정리를 위해 rename 또는 보정하지 않는다.
- 문서와 release note가 준비되어 있다.
- 남은 제한사항이 명확히 기록되어 있다.
## FESA HDF5 / Abaqus Reference CSV 비교 기준
권장 비교 방식:
- authoritative 비교는 FESA `results.h5` rows와 Abaqus reference CSV rows 기준으로 수행한다.
- FESA HDF5에서 추출한 deterministic CSV view는 debugging/review 보조 artifact로만 사용한다.
- scalar 값: absolute tolerance와 relative tolerance를 함께 적용한다.
- vector 값: component-wise 비교와 norm 비교를 함께 기록한다.
- stress tensor: component-wise 비교를 기본으로 하고, 필요한 경우 principal stress 또는 von Mises stress를 추가 비교한다.
- 반력: 전체 하중 평형과 개별 구속 자유도 반력을 모두 확인한다.
권장 리포트 항목:
- model name
- compared quantity
- number of compared rows
- maximum absolute error
- maximum relative error
- RMS error
- worst node or element id
- pass/fail
## 반복 실패 처리
반복 실패가 발생하면 Correction Agent가 무한 수정 루프를 계속하지 않는다. 다음 중 하나로 분류해 Coordinator Agent에 보고한다.
- 요구조건 불명확
- 정식화 오류 가능성
- reference artifact 오류 가능성
- I/O schema 불일치
- 구현 결함
- tolerance 기준 부적절
- 테스트 모델이 기능을 과도하게 또는 불충분하게 검증함
Coordinator Agent는 분류 결과에 따라 Requirement, Formulation, I/O Definition, Reference Model, Implementation Agent 중 적절한 단계로 되돌린다.
## 초기 적용 우선순위
1. 선형 정적 해석의 최소 골격
2. Isoparametric 3D Euler beam element
3. 1D truss 또는 bar element
4. 2D plane stress/plane strain element
5. 3D solid element
6. material model 확장
7. nonlinear 또는 dynamic analysis 확장
각 단계는 요구조건, 정식화, 테스트모델, 구현, 레퍼런스 비교, 배포 Gate를 독립적으로 통과해야 한다.
## 운영 메모
- Agent 산출물은 가능한 한 문서, 테스트, 비교 리포트 형태로 남긴다.
- 사람이 제공한 Abaqus reference artifact는 현재 path/name 그대로 read-only로 사용한다.
별도 provenance, README 또는 metadata가 없다는 이유로 gate를 차단하지 않는다.
- reference artifact가 바뀌면 기능 구현 변경과 같은 수준으로 검토한다.
- 기능 구현 완료 판정은 build/test와 기능별 blocking reference validation 통과를 기준으로
한다. Physics evaluation과 release readiness는 별도 후속 배포 gate다.
+124 -135
View File
@@ -1,204 +1,193 @@
# FESA Solver Skill Rebuild Plan # FESA Solver Skill Design
## 목적 ## 목적
이 문서는 FESA 유한요소 기반 구조해석 솔버 개발에 사용 project-local Codex skill 구성을 정의한다. 이 문서는 FESA의 8단계 feature workflow에서 사용하는 project-local skill 구성을 정의한다.
Agent는 역할과 책임 단위이고 skill은 여러 agent가 재사용하는 절차, 품질 gate와 handoff
단위다. 모든 feature별 skill output은 `docs/<feature-id>/`에 기록한다.
Agent는 역할과 책임 단위이고, skill은 여러 Agent가 반복적으로 사용하는 절차와 검증 도구 단위다. 따라서 skill은 Agent와 1:1로 대응하지 않는다. 대신 요구조건, 연구, 정식화, I/O 계약, reference model, C++ TDD 구현, reference 비교, 물리 검토, release readiness처럼 솔버 개발 과정에서 반복되는 작업 흐름을 기준으로 구성한다. 실제 실행 지침의 source of truth는 각 `.codex/skills/<skill-name>/SKILL.md`다. 이 문서는
skill inventory와 책임 분리를 사람이 읽을 수 있게 설명한다.
## 설계 원칙 ## 설계 원칙
- Skill은 `.codex/skills/<skill-name>/SKILL.md`에 둔다. - 각 skill은 `SKILL.md``name`, `description` frontmatter와 `agents/openai.yaml` UI metadata를
- 각 skill은 필수 frontmatter `name`, `description`과 UI metadata `agents/openai.yaml` 가진다. 가진다.
- Skill 본문은 agent TOML의 역할 설명을 반복하지 않고, 입력, 절차, 산출물, 금지사항, 품질 gate, handoff를 정의한다. - Skill은 입력, workflow, output contract, boundaries, quality gate handoff를 정의한다.
- Skill`AGENTS.md``docs/SOLVER_AGENT_DESIGN.md`를 공통 상위 기준으로 읽는다. - 공통 상위 계약`AGENTS.md``docs/SOLVER_AGENT_DESIGN.md`다.
- Abaqus, Nastran 또는 reference solver 실행은 skill 범위에 포함하지 않는다. - Abaqus, Nastran 또는 다른 reference solver 실행과 reference CSV 생성/수정은 skill 범위가
- Abaqus reference CSV 파일 생성/수정은 skill 범위에 포함하지 않는다. 아니다.
- C++ 구현 관련 skill은 C++17 이상, MSVC, CMake, CTest, TDD 원칙을 따른다. - C++ 절차는 C++17 이상, MSVC x64 Debug, CMake/CTest TDD 따른다.
- C++ 검증 명령은 `.harness/config.json` 또는 `docs/HARNESS.md`의 자동 감지 기본값을 따른다. - 검증 명령은 `.harness/config.json`을 우선하고 없으면 `docs/HARNESS.md`의 자동 감지
- Harness Python 변경은 `uv run --with pytest python -m pytest -v -rs`로 검증한다. 기본값을 따른다.
- Skill output path에는 agent별 폴더를 만들지 않고 `docs/<feature-id>/`만 사용한다.
## Skill 구성 ## 8개 workflow skill
| Skill | 적용 개발 과정 | 주요 사용자 Agent | 대표 산출물 | | Skill | 8단계 적용 과정 | 주요 사용자 sub-agent | `docs/<feature-id>/` 대표 산출물 |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `fesa-requirements-baseline` | 1. 솔버 기능 요구조건 정의 | Requirement Agent, Coordinator Agent | `docs/requirements/<feature-id>.md` | | `fesa-requirements-baseline` | 1. 요구조건 | Requirement Agent | `requirements.md` |
| `fesa-research-evidence` | 2. 책, 논문 등 연구자료 조사 | Research Agent, Formulation Agent | `docs/research/<feature-id>-research.md` | | `fesa-research-evidence` | 2. 연구 | Research Agent | `research.md` |
| `fesa-formulation-spec` | 3. 코드 구현을 위한 유한요소 정식화 | Formulation Agent, Implementation Planning Agent | `docs/formulations/<feature-id>-formulation.md` | | `fesa-formulation-spec` | 3. 정식화 | Formulation Agent | `formulation.md` |
| `fesa-numerical-review` | 3. 정식화 독립 수치 검토 | Numerical Review Agent, Coordinator Agent | `docs/numerical-reviews/<feature-id>-review.md` | | `fesa-numerical-review` | 4. 수치 검토 + reference readiness | Numerical Review Agent | `numerical-review.md`, `reference-model.md` |
| `fesa-io-contract` | 4. 솔버 입출력 데이터 정의 | I/O Definition Agent, Reference Verification Agent | `docs/io-definitions/<feature-id>-io.md` | | `fesa-io-contract` | 5. I/O 정의 | I/O Definition Agent | `io.md` |
| `fesa-reference-models` | 5. TDD/reference 테스트모델 작성 | Reference Model Agent, Implementation Planning Agent | `docs/reference-models/<feature-id>-reference-models.md` | | `fesa-cpp-msvc-tdd` | 6. 구현 계획 + C++ 구현 + build/test + reference comparison | Implementation Planning Agent, Implementation Agent, Correction Agent | `implementation-plan.md`, `implementation-report.md`, `build-test.md`, `reference-comparison.md`, 필요 시 `corrections.md` |
| `fesa-cpp-msvc-tdd` | 6. 코드 구현 및 build/test correction | Implementation Planning Agent, Implementation Agent, Build/Test Executor Agent, Correction Agent | implementation plan/report, build/test report, correction report | | `fesa-physics-sanity` | 7. 물리 검토 | Physics Evaluation Agent | `physics-evaluation.md` |
| `fesa-reference-comparison` | 7. reference solver 결과와 구현 solver 결과 비교 | Reference Verification Agent | `docs/reference-verifications/<feature-id>-reference-verification.md` | | `fesa-release-readiness` | 8. 배포 준비 | Release Agent | `release.md` |
| `fesa-physics-sanity` | 8. tolerance 통과 후 물리 타당성 검토 | Physics Evaluation Agent | `docs/physics-evaluations/<feature-id>-physics-evaluation.md` |
| `fesa-release-readiness` | 9. 솔버 기능 배포 준비 | Release Agent, Coordinator Agent | `docs/releases/<feature-id>-release.md` |
## 개발 과정별 사용 예 통합 후 FESA workflow skill은 위 8개가 전부다.
예시 기능: `isoparametric-3d-euler-beam`
1. Requirement Agent는 `fesa-requirements-baseline`을 사용해 기능 범위, 제외 범위, 입력, 출력, 검증 물리량, tolerance, `Requirement Verification Matrix`를 작성한다.
2. Research Agent는 `fesa-research-evidence`를 사용해 3D Euler beam element 이론, benchmark 후보, source reliability, applicability limits를 정리한다.
3. Formulation Agent는 `fesa-formulation-spec`을 사용해 strong form, weak form, shape functions, B matrix, element stiffness, output recovery를 정리한다.
4. Numerical Review Agent는 `fesa-numerical-review`를 사용해 rigid body modes, patch test, stiffness symmetry, Jacobian, locking 위험을 검토하고 `pass-for-implementation-planning` 여부를 판단한다.
5. I/O Definition Agent는 `fesa-io-contract`를 사용해 지원할 Abaqus `.inp` keyword subset, `results.h5` schema, reference CSV comparison row schema를 정의한다.
6. Reference Model Agent는 `fesa-reference-models`를 사용해 기존 input/required CSV
reference-case inventory와 비교 mapping을 작성한다.
7. Implementation Planning Agent는 먼저 project-local `harness`를 사용해 사용자 승인용
multi-Step 초안을 만들고, 승인 후 phase files를 생성한다. 그 뒤 Implementation Agent와
함께 `fesa-cpp-msvc-tdd` 계약에 따라 RED/GREEN/VERIFY를 수행한다.
8. Reference Verification Agent는 `fesa-reference-comparison`을 사용해 구현 solver `results.h5` rows와 Abaqus reference CSV rows를 tolerance 기준으로 비교한다.
9. Physics Evaluation Agent는 `fesa-physics-sanity`를 사용해 global equilibrium, reaction consistency, displacement direction, symmetry, model coverage를 검토한다.
10. Release Agent는 `fesa-release-readiness`를 사용해 gate evidence, acceptance traceability, known limitations, release notes draft를 작성한다.
## Skill별 핵심 계약 ## Skill별 핵심 계약
### `fesa-requirements-baseline` ### `fesa-requirements-baseline`
- 기능 요청을 검증 가능한 요구조건 baseline으로 만든다. - 기능 요청을 검증 가능한 baseline으로 만든다.
- `shall` 문장과 `FESA-REQ-<FEATURE>-###` id를 사용한다. - `shall` 문장과 `FESA-REQ-<FEATURE>-###` id를 사용한다.
- 모든 `must` 요구조건 verification method와 acceptance criteria를 가져야 한다. - 모든 `must` 요구조건 verification method와 acceptance criteria를 연결한다.
- FEM 정식화, C++ 구현, Abaqus reference CSV 생성 또는 수정, release readiness 판단은 하지 않는다. - FEM 정식화, C++ 구현, reference value 생성 또는 release 판정은 하지 않는다.
### `fesa-research-evidence` ### `fesa-research-evidence`
- 연구 질문, source inventory, source reliability tier, benchmark 후보를 정리한다. - Research question, source inventory, reliability tier, benchmark 후보와 applicability limit를
- 검증된 사실과 추론을 분리한다. 리한다.
- source gap은 open issue로 남긴다. - 검증된 사실과 추론을 분리하고 source gap은 open issue로 남긴다.
- FEM 정식화 확정이나 reference value 생성을 하지 않는다. - FEM 정식화나 reference value를 확정하지 않는다.
### `fesa-formulation-spec` ### `fesa-formulation-spec`
- strong form, weak form, discretization, kinematics, constitutive contract, element equations를 구분해 작성한다. - Strong form, weak form, discretization, kinematics, constitutive contract element equation
- Jacobian, derivative transform, numerical integration, output recovery, numerical risks를 명시한다. 구분한다.
- C++ API, parser, file ownership은 설계하지 않는다. - Jacobian, derivative transform, numerical integration, output recovery와 numerical risk를
- Numerical Review Agent 검토 전 최종 승인 상태로 두지 않는다. 명시한다.
- C++ API, parser ownership 또는 file layout을 설계하지 않는다.
- Numerical Review 전에는 최종 구현 승인 상태로 두지 않는다.
### `fesa-numerical-review` ### `fesa-numerical-review`
- 정식화를 수치 알고리즘 계약으로 독립 검토한다. 이 skill은 numerical correctness와 reference readiness 절차를 함께 소유한다.
- dimensions, signs, DOF ordering, coordinate transforms, Jacobian, integration rule, stiffness symmetry, rigid body modes, patch test, hourglass, locking을 확인한다.
- `pass-for-implementation-planning`은 구현 계획 가능 상태만 의미한다. ```text
- 정식화 문서를 직접 수정하지 않는다. FORMULATION REVIEW -> REFERENCE CASE INVENTORY -> CLASSIFY -> REPORT -> I/O HANDOFF
- 이후 Reference Model 문서, artifact naming, README, metadata, provenance 또는 portfolio가 ```
없다는 이유로 formulation verdict를 실패시키지 않는다.
- Dimensions, signs, DOF order, coordinate transform, Jacobian, integration, stiffness symmetry,
rigid-body mode, patch test, hourglass와 locking을 독립 검토한다.
- 기존 exact input/required CSV를 inventory하고 blocking/warning quantity, source identity와
component matching, missing/extra/duplicate/nonfinite row precheck와 승인 tolerance를 정한다.
- `numerical-review.md``reference-model.md`를 함께 산출한다.
- Logical quantity와 source identity까지만 정의한다. 최종 HDF5 dataset projection은 I/O
Definition Agent에 handoff한다.
- 두 문서가 준비된 `pass-for-io-definition`만 다음 단계 진행을 허용한다.
### `fesa-io-contract` ### `fesa-io-contract`
- FESA solver input이 지원할 Abaqus `.inp` subset을 정의한다. - 지원할 Abaqus `.inp` keyword subset, semantic model mapping과 validation rule을 정의한다.
- model data와 history data를 구분한다. - Authoritative `results.h5` schema, units, coordinates, step/frame, row identity와 component를
- 내부 semantic model 계약, HDF5 output schema, reference CSV comparison row schema를 정의한다. 정의한다.
- parser 구현이나 full Abaqus compatibility claim은 하지 않는다. - Reference readiness의 logical quantity/source identity를 최종 HDF5 dataset projection과
CSV column mapping으로 연결한다.
### `fesa-reference-models` - Parser 구현이나 full Abaqus compatibility를 주장하지 않는다.
- 기능이 실제로 사용하는 기존 reference case를 inventory한다.
- Exact input/required CSV path, case purpose, blocking/warning quantity, HDF5 projection,
source ID/component matching과 tolerance만 정의한다.
- Required comparison file이 없을 때만 `needs-reference-artifacts`로 둔다. Canonical naming,
README, metadata, provenance와 비교하지 않는 quantity CSV는 요구하지 않는다.
### `fesa-cpp-msvc-tdd` ### `fesa-cpp-msvc-tdd`
- C++ 구현을 `RED -> GREEN -> VERIFY` 순서로 수행한다. 이 skill은 implementation planning, TDD implementation, MSVC validation, failure correction과
- C++ production 변경에는 관련 C++ test file이 있어야 한다. reference comparison 절차를 함께 소유한다.
- 기본 검증 명령:
```text
RED -> OBSERVED FAILURE -> MINIMAL GREEN -> FOCUSED VERIFY
-> FULL MSVC BUILD/CTEST -> ARTIFACT CHECK
-> COMPARE -> CLASSIFY -> REPORT
```
- Planning 시 project-local `harness`로 user-approved multi-Step plan을 만들고
`implementation-plan.md`를 산출한다.
- C++ production 변경에는 관련 C++ test가 있어야 하며 targeted RED와 후속 GREEN evidence를
기록한다.
- `.harness/config.json`이 선택한 MSVC x64 Debug build/CTest를 실행하고 명령, exit code,
duration, output tail과 failure classification을 `build-test.md`에 기록한다.
- Reference artifact check 뒤 HDF5/CSV row를 source identity와 component로 대응시킨다.
Missing, extra, duplicate와 nonfinite required row는 tolerance 전에 실패하며 warning-only
quantity는 blocking result를 바꾸지 않는다.
- Implementation-owned 실패를 먼저 수정한다. 반복되거나 불명확한 실패는 Coordinator를
통해 Correction Agent로 보내고 `corrections.md`에 재작업 evidence를 남긴다.
- 성공 시 `implementation-report.md`, `build-test.md`, `reference-comparison.md`
`pass-for-physics-evaluation` handoff를 반환한다.
- Requirements, formulation, numerical/reference 계약, I/O 계약, reference artifact 또는
tolerance policy를 변경해 결과를 맞추지 않는다.
기본 validation sequence는 다음과 같다.
```powershell ```powershell
cmake -S . -B .harness/build -A x64 cmake -S . -B .harness/build -A x64
cmake --build .harness/build --config Debug cmake --build .harness/build --config Debug
ctest --test-dir .harness/build -C Debug -R <feature-or-label> --output-on-failure ctest --test-dir .harness/build -C Debug -R <feature-or-label> --output-on-failure
ctest --test-dir .harness/build -C Debug --show-only=json-v1
ctest --test-dir .harness/build -C Debug --output-on-failure ctest --test-dir .harness/build -C Debug --output-on-failure
``` ```
Preset 또는 직접 MSBuild 프로젝트는 `.harness/config.json`의 설정을 사용한다. Harness
Python, Hook, agent config를 변경한 경우에는 다음 명령도 실행한다.
```powershell
uv run --with pytest python -m pytest -v -rs
```
- 실패는 `configure | compile | link | test | reference-comparison | harness | environment | upstream-contract`로 분류한다.
- 요구조건, 정식화, I/O 계약, reference artifact, tolerance policy를 바꾸지 않는다.
### project-local `harness`
- Implementation Planning Agent가 구현 요청을 여러 독립 Step으로 분해할 때 사용한다.
- 한 Step은 하나의 layer/module만 소유하고 prerequisite file, TDD RED/GREEN/VERIFY,
exact acceptance command와 구체적 금지사항을 포함한다.
- 사용자에게 Step 초안을 먼저 제시한다. 승인 후에만 `phases/index.json`,
`phases/<task-name>/index.json`, `phases/<task-name>/stepN.md`를 생성한다.
- 계획 작성과 executor 실행을 구분하며, `scripts/execute.py`는 별도 사용자 요청 없이
실행하지 않는다.
### `fesa-reference-comparison`
- `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` 순서로 수행한다.
- 선언된 input, required Abaqus CSV, `results.h5`, source ID/component mapping과 tolerance를
확인한다. Missing/extra/duplicate/nonfinite required row는 비교 전에 실패한다.
- max absolute error, max relative error, RMS error, norm error, missing rows, extra rows를 보고한다.
- Reference pass는 physics validation이나 release readiness를 의미하지 않는다.
### `fesa-physics-sanity` ### `fesa-physics-sanity`
- Reference comparison 통과 후 물리 타당성을 검토한다. - Implementation gate 통과 후 equilibrium, reaction consistency, displacement direction,
- global equilibrium, reaction consistency, displacement direction, symmetry, element force balance, stress/strain sanity, rigid body mode, model coverage를 확인한다. symmetry, element force balance, stress/strain sanity, rigid-body mode model coverage를
검토한다.
- 문서화된 물리 기대값이 없으면 pass를 선언하지 않는다. - 문서화된 물리 기대값이 없으면 pass를 선언하지 않는다.
- `pass-for-release-agent`는 Release Agent 검토 가능 상태만 의미한다. - `pass-for-release-agent`는 Release Agent 검토 가능 상태만 의미한다.
### `fesa-release-readiness` ### `fesa-release-readiness`
- `GATE AUDIT -> TRACEABILITY CHECK -> RELEASE DOCUMENTATION -> RELEASE VERDICT` 순서로 수행한다. - `GATE AUDIT -> TRACEABILITY CHECK -> RELEASE DOCUMENTATION -> RELEASE VERDICT` 순서를 따른다.
- `pass-for-reference-verification`, `pass-for-physics-evaluation`, `pass-for-release-agent` evidence를 요구한다. - Requirements부터 physics까지 동일 feature evidence와 필수 pass status를 확인한다.
- Known Limitations Release Notes Draft를 작성한다. - Known limitations, Release Notes Draft`ready-for-release` 여부를 기록한다.
- 사용자 명시 요청 없이 publish, deploy, package, tag, commit, external release를 수행하지 않는다. - 사용자 요청 없이 publish, deploy, package, tag, commit 또는 external release를 수행하지
않는다.
## Agent와 Skill 관계 ## Supporting skills
| Agent | 주로 사용하는 Skill | 다음은 8개 workflow skill 수에 포함하지 않는 supporting skill이다.
- `fem-theory-query`: FEM wiki의 이론, benchmark, solver manual과 verification evidence 조회.
- project-local `harness`: Implementation Planning의 Step 초안, 사용자 승인 후 phase
materialization과 별도 요청에 의한 executor 실행.
- `review`: AGENTS, architecture, tests와 build requirement에 대한 repository change review.
Implementation Planning Agent는 project-local `harness`를 반드시 사용한다. 사용자에게
자기완결적 Step 초안을 먼저 제시하고 승인 후에만 `phases/index.json`,
`phases/<task-name>/index.json`, `phases/<task-name>/stepN.md`를 생성한다. `scripts/execute.py`
별도 사용자 요청 없이 실행하지 않는다.
## Agent와 skill 관계
| Agent | 주로 사용하는 skill |
| --- | --- | | --- | --- |
| Coordinator Agent | `fesa-requirements-baseline`, `fesa-reference-models`, `fesa-release-readiness` | | Coordinator Agent | 단계 owner가 반환한 skill evidence를 audit하고 dispatch/closure 관리 |
| Requirement Agent | `fesa-requirements-baseline` | | Requirement Agent | `fesa-requirements-baseline` |
| Research Agent | `fesa-research-evidence` | | Research Agent | `fesa-research-evidence`, 필요 시 `fem-theory-query` |
| Formulation Agent | `fesa-formulation-spec` | | Formulation Agent | `fesa-formulation-spec` |
| Numerical Review Agent | `fesa-numerical-review` | | Numerical Review Agent | `fesa-numerical-review`, 필요 시 `fem-theory-query` |
| I/O Definition Agent | `fesa-io-contract` | | I/O Definition Agent | `fesa-io-contract` |
| Reference Model Agent | `fesa-reference-models` | | Implementation Planning Agent | project-local `harness`, `fesa-cpp-msvc-tdd` |
| Implementation Planning Agent | project-local `harness`, `fesa-formulation-spec`, `fesa-reference-models`, `fesa-cpp-msvc-tdd` |
| Implementation Agent | `fesa-cpp-msvc-tdd` | | Implementation Agent | `fesa-cpp-msvc-tdd` |
| Build/Test Executor Agent | `fesa-cpp-msvc-tdd` |
| Correction Agent | `fesa-cpp-msvc-tdd` | | Correction Agent | `fesa-cpp-msvc-tdd` |
| Reference Verification Agent | `fesa-reference-comparison`, `fesa-io-contract` |
| Physics Evaluation Agent | `fesa-physics-sanity` | | Physics Evaluation Agent | `fesa-physics-sanity` |
| Release Agent | `fesa-release-readiness` | | Release Agent | `fesa-release-readiness` |
## 검증 기준 ## 검증 기준
Skill 구성은 실제 `.codex/skills/` 파일을 source of truth로 삼아 정적 계약과 repository Skill 구성은 실제 `.codex/skills/` 파일과 repository pytest suite를 기준으로 검증한다.
pytest suite로 검증한다.
검증 항목: - 8개 FESA workflow skill의 `SKILL.md` 존재 여부
- 10개 solver skill의 `SKILL.md` 존재 여부
- YAML frontmatter의 `name`, `description` - YAML frontmatter의 `name`, `description`
- 공통 섹션: `Inputs`, `Workflow`, `Output Contract`, `Boundaries`, `Quality Gate`, `Handoff` - 공통 section: `Inputs`, `Workflow`, `Output Contract`, `Boundaries`, `Quality Gate`, `Handoff`
- `AGENTS.md``docs/SOLVER_AGENT_DESIGN.md` 참조 - `AGENTS.md``docs/SOLVER_AGENT_DESIGN.md` 참조
- skill-specific 핵심 문구와 산출물 경로 - Skill-specific procedure와 `docs/<feature-id>/` output contract
- `agents/openai.yaml` UI metadata - `agents/openai.yaml` UI metadata와 skill name reference
- 이 문서가 아니라 실제 skill 파일이 기준이 되도록 `docs/SOLVER_SKILL_DESIGN.md`에 대한 skill 본문 참조 금지 - TOML 및 YAML metadata parseability
검증 명령: Repository validation은 다음 명령을 사용한다.
```powershell ```powershell
uv run --with pytest python -m pytest -v -rs uv run --with pytest python -m pytest -v -rs
``` ```
개별 skill schema를 점검할 때는 현재 Codex 설치에 포함된 `skill-creator` validator 개별 skill schema는 현재 Codex 설치 `skill-creator` validator로 점검하되 사용자 홈의
사용하되 사용자 홈을 하드코딩한 경로를 프로젝트 계약으로 두지 않는다. 절대 경로를 프로젝트 계약으로 두지 않는다.
## v1 범위
- v1은 `SKILL.md``agents/openai.yaml`만 포함한다.
- 별도 `scripts/`, `references/`, `assets/`는 만들지 않는다.
- 반복 사용 중 절차가 안정화되면 deterministic comparison script, reference artifact template, report template 같은 resource를 별도 후속 작업으로 분리한다.
- 이 문서는 skill 구성을 설명하는 계획 문서이며, 실제 실행 지침의 source of truth는 각 `.codex/skills/<skill-name>/SKILL.md`이다.
@@ -4,8 +4,8 @@
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_commit: `400db191ce9f766ca6b34e5b609eaa13c54ccfa3` - source_commit: `400db191ce9f766ca6b34e5b609eaa13c54ccfa3`
- source_implementation_report: `docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - source_implementation_report: `docs/linear-static-3d-euler-beam/implementation-report.md`
- source_implementation_plan: `docs/implementation-plans/linear-static-3d-euler-beam.md` - source_implementation_plan: `docs/linear-static-3d-euler-beam/implementation-plan.md`
- status: `pass-for-reference-verification` - status: `pass-for-reference-verification`
- owner_agent: `build-test-executor-agent` - owner_agent: `build-test-executor-agent`
- date: `2026-08-09` - date: `2026-08-09`
@@ -3,8 +3,8 @@
## Metadata ## Metadata
- feature_id: `3d-isoparametric-euler-beam` - feature_id: `3d-isoparametric-euler-beam`
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- source_research: `docs/research/linear-static-3d-euler-beam-research.md` - source_research: `docs/linear-static-3d-euler-beam/research.md`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- status: `ready-for-numerical-review` - status: `ready-for-numerical-review`
- owner_agent: `formulation-agent` - owner_agent: `formulation-agent`
@@ -1584,7 +1584,7 @@ deficiency는 별도의 under-integration 위험이다.
### 20.2 근거의 적용 경계 ### 20.2 근거의 적용 경계
Tier와 provenance가 정리된 research brief는 Tier와 provenance가 정리된 research brief는
`docs/research/linear-static-3d-euler-beam-research.md`에 있다. Wiki와 원출처는 핵심 `docs/linear-static-3d-euler-beam/research.md`에 있다. Wiki와 원출처는 핵심
beam 이론과 Abaqus component 의미를 제공하고, 이 문서의 DOF 순서, beam 이론과 Abaqus component 의미를 제공하고, 이 문서의 DOF 순서,
$\theta_y=-w'$ 부호, guide-vector 축, 12×12 행렬, line-load vector, 결과 위치와 $\theta_y=-w'$ 부호, guide-vector 축, 12×12 행렬, line-load vector, 결과 위치와
tolerance는 승인된 project requirement/design과 결합한 FESA 계약이다. 따라서 exact tolerance는 승인된 project requirement/design과 결합한 FESA 계약이다. 따라서 exact
@@ -11,12 +11,12 @@
## Metadata ## Metadata
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- source_research: `docs/research/linear-static-3d-euler-beam-research.md` - source_research: `docs/linear-static-3d-euler-beam/research.md`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - source_numerical_review: `docs/linear-static-3d-euler-beam/numerical-review.md`
- source_io_definition: `docs/io-definitions/linear-static-3d-euler-beam-io.md` - source_io_definition: `docs/linear-static-3d-euler-beam/io.md`
- source_reference_models: `docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - source_reference_models: `docs/linear-static-3d-euler-beam/reference-model.md`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- phase_steps: `phases/linear-static-3d-euler-beam/step7.md` through `step24.md` - phase_steps: `phases/linear-static-3d-euler-beam/step7.md` through `step24.md`
- status: `ready-for-implementation` - status: `ready-for-implementation`
@@ -519,7 +519,7 @@ Every task below is one Harness Step and one independent review gate. Each task
| create | `src/fesa/CMakeLists.txt` | `fesa_solver`, warning isolation, and later production source registration | | create | `src/fesa/CMakeLists.txt` | `fesa_solver`, warning isolation, and later production source registration |
| create | `tests/CMakeLists.txt` | GoogleTest targets/discovery, common feature label, test meta-target | | create | `tests/CMakeLists.txt` | GoogleTest targets/discovery, common feature label, test meta-target |
| create | `tests/unit/build_info_test.cpp` | compile/runtime contract for solver version | | create | `tests/unit/build_info_test.cpp` | compile/runtime contract for solver version |
| create | `docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` | cumulative Step 7-24 evidence ledger | | create | `docs/linear-static-3d-euler-beam/implementation-report.md` | cumulative Step 7-24 evidence ledger |
- Consumes: repository toolchain and approved dependency locations; no solver module. - Consumes: repository toolchain and approved dependency locations; no solver module.
- Produces: normalized dependency aliases `Fesa::MKL`, `Fesa::TBB`, and `Fesa::HDF5`; `fesa_solver`; `fesa_unit_tests`; custom target `fesa_tests`; common CTest label `linear-static-3d-euler-beam`; and `solverVersion()`. - Produces: normalized dependency aliases `Fesa::MKL`, `Fesa::TBB`, and `Fesa::HDF5`; `fesa_solver`; `fesa_unit_tests`; custom target `fesa_tests`; common CTest label `linear-static-3d-euler-beam`; and `solverVersion()`.
@@ -1071,7 +1071,7 @@ if ($LASTEXITCODE -eq 0) { throw "HDF5 API leaked into public headers:`n$hdf5Lea
## Implementation Report Evidence Contract ## Implementation Report Evidence Contract
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` is created in TASK-07 and appended in TASK-08 through TASK-24. It must use this fixed structure for every Step: `docs/linear-static-3d-euler-beam/implementation-report.md` is created in TASK-07 and appended in TASK-08 through TASK-24. It must use this fixed structure for every Step:
```markdown ```markdown
## Step 16 — euler-beam-element ## Step 16 — euler-beam-element
@@ -3,7 +3,7 @@
## Metadata ## Metadata
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_plan: `docs/implementation-plans/linear-static-3d-euler-beam.md` - source_plan: `docs/linear-static-3d-euler-beam/implementation-plan.md`
- source_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - source_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- status: `in-progress` - status: `in-progress`
- owner_agent: `implementation-agent` - owner_agent: `implementation-agent`
@@ -18,7 +18,7 @@
`include/fesa/build_info.hpp`, `src/fesa/build_info.cpp`, `include/fesa/build_info.hpp`, `src/fesa/build_info.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`tests/unit/build_info_test.cpp`, `tests/unit/build_info_test.cpp`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` `docs/linear-static-3d-euler-beam/implementation-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-030`, `FESA-REQ-LS3DEB-034` - requirement_ids: `FESA-REQ-LS3DEB-030`, `FESA-REQ-LS3DEB-034`
- test_ids: `T07-BUILD-001`, `T07-BUILD-002` - test_ids: `T07-BUILD-001`, `T07-BUILD-002`
@@ -56,7 +56,7 @@
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`tests/unit/core/source_identity_test.cpp`, `tests/unit/core/source_identity_test.cpp`,
`tests/unit/core/diagnostic_test.cpp`, `tests/unit/core/status_test.cpp`, `tests/unit/core/diagnostic_test.cpp`, `tests/unit/core/status_test.cpp`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` `docs/linear-static-3d-euler-beam/implementation-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-033`, `FESA-REQ-LS3DEB-034` - requirement_ids: `FESA-REQ-LS3DEB-033`, `FESA-REQ-LS3DEB-034`
- test_ids: `T08-CORE-001`, `T08-CORE-002`, `T08-CORE-003` - test_ids: `T08-CORE-001`, `T08-CORE-002`, `T08-CORE-003`
@@ -95,7 +95,7 @@
`src/fesa/math/matrix.cpp`, `tests/unit/math/vector_test.cpp`, `src/fesa/math/matrix.cpp`, `tests/unit/math/vector_test.cpp`,
`tests/unit/math/matrix_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/math/matrix_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-025`, `FESA-REQ-LS3DEB-034` - requirement_ids: `FESA-REQ-LS3DEB-025`, `FESA-REQ-LS3DEB-034`
- test_ids: `T09-DENSE-001`, `T09-DENSE-002` - test_ids: `T09-DENSE-001`, `T09-DENSE-002`
@@ -153,7 +153,7 @@
`include/fesa/model/domain.hpp`, `src/fesa/model/domain.cpp`, `include/fesa/model/domain.hpp`, `src/fesa/model/domain.cpp`,
`tests/unit/model/model_types_test.cpp`, `tests/unit/model/domain_test.cpp`, `tests/unit/model/model_types_test.cpp`, `tests/unit/model/domain_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-10-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-10-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-015`, `FESA-REQ-LS3DEB-016`, - requirement_ids: `FESA-REQ-LS3DEB-015`, `FESA-REQ-LS3DEB-016`,
@@ -200,7 +200,7 @@
`tests/unit/io/abaqus/input_syntax_test.cpp`, `tests/unit/io/abaqus/input_syntax_test.cpp`,
`tests/unit/io/abaqus/input_reader_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/io/abaqus/input_reader_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-11-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-11-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-010`, `FESA-REQ-LS3DEB-034`, - requirement_ids: `FESA-REQ-LS3DEB-010`, `FESA-REQ-LS3DEB-034`,
@@ -248,7 +248,7 @@
`src/fesa/io/abaqus/domain_mapper.cpp`, `src/fesa/io/abaqus/domain_mapper.cpp`,
`tests/unit/io/abaqus/domain_mapper_test.cpp`, `tests/unit/io/abaqus/domain_mapper_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-12-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-12-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-001`, `FESA-REQ-LS3DEB-002`, - requirement_ids: `FESA-REQ-LS3DEB-001`, `FESA-REQ-LS3DEB-002`,
@@ -368,7 +368,7 @@
`src/fesa/analysis/analysis_model.cpp`, `src/fesa/analysis/analysis_model.cpp`,
`tests/unit/analysis/analysis_model_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/analysis/analysis_model_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-13-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-13-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-001`, `FESA-REQ-LS3DEB-021`, - requirement_ids: `FESA-REQ-LS3DEB-001`, `FESA-REQ-LS3DEB-021`,
@@ -413,7 +413,7 @@
- changed_files: `include/fesa/fem/dof_manager.hpp`, - changed_files: `include/fesa/fem/dof_manager.hpp`,
`src/fesa/fem/dof_manager.cpp`, `tests/unit/fem/dof_manager_test.cpp`, `src/fesa/fem/dof_manager.cpp`, `tests/unit/fem/dof_manager_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-14-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-14-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-003`, `FESA-REQ-LS3DEB-007`, - requirement_ids: `FESA-REQ-LS3DEB-003`, `FESA-REQ-LS3DEB-007`,
@@ -470,7 +470,7 @@
`tests/unit/results/result_records_test.cpp`, `tests/unit/results/result_records_test.cpp`,
`tests/unit/analysis/analysis_state_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/analysis/analysis_state_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-15-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-15-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-003`, `FESA-REQ-LS3DEB-023`, - requirement_ids: `FESA-REQ-LS3DEB-003`, `FESA-REQ-LS3DEB-023`,
@@ -522,7 +522,7 @@
`src/fesa/elements/euler_beam_3d.cpp`, `src/fesa/elements/euler_beam_3d.cpp`,
`tests/unit/elements/euler_beam_3d_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/elements/euler_beam_3d_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-16-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-16-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-002`, `FESA-REQ-LS3DEB-004`, - requirement_ids: `FESA-REQ-LS3DEB-002`, `FESA-REQ-LS3DEB-004`,
@@ -639,7 +639,7 @@
`src/fesa/assembly/parallel_for.cpp`, `src/fesa/assembly/parallel_for.cpp`,
`tests/unit/assembly/parallel_for_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/assembly/parallel_for_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json`, `phases/linear-static-3d-euler-beam/index.json`,
`.superpowers/sdd/linear-static-3d-euler-beam/task-17-report.md` `.superpowers/sdd/linear-static-3d-euler-beam/task-17-report.md`
- requirement_ids: `FESA-REQ-LS3DEB-024`, `FESA-REQ-LS3DEB-025`, - requirement_ids: `FESA-REQ-LS3DEB-024`, `FESA-REQ-LS3DEB-025`,
@@ -728,7 +728,7 @@
`tests/unit/math/sparse_matrix_test.cpp`, `tests/unit/math/sparse_matrix_test.cpp`,
`tests/unit/assembly/sparse_assembler_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/assembly/sparse_assembler_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-024`, `FESA-REQ-LS3DEB-025`, - requirement_ids: `FESA-REQ-LS3DEB-024`, `FESA-REQ-LS3DEB-025`,
`FESA-REQ-LS3DEB-034`, `FESA-REQ-LS3DEB-035` `FESA-REQ-LS3DEB-034`, `FESA-REQ-LS3DEB-035`
@@ -818,7 +818,7 @@
`src/fesa/constraints/essential_constraints.cpp`, `src/fesa/constraints/essential_constraints.cpp`,
`tests/unit/constraints/essential_constraints_test.cpp`, `tests/unit/constraints/essential_constraints_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-007`, `FESA-REQ-LS3DEB-022`, - requirement_ids: `FESA-REQ-LS3DEB-007`, `FESA-REQ-LS3DEB-022`,
`FESA-REQ-LS3DEB-027`, `FESA-REQ-LS3DEB-034`, `FESA-REQ-LS3DEB-027`, `FESA-REQ-LS3DEB-034`,
@@ -871,7 +871,7 @@
`tests/unit/solvers/linear/linear_solver_test.cpp`, `tests/unit/solvers/linear/linear_solver_test.cpp`,
`tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp`, `tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-025`, `FESA-REQ-LS3DEB-026`, - requirement_ids: `FESA-REQ-LS3DEB-025`, `FESA-REQ-LS3DEB-026`,
`FESA-REQ-LS3DEB-034`, `FESA-REQ-LS3DEB-035` `FESA-REQ-LS3DEB-034`, `FESA-REQ-LS3DEB-035`
@@ -978,7 +978,7 @@
`src/fesa/assembly/load_assembler.cpp`, `src/fesa/assembly/load_assembler.cpp`,
`tests/unit/assembly/load_assembler_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/assembly/load_assembler_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-007`, `FESA-REQ-LS3DEB-011`, - requirement_ids: `FESA-REQ-LS3DEB-007`, `FESA-REQ-LS3DEB-011`,
`FESA-REQ-LS3DEB-027`, `FESA-REQ-LS3DEB-034` `FESA-REQ-LS3DEB-027`, `FESA-REQ-LS3DEB-034`
@@ -1030,7 +1030,7 @@
`src/fesa/results/result_recovery.cpp`, `src/fesa/results/result_recovery.cpp`,
`tests/unit/results/result_recovery_test.cpp`, `src/fesa/CMakeLists.txt`, `tests/unit/results/result_recovery_test.cpp`, `src/fesa/CMakeLists.txt`,
`tests/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-004`, `FESA-REQ-LS3DEB-027`, - requirement_ids: `FESA-REQ-LS3DEB-004`, `FESA-REQ-LS3DEB-027`,
`FESA-REQ-LS3DEB-031`, `FESA-REQ-LS3DEB-032`, `FESA-REQ-LS3DEB-031`, `FESA-REQ-LS3DEB-032`,
@@ -1142,7 +1142,7 @@
`tests/unit/io/hdf5/hdf5_results_writer_test.cpp`, `tests/unit/io/hdf5/hdf5_results_writer_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`cmake/FesaDependencies.cmake`, `cmake/FesaDependencies.cmake`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-003`, `FESA-REQ-LS3DEB-015`, - requirement_ids: `FESA-REQ-LS3DEB-003`, `FESA-REQ-LS3DEB-015`,
`FESA-REQ-LS3DEB-019`, `FESA-REQ-LS3DEB-020`, `FESA-REQ-LS3DEB-019`, `FESA-REQ-LS3DEB-020`,
@@ -1225,7 +1225,7 @@
`tests/reference/reference_comparison_test.cpp`, `tests/reference/reference_comparison_test.cpp`,
`tests/reference/b33_reference_comparison_test.cpp`, `tests/reference/b33_reference_comparison_test.cpp`,
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`, `docs/linear-static-3d-euler-beam/implementation-report.md`,
`phases/linear-static-3d-euler-beam/index.json` `phases/linear-static-3d-euler-beam/index.json`
- requirement_ids: `FESA-REQ-LS3DEB-001`, `FESA-REQ-LS3DEB-002`, - requirement_ids: `FESA-REQ-LS3DEB-001`, `FESA-REQ-LS3DEB-002`,
`FESA-REQ-LS3DEB-005`, `FESA-REQ-LS3DEB-020`, `FESA-REQ-LS3DEB-005`, `FESA-REQ-LS3DEB-020`,
+4 -4
View File
@@ -3,10 +3,10 @@
## Metadata ## Metadata
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - source_numerical_review: `docs/linear-static-3d-euler-beam/numerical-review.md`
- source_research: `docs/research/linear-static-3d-euler-beam-research.md` - source_research: `docs/linear-static-3d-euler-beam/research.md`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- status: `ready-for-implementation-planning` - status: `ready-for-implementation-planning`
- owner_agent: `io-definition-agent` - owner_agent: `io-definition-agent`
@@ -3,9 +3,9 @@
## Metadata ## Metadata
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- source_requirements: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirements: `docs/linear-static-3d-euler-beam/requirements.md`
- source_research: `docs/research/linear-static-3d-euler-beam-research.md` - source_research: `docs/linear-static-3d-euler-beam/research.md`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- status: `pass-for-implementation-planning` - status: `pass-for-implementation-planning`
- owner_agent: `numerical-review-agent` - owner_agent: `numerical-review-agent`
@@ -5,12 +5,12 @@
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- model_id: `cantilever-beam-b33` - model_id: `cantilever-beam-b33`
- evaluated_head: `d76d052456ec134a98bcd5aa3b3c18a6b0ad6ba4` - evaluated_head: `d76d052456ec134a98bcd5aa3b3c18a6b0ad6ba4`
- source_reference_verification_report: `docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md` - source_reference_verification_report: `docs/linear-static-3d-euler-beam/reference-comparison.md`
- source_reference_model: `docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - source_reference_model: `docs/linear-static-3d-euler-beam/reference-model.md`
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - source_numerical_review: `docs/linear-static-3d-euler-beam/numerical-review.md`
- source_io_definition: `docs/io-definitions/linear-static-3d-euler-beam-io.md` - source_io_definition: `docs/linear-static-3d-euler-beam/io.md`
- status: `pass-for-release-agent` - status: `pass-for-release-agent`
- owner_agent: `physics-evaluation-agent` - owner_agent: `physics-evaluation-agent`
- date: `2026-08-09` - date: `2026-08-09`
@@ -26,7 +26,7 @@ artifact identity was reproduced before the physics checks and again after the t
| evidence | exact path or identity | status | notes | | evidence | exact path or identity | status | notes |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| reference verification | `docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md` | pass-for-physics-evaluation | Required gate satisfied. | | reference verification | `docs/linear-static-3d-euler-beam/reference-comparison.md` | pass-for-physics-evaluation | Required gate satisfied. |
| solver HDF5 | `.harness/build/reference/cantilever-beam-b33/results.h5` | present and readable | 25,336 bytes; post-acceptance-run SHA-256 `13ECCF68262C14BBDE0F63667C0F10896ACD40EFEC56E8C9121C298333FD9B6D`. | | solver HDF5 | `.harness/build/reference/cantilever-beam-b33/results.h5` | present and readable | 25,336 bytes; post-acceptance-run SHA-256 `13ECCF68262C14BBDE0F63667C0F10896ACD40EFEC56E8C9121C298333FD9B6D`. |
| comparison evidence | `.harness/build/reference/cantilever-beam-b33/comparison.json` | present and passing | 128,118 bytes; SHA-256 `258347AEA791D981AEA9B2BCAD85DE5344D4859ECA3692DC5E7AA01A848F8E0D`; `passed=true`, 176 rows, 16 metrics. | | comparison evidence | `.harness/build/reference/cantilever-beam-b33/comparison.json` | present and passing | 128,118 bytes; SHA-256 `258347AEA791D981AEA9B2BCAD85DE5344D4859ECA3692DC5E7AA01A848F8E0D`; `passed=true`, 176 rows, 16 metrics. |
| reference input | `reference/cantilever beam/cantilever beam.inp` | exact read-only artifact | SHA-256 `E406EA9560321B791DB829E03BD24593B9875E0195D35B86BD931EDA122EF3`; `TYPE=B33`. | | reference input | `reference/cantilever beam/cantilever beam.inp` | exact read-only artifact | SHA-256 `E406EA9560321B791DB829E03BD24593B9875E0195D35B86BD931EDA122EF3`; `TYPE=B33`. |
@@ -5,11 +5,11 @@
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- model_id: `cantilever-beam-b33` - model_id: `cantilever-beam-b33`
- source_head: `451d9077ea70e3087454db3760e677da0095d27f` - source_head: `451d9077ea70e3087454db3760e677da0095d27f`
- source_build_test_report: `docs/build-test-reports/linear-static-3d-euler-beam.md` - source_build_test_report: `docs/linear-static-3d-euler-beam/build-test.md`
- source_reference_models: `docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - source_reference_models: `docs/linear-static-3d-euler-beam/reference-model.md`
- source_io_definition: `docs/io-definitions/linear-static-3d-euler-beam-io.md` - source_io_definition: `docs/linear-static-3d-euler-beam/io.md`
- source_implementation_plan: `docs/implementation-plans/linear-static-3d-euler-beam.md` - source_implementation_plan: `docs/linear-static-3d-euler-beam/implementation-plan.md`
- source_implementation_report: `docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - source_implementation_report: `docs/linear-static-3d-euler-beam/implementation-report.md`
- status: `pass-for-physics-evaluation` - status: `pass-for-physics-evaluation`
- owner_agent: `reference-verification-agent` - owner_agent: `reference-verification-agent`
- date: `2026-08-09` - date: `2026-08-09`
@@ -3,11 +3,11 @@
## Metadata ## Metadata
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- source_research: `docs/research/linear-static-3d-euler-beam-research.md` - source_research: `docs/linear-static-3d-euler-beam/research.md`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - source_numerical_review: `docs/linear-static-3d-euler-beam/numerical-review.md`
- source_io_definition: `docs/io-definitions/linear-static-3d-euler-beam-io.md` - source_io_definition: `docs/linear-static-3d-euler-beam/io.md`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- status: `ready-for-implementation-planning` - status: `ready-for-implementation-planning`
- owner_agent: `reference-model-agent` - owner_agent: `reference-model-agent`
+11 -11
View File
@@ -4,17 +4,17 @@
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` (`status: approved`; approved 2026-08-08, amended 2026-08-09) - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` (`status: approved`; approved 2026-08-08, amended 2026-08-09)
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- source_research: `docs/research/linear-static-3d-euler-beam-research.md` - source_research: `docs/linear-static-3d-euler-beam/research.md`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - source_numerical_review: `docs/linear-static-3d-euler-beam/numerical-review.md`
- source_io_definition: `docs/io-definitions/linear-static-3d-euler-beam-io.md` - source_io_definition: `docs/linear-static-3d-euler-beam/io.md`
- source_reference_model: `docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - source_reference_model: `docs/linear-static-3d-euler-beam/reference-model.md`
- source_implementation_plan: `docs/implementation-plans/linear-static-3d-euler-beam.md` - source_implementation_plan: `docs/linear-static-3d-euler-beam/implementation-plan.md`
- source_implementation_report: `docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - source_implementation_report: `docs/linear-static-3d-euler-beam/implementation-report.md`
- source_build_test_report: `docs/build-test-reports/linear-static-3d-euler-beam.md` - source_build_test_report: `docs/linear-static-3d-euler-beam/build-test.md`
- source_reference_verification_report: `docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md` - source_reference_verification_report: `docs/linear-static-3d-euler-beam/reference-comparison.md`
- source_physics_evaluation_report: `docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md` - source_physics_evaluation_report: `docs/linear-static-3d-euler-beam/physics-evaluation.md`
- audited_head: `822b06be3d2128d5dfdc5e394078abbb9dcd5a50` - audited_head: `822b06be3d2128d5dfdc5e394078abbb9dcd5a50`
- reference_model_id: `cantilever-beam-b33` - reference_model_id: `cantilever-beam-b33`
- reference_schema: `abaqus-cae-report-csv-v0` - reference_schema: `abaqus-cae-report-csv-v0`
@@ -9,7 +9,7 @@
- date: `2026-08-09` - date: `2026-08-09`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- approval_basis: design `status: approved`, user approval on `2026-08-08`, and amendment on `2026-08-09` - approval_basis: design `status: approved`, user approval on `2026-08-08`, and amendment on `2026-08-09`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- reference_baseline: `reference/cantilever beam/` at source commit `2b34d0b` - reference_baseline: `reference/cantilever beam/` at source commit `2b34d0b`
## Purpose ## Purpose
+3 -3
View File
@@ -3,9 +3,9 @@
## Metadata ## Metadata
- feature_id: `linear-static-3d-euler-beam` - feature_id: `linear-static-3d-euler-beam`
- source_requirement: `docs/requirements/linear-static-3d-euler-beam.md` - source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- status: `ready-for-formulation` - status: `ready-for-formulation`
- owner_agent: `research-agent` - owner_agent: `research-agent`
- date: `2026-08-09` - date: `2026-08-09`
@@ -32,7 +32,7 @@ This brief supplies evidence for formulation alignment and later verification pl
| S4 | Isoparametric mapping and quadrature synthesis | FEM wiki, with Bathe, Logan, Abaqus, and local source provenance | [[Isoparametric Finite Elements]] | *Finite Element Procedures*; Logan textbook; *Abaqus Theory Manual*; *Abaqus Analysis User's Guide, Volume IV* | Tier 2 synthesis; Tier 1 where Abaqus-specific | natural coordinates, Jacobian mapping, quadrature choice, under-integration risk | | S4 | Isoparametric mapping and quadrature synthesis | FEM wiki, with Bathe, Logan, Abaqus, and local source provenance | [[Isoparametric Finite Elements]] | *Finite Element Procedures*; Logan textbook; *Abaqus Theory Manual*; *Abaqus Analysis User's Guide, Volume IV* | Tier 2 synthesis; Tier 1 where Abaqus-specific | natural coordinates, Jacobian mapping, quadrature choice, under-integration risk |
| S5 | FEM program verification workflow | FEM wiki, with textbook and official-manual provenance | [[Finite Element Program Implementation]]; [[Finite Element Modeling and Convergence Checks]] | *Finite Element Procedures*; Logan textbook; Abaqus user guides; production solver manuals | Tier 2 synthesis; Tier 1 for cited official-manual behavior | element-local/global separation, sparse assembly context, constraint/solve/recovery workflow, benchmark and equilibrium checks | | S5 | FEM program verification workflow | FEM wiki, with textbook and official-manual provenance | [[Finite Element Program Implementation]]; [[Finite Element Modeling and Convergence Checks]] | *Finite Element Procedures*; Logan textbook; Abaqus user guides; production solver manuals | Tier 2 synthesis; Tier 1 for cited official-manual behavior | element-local/global separation, sparse assembly context, constraint/solve/recovery workflow, benchmark and equilibrium checks |
| P1 | Approved FESA feature contract | FESA project | N/A | approved requirements and design named in Metadata | Project contract, not external evidence | exact V0 scope, fixed tolerance policy, read-only reference inventory, required output and orchestration | | P1 | Approved FESA feature contract | FESA project | N/A | approved requirements and design named in Metadata | Project contract, not external evidence | exact V0 scope, fixed tolerance policy, read-only reference inventory, required output and orchestration |
| P2 | Existing candidate formulation | FESA project | cites [[Beam and Frame Finite Elements]], [[Isoparametric Finite Elements]], and S5 pages | `docs/formulations/3d-isoparametric-euler-beam-formulation.md` | Candidate derivation, not an approved source | equations and sign choices that downstream Formulation and Numerical Review agents must check | | P2 | Existing candidate formulation | FESA project | cites [[Beam and Frame Finite Elements]], [[Isoparametric Finite Elements]], and S5 pages | `docs/linear-static-3d-euler-beam/formulation.md` | Candidate derivation, not an approved source | equations and sign choices that downstream Formulation and Numerical Review agents must check |
The wiki source records identify S1 as high-confidence manual provenance, S2 as a high-confidence textbook source, and S3 as a current textbook source. P1 and P2 are intentionally not assigned an external reliability tier. The wiki source records identify S1 as high-confidence manual provenance, S2 as a high-confidence textbook source, and S3 as a current textbook source. P1 and P2 are intentionally not assigned an external reliability tier.
+1 -1
View File
@@ -7,7 +7,7 @@
- source_implementation_report: `N/A`; Harness completion evidence is recorded in - source_implementation_report: `N/A`; Harness completion evidence is recorded in
`phases/linear-static-mitc4-shell/index.json` `phases/linear-static-mitc4-shell/index.json`
- source_implementation_plan: - source_implementation_plan:
`docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` `docs/linear-static-mitc4-shell/implementation-plan.md`
- status: `pass-for-reference-verification` - status: `pass-for-reference-verification`
- owner_agent: `build-test-executor-agent` - owner_agent: `build-test-executor-agent`
- date: `2026-08-13` - date: `2026-08-13`
@@ -3,9 +3,9 @@
## Metadata ## Metadata
- feature_id: `linear-static-mitc4-shell` - feature_id: `linear-static-mitc4-shell`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_research: `docs/research/linear-static-mitc4-shell-research.md` - source_research: `docs/linear-static-mitc4-shell/research.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-mitc4-shell-review.md` - source_numerical_review: `docs/linear-static-mitc4-shell/numerical-review.md`
- status: `approved-for-implementation-planning` - status: `approved-for-implementation-planning`
- owner_agent: `formulation-agent` - owner_agent: `formulation-agent`
- date: `2026-08-13` - date: `2026-08-13`
@@ -1586,7 +1586,7 @@ procedure.
The detailed source tiers, extracted facts, page references, benchmark provenance, The detailed source tiers, extracted facts, page references, benchmark provenance,
and evidence limits are owned by and evidence limits are owned by
`docs/research/linear-static-mitc4-shell-research.md`. The primary local source set `docs/linear-static-mitc4-shell/research.md`. The primary local source set
under `docs/reference-papers/MITC4/` includes: under `docs/reference-papers/MITC4/` includes:
- `AContinuumMechanicsBasedFourNodeShell_001.md` and `_002.md`; - `AContinuumMechanicsBasedFourNodeShell_001.md` and `_002.md`;
@@ -14,15 +14,15 @@
- approval_state: `harness-step-draft-approved-2026-08-12` - approval_state: `harness-step-draft-approved-2026-08-12`
- owner_agent: `implementation-planning-agent` - owner_agent: `implementation-planning-agent`
- date: `2026-08-13` - date: `2026-08-13`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_research: `docs/research/linear-static-mitc4-shell-research.md` - source_research: `docs/linear-static-mitc4-shell/research.md`
- source_formulation: `docs/formulations/mitc4-shell-formulation.md` - source_formulation: `docs/linear-static-mitc4-shell/formulation.md`
- source_numerical_review: - source_numerical_review:
`docs/numerical-reviews/linear-static-mitc4-shell-review.md` `docs/linear-static-mitc4-shell/numerical-review.md`
- source_io_definition: - source_io_definition:
`docs/io-definitions/linear-static-mitc4-shell-io.md` `docs/linear-static-mitc4-shell/io.md`
- source_reference_models: - source_reference_models:
`docs/reference-models/linear-static-mitc4-shell-reference-models.md` `docs/linear-static-mitc4-shell/reference-model.md`
- target_platform: `Windows x64 / MSVC / C++17` - target_platform: `Windows x64 / MSVC / C++17`
- build_system: `CMake + CTest` - build_system: `CMake + CTest`
- execution_infrastructure: `Python Harness` - execution_infrastructure: `Python Harness`
@@ -79,12 +79,12 @@ HDF5 temporary/self-check/atomic replacement는 재사용한다.
| gate | evidence | status | planning consequence | | gate | evidence | status | planning consequence |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Requirements | `docs/requirements/linear-static-mitc4-shell.md`, 001-072 approved | pass | 모든 must를 task/test에 추적 | | Requirements | `docs/linear-static-mitc4-shell/requirements.md`, 001-072 approved | pass | 모든 must를 task/test에 추적 |
| Research | `docs/research/linear-static-mitc4-shell-research.md` | pass | source-backed MITC4 tying/director/drilling 경계 유지 | | Research | `docs/linear-static-mitc4-shell/research.md` | pass | source-backed MITC4 tying/director/drilling 경계 유지 |
| Formulation | `docs/formulations/mitc4-shell-formulation.md`, `approved-for-implementation-planning` | pass | linear sections만 구현; Section 15 future nonlinear 제외 | | Formulation | `docs/linear-static-mitc4-shell/formulation.md`, `approved-for-implementation-planning` | pass | linear sections만 구현; Section 15 future nonlinear 제외 |
| Numerical Review | `docs/numerical-reviews/linear-static-mitc4-shell-review.md` | pass | critical blocker 없음; planning authorized | | Numerical Review | `docs/linear-static-mitc4-shell/numerical-review.md` | pass | critical blocker 없음; planning authorized |
| I/O | `docs/io-definitions/linear-static-mitc4-shell-io.md`, `approved-for-implementation-planning` | pass | keyword, diagnostic, HDF5 schema를 그대로 구현 | | I/O | `docs/linear-static-mitc4-shell/io.md`, `approved-for-implementation-planning` | pass | keyword, diagnostic, HDF5 schema를 그대로 구현 |
| Reference Model | `docs/reference-models/linear-static-mitc4-shell-reference-models.md` | pass | sole S4 input/CSV pair만 read-only acceptance input으로 사용 | | Reference Model | `docs/linear-static-mitc4-shell/reference-model.md` | pass | sole S4 input/CSV pair만 read-only acceptance input으로 사용 |
| Repository seams | parser/model, element/analysis, result/reference 영역 read-only 조사 | pass | candidate files와 current signatures 확인 | | Repository seams | parser/model, element/analysis, result/reference 영역 read-only 조사 | pass | candidate files와 current signatures 확인 |
| Toolchain paths | GoogleTest/MKL/TBB/HDF5 config directories 존재 | pass | Section 10의 exact configure command 사용 가능 | | Toolchain paths | GoogleTest/MKL/TBB/HDF5 config directories 존재 | pass | Section 10의 exact configure command 사용 가능 |
@@ -576,7 +576,7 @@ ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Ref
Planning-document verification: Planning-document verification:
```powershell ```powershell
git diff --check -- docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md git diff --check -- docs/linear-static-mitc4-shell/implementation-plan.md
git status --short git status --short
git diff --name-only git diff --name-only
``` ```
+5 -5
View File
@@ -3,10 +3,10 @@
## Metadata ## Metadata
- feature_id: `linear-static-mitc4-shell` - feature_id: `linear-static-mitc4-shell`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_research: `docs/research/linear-static-mitc4-shell-research.md` - source_research: `docs/linear-static-mitc4-shell/research.md`
- source_formulation: `docs/formulations/mitc4-shell-formulation.md` - source_formulation: `docs/linear-static-mitc4-shell/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-mitc4-shell-review.md` - source_numerical_review: `docs/linear-static-mitc4-shell/numerical-review.md`
- source_commits: requirements/research/formulation policy revision `73df844` - source_commits: requirements/research/formulation policy revision `73df844`
- status: `approved-for-implementation-planning` - status: `approved-for-implementation-planning`
- owner_agent: `io-definition-agent` - owner_agent: `io-definition-agent`
@@ -629,7 +629,7 @@ administration and reference-portfolio expansion are removed scope.
### 11.2 Reference Model Agent ### 11.2 Reference Model Agent
- Write `docs/reference-models/linear-static-mitc4-shell-reference-models.md` using - Write `docs/linear-static-mitc4-shell/reference-model.md` using
this exact keyword/HDF5/reference-row contract. this exact keyword/HDF5/reference-row contract.
- Record only the two exact existing input/displacement pairs, comparison components, - Record only the two exact existing input/displacement pairs, comparison components,
HDF5 projection, source-row identity, fixed absolute MITC4 tolerance and immutability rule. HDF5 projection, source-row identity, fixed absolute MITC4 tolerance and immutability rule.
@@ -3,11 +3,11 @@
## 1. Metadata ## 1. Metadata
- feature_id: `linear-static-mitc4-shell` - feature_id: `linear-static-mitc4-shell`
- source_formulation: `docs/formulations/mitc4-shell-formulation.md` - source_formulation: `docs/linear-static-mitc4-shell/formulation.md`
- source_requirements: `docs/requirements/linear-static-mitc4-shell.md` - source_requirements: `docs/linear-static-mitc4-shell/requirements.md`
- source_research: `docs/research/linear-static-mitc4-shell-research.md` - source_research: `docs/linear-static-mitc4-shell/research.md`
- source_io_definition: `docs/io-definitions/linear-static-mitc4-shell-io.md` - source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- source_reference_inventory: `docs/reference-models/linear-static-mitc4-shell-reference-models.md` - source_reference_inventory: `docs/linear-static-mitc4-shell/reference-model.md`
- repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, - repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`,
`docs/numerical-reviews/README.md` `docs/numerical-reviews/README.md`
- reviewed_head: `cf769aa` (`mathematical implementation baseline`) - reviewed_head: `cf769aa` (`mathematical implementation baseline`)
@@ -6,16 +6,16 @@
- model_id: `shell-s4` - model_id: `shell-s4`
- evaluated_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53` - evaluated_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- source_build_test_report: - source_build_test_report:
`docs/build-test-reports/linear-static-mitc4-shell-build-test.md` `docs/linear-static-mitc4-shell/build-test.md`
- source_reference_verification_report: - source_reference_verification_report:
`docs/reference-verifications/linear-static-mitc4-shell-reference-verification.md` `docs/linear-static-mitc4-shell/reference-comparison.md`
- source_reference_model: - source_reference_model:
`docs/reference-models/linear-static-mitc4-shell-reference-models.md` `docs/linear-static-mitc4-shell/reference-model.md`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_formulation: `docs/formulations/mitc4-shell-formulation.md` - source_formulation: `docs/linear-static-mitc4-shell/formulation.md`
- source_numerical_review: - source_numerical_review:
`docs/numerical-reviews/linear-static-mitc4-shell-review.md` `docs/linear-static-mitc4-shell/numerical-review.md`
- source_io_definition: `docs/io-definitions/linear-static-mitc4-shell-io.md` - source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- status: `pass-for-release-agent` - status: `pass-for-release-agent`
- owner_agent: `physics-evaluation-agent` - owner_agent: `physics-evaluation-agent`
- date: `2026-08-13` - date: `2026-08-13`
@@ -33,8 +33,8 @@ not executed.
| evidence | exact path or identity | status | notes | | evidence | exact path or identity | status | notes |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| build/test report | `docs/build-test-reports/linear-static-mitc4-shell-build-test.md` | `pass-for-reference-verification` | Clean MSVC x64 Debug build, focused `87/87`, lifecycle `10/10`, reference `8/8`, and full `144/144` CTest passed. | | build/test report | `docs/linear-static-mitc4-shell/build-test.md` | `pass-for-reference-verification` | Clean MSVC x64 Debug build, focused `87/87`, lifecycle `10/10`, reference `8/8`, and full `144/144` CTest passed. |
| reference verification | `docs/reference-verifications/linear-static-mitc4-shell-reference-verification.md` | `pass-for-physics-evaluation` | Required prerequisite satisfied; 147/147 blocking U rows passed and no UR warning was emitted. | | reference verification | `docs/linear-static-mitc4-shell/reference-comparison.md` | `pass-for-physics-evaluation` | Required prerequisite satisfied; 147/147 blocking U rows passed and no UR warning was emitted. |
| solver HDF5 | `.harness/build/reference/mitc4-shell-s4-comparison/results.h5` | present and readable | Freshly generated, 95,024 bytes; observed raw SHA-256 `E102D80E82BA133EBDF1C5532F3A0A4FE9984AB6CC36D00264399F7308D9230F` (inventory only). | | solver HDF5 | `.harness/build/reference/mitc4-shell-s4-comparison/results.h5` | present and readable | Freshly generated, 95,024 bytes; observed raw SHA-256 `E102D80E82BA133EBDF1C5532F3A0A4FE9984AB6CC36D00264399F7308D9230F` (inventory only). |
| comparison ledger | `.harness/build/reference/mitc4-shell-s4-comparison/comparison.json` | present and passing | 94,349 bytes; SHA-256 `8E8DEA51B6F7C663BACC41FDA6103A4596DB26E02F1EAD6069D458F51E0102E6`; `passed=true`. | | comparison ledger | `.harness/build/reference/mitc4-shell-s4-comparison/comparison.json` | present and passing | 94,349 bytes; SHA-256 `8E8DEA51B6F7C663BACC41FDA6103A4596DB26E02F1EAD6069D458F51E0102E6`; `passed=true`. |
| declared S4 input | `reference/shell/shell.inp` | present, unchanged, read-only | SHA-256 `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF`. | | declared S4 input | `reference/shell/shell.inp` | present, unchanged, read-only | SHA-256 `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF`. |
@@ -6,11 +6,11 @@
- model_id: `shell-s4` - model_id: `shell-s4`
- source_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53` - source_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- source_build_test_report: - source_build_test_report:
`docs/build-test-reports/linear-static-mitc4-shell-build-test.md` `docs/linear-static-mitc4-shell/build-test.md`
- source_reference_models: - source_reference_models:
`docs/reference-models/linear-static-mitc4-shell-reference-models.md` `docs/linear-static-mitc4-shell/reference-model.md`
- source_io_definition: `docs/io-definitions/linear-static-mitc4-shell-io.md` - source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- source_requirements: `docs/requirements/linear-static-mitc4-shell.md` - source_requirements: `docs/linear-static-mitc4-shell/requirements.md`
- status: `pass-for-physics-evaluation` - status: `pass-for-physics-evaluation`
- owner_agent: `reference-verification-agent` - owner_agent: `reference-verification-agent`
- date: `2026-08-13` - date: `2026-08-13`
@@ -3,8 +3,8 @@
## Metadata ## Metadata
- feature_id: `linear-static-mitc4-shell` - feature_id: `linear-static-mitc4-shell`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_io_definition: `docs/io-definitions/linear-static-mitc4-shell-io.md` - source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- status: `approved-for-implementation-planning` - status: `approved-for-implementation-planning`
- owner_agent: `reference-model-agent` - owner_agent: `reference-model-agent`
- date: `2026-08-13` - date: `2026-08-13`
+25 -25
View File
@@ -3,19 +3,19 @@
## Metadata ## Metadata
- feature_id: `linear-static-mitc4-shell` - feature_id: `linear-static-mitc4-shell`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_research: `docs/research/linear-static-mitc4-shell-research.md` - source_research: `docs/linear-static-mitc4-shell/research.md`
- source_formulation: `docs/formulations/mitc4-shell-formulation.md` - source_formulation: `docs/linear-static-mitc4-shell/formulation.md`
- source_numerical_review: `docs/numerical-reviews/linear-static-mitc4-shell-review.md` - source_numerical_review: `docs/linear-static-mitc4-shell/numerical-review.md`
- source_io_definition: `docs/io-definitions/linear-static-mitc4-shell-io.md` - source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- source_reference_model: `docs/reference-models/linear-static-mitc4-shell-reference-models.md` - source_reference_model: `docs/linear-static-mitc4-shell/reference-model.md`
- source_implementation_plan: `docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - source_implementation_plan: `docs/linear-static-mitc4-shell/implementation-plan.md`
- source_implementation_evidence: `phases/linear-static-mitc4-shell/index.json` - source_implementation_evidence: `phases/linear-static-mitc4-shell/index.json`
- source_implementation_report: `N/A`; the project Harness phase index is the implementation completion ledger for this execution - source_implementation_report: `N/A`; the project Harness phase index is the implementation completion ledger for this execution
- source_correction_report: `N/A`; no final Build/Test, Reference Verification, or Physics Evaluation failure was handed to Correction Agent - source_correction_report: `N/A`; no final Build/Test, Reference Verification, or Physics Evaluation failure was handed to Correction Agent
- source_build_test_report: `docs/build-test-reports/linear-static-mitc4-shell-build-test.md` - source_build_test_report: `docs/linear-static-mitc4-shell/build-test.md`
- source_reference_verification_report: `docs/reference-verifications/linear-static-mitc4-shell-reference-verification.md` - source_reference_verification_report: `docs/linear-static-mitc4-shell/reference-comparison.md`
- source_physics_evaluation_report: `docs/physics-evaluations/linear-static-mitc4-shell-physics-evaluation.md` - source_physics_evaluation_report: `docs/linear-static-mitc4-shell/physics-evaluation.md`
- audited_source_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53` - audited_source_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- audited_branch: `feat-linear-static-mitc4-shell` - audited_branch: `feat-linear-static-mitc4-shell`
- status: `ready-for-release` - status: `ready-for-release`
@@ -40,18 +40,18 @@
| gate | source | expected status/evidence | observed status/evidence | verdict | | gate | source | expected status/evidence | observed status/evidence | verdict |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| requirements | `docs/requirements/linear-static-mitc4-shell.md` | approved scope, acceptance criteria, tolerance and reference boundary | `approved`; requirements `001-072` are all `must` and covered without gaps | pass | | requirements | `docs/linear-static-mitc4-shell/requirements.md` | approved scope, acceptance criteria, tolerance and reference boundary | `approved`; requirements `001-072` are all `must` and covered without gaps | pass |
| research | `docs/research/linear-static-mitc4-shell-research.md` | approved evidence with applicability limits | `approved`; no research-owned blocking decision remains | pass | | research | `docs/linear-static-mitc4-shell/research.md` | approved evidence with applicability limits | `approved`; no research-owned blocking decision remains | pass |
| formulation | `docs/formulations/mitc4-shell-formulation.md` | implementation-ready current linear formulation | `approved-for-implementation-planning`; future nonlinear Section 15 remains explicitly non-executable | pass | | formulation | `docs/linear-static-mitc4-shell/formulation.md` | implementation-ready current linear formulation | `approved-for-implementation-planning`; future nonlinear Section 15 remains explicitly non-executable | pass |
| numerical review | `docs/numerical-reviews/linear-static-mitc4-shell-review.md` | `pass-for-implementation-planning` | `pass-for-implementation-planning`; no current-scope blocker | pass | | numerical review | `docs/linear-static-mitc4-shell/numerical-review.md` | `pass-for-implementation-planning` | `pass-for-implementation-planning`; no current-scope blocker | pass |
| I/O definition | `docs/io-definitions/linear-static-mitc4-shell-io.md` | approved input/HDF5/comparison contract | `approved-for-implementation-planning`; exact S4-only acceptance boundary and fixed tolerance are present | pass | | I/O definition | `docs/linear-static-mitc4-shell/io.md` | approved input/HDF5/comparison contract | `approved-for-implementation-planning`; exact S4-only acceptance boundary and fixed tolerance are present | pass |
| reference model | `docs/reference-models/linear-static-mitc4-shell-reference-models.md` | approved exact artifact inventory and row mapping | `approved-for-implementation-planning`; both declared files exist and match hashes | pass | | reference model | `docs/linear-static-mitc4-shell/reference-model.md` | approved exact artifact inventory and row mapping | `approved-for-implementation-planning`; both declared files exist and match hashes | pass |
| implementation plan | `docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` | approved TDD plan tracing every `must` requirement | `ready-for-implementation`; ranges cover `001-072` exactly once | pass | | implementation plan | `docs/linear-static-mitc4-shell/implementation-plan.md` | approved TDD plan tracing every `must` requirement | `ready-for-implementation`; ranges cover `001-072` exactly once | pass |
| implementation | `phases/linear-static-mitc4-shell/index.json` at source HEAD | completed RED/GREEN/VERIFY execution | Steps `0-13` are `completed`; all 14 `stepN-output.json` records have `exitCode=0`; top-level phase is `completed` | pass | | implementation | `phases/linear-static-mitc4-shell/index.json` at source HEAD | completed RED/GREEN/VERIFY execution | Steps `0-13` are `completed`; all 14 `stepN-output.json` records have `exitCode=0`; top-level phase is `completed` | pass |
| correction | final downstream reports and commit/Harness history | no unresolved implementation-owned failure | `N/A`; final Build/Test and Reference Verification classify correction handoff as `N/A`; historical pre-gate Step 13 retries are closed | pass | | correction | final downstream reports and commit/Harness history | no unresolved implementation-owned failure | `N/A`; final Build/Test and Reference Verification classify correction handoff as `N/A`; historical pre-gate Step 13 retries are closed | pass |
| build/test | `docs/build-test-reports/linear-static-mitc4-shell-build-test.md` | `pass-for-reference-verification` | `pass-for-reference-verification`; clean MSVC x64 Debug build, focused `87/87`, `10/10`, `8/8`, full `144/144`, Harness Python `7/7`, zero warnings | pass | | build/test | `docs/linear-static-mitc4-shell/build-test.md` | `pass-for-reference-verification` | `pass-for-reference-verification`; clean MSVC x64 Debug build, focused `87/87`, `10/10`, `8/8`, full `144/144`, Harness Python `7/7`, zero warnings | pass |
| reference verification | `docs/reference-verifications/linear-static-mitc4-shell-reference-verification.md` | `pass-for-physics-evaluation` | `pass-for-physics-evaluation`; exact `294/294` row identity, blocking U `147/147`, UR warnings `0`, invalid rows `0` | pass | | reference verification | `docs/linear-static-mitc4-shell/reference-comparison.md` | `pass-for-physics-evaluation` | `pass-for-physics-evaluation`; exact `294/294` row identity, blocking U `147/147`, UR warnings `0`, invalid rows `0` | pass |
| physics evaluation | `docs/physics-evaluations/linear-static-mitc4-shell-physics-evaluation.md` | `pass-for-release-agent` | `pass-for-release-agent`; equilibrium, reaction, direction, symmetry, recovery, stress signs, residual and physical energy pass | pass | | physics evaluation | `docs/linear-static-mitc4-shell/physics-evaluation.md` | `pass-for-release-agent` | `pass-for-release-agent`; equilibrium, reaction, direction, symmetry, recovery, stress signs, residual and physical energy pass | pass |
### Gate Consistency and Staleness Audit ### Gate Consistency and Staleness Audit
@@ -238,10 +238,10 @@ The Release Agent did not run Abaqus. It independently read the complete upstrea
### Artifacts ### Artifacts
- Release report: `docs/releases/linear-static-mitc4-shell-release.md` - Release report: `docs/linear-static-mitc4-shell/release.md`
- Build/Test report: `docs/build-test-reports/linear-static-mitc4-shell-build-test.md` - Build/Test report: `docs/linear-static-mitc4-shell/build-test.md`
- Reference Verification report: `docs/reference-verifications/linear-static-mitc4-shell-reference-verification.md` - Reference Verification report: `docs/linear-static-mitc4-shell/reference-comparison.md`
- Physics Evaluation report: `docs/physics-evaluations/linear-static-mitc4-shell-physics-evaluation.md` - Physics Evaluation report: `docs/linear-static-mitc4-shell/physics-evaluation.md`
- Declared reference pair: `reference/shell/shell.inp`, `reference/shell/shell displacements.csv` - Declared reference pair: `reference/shell/shell.inp`, `reference/shell/shell displacements.csv`
- Build-local deterministic ledger: `.harness/build/reference/mitc4-shell-s4-comparison/comparison.json` - Build-local deterministic ledger: `.harness/build/reference/mitc4-shell-s4-comparison/comparison.json`
@@ -282,7 +282,7 @@ The Release Agent did not run Abaqus. It independently read the complete upstrea
- publish_deploy_package_tag_commit_performed: `false` - publish_deploy_package_tag_commit_performed: `false`
- owned_report_created: `true` - owned_report_created: `true`
- pre_existing_untracked_reports_preserved: `true` - pre_existing_untracked_reports_preserved: `true`
- notes: before this report was created, the worktree had no tracked/staged diff and contained only the three upstream gate reports as untracked files. This audit adds only `docs/releases/linear-static-mitc4-shell-release.md`; generated build-local evidence remains ignored under `.harness/build/`. - notes: before this report was created, the worktree had no tracked/staged diff and contained only the three upstream gate reports as untracked files. This audit adds only `docs/linear-static-mitc4-shell/release.md`; generated build-local evidence remains ignored under `.harness/build/`.
## Open Issues ## Open Issues
@@ -9,7 +9,7 @@
- date: `2026-08-13` - date: `2026-08-13`
- approval_basis: 사용자와 확정한 선형 정적 범위, `S4`/`S4R` 매핑, 6자유도 외부 계약, drilling 안정화, 자동 director 생성, 결과 및 검증 계약 - approval_basis: 사용자와 확정한 선형 정적 범위, `S4`/`S4R` 매핑, 6자유도 외부 계약, drilling 안정화, 자동 director 생성, 결과 및 검증 계약
- current_product_state: `requirements-approved-not-implemented` - current_product_state: `requirements-approved-not-implemented`
- formulation_alignment: `docs/formulations/mitc4-shell-formulation.md`는 이 baseline의 6자유도 및 고정 drilling 안정화 계약과 정렬함 - formulation_alignment: `docs/linear-static-mitc4-shell/formulation.md`는 이 baseline의 6자유도 및 고정 drilling 안정화 계약과 정렬함
- reference_inventory_state: full-integration FESA-MITC4의 Abaqus acceptance comparison은 `reference/shell/`의 S4 input/displacement CSV만 기존 경로와 이름 그대로 사용함; S4R source support는 reference artifact 없이 mapping/kernel/HDF5 tests로 검증함 - reference_inventory_state: full-integration FESA-MITC4의 Abaqus acceptance comparison은 `reference/shell/`의 S4 input/displacement CSV만 기존 경로와 이름 그대로 사용함; S4R source support는 reference artifact 없이 mapping/kernel/HDF5 tests로 검증함
## Purpose ## Purpose
@@ -39,7 +39,7 @@ Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및
- `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`: end-to-end feature boundary, - `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`: end-to-end feature boundary,
ownership, linear-static lifecycle, deterministic assembly, HDF5, reference immutability 및 ownership, linear-static lifecycle, deterministic assembly, HDF5, reference immutability 및
failure atomicity failure atomicity
- `docs/formulations/mitc4-shell-formulation.md`: 후속 정렬이 필요한 선행 draft이며 이 - `docs/linear-static-mitc4-shell/formulation.md`: 후속 정렬이 필요한 선행 draft이며 이
approved requirements baseline을 변경하는 근거로 사용하지 않음 approved requirements baseline을 변경하는 근거로 사용하지 않음
## In Scope ## In Scope
@@ -250,7 +250,7 @@ and tangent derivation may remain in the formulation document.
### Formulation Agent ### Formulation Agent
- Revise `docs/formulations/mitc4-shell-formulation.md` to align with global 6-DOF input/output and a physical 5-DOF MITC4 kernel plus numerical drilling embedding. - Revise `docs/linear-static-mitc4-shell/formulation.md` to align with global 6-DOF input/output and a physical 5-DOF MITC4 kernel plus numerical drilling embedding.
- Keep current-product equations strictly linear static; retain geometric-nonlinear residual/tangent only as clearly separated future formulation. - Keep current-product equations strictly linear static; retain geometric-nonlinear residual/tangent only as clearly separated future formulation.
- Define local frames, transformations, generalized component order, quadrature/tying, stress/resultant recovery and consistent units/signs. - Define local frames, transformations, generalized component order, quadrature/tying, stress/resultant recovery and consistent units/signs.
- Do not introduce distributed-load product support or make `S4R` select reduced integration. - Do not introduce distributed-load product support or make `S4R` select reduced integration.
+2 -2
View File
@@ -3,7 +3,7 @@
## Metadata ## Metadata
- feature_id: `linear-static-mitc4-shell` - feature_id: `linear-static-mitc4-shell`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md` - source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- status: `approved` - status: `approved`
- owner_agent: `research-agent` - owner_agent: `research-agent`
- date: `2026-08-13` - date: `2026-08-13`
@@ -52,7 +52,7 @@ formulation-equivalent to Abaqus S4 or S4R.
| S12 | Abaqus, [LE3 Hemispherical Shell with Point Loads](https://docs.software.vt.edu/abaqusv2024/English/SIMACAEBMKRefMap/simabmk-c-le3.htm) and [The Pinched Cylinder Problem](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEBMKRefMap/simabmk-c-pinchcyl.htm) | Tier 1 | authoritative point-load-compatible curved-shell benchmark definitions, target displacements, S4/S4R convergence, and distorted-mesh evidence | official input decks contain semantics such as explicit normals or symmetry shorthand that require an approved FESA-subset adaptation | | S12 | Abaqus, [LE3 Hemispherical Shell with Point Loads](https://docs.software.vt.edu/abaqusv2024/English/SIMACAEBMKRefMap/simabmk-c-le3.htm) and [The Pinched Cylinder Problem](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEBMKRefMap/simabmk-c-pinchcyl.htm) | Tier 1 | authoritative point-load-compatible curved-shell benchmark definitions, target displacements, S4/S4R convergence, and distorted-mesh evidence | official input decks contain semantics such as explicit normals or symmetry shorthand that require an approved FESA-subset adaptation |
| S13 | Abaqus, [Shell Thickness and Section Points](https://docs.software.vt.edu/abaqusv2024/English/SIMACAEGSARefMap/simagsa-c-shlthick.htm) and [Whole and Partial Model Variables](https://docs.software.vt.edu/abaqusv2024/English/SIMACAEOUTRefMap/simaout-c-std-wholeandpartialmodelvariables.htm) | Tier 1 | bottom/middle/top linear-elastic stress recovery precedent and separate reporting of artificial energy that includes drill constraints | no drill-specific acceptable artificial-energy percentage is stated | | S13 | Abaqus, [Shell Thickness and Section Points](https://docs.software.vt.edu/abaqusv2024/English/SIMACAEGSARefMap/simagsa-c-shlthick.htm) and [Whole and Partial Model Variables](https://docs.software.vt.edu/abaqusv2024/English/SIMACAEOUTRefMap/simaout-c-std-wholeandpartialmodelvariables.htm) | Tier 1 | bottom/middle/top linear-elastic stress recovery precedent and separate reporting of artificial energy that includes drill constraints | no drill-specific acceptable artificial-energy percentage is stated |
| S14 | configured FEM wiki pages `[[MITC4 Shell Element]]`, `[[MITC Shell Kinematics]]`, `[[Assumed Transverse Shear Strain Interpolation]]`, `[[Shell Locking Phenomenon]]`, `[[Shell Element Benchmark Testing]]`, and `[[Scordelis-Lo Shell Benchmark]]` | Tier 3 synthesis | navigation between local raw sources; locking, tying, and benchmark terminology | key claims are cited to S1S13 rather than relying on the wiki alone | | S14 | configured FEM wiki pages `[[MITC4 Shell Element]]`, `[[MITC Shell Kinematics]]`, `[[Assumed Transverse Shear Strain Interpolation]]`, `[[Shell Locking Phenomenon]]`, `[[Shell Element Benchmark Testing]]`, and `[[Scordelis-Lo Shell Benchmark]]` | Tier 3 synthesis | navigation between local raw sources; locking, tying, and benchmark terminology | key claims are cited to S1S13 rather than relying on the wiki alone |
| P1 | `docs/requirements/linear-static-mitc4-shell.md`, `docs/PRD.md`, `docs/ARCHITECTURE.md`, and `docs/ADR.md` | Project contract | exact FESA scope, six-global-DOF interface, source identity, output, verification, lifecycle, and reference immutability | does not prove numerical correctness by itself | | P1 | `docs/linear-static-mitc4-shell/requirements.md`, `docs/PRD.md`, `docs/ARCHITECTURE.md`, and `docs/ADR.md` | Project contract | exact FESA scope, six-global-DOF interface, source identity, output, verification, lifecycle, and reference immutability | does not prove numerical correctness by itself |
The informal `docs/reference-papers/MITC4/MITC공부/` notes were used only as a The informal `docs/reference-papers/MITC4/MITC공부/` notes were used only as a
navigation aid. No key numerical decision relies on them. navigation aid. No key numerical decision relies on them.
@@ -64,9 +64,9 @@
### Task 3: Revise MITC4 requirements and formulation ### Task 3: Revise MITC4 requirements and formulation
**Files:** **Files:**
- Modify: `docs/requirements/linear-static-mitc4-shell.md` - Modify: `docs/linear-static-mitc4-shell/requirements.md`
- Modify: `docs/research/linear-static-mitc4-shell-research.md` - Modify: `docs/linear-static-mitc4-shell/research.md`
- Modify: `docs/formulations/mitc4-shell-formulation.md` - Modify: `docs/linear-static-mitc4-shell/formulation.md`
**Interfaces:** **Interfaces:**
- Consumes: Tasks 1-2 policy and approved fixed drilling rule - Consumes: Tasks 1-2 policy and approved fixed drilling rule
@@ -83,8 +83,8 @@
### Task 4: Revise MITC4 I/O and reference-case inventory ### Task 4: Revise MITC4 I/O and reference-case inventory
**Files:** **Files:**
- Modify: `docs/io-definitions/linear-static-mitc4-shell-io.md` - Modify: `docs/linear-static-mitc4-shell/io.md`
- Create: `docs/reference-models/linear-static-mitc4-shell-reference-models.md` - Create: `docs/linear-static-mitc4-shell/reference-model.md`
**Interfaces:** **Interfaces:**
- Consumes: Task 3 requirements/formulation - Consumes: Task 3 requirements/formulation
@@ -100,7 +100,7 @@
### Task 5: Rerun MITC4 numerical review under the approved policy ### Task 5: Rerun MITC4 numerical review under the approved policy
**Files:** **Files:**
- Modify: `docs/numerical-reviews/linear-static-mitc4-shell-review.md` - Modify: `docs/linear-static-mitc4-shell/numerical-review.md`
**Interfaces:** **Interfaces:**
- Consumes: Tasks 1-4 current source-of-truth documents - Consumes: Tasks 1-4 current source-of-truth documents
@@ -8,7 +8,7 @@
- approved_by: user - approved_by: user
- approved_on: `2026-08-08` - approved_on: `2026-08-08`
- amended_on: `2026-08-09` - amended_on: `2026-08-09`
- source_formulation: `docs/formulations/3d-isoparametric-euler-beam-formulation.md` - source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
- reference_baseline: `reference/cantilever beam/` from source commit `2b34d0b` - reference_baseline: `reference/cantilever beam/` from source commit `2b34d0b`
- implementation_environment: C++17, MSVC, CMake, CTest, GoogleTest, Intel oneMKL, Intel oneTBB, HDF5 - implementation_environment: C++17, MSVC, CMake, CTest, GoogleTest, Intel oneMKL, Intel oneTBB, HDF5
@@ -76,13 +76,13 @@ authoritative HDF5 파일 `results.h5`에 기록하는 FESA V0 파이프라인
| Step | Name | Primary output | | Step | Name | Primary output |
| ---: | --- | --- | | ---: | --- | --- |
| 0 | `requirements-baseline` | `docs/requirements/linear-static-3d-euler-beam.md` | | 0 | `requirements-baseline` | `docs/linear-static-3d-euler-beam/requirements.md` |
| 1 | `research-evidence` | `docs/research/linear-static-3d-euler-beam-research.md` | | 1 | `research-evidence` | `docs/linear-static-3d-euler-beam/research.md` |
| 2 | `formulation-alignment` | `docs/formulations/3d-isoparametric-euler-beam-formulation.md` | | 2 | `formulation-alignment` | `docs/linear-static-3d-euler-beam/formulation.md` |
| 3 | `numerical-review` | `docs/numerical-reviews/linear-static-3d-euler-beam-review.md` | | 3 | `numerical-review` | `docs/linear-static-3d-euler-beam/numerical-review.md` |
| 4 | `io-contract` | `docs/io-definitions/linear-static-3d-euler-beam-io.md` | | 4 | `io-contract` | `docs/linear-static-3d-euler-beam/io.md` |
| 5 | `reference-model-contract` | `docs/reference-models/linear-static-3d-euler-beam-reference-models.md` | | 5 | `reference-model-contract` | `docs/linear-static-3d-euler-beam/reference-model.md` |
| 6 | `implementation-plan` | `docs/implementation-plans/linear-static-3d-euler-beam.md` | | 6 | `implementation-plan` | `docs/linear-static-3d-euler-beam/implementation-plan.md` |
### 3.2 C++ TDD 구현 ### 3.2 C++ TDD 구현
@@ -111,10 +111,10 @@ authoritative HDF5 파일 `results.h5`에 기록하는 FESA V0 파이프라인
| Step | Name | Primary output | | Step | Name | Primary output |
| ---: | --- | --- | | ---: | --- | --- |
| 25 | `build-test-verification` | `docs/build-test-reports/linear-static-3d-euler-beam.md` | | 25 | `build-test-verification` | `docs/linear-static-3d-euler-beam/build-test.md` |
| 26 | `reference-verification` | `docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md` | | 26 | `reference-verification` | `docs/linear-static-3d-euler-beam/reference-comparison.md` |
| 27 | `physics-sanity` | `docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md` | | 27 | `physics-sanity` | `docs/linear-static-3d-euler-beam/physics-evaluation.md` |
| 28 | `release-readiness` | `docs/releases/linear-static-3d-euler-beam-release.md` | | 28 | `release-readiness` | `docs/linear-static-3d-euler-beam/release.md` |
## 4. 아키텍처와 소유권 ## 4. 아키텍처와 소유권
@@ -173,7 +173,7 @@ V0에서는 velocity, acceleration, temperature, iteration history를 할당하
### 4.5 요소 계약 ### 4.5 요소 계약
`EulerBeam3D` `EulerBeam3D`
`docs/formulations/3d-isoparametric-euler-beam-formulation.md`의 부호, DOF 순서, `docs/linear-static-3d-euler-beam/formulation.md`의 부호, DOF 순서,
2점 Gauss rule, transformation을 따른다. 구현 API는 다음 책임을 분리한다. 2점 Gauss rule, transformation을 따른다. 구현 API는 다음 책임을 분리한다.
```cpp ```cpp
+3 -3
View File
@@ -17,7 +17,7 @@
- `/docs/SOLVER_AGENT_DESIGN.md` - `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/requirements/README.md` - `/docs/requirements/README.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam.inp`
승인된 설계 문서의 `status: approved`와 2026-08-09 amendment를 이 step의 사용자 승인 승인된 설계 문서의 `status: approved`와 2026-08-09 amendment를 이 step의 사용자 승인
@@ -25,7 +25,7 @@
## 작업 ## 작업
`docs/requirements/linear-static-3d-euler-beam.md`를 생성하라. 문서는 다음 계약을 `docs/linear-static-3d-euler-beam/requirements.md`를 생성하라. 문서는 다음 계약을
downstream agent가 추측 없이 사용할 수 있는 `shall` 요구조건과 검증 행렬로 바꿔야 한다. downstream agent가 추측 없이 사용할 수 있는 `shall` 요구조건과 검증 행렬로 바꿔야 한다.
- Metadata: `feature_id: linear-static-3d-euler-beam`, `status: approved`, - Metadata: `feature_id: linear-static-3d-euler-beam`, `status: approved`,
@@ -56,7 +56,7 @@ downstream agent가 추측 없이 사용할 수 있는 `shall` 요구조건과
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/requirements/linear-static-3d-euler-beam.md' $path = 'docs/linear-static-3d-euler-beam/requirements.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @( $required = @(
'feature_id: `linear-static-3d-euler-beam`', 'feature_id: `linear-static-3d-euler-beam`',
+4 -4
View File
@@ -11,16 +11,16 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/SOLVER_AGENT_DESIGN.md` - `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/research/README.md` - `/docs/research/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
Step 0 산출물과 phase index의 완료 summary를 확인한 뒤 작업하라. Step 0 산출물과 phase index의 완료 summary를 확인한 뒤 작업하라.
## 작업 ## 작업
FEM wiki에서 다음 연구 질문을 query하고 FEM wiki에서 다음 연구 질문을 query하고
`docs/research/linear-static-3d-euler-beam-research.md`를 생성하라. `docs/linear-static-3d-euler-beam/research.md`를 생성하라.
- Abaqus B31과 B33의 formulation 차이 및 B33을 EulerBernoulli 의미로 사용하는 근거 - Abaqus B31과 B33의 formulation 차이 및 B33을 EulerBernoulli 의미로 사용하는 근거
- 2절점 spatial Euler beam의 cubic Hermite interpolation, 6 rigid modes, rank 6, - 2절점 spatial Euler beam의 cubic Hermite interpolation, 6 rigid modes, rank 6,
@@ -41,7 +41,7 @@ wiki page identity, 원 출처/매뉴얼 identity, reliability tier와 적용
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/research/linear-static-3d-euler-beam-research.md' $path = 'docs/linear-static-3d-euler-beam/research.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @( $required = @(
'status: `ready-for-formulation`', 'status: `ready-for-formulation`',
+4 -4
View File
@@ -11,9 +11,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/core/source_identity.hpp` - `/include/fesa/core/source_identity.hpp`
- `/include/fesa/core/status.hpp` - `/include/fesa/core/status.hpp`
- `/src/fesa/CMakeLists.txt` - `/src/fesa/CMakeLists.txt`
@@ -89,7 +89,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. Domain tests를 먼저 추가하고 compile/test RED를 확인한다. 1. Domain tests를 먼저 추가하고 compile/test RED를 확인한다.
2. 최소 semantic types와 immutable Domain ownership으로 GREEN을 만든다. 2. 최소 semantic types와 immutable Domain ownership으로 GREEN을 만든다.
3. full VERIFY와 public dependency direction을 확인한다. 3. full VERIFY와 public dependency direction을 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 10 section에 실제 RED/GREEN/VERIFY command, exit code, Step 10 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 10을 `completed`로 갱신하고 model types/stable identity를 summary에 기록한다. 5. Step 10을 `completed`로 갱신하고 model types/stable identity를 summary에 기록한다.
+3 -3
View File
@@ -11,8 +11,8 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/core/diagnostic.hpp` - `/include/fesa/core/diagnostic.hpp`
- `/include/fesa/core/status.hpp` - `/include/fesa/core/status.hpp`
- `/src/fesa/CMakeLists.txt` - `/src/fesa/CMakeLists.txt`
@@ -88,7 +88,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. syntax tests를 먼저 추가하고 reader 부재 RED를 확인한다. 1. syntax tests를 먼저 추가하고 reader 부재 RED를 확인한다.
2. semantic 판단이 없는 최소 reader로 GREEN을 만든다. 2. semantic 판단이 없는 최소 reader로 GREEN을 만든다.
3. legacy input을 read-only fixture로 읽고 전체 VERIFY를 수행한다. 3. legacy input을 read-only fixture로 읽고 전체 VERIFY를 수행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 11 section에 실제 RED/GREEN/VERIFY command, exit code, Step 11 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 11을 `completed`로 갱신하고 parsed syntax/source-location evidence를 summary에 기록한다. 5. Step 11을 `completed`로 갱신하고 parsed syntax/source-location evidence를 summary에 기록한다.
+5 -5
View File
@@ -11,10 +11,10 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/model/model_types.hpp` - `/include/fesa/model/model_types.hpp`
- `/include/fesa/model/domain.hpp` - `/include/fesa/model/domain.hpp`
- `/src/fesa/model/domain.cpp` - `/src/fesa/model/domain.cpp`
@@ -103,7 +103,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. semantic positive/negative tests를 production mapper보다 먼저 작성하고 RED를 확인한다. 1. semantic positive/negative tests를 production mapper보다 먼저 작성하고 RED를 확인한다.
2. 승인 subset에 필요한 최소 mapping/validation만 구현해 GREEN을 만든다. 2. 승인 subset에 필요한 최소 mapping/validation만 구현해 GREEN을 만든다.
3. diagnostic field/order와 Domain non-mutation을 점검하고 전체 VERIFY를 수행한다. 3. diagnostic field/order와 Domain non-mutation을 점검하고 전체 VERIFY를 수행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 12 section에 실제 RED/GREEN/VERIFY command, exit code, Step 12 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 12를 `completed`로 갱신하고 supported mapping/negative diagnostics를 summary에 기록한다. 5. Step 12를 `completed`로 갱신하고 supported mapping/negative diagnostics를 summary에 기록한다.
+3 -3
View File
@@ -10,8 +10,8 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/model/model_types.hpp` - `/include/fesa/model/model_types.hpp`
- `/include/fesa/model/domain.hpp` - `/include/fesa/model/domain.hpp`
- `/src/fesa/model/domain.cpp` - `/src/fesa/model/domain.cpp`
@@ -84,7 +84,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. active-view tests를 먼저 작성하고 missing class/behavior RED를 확인한다. 1. active-view tests를 먼저 작성하고 missing class/behavior RED를 확인한다.
2. stable ID view의 최소 구현으로 GREEN을 만든다. 2. stable ID view의 최소 구현으로 GREEN을 만든다.
3. Domain address/state 불변성과 전체 MSVC x64 Debug VERIFY를 확인한다. 3. Domain address/state 불변성과 전체 MSVC x64 Debug VERIFY를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 13 section에 실제 RED/GREEN/VERIFY command, exit code, Step 13 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 13을 `completed`로 바꾸고 active view/non-copy evidence를 summary에 기록한다. 5. Step 13을 `completed`로 바꾸고 active view/non-copy evidence를 summary에 기록한다.
+4 -4
View File
@@ -11,9 +11,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/model/domain.hpp` - `/include/fesa/model/domain.hpp`
- `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/analysis/analysis_model.hpp`
- `/src/fesa/analysis/analysis_model.cpp` - `/src/fesa/analysis/analysis_model.cpp`
@@ -91,7 +91,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. numbering/constraint/pattern tests를 먼저 작성하고 RED를 확인한다. 1. numbering/constraint/pattern tests를 먼저 작성하고 RED를 확인한다.
2. deterministic mapping에 필요한 최소 구현으로 GREEN을 만든다. 2. deterministic mapping에 필요한 최소 구현으로 GREEN을 만든다.
3. model objects에 equation ID가 추가되지 않았는지 review하고 full VERIFY를 수행한다. 3. model objects에 equation ID가 추가되지 않았는지 review하고 full VERIFY를 수행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 14 section에 실제 RED/GREEN/VERIFY command, exit code, Step 14 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 14를 `completed`로 갱신하고 numbering/pattern evidence를 summary에 기록한다. 5. Step 14를 `completed`로 갱신하고 numbering/pattern evidence를 summary에 기록한다.
+4 -4
View File
@@ -11,9 +11,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/math/vector.hpp` - `/include/fesa/math/vector.hpp`
- `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/analysis/analysis_model.hpp`
- `/include/fesa/fem/dof_manager.hpp` - `/include/fesa/fem/dof_manager.hpp`
@@ -90,7 +90,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. state ownership tests를 먼저 작성하고 RED를 확인한다. 1. state ownership tests를 먼저 작성하고 RED를 확인한다.
2. V0에서 필요한 field만 최소 구현해 GREEN을 만든다. 2. V0에서 필요한 field만 최소 구현해 GREEN을 만든다.
3. 전체 VERIFY와 output row identity/order를 확인한다. 3. 전체 VERIFY와 output row identity/order를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 15 section에 실제 RED/GREEN/VERIFY command, exit code, Step 15 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 15를 `completed`로 갱신하고 allocated fields/omitted fields를 summary에 기록한다. 5. Step 15를 `completed`로 갱신하고 allocated fields/omitted fields를 summary에 기록한다.
+7 -7
View File
@@ -10,16 +10,16 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/math/vector.hpp` - `/include/fesa/math/vector.hpp`
- `/include/fesa/math/matrix.hpp` - `/include/fesa/math/matrix.hpp`
- `/include/fesa/model/model_types.hpp` - `/include/fesa/model/model_types.hpp`
- `/include/fesa/results/result_records.hpp` - `/include/fesa/results/result_records.hpp`
- `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - `/docs/linear-static-3d-euler-beam/implementation-report.md`
## 소유 파일 ## 소유 파일
@@ -99,7 +99,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. formulation invariant/analytical tests를 먼저 작성해 RED를 확인한다. 1. formulation invariant/analytical tests를 먼저 작성해 RED를 확인한다.
2. 가장 작은 kernel 구현으로 GREEN을 만들고 normalized tolerance를 그대로 적용한다. 2. 가장 작은 kernel 구현으로 GREEN을 만들고 normalized tolerance를 그대로 적용한다.
3. 수식/코드 component ordering을 대조하고 전체 MSVC x64 Debug VERIFY를 수행한다. 3. 수식/코드 component ordering을 대조하고 전체 MSVC x64 Debug VERIFY를 수행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 16 section에 실제 RED/GREEN/VERIFY command, exit code, Step 16 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 16을 `completed`로 갱신하고 element/recovery test evidence를 summary에 기록한다. 5. Step 16을 `completed`로 갱신하고 element/recovery test evidence를 summary에 기록한다.
+2 -2
View File
@@ -11,7 +11,7 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/core/status.hpp` - `/include/fesa/core/status.hpp`
- `/include/fesa/elements/euler_beam_3d.hpp` - `/include/fesa/elements/euler_beam_3d.hpp`
- `/src/fesa/elements/euler_beam_3d.cpp` - `/src/fesa/elements/euler_beam_3d.cpp`
@@ -83,7 +83,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
1. adapter conformance tests를 먼저 작성하고 RED를 확인한다. 1. adapter conformance tests를 먼저 작성하고 RED를 확인한다.
2. Serial과 oneTBB 최소 구현으로 GREEN을 만든다. 2. Serial과 oneTBB 최소 구현으로 GREEN을 만든다.
3. public boundary scan과 전체 VERIFY를 실행한다. 3. public boundary scan과 전체 VERIFY를 실행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 17 section에 실제 RED/GREEN/VERIFY command, exit code, Step 17 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 17을 `completed`로 갱신하고 deterministic-use contract를 summary에 기록한다. 5. Step 17을 `completed`로 갱신하고 deterministic-use contract를 summary에 기록한다.
+3 -3
View File
@@ -11,8 +11,8 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/math/vector.hpp` - `/include/fesa/math/vector.hpp`
- `/include/fesa/math/matrix.hpp` - `/include/fesa/math/matrix.hpp`
- `/include/fesa/fem/dof_manager.hpp` - `/include/fesa/fem/dof_manager.hpp`
@@ -96,7 +96,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. CSR invariant/determinism tests를 먼저 작성하고 RED를 확인한다. 1. CSR invariant/determinism tests를 먼저 작성하고 RED를 확인한다.
2. ordered COO reduction과 CSR ownership의 최소 구현으로 GREEN을 만든다. 2. ordered COO reduction과 CSR ownership의 최소 구현으로 GREEN을 만든다.
3. repeated serial/TBB equivalence와 전체 VERIFY를 수행한다. 3. repeated serial/TBB equivalence와 전체 VERIFY를 수행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 18 section에 실제 RED/GREEN/VERIFY command, exit code, Step 18 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 18을 `completed`로 갱신하고 CSR/determinism evidence를 summary에 기록한다. 5. Step 18을 `completed`로 갱신하고 CSR/determinism evidence를 summary에 기록한다.
+4 -4
View File
@@ -11,9 +11,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/math/vector.hpp` - `/include/fesa/math/vector.hpp`
- `/include/fesa/math/sparse_matrix.hpp` - `/include/fesa/math/sparse_matrix.hpp`
- `/include/fesa/fem/dof_manager.hpp` - `/include/fesa/fem/dof_manager.hpp`
@@ -86,7 +86,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. partition/mapping tests를 먼저 추가하고 RED를 확인한다. 1. partition/mapping tests를 먼저 추가하고 RED를 확인한다.
2. elimination에 필요한 최소 block extraction으로 GREEN을 만든다. 2. elimination에 필요한 최소 block extraction으로 GREEN을 만든다.
3. nonzero `dc`와 전체 VERIFY를 확인한다. 3. nonzero `dc`와 전체 VERIFY를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 19 section에 실제 RED/GREEN/VERIFY command, exit code, Step 19 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 19를 `completed`로 갱신하고 partition/reconstruction evidence를 summary에 기록한다. 5. Step 19를 `completed`로 갱신하고 partition/reconstruction evidence를 summary에 기록한다.
+7 -7
View File
@@ -11,16 +11,16 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/SOLVER_AGENT_DESIGN.md` - `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/formulations/README.md` - `/docs/formulations/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/research/linear-static-3d-euler-beam-research.md` - `/docs/linear-static-3d-euler-beam/research.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
Step 01 산출물과 완료 summary를 확인하라. Step 01 산출물과 완료 summary를 확인하라.
## 작업 ## 작업
기존 `docs/formulations/3d-isoparametric-euler-beam-formulation.md`를 승인된 V0 요구조건과 기존 `docs/linear-static-3d-euler-beam/formulation.md`를 승인된 V0 요구조건과
연구 근거에 맞춰 정렬하라. 기존 정식화의 정확한 수학적 의미를 유지해야 하며, 이 연구 근거에 맞춰 정렬하라. 기존 정식화의 정확한 수학적 의미를 유지해야 하며, 이
step은 새 요소를 다시 설계하는 작업이 아니다. step은 새 요소를 다시 설계하는 작업이 아니다.
@@ -43,11 +43,11 @@ step은 새 요소를 다시 설계하는 작업이 아니다.
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/formulations/3d-isoparametric-euler-beam-formulation.md' $path = 'docs/linear-static-3d-euler-beam/formulation.md'
$required = @( $required = @(
'status: `ready-for-numerical-review`', 'status: `ready-for-numerical-review`',
'docs/requirements/linear-static-3d-euler-beam.md', 'docs/linear-static-3d-euler-beam/requirements.md',
'docs/research/linear-static-3d-euler-beam-research.md', 'docs/linear-static-3d-euler-beam/research.md',
'theta_y=-', 'theta_y=-',
'2점 Gauss', '2점 Gauss',
'equilibrium end action', 'equilibrium end action',
+3 -3
View File
@@ -11,8 +11,8 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/core/status.hpp` - `/include/fesa/core/status.hpp`
- `/include/fesa/core/diagnostic.hpp` - `/include/fesa/core/diagnostic.hpp`
- `/include/fesa/math/vector.hpp` - `/include/fesa/math/vector.hpp`
@@ -97,7 +97,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
1. adapter tests를 먼저 작성하고 missing solver RED를 확인한다. 1. adapter tests를 먼저 작성하고 missing solver RED를 확인한다.
2. factorize/solve phase를 분리한 최소 PARDISO adapter로 GREEN을 만든다. 2. factorize/solve phase를 분리한 최소 PARDISO adapter로 GREEN을 만든다.
3. repeated RHS, RAII, residual, public boundary와 전체 VERIFY를 확인한다. 3. repeated RHS, RAII, residual, public boundary와 전체 VERIFY를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 20 section에 실제 RED/GREEN/VERIFY command, exit code, Step 20 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 20을 `completed`로 갱신하고 factorization/substitution evidence를 summary에 기록한다. 5. Step 20을 `completed`로 갱신하고 factorization/substitution evidence를 summary에 기록한다.
+5 -5
View File
@@ -11,10 +11,10 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/analysis/analysis_model.hpp`
- `/include/fesa/fem/dof_manager.hpp` - `/include/fesa/fem/dof_manager.hpp`
- `/include/fesa/constraints/essential_constraints.hpp` - `/include/fesa/constraints/essential_constraints.hpp`
@@ -81,7 +81,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. nodal load/effective RHS tests를 먼저 작성하고 RED를 확인한다. 1. nodal load/effective RHS tests를 먼저 작성하고 RED를 확인한다.
2. nodal-only deterministic assembly와 RHS 최소 구현으로 GREEN을 만든다. 2. nodal-only deterministic assembly와 RHS 최소 구현으로 GREEN을 만든다.
3. nonzero prescribed displacement와 전체 VERIFY를 확인한다. 3. nonzero prescribed displacement와 전체 VERIFY를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 21 section에 실제 RED/GREEN/VERIFY command, exit code, Step 21 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 21을 `completed`로 갱신하고 load/RHS evidence를 summary에 기록한다. 5. Step 21을 `completed`로 갱신하고 load/RHS evidence를 summary에 기록한다.
+5 -5
View File
@@ -11,10 +11,10 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/analysis/analysis_model.hpp`
- `/include/fesa/analysis/analysis_state.hpp` - `/include/fesa/analysis/analysis_state.hpp`
- `/include/fesa/fem/dof_manager.hpp` - `/include/fesa/fem/dof_manager.hpp`
@@ -88,7 +88,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
1. reaction/recovery/sign/normalization tests를 먼저 작성하고 RED를 확인한다. 1. reaction/recovery/sign/normalization tests를 먼저 작성하고 RED를 확인한다.
2. residual 기반 최소 recovery 구현으로 GREEN을 만든다. 2. residual 기반 최소 recovery 구현으로 GREEN을 만든다.
3. formulation component ordering과 full VERIFY를 확인한다. 3. formulation component ordering과 full VERIFY를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 22 section에 실제 RED/GREEN/VERIFY command, exit code, Step 22 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 22를 `completed`로 갱신하고 recovered quantities/residual evidence를 summary에 기록한다. 5. Step 22를 `completed`로 갱신하고 recovered quantities/residual evidence를 summary에 기록한다.
+4 -4
View File
@@ -11,9 +11,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/core/diagnostic.hpp` - `/include/fesa/core/diagnostic.hpp`
- `/include/fesa/model/domain.hpp` - `/include/fesa/model/domain.hpp`
- `/include/fesa/analysis/analysis_state.hpp` - `/include/fesa/analysis/analysis_state.hpp`
@@ -113,7 +113,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
1. schema/atomicity tests를 먼저 작성하고 writer 부재 RED를 확인한다. 1. schema/atomicity tests를 먼저 작성하고 writer 부재 RED를 확인한다.
2. exact schema와 RAII/temporary finalization의 최소 구현으로 GREEN을 만든다. 2. exact schema와 RAII/temporary finalization의 최소 구현으로 GREEN을 만든다.
3. HDF5 inspection, failure cleanup, public boundary와 전체 VERIFY를 확인한다. 3. HDF5 inspection, failure cleanup, public boundary와 전체 VERIFY를 확인한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 23 section에 실제 RED/GREEN/VERIFY command, exit code, Step 23 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 23을 `completed`로 갱신하고 schema/atomicity evidence를 summary에 기록한다. 5. Step 23을 `completed`로 갱신하고 schema/atomicity evidence를 summary에 기록한다.
+6 -6
View File
@@ -11,11 +11,11 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - `/docs/linear-static-3d-euler-beam/reference-model.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/io/abaqus/input_reader.hpp` - `/include/fesa/io/abaqus/input_reader.hpp`
- `/include/fesa/io/abaqus/domain_mapper.hpp` - `/include/fesa/io/abaqus/domain_mapper.hpp`
- `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/analysis/analysis_model.hpp`
@@ -151,7 +151,7 @@ git diff --exit-code -- reference/
2. exact lifecycle과 minimal CLI/test utility로 targeted GREEN을 만든다. 2. exact lifecycle과 minimal CLI/test utility로 targeted GREEN을 만든다.
3. approved input end-to-end, comparison metrics, CTest discovery/full VERIFY를 실행한다. 3. approved input end-to-end, comparison metrics, CTest discovery/full VERIFY를 실행한다.
4. reference artifacts가 unchanged인지 확인한다. 4. reference artifacts가 unchanged인지 확인한다.
5. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 5. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 24 section에 실제 RED/GREEN/VERIFY command, exit code, Step 24 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output, 변경 파일과 generated HDF5/comparison evidence를 기록한다. 핵심 output, 변경 파일과 generated HDF5/comparison evidence를 기록한다.
6. Step 24를 `completed`로 갱신하고 CLI path, exit codes, generated HDF5/metrics와 6. Step 24를 `completed`로 갱신하고 CLI path, exit codes, generated HDF5/metrics와
+8 -8
View File
@@ -12,19 +12,19 @@
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/build-test-reports/README.md` - `/docs/build-test-reports/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - `/docs/linear-static-3d-euler-beam/implementation-report.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - `/docs/linear-static-3d-euler-beam/reference-model.md`
- `/CMakeLists.txt`와 모든 CMake/test registration - `/CMakeLists.txt`와 모든 CMake/test registration
- `/phases/linear-static-3d-euler-beam/index.json`의 Step 724 summary - `/phases/linear-static-3d-euler-beam/index.json`의 Step 724 summary
## 작업 ## 작업
fresh MSVC x64 Debug configure/build/test evidence를 수집해 fresh MSVC x64 Debug configure/build/test evidence를 수집해
`docs/build-test-reports/linear-static-3d-euler-beam.md`를 생성하라. `docs/linear-static-3d-euler-beam/build-test.md`를 생성하라.
- Metadata status는 모든 gate 통과 시 `pass-for-reference-verification`이다. - Metadata status는 모든 gate 통과 시 `pass-for-reference-verification`이다.
- Environment/dependency revision과 config-resolved command를 기록한다. - Environment/dependency revision과 config-resolved command를 기록한다.
@@ -56,7 +56,7 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
Report structural check: Report structural check:
```powershell ```powershell
$path = 'docs/build-test-reports/linear-static-3d-euler-beam.md' $path = 'docs/linear-static-3d-euler-beam/build-test.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @('status: `pass-for-reference-verification`', 'MSVC', 'x64', 'Debug', $required = @('status: `pass-for-reference-verification`', 'MSVC', 'x64', 'Debug',
'configure', 'build', 'show-only=json-v1', 'output-on-failure', 'exit code', 'duration') 'configure', 'build', 'show-only=json-v1', 'output-on-failure', 'exit code', 'duration')
+8 -8
View File
@@ -12,11 +12,11 @@
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/reference-verifications/README.md` - `/docs/reference-verifications/README.md`
- `/docs/build-test-reports/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/build-test.md`
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - `/docs/linear-static-3d-euler-beam/reference-model.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - `/docs/linear-static-3d-euler-beam/implementation-report.md`
- `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam.inp`
- `/reference/cantilever beam/cantilever beam displacements.csv` - `/reference/cantilever beam/cantilever beam displacements.csv`
- `/reference/cantilever beam/cantilever beam reactions.csv` - `/reference/cantilever beam/cantilever beam reactions.csv`
@@ -28,7 +28,7 @@
Build/Test report status가 `pass-for-reference-verification`인지 먼저 확인한다. 통과했다면 Build/Test report status가 `pass-for-reference-verification`인지 먼저 확인한다. 통과했다면
승인 input으로 solver output을 재생성하고, test-only comparison utility가 기록한 raw 승인 input으로 solver output을 재생성하고, test-only comparison utility가 기록한 raw
normalized rows/metrics를 독립 검토해 normalized rows/metrics를 독립 검토해
`docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md`를 작성하라. `docs/linear-static-3d-euler-beam/reference-comparison.md`를 작성하라.
Artifact check: Artifact check:
@@ -61,7 +61,7 @@ source/test/CMake/reference/tolerance가 모두 unchanged임을 기록한다.
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
if (-not (Select-String -LiteralPath 'docs/build-test-reports/linear-static-3d-euler-beam.md' ` if (-not (Select-String -LiteralPath 'docs/linear-static-3d-euler-beam/build-test.md' `
-SimpleMatch 'status: `pass-for-reference-verification`' -Quiet)) { -SimpleMatch 'status: `pass-for-reference-verification`' -Quiet)) {
throw 'Build/test gate is not passing' throw 'Build/test gate is not passing'
} }
@@ -74,7 +74,7 @@ git diff --exit-code -- reference/
``` ```
```powershell ```powershell
$path = 'docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md' $path = 'docs/linear-static-3d-euler-beam/reference-comparison.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @('status: `pass-for-physics-evaluation`', '## Artifact Inventory', $required = @('status: `pass-for-physics-evaluation`', '## Artifact Inventory',
'## Comparison Contract', '## Quantity Results', '## No-Change Assertion', '## Comparison Contract', '## Quantity Results', '## No-Change Assertion',
+9 -9
View File
@@ -12,12 +12,12 @@
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/physics-evaluations/README.md` - `/docs/physics-evaluations/README.md`
- `/docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md` - `/docs/linear-static-3d-euler-beam/reference-comparison.md`
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - `/docs/linear-static-3d-euler-beam/reference-model.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/.harness/build/reference/cantilever-beam-b33/results.h5` - `/.harness/build/reference/cantilever-beam-b33/results.h5`
- `/.harness/build/reference/cantilever-beam-b33/comparison.json` - `/.harness/build/reference/cantilever-beam-b33/comparison.json`
- `/reference/cantilever beam/`의 승인된 read-only artifact - `/reference/cantilever beam/`의 승인된 read-only artifact
@@ -25,7 +25,7 @@
## 작업 ## 작업
Reference Verification status가 `pass-for-physics-evaluation`인지 먼저 확인하고 Reference Verification status가 `pass-for-physics-evaluation`인지 먼저 확인하고
`docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md`를 생성하라. `docs/linear-static-3d-euler-beam/physics-evaluation.md`를 생성하라.
다음 physical check를 documented expectation과 observed HDF5/comparison evidence로 각각 다음 physical check를 documented expectation과 observed HDF5/comparison evidence로 각각
판정한다. 판정한다.
@@ -48,7 +48,7 @@ Stress는 Abaqus reference comparison 없이 schema/unit/analytical evidence로
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$referenceReport = 'docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md' $referenceReport = 'docs/linear-static-3d-euler-beam/reference-comparison.md'
if (-not (Select-String -LiteralPath $referenceReport ` if (-not (Select-String -LiteralPath $referenceReport `
-SimpleMatch 'status: `pass-for-physics-evaluation`' -Quiet)) { -SimpleMatch 'status: `pass-for-physics-evaluation`' -Quiet)) {
throw 'Reference verification gate is not passing' throw 'Reference verification gate is not passing'
@@ -60,7 +60,7 @@ git diff --exit-code -- reference/
``` ```
```powershell ```powershell
$path = 'docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md' $path = 'docs/linear-static-3d-euler-beam/physics-evaluation.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @('status: `pass-for-release-agent`', '## Input Evidence', '## Physics Checks', $required = @('status: `pass-for-release-agent`', '## Input Evidence', '## Physics Checks',
'global equilibrium', 'reaction consistency', 'displacement direction', 'global equilibrium', 'reaction consistency', 'displacement direction',
+16 -16
View File
@@ -13,23 +13,23 @@
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/releases/README.md` - `/docs/releases/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/research/linear-static-3d-euler-beam-research.md` - `/docs/linear-static-3d-euler-beam/research.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - `/docs/linear-static-3d-euler-beam/reference-model.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - `/docs/linear-static-3d-euler-beam/implementation-report.md`
- `/docs/build-test-reports/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/build-test.md`
- `/docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md` - `/docs/linear-static-3d-euler-beam/reference-comparison.md`
- `/docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md` - `/docs/linear-static-3d-euler-beam/physics-evaluation.md`
- `/phases/linear-static-3d-euler-beam/index.json`의 모든 completed summary - `/phases/linear-static-3d-euler-beam/index.json`의 모든 completed summary
## 작업 ## 작업
모든 gate evidence를 감사하고 모든 gate evidence를 감사하고
`docs/releases/linear-static-3d-euler-beam-release.md`를 생성하라. `docs/linear-static-3d-euler-beam/release.md`를 생성하라.
- 같은 feature ID, source design revision, implementation scope와 artifact identity가 모든 - 같은 feature ID, source design revision, implementation scope와 artifact identity가 모든
문서에서 일치하는지 확인한다. 문서에서 일치하는지 확인한다.
@@ -52,9 +52,9 @@
```powershell ```powershell
$gates = @{ $gates = @{
'docs/build-test-reports/linear-static-3d-euler-beam.md' = 'status: `pass-for-reference-verification`' 'docs/linear-static-3d-euler-beam/build-test.md' = 'status: `pass-for-reference-verification`'
'docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md' = 'status: `pass-for-physics-evaluation`' 'docs/linear-static-3d-euler-beam/reference-comparison.md' = 'status: `pass-for-physics-evaluation`'
'docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md' = 'status: `pass-for-release-agent`' 'docs/linear-static-3d-euler-beam/physics-evaluation.md' = 'status: `pass-for-release-agent`'
} }
foreach ($entry in $gates.GetEnumerator()) { foreach ($entry in $gates.GetEnumerator()) {
if (-not (Select-String -LiteralPath $entry.Key -SimpleMatch $entry.Value -Quiet)) { if (-not (Select-String -LiteralPath $entry.Key -SimpleMatch $entry.Value -Quiet)) {
@@ -68,7 +68,7 @@ if (($phase.steps | Where-Object { $_.step -lt 28 -and $_.status -ne 'completed'
``` ```
```powershell ```powershell
$path = 'docs/releases/linear-static-3d-euler-beam-release.md' $path = 'docs/linear-static-3d-euler-beam/release.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @('status: `ready-for-release`', '## Release Scope', '## Gate Evidence Inventory', $required = @('status: `ready-for-release`', '## Release Scope', '## Gate Evidence Inventory',
'## Acceptance Traceability', '## Validation Evidence', '## Known Limitations', '## Acceptance Traceability', '## Validation Evidence', '## Known Limitations',
+5 -5
View File
@@ -11,14 +11,14 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/SOLVER_AGENT_DESIGN.md` - `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/numerical-reviews/README.md` - `/docs/numerical-reviews/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/research/linear-static-3d-euler-beam-research.md` - `/docs/linear-static-3d-euler-beam/research.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
## 작업 ## 작업
`docs/numerical-reviews/linear-static-3d-euler-beam-review.md`를 생성해 구현 전 수치 `docs/linear-static-3d-euler-beam/numerical-review.md`를 생성해 구현 전 수치
검토를 수행하라. 검토를 수행하라.
- Metadata와 `Review Verdict`를 포함하고 통과 시 - Metadata와 `Review Verdict`를 포함하고 통과 시
@@ -41,7 +41,7 @@
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/numerical-reviews/linear-static-3d-euler-beam-review.md' $path = 'docs/linear-static-3d-euler-beam/numerical-review.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @( $required = @(
'status: `pass-for-implementation-planning`', 'status: `pass-for-implementation-planning`',
+5 -5
View File
@@ -11,9 +11,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/SOLVER_AGENT_DESIGN.md` - `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/io-definitions/README.md` - `/docs/io-definitions/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam.inp`
- `/reference/cantilever beam/cantilever beam displacements.csv` - `/reference/cantilever beam/cantilever beam displacements.csv`
@@ -22,7 +22,7 @@
## 작업 ## 작업
`docs/io-definitions/linear-static-3d-euler-beam-io.md`를 생성하라. Metadata status는 `docs/linear-static-3d-euler-beam/io.md`를 생성하라. Metadata status는
`ready-for-implementation-planning`으로 둔다. `ready-for-implementation-planning`으로 둔다.
- 지원 keyword별 위치, parameter, data grammar, case policy, source-location 보존, - 지원 keyword별 위치, parameter, data grammar, case policy, source-location 보존,
@@ -57,7 +57,7 @@
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/io-definitions/linear-static-3d-euler-beam-io.md' $path = 'docs/linear-static-3d-euler-beam/io.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @( $required = @(
'status: `ready-for-implementation-planning`', 'status: `ready-for-implementation-planning`',
+7 -7
View File
@@ -11,11 +11,11 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/SOLVER_AGENT_DESIGN.md` - `/docs/SOLVER_AGENT_DESIGN.md`
- `/docs/reference-models/README.md` - `/docs/reference-models/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/research/linear-static-3d-euler-beam-research.md` - `/docs/linear-static-3d-euler-beam/research.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam.inp`
- `/reference/cantilever beam/cantilever beam displacements.csv` - `/reference/cantilever beam/cantilever beam displacements.csv`
@@ -24,7 +24,7 @@
## 작업 ## 작업
`docs/reference-models/linear-static-3d-euler-beam-reference-models.md`를 생성하라. `docs/linear-static-3d-euler-beam/reference-model.md`를 생성하라.
Metadata status는 `ready-for-implementation-planning`으로 둔다. Metadata status는 `ready-for-implementation-planning`으로 둔다.
- code verification, analytical solution verification, B33 reference comparison을 분리한다. - code verification, analytical solution verification, B33 reference comparison을 분리한다.
@@ -48,7 +48,7 @@ Metadata status는 `ready-for-implementation-planning`으로 둔다.
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/reference-models/linear-static-3d-euler-beam-reference-models.md' $path = 'docs/linear-static-3d-euler-beam/reference-model.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$artifacts = @( $artifacts = @(
'reference/cantilever beam/cantilever beam.inp', 'reference/cantilever beam/cantilever beam.inp',
+8 -8
View File
@@ -13,18 +13,18 @@
- `/docs/implementation-plans/README.md` - `/docs/implementation-plans/README.md`
- `/docs/build-test-reports/README.md` - `/docs/build-test-reports/README.md`
- `/docs/corrections/README.md` - `/docs/corrections/README.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/research/linear-static-3d-euler-beam-research.md` - `/docs/linear-static-3d-euler-beam/research.md`
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md` - `/docs/linear-static-3d-euler-beam/formulation.md`
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md` - `/docs/linear-static-3d-euler-beam/numerical-review.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md` - `/docs/linear-static-3d-euler-beam/reference-model.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- `/phases/linear-static-3d-euler-beam/step7.md`부터 `/step24.md`까지 - `/phases/linear-static-3d-euler-beam/step7.md`부터 `/step24.md`까지
## 작업 ## 작업
`docs/implementation-plans/linear-static-3d-euler-beam.md`를 생성하라. 승인 설계가 이 `docs/linear-static-3d-euler-beam/implementation-plan.md`를 생성하라. 승인 설계가 이
경로를 명시하므로 README의 기본 suffix보다 이 경로를 우선한다. 경로를 명시하므로 README의 기본 suffix보다 이 경로를 우선한다.
- Metadata와 Readiness Check를 작성하고 upstream status가 모두 준비된 경우 - Metadata와 Readiness Check를 작성하고 upstream status가 모두 준비된 경우
@@ -49,7 +49,7 @@
## Acceptance Criteria ## Acceptance Criteria
```powershell ```powershell
$path = 'docs/implementation-plans/linear-static-3d-euler-beam.md' $path = 'docs/linear-static-3d-euler-beam/implementation-plan.md'
if (-not (Test-Path $path)) { throw "Missing $path" } if (-not (Test-Path $path)) { throw "Missing $path" }
$required = @( $required = @(
'status: `ready-for-implementation`', 'status: `ready-for-implementation`',
+4 -4
View File
@@ -11,7 +11,7 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` - `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
- `/docs/HARNESS_WORKFLOW.md` - `/docs/HARNESS_WORKFLOW.md`
- `/docs/HARNESS.md` - `/docs/HARNESS.md`
@@ -26,7 +26,7 @@
- Create: `/src/fesa/CMakeLists.txt` - Create: `/src/fesa/CMakeLists.txt`
- Create: `/tests/CMakeLists.txt` - Create: `/tests/CMakeLists.txt`
- Create: `/tests/unit/build_info_test.cpp` - Create: `/tests/unit/build_info_test.cpp`
- Create: `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` - Create: `/docs/linear-static-3d-euler-beam/implementation-report.md`
## 작업 ## 작업
@@ -44,7 +44,7 @@ MSVC x64 Debug에서 이후 모든 C++ step을 TDD로 실행할 최소 build/tes
- `tests/CMakeLists.txt`, `tests/unit/build_info_test.cpp`: GoogleTest 연결, - `tests/CMakeLists.txt`, `tests/unit/build_info_test.cpp`: GoogleTest 연결,
`gtest_discover_tests`, `BuildInfo` regex와 공통 `linear-static-3d-euler-beam` label을 가진 `gtest_discover_tests`, `BuildInfo` regex와 공통 `linear-static-3d-euler-beam` label을 가진
최소 제품 test. 이후 이 phase의 모든 CTest는 같은 공통 label을 상속한다. 최소 제품 test. 이후 이 phase의 모든 CTest는 같은 공통 label을 상속한다.
- `docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`: - `docs/linear-static-3d-euler-beam/implementation-report.md`:
feature metadata, dependency/configure evidence와 Step 724별 RED/GREEN/VERIFY command, feature metadata, dependency/configure evidence와 Step 724별 RED/GREEN/VERIFY command,
exit code, 핵심 output, 변경 파일, requirement/test trace를 누적할 implementation report. exit code, 핵심 output, 변경 파일, requirement/test trace를 누적할 implementation report.
@@ -77,7 +77,7 @@ ctest --test-dir .harness/build -C Debug -R BuildInfo --output-on-failure
$discovery = ctest --test-dir .harness/build -C Debug --show-only=json-v1 | ConvertFrom-Json $discovery = ctest --test-dir .harness/build -C Debug --show-only=json-v1 | ConvertFrom-Json
if ($discovery.tests.Count -lt 1) { throw 'CTest discovered zero tests' } if ($discovery.tests.Count -lt 1) { throw 'CTest discovered zero tests' }
ctest --test-dir .harness/build -C Debug --output-on-failure ctest --test-dir .harness/build -C Debug --output-on-failure
if (-not (Test-Path 'docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md')) { if (-not (Test-Path 'docs/linear-static-3d-euler-beam/implementation-report.md')) {
throw 'Missing implementation evidence report' throw 'Missing implementation evidence report'
} }
``` ```
+4 -4
View File
@@ -10,9 +10,9 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md` - `/docs/linear-static-3d-euler-beam/io.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/build_info.hpp` - `/include/fesa/build_info.hpp`
- `/src/fesa/CMakeLists.txt` - `/src/fesa/CMakeLists.txt`
- `/tests/CMakeLists.txt` - `/tests/CMakeLists.txt`
@@ -97,7 +97,7 @@ deterministic ordering을 검증해야 한다.
1. GoogleTest를 먼저 추가하고 targeted RED를 관찰한다. 1. GoogleTest를 먼저 추가하고 targeted RED를 관찰한다.
2. 최소 production 구현으로 targeted GREEN을 만든다. 2. 최소 production 구현으로 targeted GREEN을 만든다.
3. 전체 MSVC x64 Debug build/CTest VERIFY를 실행한다. 3. 전체 MSVC x64 Debug build/CTest VERIFY를 실행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 8 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. Step 8 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다.
5. public header dependency를 검토하고 Step 8에 `completed`와 RED/GREEN/VERIFY 요약을 기록한다. 5. public header dependency를 검토하고 Step 8에 `completed`와 RED/GREEN/VERIFY 요약을 기록한다.
+3 -3
View File
@@ -10,8 +10,8 @@
- `/AGENTS.md` - `/AGENTS.md`
- `/docs/ARCHITECTURE.md` - `/docs/ARCHITECTURE.md`
- `/docs/ADR.md` - `/docs/ADR.md`
- `/docs/requirements/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/requirements.md`
- `/docs/implementation-plans/linear-static-3d-euler-beam.md` - `/docs/linear-static-3d-euler-beam/implementation-plan.md`
- `/include/fesa/core/status.hpp` - `/include/fesa/core/status.hpp`
- `/src/fesa/CMakeLists.txt` - `/src/fesa/CMakeLists.txt`
- `/tests/CMakeLists.txt` - `/tests/CMakeLists.txt`
@@ -100,7 +100,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
1. `vector_test.cpp`, `matrix_test.cpp`를 먼저 작성하고 missing behavior RED를 확인한다. 1. `vector_test.cpp`, `matrix_test.cpp`를 먼저 작성하고 missing behavior RED를 확인한다.
2. 최소 adapter/ownership 구현으로 GREEN을 만든다. 2. 최소 adapter/ownership 구현으로 GREEN을 만든다.
3. 전체 MSVC x64 Debug VERIFY와 public-header dependency scan을 실행한다. 3. 전체 MSVC x64 Debug VERIFY와 public-header dependency scan을 실행한다.
4. `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md` 4. `/docs/linear-static-3d-euler-beam/implementation-report.md`
Step 9 section에 실제 RED/GREEN/VERIFY command, exit code, Step 9 section에 실제 RED/GREEN/VERIFY command, exit code,
핵심 output과 변경 파일을 기록한다. 핵심 output과 변경 파일을 기록한다.
5. Step 9를 `completed`로 바꾸고 operations/test evidence를 summary에 기록한다. 5. Step 9를 `completed`로 바꾸고 operations/test evidence를 summary에 기록한다.
+7 -7
View File
@@ -17,13 +17,13 @@
- `/docs/HARNESS.md` - `/docs/HARNESS.md`
- `/docs/HARNESS_WORKFLOW.md` - `/docs/HARNESS_WORKFLOW.md`
- `/.codex/hooks.json` - `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` - `/docs/linear-static-mitc4-shell/requirements.md`
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` - `/docs/linear-static-mitc4-shell/io.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- `/phases/index.json` - `/phases/index.json`
- `/phases/linear-static-mitc4-shell/index.json` - `/phases/linear-static-mitc4-shell/index.json`
- `/phases/linear-static-mitc4-shell/step0.md` - `/phases/linear-static-mitc4-shell/step0.md`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 001-010, 017-023 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 001-010, 017-023
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Sections 1-5, 8-9 - `/docs/linear-static-mitc4-shell/io.md` Sections 1-5, 8-9
- `/phases/index.json`, task index, `/phases/linear-static-mitc4-shell/step1.md` - `/phases/index.json`, task index, `/phases/linear-static-mitc4-shell/step1.md`
- Step 0에서 수정한 model/Domain paths와 Step 0 summary - Step 0에서 수정한 model/Domain paths와 Step 0 summary
- `/include/fesa/io/abaqus/domain_mapper.hpp` - `/include/fesa/io/abaqus/domain_mapper.hpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 029/035/041-046/048/057 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 029/035/041-046/048/057
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` Sections 14, 16 - `/docs/linear-static-mitc4-shell/formulation.md` Sections 14, 16
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Sections 6.3-6.5 - `/docs/linear-static-mitc4-shell/io.md` Sections 6.3-6.5
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step10.md`, completed Steps 5/9 paths and summaries - phase indexes, `step10.md`, completed Steps 5/9 paths and summaries
- `/include/fesa/results/result_recovery.hpp` - `/include/fesa/results/result_recovery.hpp`
- `/src/fesa/results/result_recovery.cpp` - `/src/fesa/results/result_recovery.cpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 039-048 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 039-048
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Section 6 exact schema - `/docs/linear-static-mitc4-shell/io.md` Section 6 exact schema
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step11.md`, completed Steps 9/10 paths and summaries - phase indexes, `step11.md`, completed Steps 9/10 paths and summaries
- `/include/fesa/results/results_writer.hpp` - `/include/fesa/results/results_writer.hpp`
- `/include/fesa/io/hdf5/hdf5_results_writer.hpp` - `/include/fesa/io/hdf5/hdf5_results_writer.hpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 024-030/051/057 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 024-030/051/057
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` CLI/diagnostic contract - `/docs/linear-static-mitc4-shell/io.md` CLI/diagnostic contract
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step12.md`, completed Steps 7-11 paths and summaries - phase indexes, `step12.md`, completed Steps 7-11 paths and summaries
- `/include/fesa/analysis/linear_static_analysis.hpp` - `/include/fesa/analysis/linear_static_analysis.hpp`
- `/src/fesa/analysis/linear_static_analysis.cpp` - `/src/fesa/analysis/linear_static_analysis.cpp`
+7 -7
View File
@@ -11,13 +11,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 053/058-072 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 053/058-072
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Section 7 - `/docs/linear-static-mitc4-shell/io.md` Section 7
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step13.md`, completed Steps 11/12 paths and summaries - phase indexes, `step13.md`, completed Steps 11/12 paths and summaries
- `/tests/reference/reference_comparison.hpp`와 cpp/test는 B33 identity/report precedent - `/tests/reference/reference_comparison.hpp`와 cpp/test는 B33 identity/report precedent
- Candidate new `/tests/reference/mitc4_reference_comparison.hpp` - Candidate new `/tests/reference/mitc4_reference_comparison.hpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 011-016/050/051/054 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 011-016/050/051/054
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` Sections 4, 9, 17 - `/docs/linear-static-mitc4-shell/formulation.md` Sections 4, 9, 17
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` Sections 5.2, 5.5, 6.1 - `/docs/linear-static-mitc4-shell/numerical-review.md` Sections 5.2, 5.5, 6.1
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Sections 3.3, 8-9 - `/docs/linear-static-mitc4-shell/io.md` Sections 3.3, 8-9
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step2.md`, Step 0-1 modified paths/summaries - phase indexes, `step2.md`, Step 0-1 modified paths/summaries
- Candidate new `/include/fesa/model/shell_geometry.hpp` - Candidate new `/include/fesa/model/shell_geometry.hpp`
- Candidate new `/src/fesa/model/shell_geometry.cpp` - Candidate new `/src/fesa/model/shell_geometry.cpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 031-038/050-052 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 031-038/050-052
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` Sections 3-11, 17 - `/docs/linear-static-mitc4-shell/formulation.md` Sections 3-11, 17
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` Sections 5.1-5.6, 6.1-6.2 - `/docs/linear-static-mitc4-shell/numerical-review.md` Sections 5.1-5.6, 6.1-6.2
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` - `/docs/linear-static-mitc4-shell/io.md`
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step3.md`, Step 2 geometry paths/summary - phase indexes, `step3.md`, Step 2 geometry paths/summary
- `/include/fesa/elements/euler_beam_3d.hpp`와 cpp는 concrete value-kernel style 참고용 - `/include/fesa/elements/euler_beam_3d.hpp`와 cpp는 concrete value-kernel style 참고용
- Candidate new `/include/fesa/elements/mitc4_shell.hpp` - Candidate new `/include/fesa/elements/mitc4_shell.hpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 031-038/050-056 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 031-038/050-056
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` Sections 10-14, 17 - `/docs/linear-static-mitc4-shell/formulation.md` Sections 10-14, 17
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` Sections 5.7, 6.1-6.2 - `/docs/linear-static-mitc4-shell/numerical-review.md` Sections 5.7, 6.1-6.2
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` - `/docs/linear-static-mitc4-shell/io.md`
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step4.md`, completed Step 3 kernel/header/test and summary - phase indexes, `step4.md`, completed Step 3 kernel/header/test and summary
## 작업 ## 작업
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 035/042-046/052/056 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 035/042-046/052/056
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` Sections 14, 16 - `/docs/linear-static-mitc4-shell/formulation.md` Sections 14, 16
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` result component/location order - `/docs/linear-static-mitc4-shell/io.md` result component/location order
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step5.md`, completed Steps 3-4 kernel/header/test and summaries - phase indexes, `step5.md`, completed Steps 3-4 kernel/header/test and summaries
## 작업 ## 작업
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 005/025 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 005/025
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` - `/docs/linear-static-mitc4-shell/io.md`
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step6.md`, Step 0 shell model and Step 5 summary - phase indexes, `step6.md`, Step 0 shell model and Step 5 summary
- `/include/fesa/fem/dof_manager.hpp`, `/src/fesa/fem/dof_manager.cpp` - `/include/fesa/fem/dof_manager.hpp`, `/src/fesa/fem/dof_manager.cpp`
- `/tests/unit/fem/dof_manager_test.cpp` - `/tests/unit/fem/dof_manager_test.cpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 027/030/037/050/056 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 027/030/037/050/056
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` - `/docs/linear-static-mitc4-shell/io.md`
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step7.md`, completed Steps 4/6 paths and summaries - phase indexes, `step7.md`, completed Steps 4/6 paths and summaries
- `/include/fesa/assembly/sparse_assembler.hpp` - `/include/fesa/assembly/sparse_assembler.hpp`
- `/src/fesa/assembly/sparse_assembler.cpp` - `/src/fesa/assembly/sparse_assembler.cpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 017-020/028 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 017-020/028
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` Sections 8, 13 - `/docs/linear-static-mitc4-shell/formulation.md` Sections 8, 13
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Sections 4.2-4.3 - `/docs/linear-static-mitc4-shell/io.md` Sections 4.2-4.3
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step8.md`, completed Steps 2/7 paths and summaries - phase indexes, `step8.md`, completed Steps 2/7 paths and summaries
- `/include/fesa/assembly/load_assembler.hpp` - `/include/fesa/assembly/load_assembler.hpp`
- `/src/fesa/assembly/load_assembler.cpp` - `/src/fesa/assembly/load_assembler.cpp`
+7 -7
View File
@@ -10,13 +10,13 @@
- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` - `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md`
- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` - `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json`
- `/docs/implementation-plans/linear-static-mitc4-shell-implementation-plan.md` - `/docs/linear-static-mitc4-shell/implementation-plan.md`
- `/docs/requirements/linear-static-mitc4-shell.md` Requirements 026/041-046/048 - `/docs/linear-static-mitc4-shell/requirements.md` Requirements 026/041-046/048
- `/docs/research/linear-static-mitc4-shell-research.md` - `/docs/linear-static-mitc4-shell/research.md`
- `/docs/formulations/mitc4-shell-formulation.md` - `/docs/linear-static-mitc4-shell/formulation.md`
- `/docs/numerical-reviews/linear-static-mitc4-shell-review.md` - `/docs/linear-static-mitc4-shell/numerical-review.md`
- `/docs/io-definitions/linear-static-mitc4-shell-io.md` Sections 6.3-6.5 - `/docs/linear-static-mitc4-shell/io.md` Sections 6.3-6.5
- `/docs/reference-models/linear-static-mitc4-shell-reference-models.md` - `/docs/linear-static-mitc4-shell/reference-model.md`
- phase indexes, `step9.md`, Step 5 recovery types and Step 8 summary - phase indexes, `step9.md`, Step 5 recovery types and Step 8 summary
- `/include/fesa/results/result_records.hpp` - `/include/fesa/results/result_records.hpp`
- `/include/fesa/analysis/analysis_state.hpp` - `/include/fesa/analysis/analysis_state.hpp`