2.6 KiB
2.6 KiB
Step 1: CMake Project Scaffold
읽어야 할 파일
먼저 아래 파일을 모두 읽고 저장소 계약을 파악하라.
/AGENTS.md/docs/PRD.md/docs/ARCHITECTURE.md/docs/ADR.md/docs/HARNESS.md/docs/superpowers/plans/2026-07-29-fesa-phase-1.md/.harness/config.example.json/tests/harness/test_config.py/tests/harness/test_discovery.py/tests/harness/test_process.py
작업
C++20/Visual Studio 2026 MSVC v145 x64 프로젝트의 최소 실행 가능한 build/test 뼈대를 만든다.
CMakeLists.txt,CMakePresets.json,cmake/FesaDependencies.cmake,.harness/config.json,tests/CMakeLists.txt를 만든다.- 실제 target은
fesa_core정적 라이브러리와fesaCLI 두 개만 만든다. include/fesa/core/version.hpp,src/fesa/core/version.cpp,src/fesa/cli/main.cpp에 다음 계약을 구현한다.
namespace fesa {
[[nodiscard]] std::string_view version() noexcept;
}
- CLI는 이 step에서
fesa --version만 처리한다. - 먼저
VersionCommandCTest를 등록해 실패를 확인한 뒤 최소 구현한다. windows-debug,windows-releaseconfigure/build/test preset을 정의한다.- configure preset은
Visual Studio 18 2026생성기와v145toolset, x64 architecture를 명시한다. - build 산출물은
out/build/<preset>아래에만 둔다. - MSVC v145가 아니거나 x64가 아니면 configure 단계에서 명확히 실패시킨다.
Acceptance Criteria
uv run --with pytest python -m pytest -v -rs
cmake --preset windows-debug
cmake --build --preset windows-debug
ctest --preset windows-debug -R VersionCommand --output-on-failure
ctest --preset windows-debug --output-on-failure
fesa --version은 비어 있지 않은 FESA 버전을 출력하고 종료 코드 0을 반환해야 한다.
CTest는 0개가 아니어야 한다.
검증 절차
- 테스트가 구현 전 실패하는 것을 확인한다.
- Acceptance Criteria 명령을 새로 실행한다.
- Visual Studio 2026/MSVC v145/C++20/x64와 산출물 경로를 확인한다.
- 성공 시 index의 step을
completed로 바꾸고 생성 파일을 summary에 기록한다. - 도구가 없으면 자동 설치하지 말고
blocked와 정확한 누락 항목을 기록한다.
금지사항
- 외부 패키지를 다운로드하지 마라. 이유: 사전 설치 의존성 정책을 위반한다.
- MKL, TBB, HDF5 기능을 구현하지 마라. 이유: 다음 step의 독립 범위다.
- 빈 미래 모듈을 만들지 마라. 이유: Phase 1 최소 실체화 원칙을 위반한다.