commit-trailers
Structured commit trailers — adds Constraint, Rejected, Scope-risk, and Not-tested metadata to commit messages. Captures architectural decisions and known gaps…
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
$ npx -y skills add XeldarAlz/everything-claude-unity --skill assembly-definitions --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/assembly-definitionsContext preview
The summary Claude sees to decide when to auto-load this skill.
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
name: assembly-definitions description: "Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization." alwaysApply: true
Assembly definitions (`.asmdef`) split your project into separate compilation units. Without them, Unity recompiles ALL scripts on every change. With them, only the changed assembly and its dependents recompile.
Assets/ ├── Scripts/ │ ├── Core/ # MyGame.Core.asmdef │ │ ├── Core.asmdef │ │ ├── Events/ │ │ ├── Pooling/ │ │ └── Utilities/ │ │ │ ├── Gameplay/ # MyGame.Gameplay.asmdef │ │ ├── Gameplay.asmdef │ │ ├── Player/ │ │ ├── Enemies/ │ │ └── Items/ │ │ │ ├── Systems/ # MyGame.Systems.asmdef │ │ ├── Systems.asmdef │ │ ├── Audio/ │ │ ├── Save/ │ │ └── UI/ │ │ │ └── Editor/ # MyGame.Editor.asmdef │ ├── Editor.asmdef │ └── CustomInspectors/ │ ├── Tests/ │ ├── EditMode/ # MyGame.Tests.Editor.asmdef │ │ └── Tests.Editor.asmdef │ └── PlayMode/ # MyGame.Tests.Runtime.asmdef │ └── Tests.Runtime.asmdef
Gameplay → Systems → Core
↓ ↓ ↓
(game) (audio, (events,
save, pooling,
UI) utilities)
Editor → [any runtime assembly]
Tests → [assembly being tested]**Never reverse the arrows.** Core must not reference Gameplay. Systems must not reference Gameplay.
{
"name": "MyGame.Gameplay",
"rootNamespace": "MyGame.Gameplay",
"references": [
"MyGame.Core",
"MyGame.Systems"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}{
"name": "MyGame.Editor",
"rootNamespace": "MyGame.Editor",
"references": [
"MyGame.Core",
"MyGame.Gameplay"
],
"includePlatforms": ["Editor"],
"excludePlatforms": [],
"allowUnsafeCode": false
}**Key:** `"includePlatforms": ["Editor"]` — this assembly is excluded from builds entirely.
{
"name": "MyGame.Tests.Editor",
"rootNamespace": "MyGame.Tests.Editor",
"references": [
"MyGame.Core",
"MyGame.Gameplay",
"UnityEngine.TestRunner",
"UnityEditor.TestRunner"
],
"includePlatforms": ["Editor"],
"defineConstraints": ["UNITY_INCLUDE_TESTS"],
"overrideReferences": true,
"precompiledReferences": ["nunit.framework.dll"]
}Use `defineConstraints` for optional package dependencies:
{
"name": "MyGame.DOTweenIntegration",
"defineConstraints": ["DOTWEEN"],
"references": ["MyGame.Core"]
}This assembly only compiles if the `DOTWEEN` scripting define is present.
1. **Circular references** — A references B, B references A → compilation error 2. **Editor referencing Runtime incorrectly** — Editor asmdef can reference runtime, but runtime CANNOT reference Editor 3. **Missing reference** — Type in Assembly A uses type from Assembly B, but A doesn't reference B → error 4. **Scripts outside any asmdef** — these go into `Assembly-CSharp.dll` which recompiles on ANY script change 5. **Root namespace mismatch** — `rootNamespace` should match the folder's intended namespace
Unity compiles assemblies in dependency order: 1. Assemblies with no dependencies (Core) 2. Assemblies depending only on step 1 (Systems) 3. Assemblies depending on step 1-2 (Gameplay) 4. `Assembly-CSharp` (scripts without asmdef — compiles LAST, slowest)
The fewer scripts in `Assembly-CSharp`, the faster your iteration time.
The ultimate Claude Code toolkit for Unity game development. A production-ready, plug-and-play system that gives Claude Code deep Unity expertise — from writing performant C# to building scenes, profiling performance, and triggering iOS/Android builds — all
Structured commit trailers — adds Constraint, Rejected, Scope-risk, and Not-tested metadata to commit messages. Captures architectural decisions and known gaps…
Ambiguity gating — detects vague feature requests and forces structured requirements gathering with scoring across scope, platform, performance, integration,…
Event system patterns — C# events, UnityEvent, SO event channels, static EventBus. When to use each, zero-allocation patterns, memory leak prevention.
Configures Claude Code's statusline to display Unity workflow state — current phase, active agent, files modified, and session duration.
Post-debugging knowledge extraction — captures non-obvious, codebase-specific learnings that pass quality gates. Invoke after resolving tricky bugs or…
Heuristics for choosing the right model tier (haiku/sonnet/opus) when delegating to agents. Loaded by orchestrating commands to inform agent selection.