Files
Agentic-AI-Template/Codex/Coding/Codex-cs/AGENTS.md
T
2026-09-04 17:00:34 +09:00

49 lines
2.8 KiB
Markdown

# Project: FESA Harness
## 기술 스택
- C#/.NET SDK
- `dotnet` CLI
- Harness scripts in Python 3
## 아키텍처 규칙
- CRITICAL: 기본 검증 경로는 `python scripts/validate_workspace.py`이다.
- CRITICAL: `HARNESS_VALIDATION_COMMANDS`가 설정되어 있으면 자동 대상 탐색보다 우선한다.
- CRITICAL: 자동 탐색은 루트의 단일 `.sln`을 우선하고, 없으면 루트의 단일 SDK-style `.csproj`를 사용한다. 동일 우선순위 대상이 여러 개면 임의 선택하지 않고 오류로 중단한다.
- CRITICAL: 기본 검증은 선택한 target에 대해 `dotnet restore`, `dotnet build --configuration Debug --no-restore`, `dotnet test --configuration Debug --no-build --no-restore` 순서로 실행한다.
- CRITICAL: PATH에 설치된 `dotnet`을 사용하며 Harness는 .NET SDK 버전이나 `global.json`을 생성하거나 고정하지 않는다.
- CRITICAL: 새 기능 또는 동작 변경은 테스트를 먼저 작성하고 실패를 확인한 뒤 구현한다.
- CRITICAL: Abaqus reference artifact나 solver 코드 복원은 명시적으로 요청된 phase에서만 수행한다.
- 다중 project 저장소는 루트 solution에 모든 build/test 대상을 포함해야 한다. 단일 `.csproj` fallback은 단일-project 저장소에서만 사용한다.
- solution/project가 아직 없으면 안내 메시지를 출력하고 성공 종료하여 Harness 자체 테스트를 허용한다.
- Harness runner는 `scripts/execute.py`에 둔다.
- Codex hook 정책은 `.codex/hooks/`에 둔다.
- Harness planning/review instructions are stored in `.codex/skills/`.
- Generated phase execution outputs remain ignored under `phases/**/step*-output.json`.
## 개발 프로세스
- TDD를 기본으로 한다. C# production `.cs` file을 바꿀 때는 관련 C# test file이 있어야 한다.
- 커밋 전 hook은 Harness Python self-test와 workspace validation을 실행해야 한다.
- 커밋 메시지는 conventional commits 형식을 따른다: `feat:`, `fix:`, `docs:`, `refactor:`, `test:`.
- 계획이 필요한 장기 작업은 Harness phase로 나누고, 각 step은 독립 실행 가능해야 한다.
## 명령어
```bash
python -m unittest discover -s scripts -p "test_*.py"
python scripts/validate_workspace.py
python scripts/execute.py <phase-dir>
python scripts/execute.py <phase-dir> --push
```
## .NET 검증 기본값
- SDK resolution: PATH의 `dotnet` 사용; SDK 버전 및 `global.json` 생성·고정 없음
- Target selection: 루트의 단일 `.sln` 우선, 없으면 루트의 단일 SDK-style `.csproj`
- Ambiguity: 동일 우선순위 대상이 여러 개면 오류
- Configuration: `Debug`
- Commands:
1. `dotnet restore <target>`
2. `dotnet build <target> --configuration Debug --no-restore`
3. `dotnet test <target> --configuration Debug --no-build --no-restore`
Override variable:
- `HARNESS_VALIDATION_COMMANDS`