Agent skill
unity-compile-fixer
Detect and resolve Unity C# compilation errors using VSCode diagnostics. Use this skill when Unity projects have compilation errors that need diagnosis and automated fixes. Analyzes errors from VSCode Language Server, proposes solutions based on error patterns, and handles version control conflicts for Unity projects.
Install this agent skill to your Project
npx add-skill https://github.com/Dev-GOM/claude-code-marketplace/tree/main/plugins/unity-dev-toolkit/skills/unity-compile-fixer
SKILL.md
Unity Compile Fixer
Overview
This skill enables automatic detection and resolution of Unity C# compilation errors by leveraging VSCode's diagnostic system. It collects real-time errors from the OmniSharp C# language server, analyzes error patterns against a curated database of common Unity issues, and proposes context-aware solutions for user approval before applying fixes.
When to Use This Skill
Use this skill when:
- Unity projects report C# compilation errors in VSCode
- Need to diagnose the root cause of Unity compiler errors (CS* error codes)
- Want automated fix suggestions for common Unity scripting issues
- Working with Unity projects that have version control integration (Git, Unity Collaborate, Plastic SCM)
- Need to handle Unity .meta file conflicts
Example user requests:
- "Check Unity compilation errors and help me fix them"
- "My Unity project has compiler errors, can you diagnose and fix?"
- "Unity scripts are not compiling, what's wrong?"
- "Fix the C# errors in my Unity project"
Workflow
Follow this workflow when the skill is invoked:
1. Detect Compilation Errors
Use the mcp__ide__getDiagnostics tool to collect errors from VSCode:
// Collect all project diagnostics
mcp__ide__getDiagnostics()
// Or target specific Unity script files
mcp__ide__getDiagnostics({ uri: "file:///path/to/PlayerController.cs" })
Filter the diagnostics to focus on Unity-relevant errors:
- Severity: Only process errors with
severity: "Error"(ignore warnings) - Source: Only process
source: "csharp"(OmniSharp C# diagnostics) - Error Codes: Focus on CS* compiler error codes (e.g., CS0246, CS0029, CS1061)
2. Analyze Error Patterns
For each detected error:
-
Extract error information:
- File path and line number from
uriandrange - Error code from
message(e.g., "CS0246") - Full error message text
- File path and line number from
-
Match against error pattern database:
- Load
references/error-patterns.json - Find the error code entry (e.g., CS0246)
- Retrieve common causes and solutions
- Load
-
Read affected file context:
- Use Read tool to load the file with errors
- Examine surrounding code for context
- Identify missing imports, incorrect types, or API misuse
3. Generate Solution Proposals
For each error, create a structured fix proposal:
**Error**: CS0246 at PlayerController.cs:45
**Message**: The type or namespace name 'Rigidbody' could not be found
**Analysis**:
- Missing using directive for UnityEngine namespace
- Common Unity API usage pattern
**Proposed Solution**:
Add `using UnityEngine;` at the top of PlayerController.cs
**Changes Required**:
- File: Assets/Scripts/PlayerController.cs
- Action: Insert using directive at line 1
4. User Confirmation
Before applying any fixes:
-
Present all proposed solutions in a clear, structured format
-
Use AskUserQuestion tool to get user approval:
- List each error and proposed fix
- Allow user to approve all, select specific fixes, or cancel
-
Wait for explicit confirmation - do not apply fixes automatically
5. Apply Approved Fixes
For each approved fix:
- Use Edit tool to modify the affected file
- Preserve code formatting and existing structure
- Apply minimal changes - only fix the specific error
Example:
Edit({
file_path: "Assets/Scripts/PlayerController.cs",
old_string: "public class PlayerController : MonoBehaviour",
new_string: "using UnityEngine;\n\npublic class PlayerController : MonoBehaviour"
})
6. Verify Version Control Status
After applying fixes:
-
Check for .meta file conflicts:
- Use Grep to search for Unity .meta files
- Verify that script GUID hasn't changed
- Check for merge conflict markers (<<<<<<, ======, >>>>>>)
-
Report VCS status:
- List modified files
- Warn about any .meta file issues
- Suggest git operations if needed
7. Re-validate Compilation
After fixes are applied:
- Re-run diagnostics using
mcp__ide__getDiagnostics() - Compare error count before and after
- Report results to the user:
- Number of errors fixed
- Remaining errors (if any)
- Success rate
Error Pattern Database
The skill relies on references/error-patterns.json for error analysis. This database contains:
- Error Code: CS* compiler error code
- Description: Human-readable explanation
- Common Causes: Typical reasons this error occurs in Unity
- Solutions: Step-by-step fix instructions
- Unity-Specific Notes: Unity API considerations
To analyze an error, load the database and match the error code:
Read({ file_path: "references/error-patterns.json" })
// Parse JSON and find errorCode entry
Analysis Scripts
The skill includes Node.js scripts in scripts/ for complex error analysis:
scripts/analyze-diagnostics.js
Processes VSCode diagnostics JSON output and extracts Unity-relevant errors.
Usage:
node scripts/analyze-diagnostics.js <diagnostics-json-file>
Output:
- Filtered list of Unity C# compilation errors
- Error classification by type (missing imports, type errors, API issues)
- Severity and file location information
This script can be run independently or invoked from the SKILL.md workflow when detailed analysis is needed.
Best Practices
When using this skill:
- Start with full project diagnostics - use
mcp__ide__getDiagnostics()without parameters to get complete error picture - Prioritize errors by severity and dependency - fix foundational errors (missing imports) before downstream errors
- Batch related fixes - group errors from the same file for efficient editing
- Always verify VCS status - Unity .meta files are critical for version control
- Re-validate after fixes - ensure errors are actually resolved
Resources
scripts/analyze-diagnostics.js
Node.js script for processing VSCode diagnostics and filtering Unity-specific C# errors.
references/error-patterns.json
Curated database of common Unity C# compilation errors with solutions and Unity-specific guidance.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
unity-editor-toolkit
Unity Editor control and automation, WebSocket-based real-time communication. 유니티에디터제어및자동화, WebSocket기반실시간통신. Features/기능: GameObject control 게임오브젝트제어, Transform manipulation 트랜스폼조작, Component management 컴포넌트관리, Scene management 씬관리, SQLite database integration SQLite데이터베이스통합, GUID-based persistence GUID기반영구식별, Multi-scene synchronization 멀티씬동기화, Command Pattern with Undo/Redo 명령패턴실행취소재실행, Menu execution 메뉴실행, ScriptableObject management 스크립터블오브젝트관리, Array/List manipulation 배열리스트조작, All field types support 모든필드타입지원, Material/Rendering 머티리얼/렌더링, Prefab system 프리팹시스템, Asset Database 애셋데이터베이스, Animation 애니메이션, Physics 물리, Console logging 콘솔로깅, EditorPrefs management 에디터프리퍼런스관리, Editor automation 에디터자동화, Build pipeline 빌드파이프라인, Lighting 라이팅, Camera 카메라, Audio 오디오, Navigation 네비게이션, Particles 파티클, Timeline 타임라인, UI Toolkit, Profiler 프로파일러, Test Runner 테스트러너. Protocol 프로토콜: JSON-RPC 2.0 over WebSocket (port 9500-9600). 500+ commands 명령어, 25 categories 카테고리. Real-time bidirectional communication 실시간양방향통신. Security 보안: Defense-in-depth 심층방어 (path traversal protection 경로순회방지, command injection defense 명령어인젝션방어, JSON injection prevention JSON인젝션방지, SQL injection prevention SQL인젝션방지, transaction safety 트랜잭션안전성). Localhost-only connections 로컬호스트전용. Cross-platform 크로스플랫폼 (Windows, macOS, Linux).
blender-toolkit
Blender automation with geometry creation, materials, modifiers, and Mixamo animation retargeting. Core Features: WebSocket-based real-time control, automatic bone mapping with UI review, two-phase confirmation workflow, quality assessment, multi-project support, comprehensive CLI commands. Use Cases: Create 3D primitives (cube, sphere, cylinder, etc.), manipulate objects (transform, duplicate, delete), manage materials and modifiers, retarget Mixamo animations to custom rigs with fuzzy bone matching.
unity-test-runner
Execute and analyze Unity Test Framework tests from the command line. This skill automates test execution for Unity projects by detecting the Unity Editor, configuring test parameters (EditMode/PlayMode), running tests via CLI, parsing XML results, and generating detailed failure reports. Use this when running Unity tests, validating game logic, or debugging test failures.
Unity Template Generator
Generates production-ready C# script templates (MonoBehaviour, ScriptableObject, Editor, tests). Use when creating new scripts or setting up project structure.
Unity UI Toolkit
Assists with Unity UI Toolkit development - UXML structure, USS styling, C# VisualElement manipulation, data binding, and custom controls. Use when implementing UI Toolkit interfaces.
Unity Script Validator
Validates C# scripts for best practices, performance, and Unity patterns. Use when reviewing scripts or checking code quality.
Didn't find tool you were looking for?