3.7 KiB
3.7 KiB
C# .NET 8 제품 개발 프로젝트
이 저장소는 C#·.NET 8 제품 개발용 범용 템플릿이다. Harness와 scripts/의 Python
코드는 제품 개발을 지원하는 도구이며 제품의 목표나 기능이 아니다.
현재 확정 상태
- 제품명·사용자·업무 기능·UI·배포 방식: 미정
- 제품: C#, 기본 TFM
net8.0, SDK 선택은 루트global.json - Harness 실행·검증 환경: Windows, Python 3.10 이상
- 신규 제품 테스트 기본값: xUnit v2 + VSTest
- 빌드 진입점과 전체 테스트 목록: 실제
.sln/ SDK 스타일.csproj와.harness/config.jsonversion 2로 확인 - 권장 배치: 제품
src/<ProjectName>/, 테스트tests/<ProjectName>.Tests/ tests/fixtures/는 Harness 검증용 예제이며 실제 제품이 아니다.
미정 값을 예시로 채우거나 검증된 사실처럼 표현하지 않는다. 특정 UI, 계층, DI나 async 구조를 필요 없이 강제하지 않는다.
필수 규칙
- CRITICAL: 공개 API 계약과 프로젝트 참조 방향을 유지한다. 제품 프로젝트에서 테스트 프로젝트를 참조하지 않는다.
- CRITICAL: 새 기능과 버그 수정은 실패하는 테스트를 먼저 확인한 뒤 구현한다. 편집 훅의 대응 테스트 파일 존재 검사는 실제 red-green 증거를 대신하지 않는다.
- CRITICAL: 새 빌드 경고를 추가하지 않는다. 빌드는 경고를 오류로 처리한다.
- 신규 프로젝트는 nullable 검사와 implicit usings를 활성화한다. 언어 버전은
SDK 기본값을 사용하며
latest를 지정하지 않는다. - 변경 범위와 관련된 문서·코드·테스트만 읽고 수정한다. step의
context_files가 있으면 그 목록을 우선한다. - 실행 상태는
phases/{phase}/index.json을 기준으로 판단한다. 인계 문서는 상태를 대신하지 않는다. - phase 작업 시
docs/phase/{phase}/handoff.md를 확인하고, 종료 전에 최신 인계와 해당stepN.md기록을 갱신한다. 상세 양식은 docs/phase/README.md를 따른다. - 커밋 메시지는 conventional commits 형식을 따른다.
검증
실제 설정과 프로젝트 문서를 우선한다. 아래 제품 경로는 예시이므로 실제 target과
모든 testProjects로 바꾼다. 저장소 루트에서 SDK 확인 → 실제 TFM 평가 → restore →
build → test를 실행한다. target에 포함된 각 프로젝트와 모든 test project에서 평가된
참조를 끝까지 따라가 TargetFramework/TargetFrameworks가 .NET 8이고 프로젝트가
저장소 내부인지 확인한다. 각 test project의 현재 TRX
결과와 실행 건수를 확인한다. 테스트 0건,
skip-only, 결과 누락은 성공이 아니다. 대상 없는 템플릿도 제품 빌드 성공이 아니다.
dotnet --version
dotnet msbuild <each-project.csproj> -getProperty:TargetFramework,TargetFrameworks -getItem:ProjectReference -p:Configuration=Debug
dotnet restore <target.sln-or-csproj> -p:Configuration=Debug
dotnet restore <test-project.csproj> -p:Configuration=Debug
dotnet build <target.sln-or-csproj> -c Debug --no-restore -warnaserror
dotnet build <test-project.csproj> -c Debug --no-restore -warnaserror
dotnet test <test-project.csproj> -c Debug --no-build --no-restore --logger trx
Harness 자체 변경은 별도로 검증한다.
uv run --with pytest python -m pytest tests/harness -v -rs
uv run --with pytest python -m compileall -q scripts tests/harness
설정·결과 판정은 Harness 운영 가이드, Windows 설치와 첫 실행은 환경 구축 가이드를 따른다.