# Step 8: solver-skeleton-integration-report ## 읽어야 할 파일 먼저 아래 파일들을 읽고 프로젝트의 아키텍처와 이전 step 산출물을 파악하라: - `/AGENTS.md` - `/docs/PRD.md` - `/docs/ARCHITECTURE.md` - `/docs/ADR.md` - `/src/fesa/model/domain.hpp` - `/src/fesa/analysis/linear_static_analysis.hpp` - `/src/fesa/results/results.hpp` - `/tests/unit/results_containers_test.cpp` - `/docs/build-test-reports/README.md` 이전 step에서 만들어진 전체 skeleton API를 꼼꼼히 읽고, integration smoke test가 실제 solver 수치해석 완료를 주장하지 않도록 범위를 제한하라. ## 작업 solver skeleton의 주요 class가 함께 컴파일되고 기본 data flow를 구성할 수 있음을 통합 테스트와 build/test report로 남긴다. 필수 파일: - `/tests/integration/solver_core_skeleton_integration_test.cpp` - `/docs/build-test-reports/solver-core-skeleton.md` 통합 테스트 요구사항: - Domain에 두 개 Node, 하나 Element, Material, Property, AnalysisStep을 구성한다. - AnalysisStep에는 최소 하나의 BoundaryCondition과 Load를 추가한다. - `LinearStaticAnalysis`를 생성하고 `run()`을 호출한다. - `analysis_model()`과 `state()`가 생성되는지 확인한다. - `ResultStep`과 `ResultFrame`을 만들고 nodal displacement `FieldOutput`을 추가한다. - 이 테스트는 stiffness assembly, linear solve, HDF5 write, reference comparison을 검증하지 않는다. 보고서 요구사항: - `docs/build-test-reports/solver-core-skeleton.md`에 아래 항목을 기록한다. - phase: solver-core-skeleton - scope: C++ skeleton classes only - commands run - exit code summary - CTest tests added - known limitations - known limitations에는 최소한 다음을 명시한다: - 실제 element stiffness/residual/tangent 계산 없음 - 실제 linear solver backend 없음 - HDF5 writer 없음 - Abaqus parser 및 reference comparison 없음 ## Tests To Write First - `/tests/integration/solver_core_skeleton_integration_test.cpp` - 전체 skeleton header를 include한다. - 위 통합 테스트 요구사항을 `main()` assertion으로 검증한다. RED 확인: 1. 통합 테스트 파일을 먼저 작성한다. 2. targeted CTest를 실행해 아직 integration test registration 또는 required API 문제로 실패하면 실패 내용을 확인한다. 3. Step 0의 CMake glob이 `tests/integration/*_test.cpp`를 자동 등록해야 한다. 등록되지 않는다면 현재 step에서 CMake 파일을 수정하지 말고 `blocked`로 표시하고 사용자에게 allowed_paths 확장을 요청한다. ## Acceptance Criteria ```powershell python -m unittest discover -s scripts -p "test_*.py" python scripts/validate_workspace.py ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R solver_core_skeleton_integration_test ``` ## 검증 절차 1. 위 AC 커맨드를 실행한다. 2. 아키텍처 체크리스트를 확인한다: - Domain -> AnalysisModel -> DofManager/AnalysisState -> Results data flow가 컴파일되는가? - 통합 테스트가 skeleton 범위를 넘어 수치 정확성을 주장하지 않는가? - build/test report가 실제 실행 evidence와 known limitations를 기록하는가? 3. 결과에 따라 `phases/solver-core-skeleton/index.json`의 step 8을 업데이트한다: - 성공: `"status": "completed"`, `"summary": "Solver skeleton integration test and build/test report added"` - 3회 수정 시도 후 실패: `"status": "error"`, `"error_message": "구체적 에러 내용"` - 사용자 개입 필요: `"status": "blocked"`, `"blocked_reason": "구체적 사유"` 후 중단 ## 금지사항 - 실제 FEM stiffness, residual, tangent, material law 계산을 구현하지 마라. - Abaqus reference artifact를 생성, 수정, 복원하지 마라. - HDF5 writer를 구현하지 마라. - JavaScript/TypeScript/npm fallback을 추가하지 마라.