1.9 KiB
1.9 KiB
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 경로를 연결한다.
struct AnalysisRequest final {
std::filesystem::path input_path;
std::filesystem::path output_path;
};
[[nodiscard]] AnalysisRunResult run_solver(const AnalysisRequest&);
CLI 계약:
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
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
검증 절차
- end-to-end test 실패를 확인한다.
- parser→Domain→analysis→writer만 조율한다.
- command와 public reader로 산출물을 재검증한다.
- 이 milestone을 수치 자격 완료로 표시하지 말고 index를 갱신한다.
금지사항
- hierarchical sample의 전체 keyword를 우회 처리하지 마라. 이유: 다음 input phase다.
- fake stiffness/result를 쓰지 마라. 이유: 실제 pipeline 검증을 무효화한다.
- CLI에 solver 내부 구현을 넣지 마라. 이유: core/library 재사용성을 훼손한다.