with one click
game-qa
Unity 게임 클라이언트와 게임 서버 QA를 자동화한다. 게임 빌드 검증이나 게임 QA를 요청할 때 사용한다.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Unity 게임 클라이언트와 게임 서버 QA를 자동화한다. 게임 빌드 검증이나 게임 QA를 요청할 때 사용한다.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Multi-worker 검수 스킬 (Codex + Gemini Double / Opus + Codex + Gemini Triple). 단일 Codex 검수 대비 100% 보완 카테고리 커버. 트리거: /cr-multi, /cr-double, /cr-triple, plan/spec 저장 후 자동(CR_MULTI_AUTO=on), plateau 3회 자동 승격.
Forge 하네스 읽기전용 레거시 감사: 낡은룰/중복/과대 전역컨텍스트/넓은 Skill/불필요 Hook·MCP/제품중복 분류. 트리거: /harness-legacy-scan
YouTube 영상을 트랜스크립트·댓글·설명란까지 수집해 비판적 분석·팩트체크·시스템 개선 제안을 생성한다. 사용자가 YouTube URL을 보내거나 영상 분석을 요청할 때 사용한다.
REST API 엔드포인트 HTTP 레벨 E2E 자동 테스트. Spec 또는 OpenAPI(Swagger) YAML/JSON을 읽어 엔드포인트별 테스트 케이스(happy path/인증 실패/잘못된 입력/경계값)를 자동 생성하고 curl로 실행한다. 응답 스키마를 OpenAPI 스펙과 대조해 드리프트를 감지한다. /qa 스킬이 서버/API 프로젝트 감지 시 자동 트리거. 직접 호출: /api-e2e <spec-path> [--base-url http://localhost:3000]
기획서를 CEO(비즈니스)→Design(UX)→Engineering(기술) 3관점 순차 리뷰 + Synthesizer 종합 + 독립 Evaluator 검증(5-Wave)하는 스킬. Phase 3 에이전트 회의 후 자동 트리거. (적대적 Codex 검수는 cr-triple/codex-review 별도 게이트.)
PR 생성 전 develop 대비 feature 브랜치의 성능을 비교하는 스킬. 번들 크기, 테스트 시간, API 응답 시간을 측정. P7 PR 생성 전 자동 트리거.
| name | game-qa |
| description | Unity 게임 클라이언트와 게임 서버 QA를 자동화한다. 게임 빌드 검증이나 게임 QA를 요청할 때 사용한다. |
AD-93 W5: /qa 스킬과 동일한 Phase A~H 패턴 적용. game-qa는 Unity MCP 전용 T1/T2 대체.
역할: Unity MCP + 서버/봇 빌드 + 소켓 스모크 + 정적분석 통합 QA. Phase A~H 오케스트레이터.
전제: Unity MCP(CoderGamester/mcp-unity 또는 com.unity.ai.assistant) 게임 프로젝트 세션에 설치됨.
출력: docs/qa/game-qa-report.md + NUnit XML (docs/qa/artifacts/unity-test-results.xml)
프로젝트별 스택 → references/project-stacks.md 참조.
# baduggi / matgo / GodBlade / 기타 자동 감지
PROJECT=$(basename "$(pwd)")
# project-stacks.md에서 해당 프로젝트 스택 확인
references/project-stacks.md 읽어 대상 프로젝트 서버·봇·Unity 경로 확인.
MCP 도구 직접 호출 (Claude Code 세션에서 실행 시 노출됨):
run_tests(testPlatform: "editmode")
→ passed/failed/errors 파싱
→ FAIL > 0 → 실패 테스트명 + 에러메시지 수집 → 버그 리포트
get_console_logs(logType: "Error")
→ NullReferenceException / SocketException / ProtocolError 목록
# UI 버그 의심 시
capture_screenshot() → docs/qa/artifacts/game-shot-{N}.png
get_scene_summary() → 씬 상태 스냅샷
MCP 프리플라이트: MCP 도구 호출 전 엔진 브리지 헬스를 curl 1콜로 확인 (예: curl -s -o /dev/null -w '%{http_code}' --max-time 2 <MCP endpoint>). DOWN이면 툴 타임아웃을 기다리지 말고 즉시 사용자에게 에디터 기동 요청.
인게임 E2E 프로브 (런타임 GREEN 증거): 정적 검사·테스트가 전부 PASS여도 런타임 연출/표시 버그는 못 잡는다. 프로젝트 스코프 레시피가 있으면 로드해 따른다 — 예: GodBlade src/.claude/rules/unity-e2e-probe.md (Play 진입 → 이벤트 기반 UI 클릭 → 마커 로그 프로브(씬 저장 금지·종료 시 회수·씬 diff 0 확인) → 스크린샷 → DB 실측(DESCRIBE 먼저)). 엔진·UI 프레임워크 구현 디테일은 프로젝트 룰이 정본 — 이 스킬에 하드코딩하지 않는다.
MCP 없는 경우 (ToolSearch("unity run_tests") 결과 없음): Unity CLI 폴백.
"$UNITY_PATH" -batchmode -nographics -quit -projectPath "$CLIENT_DIR" -runTests -testPlatform editmode -testResults docs/qa/artifacts/unity-test-results.xml
scripts/game-verify.sh 실행:
bash ~/forge/.claude/skills/game-qa/scripts/game-verify.sh
검사 항목:
| ID | 내용 | 판정 |
|---|---|---|
| T-BUILD | dotnet build bot-dotnet8/ 또는 msbuild | FAIL |
| T-CONNECT | 서버 HTTP 헬스 + Socket.IO 핸드셰이크 | FAIL |
| T-STATIC | C# null체크 누락, TODO 과다 (>10건), 이벤트 상수 불일치 | WARN |
| T-BOT | BOT_SMOKE=1 시 봇 연결 스모크 | WARN |
docs/qa/game-qa-report.md:
# Game QA Report — {프로젝트명}
일시: {date} | 판정: PASS / WARN / FAIL
## Unity 테스트 (MCP/CLI)
passed: N | failed: N | errors: N
## 실패 테스트
- {테스트명}: {에러메시지}
## 콘솔 에러
- {에러타입}: {메시지} ({파일:라인})
## 서버/봇 빌드
- T-BUILD: PASS/FAIL
- T-CONNECT: PASS/FAIL
## 정적 분석 WARN
- {항목}: {파일:라인}
## 판정 근거
Unity FAIL {N}건 / 빌드 FAIL {N}건 → FAIL
WARN만 → WARN / 전체 0건 → PASS
병렬/다단계 실행 = Workflow 도구로 컨텍스트 격리 + resume 지원.
패턴: Detect → parallel(Unity테스트, 서버/봇빌드) → 집계 Report.
실행: Workflow({ script: Bash("cat ~/.claude/skills/game-qa/workflow.js"), args: { project } })
CLAUDE_CODE_DISABLE_WORKFLOWS=1 시 기존 4단계 직접 실행 방식 fallback.
추정=보조, 결정론 bound=max-cycles, 정확 enforcement=P4(agent-budget 훅)
Unity FAIL > 0 또는 빌드 FAIL > 0 발생 시 silent FAIL 금지 — 즉시 bounded 재시도:
QA_CYCLE=0
QA_MAX=2
ISSUE_HASH="" # sha256(실패테스트명:에러메시지 첫줄)
while [Unity FAIL > 0 또는 빌드 FAIL > 0] AND QA_CYCLE < QA_MAX:
QA_CYCLE += 1
NEW_HASH = sha256(실패테스트명:에러메시지 첫줄)
# same-issue stop: 동일 오류 2회 연속 = 자동 해소 불가
# GC5: QA_MAX=2이므로 1st cycle에서 즉시 NEW_HASH==ISSUE_HASH 체크 = 즉각 stop.
# forge-implement는 PEV_MAX=3 → PEV_CYCLE>=2 조건으로 1회 추가 시도 허용 — max 차이로 인한 의도적 비대칭.
# 근거: Unity 빌드/테스트 = 무거움(사이클 비용↑) → 보수적 max2. web 구현 반복 = 경량 → forge-implement max3.
if NEW_HASH == ISSUE_HASH:
→ [STOP] 동일 오류 반복 감지. Human 개입 필요. (QA_CYCLE 값 표시)
exit 4
ISSUE_HASH = NEW_HASH
# 라우팅 (game-qa = Unity, web-healer X)
→ /forge-fix (general fixer) 호출 — 새 fixer 작성 금지
· 실패 테스트명 + 에러메시지 전달
· C# / .NET 빌드 오류 컨텍스트 포함
# 실패 단계만 재실행 (전체 재실행 X)
if 직전 실패 = Unity 테스트:
→ Unity MCP run_tests 또는 Unity CLI 재실행 (§2 절차 그대로)
if 직전 실패 = 빌드(T-BUILD):
→ dotnet build 또는 msbuild 재실행 (§3 절차 그대로)
→ 결과 수집 → game-qa-report.md 업데이트
if 여전히 FAIL AND QA_CYCLE == QA_MAX:
→ [STOP] QA 재시도 {QA_MAX}회 초과. Human 개입 필요.
exit 4
루프 상한: max 2 cycles (결정론적 bound). same-issue stop: sha256(실패테스트명:에러메시지 첫줄) 이전 cycle과 동일 시 즉시 [STOP]. 라우팅 원칙: game-qa는 Unity/C# 환경 — web 전용 /healer X. /forge-fix (general) 재사용. 재실행 스코프: 실패한 단계(Unity 테스트 또는 빌드)만 재실행. 전체 4단계 재실행 금지.
호출 시점: docs/qa/game-qa-report.md 생성 후, 완료 선언 전 (게이팅 위치)
절차 (별도 evaluator agent — executor context 격리):
Agent(
role: evaluator, # executor reasoning context 미포함 — 루브릭 + 산출물만 입력
input: docs/qa/game-qa-report.md + eval rubric,
command: /eval-rubric --target docs/qa/game-qa-report.md
)
→ verdict(PASS/WARN/FAIL) + 4축 점수 수신
→ eval_cases.jsonl append — case_id: EC-game-qa-{N}
게이팅 규칙:
EVAL_RUBRIC_AUTO=off 시 → 완료 전 사용자 수동 평가 요청 출력자동 비활성: EVAL_RUBRIC_AUTO=off
Worker-Evaluator 분리 확인 (P2 감사): 위 eval-rubric Agent()는 executor reasoning context를 수신하지 않는다 (
# executor reasoning context 미포함 — 루브릭 + 산출물만 입력주석 명시). 분리가 이미 올바르게 구현되어 있으므로 추가 변경 불필요.