From unity-assets
unity-asset-skills 설치·환경 read-only 헬스체크. 6개 항목 (Unity Editor reachable via MCP / unity-mcp-skill 글로벌 skill 존재 / 프로젝트 .claude/ 구조 / unity-assets.yml valid / feedback.jsonl 행 스키마 / stale _tmp/ 잔재 감지)을 검사하고 ✓/✗ + 권장 조치 출력. 어떤 파일도 수정·생성·삭제하지 않는다. 자동 fix는 V1 범위 외.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unity-assets:unity-assets-doctorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`unity-asset-skills` 사용 전에 환경이 6가지 항목을 모두 만족하는지 read-only로 검사한다. 실패 시 어떤 항목이 문제인지 그리고 어떻게 고칠 수 있는지 권장 조치를 출력한다. 자동 fix·자동 설치·자동 디렉터리 생성은 모두 V1 범위 외. 검사 5(feedback.jsonl)는 Wave 2 신규, 검사 6(stale _tmp/ 감지)은 후속 신규이며 둘 다 해당 부재 시 PASS로 처리(선택적 상태)되어 기존 CRIT-DOC1 4개 fault-injection 계약을 깨지 않는다.
unity-asset-skills 사용 전에 환경이 6가지 항목을 모두 만족하는지 read-only로 검사한다. 실패 시 어떤 항목이 문제인지 그리고 어떻게 고칠 수 있는지 권장 조치를 출력한다. 자동 fix·자동 설치·자동 디렉터리 생성은 모두 V1 범위 외. 검사 5(feedback.jsonl)는 Wave 2 신규, 검사 6(stale _tmp/ 감지)은 후속 신규이며 둘 다 해당 부재 시 PASS로 처리(선택적 상태)되어 기존 CRIT-DOC1 4개 fault-injection 계약을 깨지 않는다.
/unity-assets:doctor — 인자 없음. cwd 기준 검사.cwd가 Unity 프로젝트 루트일 것이라 추정한다. 추정이 틀리면 검사 3번에서 ✗가 나온다 (정상 동작).
각 항목은 PASS / FAIL 두 결과만 가진다. 출력은 6행 체크리스트(검사 5는 Wave 2 신규, 검사 6은 후속 신규).
unity-mcp-orchestrator 스킬을 경유하여 MCP for Unity의 비-파괴 read 도구 한 번 호출. 후보: mcp__manage_scene (조회 액션) 또는 mcp__read_console.Unity Editor 실행 후 5초 대기. 그래도 실패하면 https://github.com/CoplayDev/unity-mcp#troubleshooting 참조.~\.claude\skills\unity-mcp-skill\SKILL.md 파일 존재 확인 (Read).name: 필드 추출.name: unity-mcp-orchestrator이어야 함 (CONVENTION.md §8의 disambiguation 규칙).Unity 메뉴 > MCP for Unity > Skill Sync > Sync now. 동기화 후 ~\.claude\skills\unity-mcp-skill\ 에 SKILL.md (name: unity-mcp-orchestrator)가 생성됨.Assets/ 디렉터리 존재 확인 (Unity 프로젝트 루트인지)..claude/ 디렉터리 존재 확인 (없어도 PASS — /unity-assets:index 첫 실행이 자동 생성하므로).Assets/ 존재 (그리고 선택적으로 .claude/).Assets/ 부재 — 현재 cwd가 Unity 프로젝트 루트가 아님.Unity 프로젝트 루트로 cd 후 /unity-assets:doctor 재실행. 그 다음 /unity-assets:index 한 번 실행하면 .claude/unity-asset-index/ 디렉터리가 자동 생성됨..claude/unity-assets.yml 파일 존재 확인. 부재 → "사용자 override 없음, 기본값 사용 예정"으로 PASS (선택적 설정).examples/unity-assets.yml의 인정 키 (index_depth, confidence_threshold.auto, confidence_threshold.confirm, batch_size, parallel_subagents, max_assets_in_context, ignore_paths, safety_mode) 외에 모르는 최상위 키가 있으면 경고로 보고하되 PASS (forward compatibility).batch_size가 integer인지). 타입 불일치 → FAIL..claude/unity-assets.labels.yml 파일 존재 확인. 부재 → 본 부가 점검을 skip (PASS에 영향 없음, 선택적 설정).schemas/curated-labels.json.schema.json으로 스키마 검증 (version == 1, labels는 glob → string[] 매핑). 스키마 불일치 → FAIL.<플러그인 설치 경로>\examples\unity-assets.yml 을 프로젝트 .claude\ 로 복사 후 필요한 키만 수정. 또는 .claude/unity-assets.yml 을 삭제하면 기본값 사용. unity-assets.labels.yml 검증 실패 시 docs/samples/unity-assets.labels.example.yml 참고 후 schemas/curated-labels.json.schema.json에 맞춰 수정.<unity-project>/.claude/unity-asset-index/feedback.jsonl 파일 존재 확인. 부재 → "아직 누적된 사용자 pick 없음 — /unity-assets:pick이 첫 호출 시 자동 생성"로 PASS (선택적 데이터, CRIT-DOC1 backward-compatible 핵심).schemas/feedback-row.json.schema.json을 통과해야 함 (required 필드 8개·pattern·enum 검증).<ok-lines>/<total> 와 <corrupted> 카운트로 집계.feedback.jsonl이 손상된 행을 포함하고 있음. 손상 행은 search hint에서 자동 skip되지만, 누적 학습이 약화됨. 백업 후 .claude/unity-asset-index/feedback.jsonl을 삭제하면 다음 /unity-assets:pick 호출이 빈 파일로 새로 시작.✓ feedback.jsonl: 18/18 rows valid, 0 corrupted
파일 부재 시:
✓ feedback.jsonl: not yet present (OK)
<unity-project>/.claude/unity-asset-index/_tmp/ 디렉토리 존재 확인._tmp/meta-list.json, _tmp/*.json 등 .meta Glob 결과 dump 파일._tmp/*.ps1, _tmp/*.sh, _tmp/setup-*.ps1 등 batch fan-out 우회 스크립트._tmp/batches/ 디렉토리, _tmp/batches/batch-NNN.txt 등._tmp/ 하위 모든 파일._tmp/ 부재._tmp/ 존재 — 이전 또는 진행 중인 /unity-assets:index 실행이 자가 우회로 작성한 stale orphan. CONVENTION.md §2.6 위반이며 §2.4의 R1 복구 분기가 인식하지 않으므로 재실행 시 동일 fail mode(자기가 쓴 dump 파일을 못 읽음, 또는 자동화 스크립트가 권한 prompt에서 막힘)를 반복 유발할 수 있다.Remove-Item -Recurse -Force <unity-project>/.claude/unity-asset-index/_tmp 후 /unity-assets:index 재실행. 다음 인덱서는 SKILL.md(index) Step 1.5가 자동 폐기하지만, 본 검사는 read-only이므로 직접 폐기는 사용자에게 위임한다. 잔재가 반복 발생하면 silent stall (SKILL.md(index) § 종료 신호 출력 계약 위반) 가능성이 있으니 stdout 마지막 줄에 [unity-assets:index] 접두 메시지가 있는지 확인.✓ no stale _tmp/ artifacts
잔재 발견 시 (분류된 종류만 표시, mtime은 디렉토리 mtime):
✗ stale _tmp/ artifacts found (mtime: <ISO-8601>):
- dump: meta-list.json (128 KB)
- script: setup-batches.ps1 (1.8 KB)
- batch-staging: batches/ (0 files)
→ Remove-Item -Recurse -Force <unity-project>/.claude/unity-asset-index/_tmp 후 /unity-assets:index 재실행.
stdout에 정확히 6행:
✓ Unity Editor reachable via MCP for Unity
✓ unity-mcp-skill global skill present (name: unity-mcp-orchestrator)
✓ Project .claude/ structure ready
✓ unity-assets.yml valid (또는: 파일 없음 — 기본값 사용)
✓ feedback.jsonl: <ok>/<total> rows valid, <corrupted> corrupted (또는: not yet present)
✓ no stale _tmp/ artifacts
또는 한 줄 이상이 ✗인 경우:
✓ Unity Editor reachable via MCP for Unity
✗ unity-mcp-skill global skill present
→ Unity 메뉴 > MCP for Unity > Skill Sync > Sync now.
✓ Project .claude/ structure ready
✓ unity-assets.yml valid
✓ feedback.jsonl: not yet present (OK)
✓ no stale _tmp/ artifacts
종료 코드:
doctor는 어떤 파일도 수정·생성·삭제하지 않는다. 검사 4에서 .claude/unity-assets.yml이 손상되었어도 doctor가 자동 복구하지 않으며, 사용자에게 권장 조치만 알린다. 검사 5에서 feedback.jsonl이 손상되었어도 doctor는 행 카운트만 보고하고 파일을 건드리지 않는다. 검사 6에서 stale _tmp/를 발견해도 doctor는 보고만 하고 폐기하지 않는다 (자동 폐기는 인덱서 SKILL.md Step 1.5의 책임). CRIT-DOC1이 이 read-only 속성을 fixture 디렉터리 mtime 합계 변화 없음으로 검증한다.
_tmp/)는 기존 4개 fault-injection 계약을 깨지 않도록 각각 해당 부재 시 PASS로 처리한다.schemas/feedback-row.json.schema.json 행 단위 검증을 수행한다. test-feedback-jsonl.ps1이 schema 검증 정확도를 별도로 단언.name: unity-mcp-orchestrator는 CONVENTION.md §8의 disambiguation에서 정의.schemas/feedback-row.json.schema.json (Wave 2 신규).skills/unity-assets-index/SKILL.md Step 1.5 (자가 복구).npx claudepluginhub v0o0v/unity-asset-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.