docs: remove retired workflow instructions and repair references
This commit is contained in:
@@ -1,23 +1,19 @@
|
||||
# Step 0: Requirements Baseline
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `requirement-agent`
|
||||
- 필수 스킬: `fesa-requirements-baseline`
|
||||
- 작업을 시작하기 전에 위 스킬의 `SKILL.md`를 끝까지 읽고 경계를 준수하라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
먼저 아래 파일을 읽고 승인된 범위와 프로젝트 규칙을 파악하라.
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-requirements-baseline/SKILL.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/reference/cantilever beam/cantilever beam.inp`
|
||||
|
||||
승인된 설계 문서의 `status: approved`와 2026-08-09 amendment를 이 step의 사용자 승인
|
||||
@@ -25,7 +21,7 @@
|
||||
|
||||
## 작업
|
||||
|
||||
`docs/linear-static-3d-euler-beam/requirements.md`를 생성하라. 문서는 다음 계약을
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. 문서는 다음 계약을
|
||||
downstream agent가 추측 없이 사용할 수 있는 `shall` 요구조건과 검증 행렬로 바꿔야 한다.
|
||||
|
||||
- Metadata: `feature_id: linear-static-3d-euler-beam`, `status: approved`,
|
||||
|
||||
@@ -1,26 +1,22 @@
|
||||
# Step 1: Research Evidence
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `research-agent`
|
||||
- 필수 스킬: `fesa-research-evidence`, `fem-theory-query`
|
||||
- 두 스킬의 `SKILL.md`를 끝까지 읽고, FEM wiki query를 우선 사용하라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-research-evidence/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
|
||||
Step 0 산출물과 phase index의 완료 summary를 확인한 뒤 작업하라.
|
||||
|
||||
## 작업
|
||||
|
||||
FEM wiki에서 다음 연구 질문을 query하고
|
||||
`docs/linear-static-3d-euler-beam/research.md`를 생성하라.
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라.
|
||||
|
||||
- Abaqus B31과 B33의 formulation 차이 및 B33을 Euler–Bernoulli 의미로 사용하는 근거
|
||||
- 2절점 spatial Euler beam의 cubic Hermite interpolation, 6 rigid modes, rank 6,
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
# Step 10: Domain Model
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/core/source_identity.hpp`
|
||||
- `/include/fesa/core/status.hpp`
|
||||
- `/src/fesa/CMakeLists.txt`
|
||||
@@ -67,29 +64,16 @@ insertion order/index, deep ownership, const access, one static step storage, eq
|
||||
|
||||
RED targeted command 후 최소 구현으로 GREEN을 만든다.
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. Domain tests를 먼저 추가하고 compile/test RED를 확인한다.
|
||||
2. 최소 semantic types와 immutable Domain ownership으로 GREEN을 만든다.
|
||||
3. full VERIFY와 public dependency direction을 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 10 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 10을 `completed`로 갱신하고 model types/stable identity를 summary에 기록한다.
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
# Step 11: Abaqus INP Syntax Parser
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/core/diagnostic.hpp`
|
||||
- `/include/fesa/core/status.hpp`
|
||||
- `/src/fesa/CMakeLists.txt`
|
||||
@@ -64,31 +61,18 @@ malformed syntax, legacy cantilever syntax parse를 포함하고 `InpSyntax` reg
|
||||
|
||||
RED targeted command:
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R InpSyntax --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R InpSyntax --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. syntax tests를 먼저 추가하고 reader 부재 RED를 확인한다.
|
||||
2. semantic 판단이 없는 최소 reader로 GREEN을 만든다.
|
||||
3. legacy input을 read-only fixture로 읽고 전체 VERIFY를 수행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 11 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 11을 `completed`로 갱신하고 parsed syntax/source-location evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
# Step 12: INP to Domain Mapping
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/model/model_types.hpp`
|
||||
- `/include/fesa/model/domain.hpp`
|
||||
- `/src/fesa/model/domain.cpp`
|
||||
@@ -79,31 +76,18 @@ duplicate/dangling/invalid numeric와 approved legacy input mapping을 포함하
|
||||
|
||||
RED targeted command:
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R InpDomainMapping --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R InpDomainMapping --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. semantic positive/negative tests를 production mapper보다 먼저 작성하고 RED를 확인한다.
|
||||
2. 승인 subset에 필요한 최소 mapping/validation만 구현해 GREEN을 만든다.
|
||||
3. diagnostic field/order와 Domain non-mutation을 점검하고 전체 VERIFY를 수행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 12 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 12를 `completed`로 갱신하고 supported mapping/negative diagnostics를 summary에 기록한다.
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
# Step 13: AnalysisModel Active View
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/model/model_types.hpp`
|
||||
- `/include/fesa/model/domain.hpp`
|
||||
- `/src/fesa/model/domain.cpp`
|
||||
@@ -60,31 +58,18 @@ Domain 불변성, missing/multiple step rejection을 포함하고 `AnalysisModel
|
||||
|
||||
RED targeted command:
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R AnalysisModel --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R AnalysisModel --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. active-view tests를 먼저 작성하고 missing class/behavior RED를 확인한다.
|
||||
2. stable ID view의 최소 구현으로 GREEN을 만든다.
|
||||
3. Domain address/state 불변성과 전체 MSVC x64 Debug VERIFY를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 13 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 13을 `completed`로 바꾸고 active view/non-copy evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
# Step 14: DofManager
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/model/domain.hpp`
|
||||
- `/include/fesa/analysis/analysis_model.hpp`
|
||||
- `/src/fesa/analysis/analysis_model.cpp`
|
||||
@@ -67,31 +64,18 @@ round-trip를 포함하고 `DofManager` regex로 등록한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R DofManager --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
위 command의 RED를 확인한 뒤 구현하고 다음 GREEN/VERIFY를 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R DofManager --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. numbering/constraint/pattern tests를 먼저 작성하고 RED를 확인한다.
|
||||
2. deterministic mapping에 필요한 최소 구현으로 GREEN을 만든다.
|
||||
3. model objects에 equation ID가 추가되지 않았는지 review하고 full VERIFY를 수행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 14 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 14를 `completed`로 갱신하고 numbering/pattern evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
# Step 15: AnalysisState
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/math/vector.hpp`
|
||||
- `/include/fesa/analysis/analysis_model.hpp`
|
||||
- `/include/fesa/fem/dof_manager.hpp`
|
||||
@@ -66,31 +63,18 @@ copy/move policy, forbidden-state API 부재 review를 포함하고 `AnalysisSta
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R AnalysisState --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R AnalysisState --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. state ownership tests를 먼저 작성하고 RED를 확인한다.
|
||||
2. V0에서 필요한 field만 최소 구현해 GREEN을 만든다.
|
||||
3. 전체 VERIFY와 output row identity/order를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 15 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 15를 `completed`로 갱신하고 allocated fields/omitted fields를 summary에 기록한다.
|
||||
|
||||
@@ -1,25 +1,23 @@
|
||||
# Step 16: 3D Euler Beam Element
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/math/vector.hpp`
|
||||
- `/include/fesa/math/matrix.hpp`
|
||||
- `/include/fesa/model/model_types.hpp`
|
||||
- `/include/fesa/results/result_records.hpp`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-report.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
|
||||
## 소유 파일
|
||||
|
||||
@@ -75,31 +73,18 @@ stress formula를 포함하고 `EulerBeam3D` regex로 등록한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R EulerBeam3D --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R EulerBeam3D --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. formulation invariant/analytical tests를 먼저 작성해 RED를 확인한다.
|
||||
2. 가장 작은 kernel 구현으로 GREEN을 만들고 normalized tolerance를 그대로 적용한다.
|
||||
3. 수식/코드 component ordering을 대조하고 전체 MSVC x64 Debug VERIFY를 수행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 16 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 16을 `completed`로 갱신하고 element/recovery test evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
# Step 17: oneTBB ParallelFor Adapter
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/core/status.hpp`
|
||||
- `/include/fesa/elements/euler_beam_3d.hpp`
|
||||
- `/src/fesa/elements/euler_beam_3d.cpp`
|
||||
@@ -54,27 +51,11 @@ index-addressed output, exception propagation policy를 검증하고 `ParallelFo
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R ParallelFor --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R ParallelFor --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
$leaks = rg -n "oneapi/tbb|tbb/" include/fesa
|
||||
if ($LASTEXITCODE -eq 0) { throw "oneTBB API leaked into public headers:`n$leaks" }
|
||||
if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
마지막 scan은 public header에서 no-match여야 한다.
|
||||
|
||||
@@ -83,7 +64,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
1. adapter conformance tests를 먼저 작성하고 RED를 확인한다.
|
||||
2. Serial과 oneTBB 최소 구현으로 GREEN을 만든다.
|
||||
3. public boundary scan과 전체 VERIFY를 실행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 17 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 17을 `completed`로 갱신하고 deterministic-use contract를 summary에 기록한다.
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
# Step 18: Deterministic Sparse Assembly
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/math/vector.hpp`
|
||||
- `/include/fesa/math/matrix.hpp`
|
||||
- `/include/fesa/fem/dof_manager.hpp`
|
||||
@@ -72,31 +69,18 @@ serial-vs-TBB byte-identical row/column/value vectors, repeated runs를 포함
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R SparseAssembly --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R SparseAssembly --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. CSR invariant/determinism tests를 먼저 작성하고 RED를 확인한다.
|
||||
2. ordered COO reduction과 CSR ownership의 최소 구현으로 GREEN을 만든다.
|
||||
3. repeated serial/TBB equivalence와 전체 VERIFY를 수행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 18 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 18을 `completed`로 갱신하고 CSR/determinism evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
# Step 19: Essential Constraints and Matrix Partition
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/math/vector.hpp`
|
||||
- `/include/fesa/math/sparse_matrix.hpp`
|
||||
- `/include/fesa/fem/dof_manager.hpp`
|
||||
@@ -62,31 +59,18 @@ full-free-constrained round trip, invalid dimensions/order를 검증하고
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R EssentialConstraints --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R EssentialConstraints --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. partition/mapping tests를 먼저 추가하고 RED를 확인한다.
|
||||
2. elimination에 필요한 최소 block extraction으로 GREEN을 만든다.
|
||||
3. nonzero `dc`와 전체 VERIFY를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 19 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 19를 `completed`로 갱신하고 partition/reconstruction evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,26 +1,22 @@
|
||||
# Step 2: Formulation Alignment
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `formulation-agent`
|
||||
- 필수 스킬: `fesa-formulation-spec`
|
||||
- 스킬의 `SKILL.md`를 끝까지 읽고 수학 계약과 구현 계약의 경계를 지켜라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-formulation-spec/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/research.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
|
||||
Step 0–1 산출물과 완료 summary를 확인하라.
|
||||
|
||||
## 작업
|
||||
|
||||
기존 `docs/linear-static-3d-euler-beam/formulation.md`를 승인된 V0 요구조건과
|
||||
기존 `../../docs/linear-static-3d-euler-beam/formulation.md`를 승인된 V0 요구조건과
|
||||
연구 근거에 맞춰 정렬하라. 기존 정식화의 정확한 수학적 의미를 유지해야 하며, 이
|
||||
step은 새 요소를 다시 설계하는 작업이 아니다.
|
||||
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
# Step 20: MKL PARDISO Linear Solver
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/core/status.hpp`
|
||||
- `/include/fesa/core/diagnostic.hpp`
|
||||
- `/include/fesa/math/vector.hpp`
|
||||
@@ -68,27 +65,11 @@ singular/indefinite matrix, solve-before-factorize, dimension mismatch를 포함
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R MklPardisoSolver --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R MklPardisoSolver --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
$leaks = rg -n "mkl\.h|MKL_INT|pardiso" include/fesa
|
||||
if ($LASTEXITCODE -eq 0) { throw "PARDISO API leaked into public headers:`n$leaks" }
|
||||
if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
마지막 scan은 public header에서 no-match여야 한다.
|
||||
|
||||
@@ -97,7 +78,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
1. adapter tests를 먼저 작성하고 missing solver RED를 확인한다.
|
||||
2. factorize/solve phase를 분리한 최소 PARDISO adapter로 GREEN을 만든다.
|
||||
3. repeated RHS, RAII, residual, public boundary와 전체 VERIFY를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 20 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 20을 `completed`로 갱신하고 factorization/substitution evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
# Step 21: Nodal Load Assembly and Effective RHS
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/analysis/analysis_model.hpp`
|
||||
- `/include/fesa/fem/dof_manager.hpp`
|
||||
- `/include/fesa/constraints/essential_constraints.hpp`
|
||||
@@ -57,31 +54,18 @@ zero loads를 포함하고 `LoadAssembly` regex로 등록한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R LoadAssembly --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R LoadAssembly --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. nodal load/effective RHS tests를 먼저 작성하고 RED를 확인한다.
|
||||
2. nodal-only deterministic assembly와 RHS 최소 구현으로 GREEN을 만든다.
|
||||
3. nonzero prescribed displacement와 전체 VERIFY를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 21 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 21을 `completed`로 갱신하고 load/RHS evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
# Step 22: Result Recovery
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/analysis/analysis_model.hpp`
|
||||
- `/include/fesa/analysis/analysis_state.hpp`
|
||||
- `/include/fesa/fem/dof_manager.hpp`
|
||||
@@ -64,31 +61,18 @@ interior endpoint match/mismatch와 stable representative를 포함하고 `Resul
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R ResultRecovery --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R ResultRecovery --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. reaction/recovery/sign/normalization tests를 먼저 작성하고 RED를 확인한다.
|
||||
2. residual 기반 최소 recovery 구현으로 GREEN을 만든다.
|
||||
3. formulation component ordering과 full VERIFY를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 22 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 22를 `completed`로 갱신하고 recovered quantities/residual evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
# Step 23: HDF5 Results Writer
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/core/diagnostic.hpp`
|
||||
- `/include/fesa/model/domain.hpp`
|
||||
- `/include/fesa/analysis/analysis_state.hpp`
|
||||
@@ -84,27 +81,11 @@ points centroid, failed path/no partial final, successful replacement을 포함
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R Hdf5ResultsWriter --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
RED 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R Hdf5ResultsWriter --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
$leaks = rg -n "H5[A-Z_a-z0-9]*|hid_t" include/fesa
|
||||
if ($LASTEXITCODE -eq 0) { throw "HDF5 API leaked into public headers:`n$leaks" }
|
||||
if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
마지막 scan은 public header에서 no-match여야 한다.
|
||||
|
||||
@@ -113,7 +94,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
1. schema/atomicity tests를 먼저 작성하고 writer 부재 RED를 확인한다.
|
||||
2. exact schema와 RAII/temporary finalization의 최소 구현으로 GREEN을 만든다.
|
||||
3. HDF5 inspection, failure cleanup, public boundary와 전체 VERIFY를 확인한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 23 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 23을 `completed`로 갱신하고 schema/atomicity evidence를 summary에 기록한다.
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
# Step 24: Linear Static Orchestration and CLI
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-model.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/io/abaqus/input_reader.hpp`
|
||||
- `/include/fesa/io/abaqus/domain_mapper.hpp`
|
||||
- `/include/fesa/analysis/analysis_model.hpp`
|
||||
@@ -102,7 +99,7 @@ executable target은 내부 이름이 다르더라도 `OUTPUT_NAME fesa`를 설
|
||||
|
||||
Test-only reference support를 `tests/reference/` 아래 구현하라.
|
||||
|
||||
- approved input으로 `.harness/build/reference/cantilever-beam-b33/results.h5`를 생성한다.
|
||||
- approved input으로 과거 검증 자료(정리됨)를 생성한다.
|
||||
- legacy displacement/reaction/elemental-force CSV를 read-only로 parse하고 실제 CAE header
|
||||
`U-U*`, `UR-UR*`, `RF-RF*`, `RM-RM*`, `SF-SF1`, `SM-SM*`을 canonical component로 normalize한다.
|
||||
- row matching 전에 expected header, B33 input, unique identity, missing/extra/nonfinite를 검사한다.
|
||||
@@ -111,7 +108,7 @@ Test-only reference support를 `tests/reference/` 아래 구현하라.
|
||||
- section resultants는 node station과 `SF1->N`, `SM1->My`, `SM2->Mz`, `SM3->T`로 비교한다.
|
||||
- Stress comparison은 N/A로 기록하되 HDF5 stress dataset/test 통과를 요구한다.
|
||||
- max absolute, component-scale normalized, RMS, norm, worst row/component를
|
||||
`.harness/build/reference/cantilever-beam-b33/comparison.json`에 결정적으로 기록한다.
|
||||
과거 검증 자료(정리됨)에 결정적으로 기록한다.
|
||||
- 같은 JSON에 matched FESA/reference rows, full free residual norm, applied/reaction force와
|
||||
origin 기준 moment 합, endpoint consistency를 `physics_evidence`로 기록해 Step 27이
|
||||
source/test 변경 없이 물리 sanity를 독립 검토할 수 있게 한다.
|
||||
@@ -123,27 +120,11 @@ CTest regex/label은 `LinearStaticCli`, `ReferenceComparisonContract`,
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|ReferenceComparisonContract|B33ReferenceComparison" --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
위 command에서 missing orchestration/CLI/reference utility RED를 확인한 후 구현한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|ReferenceComparisonContract|B33ReferenceComparison" --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/results.h5')) { throw 'Missing reference-run HDF5' }
|
||||
if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/comparison.json')) { throw 'Missing comparison metrics' }
|
||||
git diff --exit-code -- reference/
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
@@ -151,7 +132,7 @@ git diff --exit-code -- reference/
|
||||
2. exact lifecycle과 minimal CLI/test utility로 targeted GREEN을 만든다.
|
||||
3. approved input end-to-end, comparison metrics, CTest discovery/full VERIFY를 실행한다.
|
||||
4. reference artifacts가 unchanged인지 확인한다.
|
||||
5. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
5. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 24 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output, 변경 파일과 generated HDF5/comparison evidence를 기록한다.
|
||||
6. Step 24를 `completed`로 갱신하고 CLI path, exit codes, generated HDF5/metrics와
|
||||
|
||||
@@ -1,30 +1,26 @@
|
||||
# Step 25: Build and Test Verification
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `build-test-executor-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 이 step은 검증과 보고만 수행한다. 실패를 production 변경으로 덮지 않는다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-report.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-model.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/CMakeLists.txt`와 모든 CMake/test registration
|
||||
- `/phases/linear-static-3d-euler-beam/index.json`의 Step 7–24 summary
|
||||
|
||||
## 작업
|
||||
|
||||
fresh MSVC x64 Debug configure/build/test evidence를 수집해
|
||||
`docs/linear-static-3d-euler-beam/build-test.md`를 생성하라.
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라.
|
||||
|
||||
- Metadata status는 모든 gate 통과 시 `pass-for-reference-verification`이다.
|
||||
- Environment/dependency revision과 config-resolved command를 기록한다.
|
||||
@@ -40,18 +36,7 @@ fresh MSVC x64 Debug configure/build/test evidence를 수집해
|
||||
|
||||
아래 명령을 fresh evidence로 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
$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' }
|
||||
ctest --test-dir .harness/build -C Debug -L linear-static-3d-euler-beam --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
Report structural check:
|
||||
|
||||
|
||||
@@ -1,22 +1,18 @@
|
||||
# Step 26: Abaqus B33 Reference Verification
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `reference-verification-agent`
|
||||
- 필수 스킬: `fesa-reference-comparison`
|
||||
- `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` 순서를 지켜라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/build-test.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-model.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-report.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/reference/cantilever beam/cantilever beam.inp`
|
||||
- `/reference/cantilever beam/cantilever beam displacements.csv`
|
||||
- `/reference/cantilever beam/cantilever beam reactions.csv`
|
||||
@@ -28,7 +24,7 @@
|
||||
Build/Test report status가 `pass-for-reference-verification`인지 먼저 확인한다. 통과했다면
|
||||
승인 input으로 solver output을 재생성하고, test-only comparison utility가 기록한 raw
|
||||
normalized rows/metrics를 독립 검토해
|
||||
`docs/linear-static-3d-euler-beam/reference-comparison.md`를 작성하라.
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 작성하라.
|
||||
|
||||
Artifact check:
|
||||
|
||||
@@ -60,18 +56,7 @@ source/test/CMake/reference/tolerance가 모두 unchanged임을 기록한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
if (-not (Select-String -LiteralPath 'docs/linear-static-3d-euler-beam/build-test.md' `
|
||||
-SimpleMatch 'status: `pass-for-reference-verification`' -Quiet)) {
|
||||
throw 'Build/test gate is not passing'
|
||||
}
|
||||
ctest --test-dir .harness/build -C Debug -R B33ReferenceComparison -V --output-on-failure
|
||||
$metricsPath = '.harness/build/reference/cantilever-beam-b33/comparison.json'
|
||||
if (-not (Test-Path $metricsPath)) { throw 'Missing comparison metrics' }
|
||||
$metrics = Get-Content -Raw $metricsPath | ConvertFrom-Json
|
||||
if ($metrics.passed -ne $true) { throw "Reference comparison failed: passed=$($metrics.passed)" }
|
||||
git diff --exit-code -- reference/
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
```powershell
|
||||
$path = 'docs/linear-static-3d-euler-beam/reference-comparison.md'
|
||||
|
||||
@@ -1,31 +1,27 @@
|
||||
# Step 27: Physics Sanity
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `physics-evaluation-agent`
|
||||
- 필수 스킬: `fesa-physics-sanity`
|
||||
- reference tolerance를 다시 판정하지 말고 documented physical expectation만 평가하라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/.codex/skills/fesa-physics-sanity/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-comparison.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-model.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/.harness/build/reference/cantilever-beam-b33/results.h5`
|
||||
- `/.harness/build/reference/cantilever-beam-b33/comparison.json`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- 과거 검증 자료(정리됨)
|
||||
- 과거 검증 자료(정리됨)
|
||||
- `/reference/cantilever beam/`의 승인된 read-only artifact
|
||||
|
||||
## 작업
|
||||
|
||||
Reference Verification status가 `pass-for-physics-evaluation`인지 먼저 확인하고
|
||||
`docs/linear-static-3d-euler-beam/physics-evaluation.md`를 생성하라.
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라.
|
||||
|
||||
다음 physical check를 documented expectation과 observed HDF5/comparison evidence로 각각
|
||||
판정한다.
|
||||
@@ -47,17 +43,7 @@ Stress는 Abaqus reference comparison 없이 schema/unit/analytical evidence로
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
$referenceReport = 'docs/linear-static-3d-euler-beam/reference-comparison.md'
|
||||
if (-not (Select-String -LiteralPath $referenceReport `
|
||||
-SimpleMatch 'status: `pass-for-physics-evaluation`' -Quiet)) {
|
||||
throw 'Reference verification gate is not passing'
|
||||
}
|
||||
ctest --test-dir .harness/build -C Debug -R "EulerBeam3D|ResultRecovery|B33ReferenceComparison" --output-on-failure
|
||||
if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/results.h5')) { throw 'Missing solver HDF5 evidence' }
|
||||
if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/comparison.json')) { throw 'Missing normalized comparison/physics evidence' }
|
||||
git diff --exit-code -- reference/
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
```powershell
|
||||
$path = 'docs/linear-static-3d-euler-beam/physics-evaluation.md'
|
||||
|
||||
@@ -1,35 +1,31 @@
|
||||
# Step 28: Release Readiness
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `release-agent`
|
||||
- 필수 스킬: `fesa-release-readiness`
|
||||
- `GATE AUDIT -> TRACEABILITY CHECK -> RELEASE DOCUMENTATION -> RELEASE VERDICT` 순서를 지켜라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/.codex/skills/fesa-release-readiness/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/research.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-model.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-report.md`
|
||||
- `/docs/linear-static-3d-euler-beam/build-test.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-comparison.md`
|
||||
- `/docs/linear-static-3d-euler-beam/physics-evaluation.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/phases/linear-static-3d-euler-beam/index.json`의 모든 completed summary
|
||||
|
||||
## 작업
|
||||
|
||||
모든 gate evidence를 감사하고
|
||||
`docs/linear-static-3d-euler-beam/release.md`를 생성하라.
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라.
|
||||
|
||||
- 같은 feature ID, source design revision, implementation scope와 artifact identity가 모든
|
||||
문서에서 일치하는지 확인한다.
|
||||
|
||||
@@ -1,24 +1,20 @@
|
||||
# Step 3: Numerical Review
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `numerical-review-agent`
|
||||
- 필수 스킬: `fesa-numerical-review`
|
||||
- 스킬을 끝까지 읽고 formulation 작성자와 독립된 reviewer 관점으로 작업하라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-numerical-review/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/research.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
|
||||
## 작업
|
||||
|
||||
`docs/linear-static-3d-euler-beam/numerical-review.md`를 생성해 구현 전 수치
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성해 구현 전 수치
|
||||
검토를 수행하라.
|
||||
|
||||
- Metadata와 `Review Verdict`를 포함하고 통과 시
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
# Step 4: I/O Contract
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `io-definition-agent`
|
||||
- 필수 스킬: `fesa-io-contract`
|
||||
- 스킬을 끝까지 읽고 semantic contract만 정의하라. C++ API는 다음 gate가 담당한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-io-contract/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `/reference/cantilever beam/cantilever beam.inp`
|
||||
- `/reference/cantilever beam/cantilever beam displacements.csv`
|
||||
- `/reference/cantilever beam/cantilever beam reactions.csv`
|
||||
@@ -22,7 +18,7 @@
|
||||
|
||||
## 작업
|
||||
|
||||
`docs/linear-static-3d-euler-beam/io.md`를 생성하라. Metadata status는
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. Metadata status는
|
||||
`ready-for-implementation-planning`으로 둔다.
|
||||
|
||||
- 지원 keyword별 위치, parameter, data grammar, case policy, source-location 보존,
|
||||
|
||||
@@ -1,22 +1,18 @@
|
||||
# Step 5: Reference Model Contract
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `reference-model-agent`
|
||||
- 필수 스킬: `fesa-reference-models`
|
||||
- 스킬을 끝까지 읽고 artifact 설계와 artifact 생성의 경계를 준수하라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-numerical-review/SKILL.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/research.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `/reference/cantilever beam/cantilever beam.inp`
|
||||
- `/reference/cantilever beam/cantilever beam displacements.csv`
|
||||
- `/reference/cantilever beam/cantilever beam reactions.csv`
|
||||
@@ -24,7 +20,7 @@
|
||||
|
||||
## 작업
|
||||
|
||||
`docs/linear-static-3d-euler-beam/reference-model.md`를 생성하라.
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라.
|
||||
Metadata status는 `ready-for-implementation-planning`으로 둔다.
|
||||
|
||||
- code verification, analytical solution verification, B33 reference comparison을 분리한다.
|
||||
|
||||
@@ -1,30 +1,24 @@
|
||||
# Step 6: Implementation Plan
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-planning-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 스킬의 planning workflow를 끝까지 읽고 코드나 테스트를 작성하지 않은 채 계획만 작성하라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md`
|
||||
- `/.codex/agents/implementation-planning-agent.toml`
|
||||
- `/.codex/agents/correction-agent.toml`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/research.md`
|
||||
- `/docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `/docs/linear-static-3d-euler-beam/numerical-review.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/reference-model.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/formulation.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `/phases/linear-static-3d-euler-beam/step7.md`부터 `/step24.md`까지
|
||||
|
||||
## 작업
|
||||
|
||||
`docs/linear-static-3d-euler-beam/implementation-plan.md`를 생성하라. 승인 설계가 이
|
||||
`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. 승인 설계가 이
|
||||
경로를 명시하므로 README의 기본 suffix보다 이 경로를 우선한다.
|
||||
|
||||
- Metadata와 Readiness Check를 작성하고 upstream status가 모두 준비된 경우
|
||||
@@ -48,36 +42,7 @@
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
$path = 'docs/linear-static-3d-euler-beam/implementation-plan.md'
|
||||
if (-not (Test-Path $path)) { throw "Missing $path" }
|
||||
$required = @(
|
||||
'status: `ready-for-implementation`',
|
||||
'## Readiness Check',
|
||||
'## Work Breakdown',
|
||||
'## TDD Test Plan',
|
||||
'## CMake and CTest Plan',
|
||||
'## Acceptance Traceability Matrix',
|
||||
'cmake -S . -B .harness/build -A x64',
|
||||
'ctest --test-dir .harness/build -C Debug --output-on-failure',
|
||||
'reference/cantilever beam/'
|
||||
)
|
||||
foreach ($text in $required) {
|
||||
if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) {
|
||||
throw "Missing implementation-plan contract: $text"
|
||||
}
|
||||
}
|
||||
$modules = @('cmake-test-foundation','core-diagnostics','dense-math-adapters','domain-model',
|
||||
'inp-syntax-parser','inp-domain-mapping','analysis-model','dof-manager','analysis-state',
|
||||
'euler-beam-element','parallel-for-tbb','sparse-assembly','essential-constraints',
|
||||
'mkl-pardiso-solver','load-assembly','result-recovery','hdf5-results-writer','linear-static-cli')
|
||||
foreach ($module in $modules) {
|
||||
if (-not (Select-String -LiteralPath $path -SimpleMatch $module -Quiet)) {
|
||||
throw "Missing work-breakdown module: $module"
|
||||
}
|
||||
}
|
||||
git diff --check -- $path
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
# Step 7: CMake and GoogleTest Foundation
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 구현 전에 스킬과 Step 6 implementation plan을 끝까지 읽어라.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `/docs/HARNESS_WORKFLOW.md`
|
||||
- `/docs/HARNESS.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `/CMakeLists.txt`가 이미 생겼다면 그 파일
|
||||
|
||||
## 소유 파일
|
||||
@@ -26,7 +23,7 @@
|
||||
- Create: `/src/fesa/CMakeLists.txt`
|
||||
- Create: `/tests/CMakeLists.txt`
|
||||
- Create: `/tests/unit/build_info_test.cpp`
|
||||
- Create: `/docs/linear-static-3d-euler-beam/implementation-report.md`
|
||||
- Create: `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
|
||||
## 작업
|
||||
|
||||
@@ -44,7 +41,7 @@ MSVC x64 Debug에서 이후 모든 C++ step을 TDD로 실행할 최소 build/tes
|
||||
- `tests/CMakeLists.txt`, `tests/unit/build_info_test.cpp`: GoogleTest 연결,
|
||||
`gtest_discover_tests`, `BuildInfo` regex와 공통 `linear-static-3d-euler-beam` label을 가진
|
||||
최소 제품 test. 이후 이 phase의 모든 CTest는 같은 공통 label을 상속한다.
|
||||
- `docs/linear-static-3d-euler-beam/implementation-report.md`:
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`:
|
||||
feature metadata, dependency/configure evidence와 Step 7–24별 RED/GREEN/VERIFY command,
|
||||
exit code, 핵심 output, 변경 파일, requirement/test trace를 누적할 implementation report.
|
||||
|
||||
@@ -66,21 +63,7 @@ if ($gtestRevision -ne '04ee1b4f2aefdffb0135d7cf2a2c519fe50dabe4') {
|
||||
|
||||
구성·build·discovery·test를 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
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
|
||||
if ($discovery.tests.Count -lt 1) { throw 'CTest discovered zero tests' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
if (-not (Test-Path 'docs/linear-static-3d-euler-beam/implementation-report.md')) {
|
||||
throw 'Missing implementation evidence report'
|
||||
}
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
# Step 8: Core Diagnostics
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/io.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/build_info.hpp`
|
||||
- `/src/fesa/CMakeLists.txt`
|
||||
- `/tests/CMakeLists.txt`
|
||||
@@ -70,24 +68,11 @@ Test suite label/regex는
|
||||
RED에서는 production 파일을 만들기 전에 다음 targeted command가 missing header/symbol로
|
||||
실패하는 것을 확인하고 구현 report 또는 step summary용 evidence를 남긴다.
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R CoreDiagnostics --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
구현 후 GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R CoreDiagnostics --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
Tests는 value/error exclusivity, move/copy, failed access, exact diagnostic fields와
|
||||
deterministic ordering을 검증해야 한다.
|
||||
@@ -97,7 +82,7 @@ deterministic ordering을 검증해야 한다.
|
||||
1. GoogleTest를 먼저 추가하고 targeted RED를 관찰한다.
|
||||
2. 최소 production 구현으로 targeted GREEN을 만든다.
|
||||
3. 전체 MSVC x64 Debug build/CTest VERIFY를 실행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 8 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다.
|
||||
5. public header dependency를 검토하고 Step 8에 `completed`와 RED/GREEN/VERIFY 요약을 기록한다.
|
||||
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
# Step 9: Dense Math Adapters
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/linear-static-3d-euler-beam/requirements.md`
|
||||
- `/docs/linear-static-3d-euler-beam/implementation-plan.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/solver-core/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `../../docs/linear-static-3d-euler-beam/README.md`
|
||||
- `/include/fesa/core/status.hpp`
|
||||
- `/src/fesa/CMakeLists.txt`
|
||||
- `/tests/CMakeLists.txt`
|
||||
@@ -71,27 +69,11 @@ row-major GEMV/GEMM과 known BLAS values를 검증하고 `DenseMath` regex로
|
||||
|
||||
RED targeted command:
|
||||
|
||||
```powershell
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R DenseMath --output-on-failure
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
GREEN/VERIFY:
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64 `
|
||||
-DFESA_GTEST_SOURCE_DIR=C:/git/googletest `
|
||||
"-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" `
|
||||
"-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" `
|
||||
"-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"
|
||||
cmake --build .harness/build --config Debug
|
||||
ctest --test-dir .harness/build -C Debug -R DenseMath --output-on-failure
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
$leaks = rg -n "mkl\.h|MKL_INT|CBLAS_" include/fesa
|
||||
if ($LASTEXITCODE -eq 0) { throw "MKL API leaked into public headers:`n$leaks" }
|
||||
if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
마지막 `rg`는 no-match여야 한다.
|
||||
|
||||
@@ -100,7 +82,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' }
|
||||
1. `vector_test.cpp`, `matrix_test.cpp`를 먼저 작성하고 missing behavior RED를 확인한다.
|
||||
2. 최소 adapter/ownership 구현으로 GREEN을 만든다.
|
||||
3. 전체 MSVC x64 Debug VERIFY와 public-header dependency scan을 실행한다.
|
||||
4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의
|
||||
4. `../../docs/linear-static-3d-euler-beam/README.md`의
|
||||
Step 9 section에 실제 RED/GREEN/VERIFY command, exit code,
|
||||
핵심 output과 변경 파일을 기록한다.
|
||||
5. Step 9를 `completed`로 바꾸고 operations/test evidence를 summary에 기록한다.
|
||||
|
||||
Reference in New Issue
Block a user