add uncommitted files
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Step 3: CLI Pipeline Integration
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/include/fesa/io/abaqus/parser.hpp`
|
||||
- `/include/fesa/io/abaqus/semantic_mapper.hpp`
|
||||
- `/include/fesa/analysis/linear_static_analysis.hpp`
|
||||
- `/include/fesa/io/hdf5/writer.hpp`
|
||||
- `/src/fesa/cli/main.cpp`
|
||||
|
||||
## 작업
|
||||
|
||||
flat minimal fixture를 입력부터 HDF5까지 실행하는 public application 경로를 연결한다.
|
||||
|
||||
```cpp
|
||||
struct AnalysisRequest final {
|
||||
std::filesystem::path input_path;
|
||||
std::filesystem::path output_path;
|
||||
};
|
||||
[[nodiscard]] AnalysisRunResult run_solver(const AnalysisRequest&);
|
||||
```
|
||||
|
||||
CLI 계약:
|
||||
|
||||
```text
|
||||
fesa solve <model.inp> --output <results.h5>
|
||||
fesa --version
|
||||
```
|
||||
|
||||
- 먼저 `MinimalCantileverPipeline` 통합 테스트를 작성한다.
|
||||
- test는 `run_solver` 또는 CLI와 public HDF5 reader만 사용한다.
|
||||
- 성공 파일의 ID, finite displacement, reaction/equilibrium diagnostic과 schema path,
|
||||
실패 입력의 nonzero exit 및 source diagnostic을 검증한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build --preset windows-debug
|
||||
ctest --preset windows-debug -R MinimalCantileverPipeline --output-on-failure
|
||||
.\out\build\windows-debug\Debug\fesa.exe solve tests\fixtures\abaqus\minimal_cantilever.inp --output out\minimal-cantilever.h5
|
||||
h5ls -r out\minimal-cantilever.h5
|
||||
ctest --preset windows-debug --output-on-failure
|
||||
```
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. end-to-end test 실패를 확인한다.
|
||||
2. parser→Domain→analysis→writer만 조율한다.
|
||||
3. command와 public reader로 산출물을 재검증한다.
|
||||
4. 이 milestone을 수치 자격 완료로 표시하지 말고 index를 갱신한다.
|
||||
|
||||
## 금지사항
|
||||
|
||||
- hierarchical sample의 전체 keyword를 우회 처리하지 마라. 이유: 다음 input phase다.
|
||||
- fake stiffness/result를 쓰지 마라. 이유: 실제 pipeline 검증을 무효화한다.
|
||||
- CLI에 solver 내부 구현을 넣지 마라. 이유: core/library 재사용성을 훼손한다.
|
||||
Reference in New Issue
Block a user