# Step 2: Self-contained HDF5 ## 읽어야 할 파일 - `/AGENTS.md` - `/docs/PRD.md` - `/docs/ARCHITECTURE.md` - `/docs/ADR.md` - `/docs/HDF5_SCHEMA.md` - `/include/fesa/results/result_database.hpp` - `/include/fesa/io/hdf5/` ## 작업 HDF5 schema와 reader/writer를 완성해 파일 하나로 모델·설정·전체 Phase 1 결과를 재구성할 수 있게 한다. - model: coordinates, connectivity, Part/Instance/local labels, sets, materials, sections, orientation, applied shear values와 input/default source - analysis: single step, BC, load, solver settings - results: nodal displacement/reaction, Beam local frame, 양 끝 section strain/force, centroid `Sxx`, recovery-point `Sxx`, diagnostics - `docs/HDF5_SCHEMA.md`의 dataset rank/type/component/coordinate attribute를 먼저 갱신한다. - public reader만으로 모든 항목을 재구성하는 실패 통합 테스트를 작성한다. ## Acceptance Criteria ```powershell cmake --build --preset windows-debug ctest --preset windows-debug -R SelfContainedHdf5 --output-on-failure h5ls -r .\out\build\windows-debug\Testing\Temporary\fesa-self-contained.h5 ctest --preset windows-debug --output-on-failure ``` ## 검증 절차 1. complete schema round-trip test 실패를 확인한다. 2. schema version 호환성 규칙을 문서와 코드에 함께 반영한다. 3. public reader와 h5ls로 구조를 독립 확인한다. 4. 전체 테스트와 index를 갱신한다. ## 금지사항 - 원본 `.inp` 경로만 저장하고 모델 데이터를 생략하지 마라. 이유: 자기완결 계약이다. - HDF5 object를 result model에 노출하지 마라. 이유: adapter 경계를 깨뜨린다. - schema를 무버전 변경하지 마라. 이유: reader 호환성을 잃는다.