Files
2026-07-29 23:32:26 +09:00

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

검증 절차

  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 재사용성을 훼손한다.