{
  "id": "unity-agent-plugin",
  "type": "loadout",
  "title": "Unity 6 with the official agent plugin",
  "summary": "Project rules for using Unity's official agent plugin safely in Claude Code or Codex: commit first, Editor-driven scene edits, .meta discipline, compile and test checks.",
  "description": "Unity released an official agent plugin for Claude Code, Codex and Grok this autumn. Its skills edit scripts, scenes and\nassets directly and can run C# in the open Editor through the Unity CLI, and Unity's own README warns that not every change\ncan be undone from the Editor. This loadout adds the project rules around it: a clean git tree before changes, Editor-driven\nedits instead of hand-edited scene YAML, .meta file discipline, generated folders left alone, and compile and test checks,\nplus a setup skill with the documented install commands.\n",
  "highlights": [
    "Documented install commands for Claude Code and Codex, with checks",
    "Commit before larger changes; clean tree required",
    "Scenes and prefabs changed through the Editor, not hand-edited YAML",
    ".meta and generated-folder rules that prevent broken references",
    "Batch-mode EditMode and PlayMode test commands"
  ],
  "version": "1.0.0",
  "license": "MIT",
  "author": {
    "name": "Agent Loadout",
    "url": "https://loadout.jnw-it.com"
  },
  "credits": [
    {
      "title": "Unity-Technologies/unity-agent-plugin",
      "url": "https://github.com/Unity-Technologies/unity-agent-plugin"
    },
    {
      "title": "Unity docs: about Unity's plugin",
      "url": "https://docs.unity.com/en-us/ai/unity-plugin/about-unity-plugin"
    }
  ],
  "categories": [
    "gamedev"
  ],
  "stacks": [
    "unity",
    "csharp"
  ],
  "files": [
    {
      "path": "AGENTS.md",
      "role": "instructions",
      "description": "Unity 6 project rules for agent work with the official plugin.",
      "skill": null,
      "agent": null,
      "install_to": {
        "claude-code": "AGENTS.md",
        "codex": "AGENTS.md",
        "cursor": "AGENTS.md",
        "gemini-cli": "AGENTS.md",
        "antigravity-cli": "AGENTS.md",
        "copilot": "AGENTS.md"
      },
      "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/latest/AGENTS.md",
      "bytes": 2039,
      "lang": "markdown",
      "content": "# AGENTS.md: Unity 6 with the official Unity agent plugin\n\nThis project uses Unity 6+ and Unity's official agent plugin (skills that edit scripts, scenes and assets, and can run\nC# in the open Editor through the Unity CLI). Those changes are powerful and not always undoable from the Editor.\n\n## Before changing anything\n- `git status` must be clean. If it is not, ask the human to commit or stash first. Commit before every larger change\n  (new system, scene restructuring, import-setting changes, package changes).\n- Confirm the Unity version (`ProjectSettings/ProjectVersion.txt`) is 6000.x. The plugin requires Unity 6 or later.\n\n## How to change things\n- Prefer the plugin's skills and the Editor (through the Unity CLI) for scenes, prefabs, ScriptableObjects and import\n  settings. Do not hand-edit `.unity`, `.prefab` or `.asset` YAML unless the human asks; references break silently.\n- Every asset has a `.meta` file with its GUID. Move and rename assets in the Editor, or move the `.meta` with the asset.\n  Never delete or regenerate `.meta` files.\n- Never edit `Library/`, `Temp/`, `Logs/`, `obj/` or `UserSettings/`. They are generated and git-ignored.\n- Packages: change `Packages/manifest.json` only when asked, one package per commit, and note the version.\n- Scripts: one public type per file, file name matches the class. Use the existing assembly definitions (`.asmdef`).\n\n## Checking your work\n- After script changes, check the Editor console for compile errors before anything else.\n- Run tests when the project has them:\n  `Unity -batchmode -projectPath . -runTests -testPlatform EditMode -testResults ./TestResults/editmode.xml`\n  (close the Editor first, or use the Test Runner inside it). PlayMode tests use `-testPlatform PlayMode`.\n- For visual changes, ask the human to look, or capture a Game view screenshot through the plugin when available.\n- Summarise which scenes, prefabs and assets you changed so the human can review them in the Editor.\n\nUse the `unity-plugin-setup` skill if the plugin is not installed.\n"
    },
    {
      "path": "CLAUDE.md",
      "role": "adapter",
      "description": "Imports AGENTS.md for Claude Code.",
      "skill": null,
      "agent": "claude-code",
      "install_to": {
        "claude-code": "CLAUDE.md",
        "codex": null,
        "cursor": null,
        "gemini-cli": null,
        "antigravity-cli": null,
        "copilot": null
      },
      "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/CLAUDE.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/latest/CLAUDE.md",
      "bytes": 395,
      "lang": "markdown",
      "content": "# CLAUDE.md\n\n@AGENTS.md\n\n## Claude Code notes\n- Skills from this loadout live in `.claude/skills/`: `unity-plugin-setup`. Use them when their description matches the task.\n- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.\n\n<!-- From the Agent Loadout \"Unity 6 with the official agent plugin\" v1.0.0 — https://loadout.jnw-it.com/loadouts/unity-agent-plugin/ -->\n"
    },
    {
      "path": "GEMINI.md",
      "role": "adapter",
      "description": "Imports AGENTS.md for Gemini CLI.",
      "skill": null,
      "agent": "gemini-cli",
      "install_to": {
        "claude-code": null,
        "codex": null,
        "cursor": null,
        "gemini-cli": "GEMINI.md",
        "antigravity-cli": null,
        "copilot": null
      },
      "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/GEMINI.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/latest/GEMINI.md",
      "bytes": 396,
      "lang": "markdown",
      "content": "# GEMINI.md\n\n@./AGENTS.md\n\n## Gemini CLI notes\n- Skills from this loadout live in `.agents/skills/`: `unity-plugin-setup`. Use them when their description matches the task.\n- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.\n\n<!-- From the Agent Loadout \"Unity 6 with the official agent plugin\" v1.0.0 — https://loadout.jnw-it.com/loadouts/unity-agent-plugin/ -->\n"
    },
    {
      "path": ".cursor/rules/unity-csharp.mdc",
      "role": "rules",
      "description": "C# conventions for Unity scripts.",
      "skill": null,
      "agent": null,
      "install_to": {
        "claude-code": null,
        "codex": null,
        "cursor": ".cursor/rules/unity-csharp.mdc",
        "gemini-cli": null,
        "antigravity-cli": null,
        "copilot": null
      },
      "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/.cursor/rules/unity-csharp.mdc",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/latest/.cursor/rules/unity-csharp.mdc",
      "bytes": 667,
      "lang": "markdown",
      "content": "---\ndescription: Unity C# script conventions.\nglobs: Assets/**/*.cs\nalwaysApply: false\n---\n\n- One public type per file; the file name matches the type. Namespaces follow the folder under `Assets/Scripts/`.\n- Serialise private fields with `[SerializeField] private`, not public fields.\n- Cache component lookups in `Awake`; no `GetComponent`, `Find` or allocations in `Update`.\n- Use `TryGetComponent` instead of `GetComponent` plus a null check.\n- Do not compare Unity objects with `?.` or `??`; use `== null` or implicit bool, which respect destroyed objects.\n- New input code uses the Input System package, not `UnityEngine.Input`, if the project has it installed.\n"
    },
    {
      "path": "skills/unity-plugin-setup/SKILL.md",
      "role": "skill",
      "description": "Install and check the plugin and prepare the project.",
      "skill": "unity-plugin-setup",
      "agent": null,
      "install_to": {
        "claude-code": ".claude/skills/unity-plugin-setup/SKILL.md",
        "codex": ".agents/skills/unity-plugin-setup/SKILL.md",
        "cursor": ".agents/skills/unity-plugin-setup/SKILL.md",
        "gemini-cli": ".agents/skills/unity-plugin-setup/SKILL.md",
        "antigravity-cli": ".agents/skills/unity-plugin-setup/SKILL.md",
        "copilot": ".agents/skills/unity-plugin-setup/SKILL.md"
      },
      "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/latest/skills/unity-plugin-setup/SKILL.md",
      "bytes": 1646,
      "lang": "markdown",
      "content": "---\nname: unity-plugin-setup\ndescription: Install and check Unity's official agent plugin for Claude Code or Codex, and prepare the project (git, ignore file, Unity CLI). Use when the Unity skills are missing or before the first agent session in a Unity project.\n---\n\n# Set up the Unity agent plugin\n\n1. **Project checks.** Unity 6+ (`ProjectSettings/ProjectVersion.txt`). The project is a git repository with a Unity\n   `.gitignore` that excludes `Library/`, `Temp/`, `Logs/`, `obj/`, `UserSettings/`. If not, propose one and ask.\n2. **Install** (the human runs these; they change the agent's own configuration):\n   - Claude Code, inside a session: `/plugin marketplace add Unity-Technologies/unity-agent-plugin`, then\n     `/plugin install unity@unity-agent-plugin`. From a terminal: `claude plugin marketplace add …` and\n     `claude plugin install unity@unity-agent-plugin`, then `/reload-plugins`.\n   - Codex: `codex plugin marketplace add Unity-Technologies/unity-agent-plugin`, then `codex plugin add unity@unity-agent-plugin`.\n3. **Check.** Claude Code: typing `/unity:` lists the skills. Codex: `codex plugin list` shows `unity`.\n4. **Unity CLI.** Many skills work best with the Unity CLI talking to the open Editor. When a task needs it, the plugin\n   offers to install it; tell the human before accepting, because it adds a package to the project. Commit first.\n5. **First task.** Start with something small and reviewable (a settings screen, an input mapping) and review the diff\n   and the scene changes in the Editor before larger work.\n\nSource: github.com/Unity-Technologies/unity-agent-plugin (README, checked 16 October 2026).\n"
    }
  ],
  "requires": {
    "tools": [
      "git"
    ],
    "env": [],
    "mcp": []
  },
  "tested": {
    "status": "untested",
    "last_run": null,
    "fixture": null,
    "per_agent": {
      "claude-code": "untested",
      "codex": "untested",
      "cursor": "untested",
      "gemini-cli": "untested",
      "antigravity-cli": "untested",
      "copilot": "untested"
    }
  },
  "security": {
    "scanned": true,
    "scanner": "intake-precheck/1",
    "verdict": "clean",
    "network": false,
    "scripts": []
  },
  "featured": false,
  "deprecated": false,
  "last_checked": "2026-10-17",
  "published": "2026-10-17",
  "updated": "2026-10-17",
  "compatibility": {
    "claude-code": "native",
    "codex": "native",
    "cursor": "native",
    "gemini-cli": "native",
    "antigravity-cli": "native",
    "copilot": "native"
  },
  "counts": {
    "rules": 2,
    "skills": 1,
    "mcp": 0
  },
  "url": "https://loadout.jnw-it.com/loadouts/unity-agent-plugin/",
  "api_url": "https://loadout.jnw-it.com/api/loadouts/unity-agent-plugin.json",
  "verification": {
    "level": "verified-install",
    "status": "verified",
    "label": "Verified install",
    "verified": true,
    "checked_at": "2026-10-17T07:47:06Z",
    "commit": "316f4bcae9d3c1f64f8f5e32a12e27e0c36f13b5",
    "content_current": true,
    "agent_tests": "not-run",
    "counts": {
      "pass": 8,
      "fail": 0,
      "skip": 0,
      "not_applicable": 2
    },
    "meaning": "Level 1: automated checks on the files (parse, install paths, MCP config, safety scan, references, size, licence, starter build). No AI agent was run.",
    "checks": [
      {
        "id": "listing",
        "name": "Listing",
        "status": "pass",
        "summary": "Schema valid; 5 files declared, none missing or extra",
        "details": [
          "tested.status: untested (agent tests are separate from Level 1)"
        ]
      },
      {
        "id": "parse",
        "name": "Files parse",
        "status": "pass",
        "summary": "All 5 files parse; front matter valid",
        "details": []
      },
      {
        "id": "adapters",
        "name": "Adapters",
        "status": "pass",
        "summary": "CLAUDE.md and GEMINI.md import AGENTS.md and are up to date",
        "details": [
          "CLAUDE.md: matches the generator",
          "GEMINI.md: matches the generator"
        ]
      },
      {
        "id": "install-paths",
        "name": "Install paths",
        "status": "pass",
        "summary": "Correct paths for all 6 agents; layouts re-discovered",
        "details": [
          "Claude Code: 3 files, 1 skill in .claude/skills/",
          "Codex CLI: 2 files, 1 skill in .agents/skills/",
          "Cursor: 3 files, 1 skill in .agents/skills/, 1 rule",
          "Gemini CLI: 3 files, 1 skill in .agents/skills/",
          "Antigravity CLI: 2 files, 1 skill in .agents/skills/",
          "GitHub Copilot: 2 files, 1 skill in .agents/skills/"
        ]
      },
      {
        "id": "mcp",
        "name": "MCP config",
        "status": "n/a",
        "summary": "No MCP servers in this loadout",
        "details": []
      },
      {
        "id": "safety",
        "name": "Safety scan",
        "status": "pass",
        "summary": "Clean: no credentials, risky shell or hidden text",
        "details": [
          "Scanner intake-precheck/1: verdict clean; network no (listing says no)"
        ]
      },
      {
        "id": "references",
        "name": "References",
        "status": "pass",
        "summary": "1 reference between files resolves for every agent",
        "details": []
      },
      {
        "id": "size",
        "name": "Size limits",
        "status": "pass",
        "summary": "5 files, 5.0 KB total; largest AGENTS.md 2.0 KB",
        "details": [
          "Limits: 30 files, 32 KB per file, 128 KB total, 500 lines per skill or rule"
        ]
      },
      {
        "id": "licence",
        "name": "Licence",
        "status": "pass",
        "summary": "MIT, by Agent Loadout; text in the repository LICENSE",
        "details": []
      },
      {
        "id": "starter-build",
        "name": "Starter build",
        "status": "n/a",
        "summary": "Not applicable: the Unity Editor needs a licence and a multi-gigabyte install, so it can't run free and quickly in CI",
        "details": [
          "The plugin and the test commands need Unity 6 and a signed-in licence.",
          "Every other Level 1 check still runs on this loadout."
        ]
      }
    ]
  },
  "install": {
    "claude-code": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "CLAUDE.md",
          "target": "CLAUDE.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/CLAUDE.md",
          "role": "adapter"
        },
        {
          "path": "skills/unity-plugin-setup/SKILL.md",
          "target": ".claude/skills/unity-plugin-setup/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
          "role": "skill"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/claude-code.zip"
    },
    "codex": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/unity-plugin-setup/SKILL.md",
          "target": ".agents/skills/unity-plugin-setup/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
          "role": "skill"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/codex.zip"
    },
    "cursor": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": ".cursor/rules/unity-csharp.mdc",
          "target": ".cursor/rules/unity-csharp.mdc",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/.cursor/rules/unity-csharp.mdc",
          "role": "rules"
        },
        {
          "path": "skills/unity-plugin-setup/SKILL.md",
          "target": ".agents/skills/unity-plugin-setup/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
          "role": "skill"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/cursor.zip"
    },
    "gemini-cli": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "GEMINI.md",
          "target": "GEMINI.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/GEMINI.md",
          "role": "adapter"
        },
        {
          "path": "skills/unity-plugin-setup/SKILL.md",
          "target": ".agents/skills/unity-plugin-setup/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
          "role": "skill"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/gemini-cli.zip"
    },
    "antigravity-cli": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/unity-plugin-setup/SKILL.md",
          "target": ".agents/skills/unity-plugin-setup/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
          "role": "skill"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/antigravity-cli.zip"
    },
    "copilot": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/unity-plugin-setup/SKILL.md",
          "target": ".agents/skills/unity-plugin-setup/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/unity-agent-plugin/1.0.0/skills/unity-plugin-setup/SKILL.md",
          "role": "skill"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/copilot.zip"
    }
  },
  "source_zip_url": "https://loadout.jnw-it.com/download/unity-agent-plugin/source.zip"
}