{
 "schema": "aiblocks-page/1",
 "id": "agency-unity-architect",
 "type": "agent",
 "name": "Unity software architect",
 "summary": "Plan a Unity project structure with ScriptableObjects so systems stay separate, designers can edit data, and oversized scripts get split up.",
 "headline": "Unity software architect",
 "subhead": "Tell it which Unity systems are tangled, or paste your scripts. It finds hard links and big scripts, then plans how to move shared data into ScriptableObjects. You get a data map, a list of assets to make and a cleanup order.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "codebase",
   "required": false,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  },
  {
   "type": "audit_report",
   "required": true,
   "label": "Audit report",
   "what": "findings with evidence, severity, missing inputs and next actions"
  }
 ],
 "you_give": [
  "Your Unity version and the platforms you build for",
  "The systems you want to tidy, such as health, inventory or UI",
  "Your scripts, or a list of the big ones and what they do (optional)",
  "Who edits game data, such as designers with no code skills (optional)",
  "The problems you have, such as scene bugs or slow frames (optional)"
 ],
 "you_get": [
  "A list of tangled spots in what you shared, such as singletons and oversized scripts",
  "A data map that shows what each script reads and writes",
  "A list of ScriptableObject assets to create, each with its job",
  "A plan for splitting big scripts into one-job components",
  "A cleanup order in small steps you can test one by one"
 ],
 "use_when": [
  "One script runs half your game and every change risks breaking something else.",
  "Your designers must ask a programmer to change a number, because values sit inside scripts.",
  "Your prefabs only work in one scene, or break when you load another scene.",
  "You are starting a bigger Unity project and want the structure settled before you write systems."
 ],
 "skip_when": [
  "You are building multiplayer or networking. Use the Unity Multiplayer Engineer agent.",
  "You want a custom editor window or import rule. Use the Unity editor tool developer.",
  "You want a shader. Use the Unity Shader Graph artist.",
  "You are making a small jam game or a throwaway test. This structure may cost more time than it saves."
 ],
 "output_sample": {
  "input": [
   "Your Unity version and target platforms",
   "The systems you want to tidy",
   "Your scripts, or a list of the big ones (optional)",
   "Who edits game data (optional)"
  ],
  "prerequisites": [
   "A Unity project you can edit and run"
  ],
  "output": [
   {
    "name": "Fit check",
    "contains": "Whether the full ScriptableObject structure suits your project size, or a lighter one does."
   },
   {
    "name": "Findings",
    "contains": "Each tangled script or file, the problem and why it will hurt later."
   },
   {
    "name": "Data map",
    "contains": "Each shared value, who writes it, who reads it and where it should live."
   },
   {
    "name": "ScriptableObject list",
    "contains": "Each asset to create, its type, its job and its folder."
   },
   {
    "name": "Component split",
    "contains": "How each big script breaks into one-job components."
   },
   {
    "name": "Cleanup order",
    "contains": "Small steps in order, each with a way to test it."
   },
   {
    "name": "Risks and open questions",
    "contains": "What could go wrong during the cleanup and what the agent could not see."
   }
  ]
 },
 "output_shape": "FIT CHECK\n  <project size> | <worth the full structure, a lighter version, or not worth it> | <why>\n\nFINDINGS\n  <script or file> | <problem> | <why it hurts later>\n\nDATA MAP\n  <shared value> | <who writes it> | <who reads it> | <where it should live>\n\nSCRIPTABLEOBJECT LIST\n  <asset name> | <type: variable, event or runtime set> | <its job> | <folder>\n\nCOMPONENT SPLIT\n  <big script> > <new one-job components>\n\nCLEANUP ORDER\n  <step> | <what changes> | <how to test it>\n\nC# PATTERNS (only if asked)\n  <short code, marked untested>\n\nRISKS AND OPEN QUESTIONS\n  <what could go wrong, what is missing>",
 "how_to_use": [
  "Download the pack and add it to your AI as a skill. If you cannot, paste SKILL.md and then references/source-agent.md into a new chat.",
  "Say your Unity version and which systems you want to tidy. Paste the scripts that cause pain. Say MISSING for anything you do not know.",
  "Say \"Plan this. Tell me if this is too much for my project.\" Your AI asks once for anything missing.",
  "Read the fit check first. If it says the project is small, take the smaller plan.",
  "Do the cleanup in the order given, one step at a time. Run your game after each step.",
  "Paste any new errors back and ask for the next step."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Process and behavior change planner",
   "url": "https://useaiblocks.com/skills/structure-behaviour-split",
   "why": "Build it"
  },
  {
   "name": "Course exercise builder",
   "url": "https://useaiblocks.com/skills/course-exercise-scaffolder",
   "why": "Build it"
  },
  {
   "name": "Software developer from specifications",
   "url": "https://useaiblocks.com/skills/spec-builder",
   "why": "Build it"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/game-development/unity/unity-architect.md",
  "licence": "MIT",
  "original_name": "Unity Architect",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Unity Architect",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/game-development/unity/unity-architect.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-unity-architect",
  "markdown": "https://useaiblocks.com/agents/agency-unity-architect.md",
  "json": "https://useaiblocks.com/agents/agency-unity-architect.json",
  "instructions": "https://useaiblocks.com/skills/agency-unity-architect/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-unity-architect.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-unity-architect",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-unity-architect",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
