modify harness framework

This commit is contained in:
김경종
2026-09-08 10:30:07 +09:00
parent 1239d5b9f6
commit 1a0f3c9aaf
68 changed files with 6729 additions and 957 deletions
+28 -25
View File
@@ -1,40 +1,43 @@
# 프로젝트: {프로젝트명}
# C++ 제품 개발 프로젝트
## 기술 스택
이 저장소의 제품은 **MSVC 기반 C++ 제품**이다. Harness와 `scripts/`의 Python 코드는
제품 개발을 지원하는 도구이며 제품의 목표나 기능이 아니다.
- MSVC toolset: {예: v143}
- C++ 표준: {예: C++20}
- 빌드 시스템: {CMake 또는 Visual Studio solution}
- 테스트 프레임워크: {예: GoogleTest, Catch2, Microsoft C++ Unit Test}
## 현재 확정 상태
## 아키텍처 규칙
- 제품명·사용자·업무 기능: 미정
- MSVC toolset·C++ 표준·테스트 프레임워크: 미정
- 빌드 형식: CMake 또는 Visual Studio solution/project 중 실제 metadata와
`.harness/config.json`으로 확인
- 배치: 제품 구현은 `src/`, public header는 `include/`, 테스트는 `tests/`
- CRITICAL: {절대 지켜야 할 모듈 또는 계층 경계}
- CRITICAL: public header와 implementation 의존성 방향을 역전하지 말 것
- 제품 코드는 `src/`, public header는 `include/`, 테스트는 `tests/`에 둔다.
미정 값을 예시로 채우거나 검증된 사실처럼 표현하지 않는다.
## 개발 프로세스
## 필수 규칙
- CRITICAL: 새 기능과 버그 수정은 실패하는 테스트를 먼저 작성한 뒤 구현할 것.
- CRITICAL: 빌드 경고를 새로 추가하지 말 것.
- CRITICAL: public header가 implementation에 의존하도록 방향을 역전하지 않는다.
- CRITICAL: 새 기능과 버그 수정은 실패하는 테스트를 먼저 확인한 뒤 구현한다.
- CRITICAL: 새 빌드 경고를 추가하지 않는다.
- 변경 범위와 관련된 문서·코드·테스트만 읽고 수정한다. step의 `context_files`가
있으면 그 목록을 우선한다.
- 실행 상태는 `phases/{phase}/index.json`을 기준으로 판단한다. 인계 문서는 상태를
대신하지 않는다.
- phase 작업 시 `docs/phase/{phase}/handoff.md`를 확인하고, 종료 전에 최신 인계와
해당 `stepN.md` 기록을 갱신한다. 상세 양식은 `docs/phase/README.md`를 따른다.
- 커밋 메시지는 conventional commits 형식을 따른다.
## 명령어
## 검증
### CMake/CTest 프로젝트
실제 명령은 `.harness/config.json`, CMake preset, solution 설정과 프로젝트 문서를
우선한다. 설정이 확인되지 않았을 때 아래 명령을 성공한 검증으로 주장하지 않는다.
```powershell
# 일반 CMake 예시
cmake -S . -B .harness/build -A x64
cmake --build .harness/build --config Debug
ctest --test-dir .harness/build -C Debug --output-on-failure
# 직접 MSBuild 예시: 실제 solution과 test command로 교체
MSBuild.exe <solution.sln> /m /p:Configuration=Debug /p:Platform=x64
<test-command>
```
### Visual Studio solution 프로젝트
```powershell
MSBuild.exe MyProject.sln /m /p:Configuration=Debug /p:Platform=x64
.\build\tests\Debug\MyProjectTests.exe
```
실제 solution, preset, 테스트 명령은 `.harness/config.json`과 프로젝트 문서를
우선한다.