# Unity YAML Editing

> Unity YAML text serialization editing workflow. Use when Codex needs to directly inspect, modify, create, or repair Unity serialized YAML files such as .unity scenes, .prefab assets, .asset ScriptableObject/config files, .mat, .controller, or other text-serialized Unity assets, especially when AIBridge inspector/prefab/scene APIs do not support the requested Prefab, Scene, ScriptableObjectTable, or custom asset operation

- Skill: `liyingsong99/unity-yaml-editing` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add liyingsong99/unity-yaml-editing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/liyingsong99/unity-yaml-editing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: liyingsong99 (https://skillmd.com/u/liyingsong99)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/liyingsong99/unity-yaml-editing

---


# Unity YAML Editing

Load this Skill only after considering Unity/AIBridge APIs. UnityYAML is fragile, and direct text edits are the fallback for unsupported serialized asset operations, deterministic repair work, and rare text-serialized asset authoring that AIBridge/Unity APIs cannot express

## Decision Order

1. Prefer `aibridge` Inspector/SerializedProperty commands for single readable field edits on scene objects, prefab assets, and `.asset` files
2. Prefer `inspector set_properties` for small batched field edits on one target
3. Prefer `aibridge-prefab-patch` for complex Prefab child/component/property/array/reference edits it supports
4. Prefer Unity Editor scripts when generating high-level assets that Unity can create more safely than text
5. Use direct UnityYAML editing when AIBridge/Unity APIs cannot express the operation, for example:
   - Scene `.unity` structure/object creation or unsupported scene edits
   - New Prefab asset authoring, paired `.meta` creation, or Prefab/Variant structures not covered by `prefab patch`
   - ScriptableObjectTable, custom ScriptableObject `.asset`, `.mat`, `.controller`, or other serialized assets requiring unsupported structural changes
   - Repairing malformed text serialization while preserving existing IDs and references

## Required Workflow

1. Read `references/unity-yaml-reference.md` before editing
2. Inspect a same-project example for every Unity component/class you will create; never write component schemas from memory
3. Make a small, reviewable patch; preserve ordering, indentation, document headers, anchors, `m_Script`, GUIDs, and local fileIDs unless a new object must be created
4. For new assets, create or preserve the paired `.meta` file and ensure its GUID does not already appear in the project
5. For new MonoBehaviour/ScriptableObject documents, resolve the script `.meta` GUID first and use it in `m_Script`
6. For new documents, allocate local fileIDs that do not exist in the same file and update every owning reference consistently
7. Validate with Unity import/compile and targeted AIBridge hierarchy/properties inspection when possible

## Hard Rules

- Do not use generic YAML formatters or parsers to rewrite UnityYAML files
- Do not change `%YAML`, `%TAG`, `--- !u!<classID> &<fileID>` headers, class IDs, GUIDs, or fileIDs without a clear reference update plan
- Do not invent Unity schema fields. Copy shape from an existing nearby object of the same class/component/script when possible
- Prefer decimal floats in hand edits. Avoid editing Unity-generated hexadecimal float values unless preserving existing text unchanged
- Keep `.meta` GUIDs stable. Creating a new asset requires creating/retaining the paired `.meta` file through Unity when possible
- When adding Prefab nodes/components, update all reciprocal references in the same patch: parent `m_Children`, child `m_Father`, `GameObject.m_Component`, and component `m_GameObject`

## Reference

- `references/unity-yaml-reference.md`: detailed UnityYAML format, editing patterns, safety checks, and validation checklist

