3.9 KiB
3.9 KiB
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 displacementFieldOutput을 추가한다.- 이 테스트는 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 확인:
- 통합 테스트 파일을 먼저 작성한다.
- targeted CTest를 실행해 아직 integration test registration 또는 required API 문제로 실패하면 실패 내용을 확인한다.
- Step 0의 CMake glob이
tests/integration/*_test.cpp를 자동 등록해야 한다. 등록되지 않는다면 현재 step에서 CMake 파일을 수정하지 말고blocked로 표시하고 사용자에게 allowed_paths 확장을 요청한다.
Acceptance Criteria
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
검증 절차
- 위 AC 커맨드를 실행한다.
- 아키텍처 체크리스트를 확인한다:
- Domain -> AnalysisModel -> DofManager/AnalysisState -> Results data flow가 컴파일되는가?
- 통합 테스트가 skeleton 범위를 넘어 수치 정확성을 주장하지 않는가?
- build/test report가 실제 실행 evidence와 known limitations를 기록하는가?
- 결과에 따라
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을 추가하지 마라.