← ClaudeAtlas

unity-file-structure-habitslisted

Decide where a new file or asset goes in a Unity project, and keep the layout from drifting: read STRUCTURE.md as the authority, follow what the project already does over any default, move assets only through the editor so references survive, add a category rather than dumping a file in the nearest folder, and update STRUCTURE.md when the tree gains something new. Use when: creating a script, prefab, material or any asset; "where should this go", "where do I put this", "the project structure is a mess", "/unity-file-structure-habits"; or reviewing a change that adds files.
Xenoneqq/unity-ai-skills · ★ 1 · Data & Documents · score 74
Install: claude install-skill Xenoneqq/unity-ai-skills
# Unity file structure habits One rule: **the project's own layout wins.** `STRUCTURE.md` records it, the tree confirms it, and both outrank every default in this file. A structure is only worth having if it answers the question "where does this go" without a discussion. That means it has to be written down, and it has to stay true. ## 1. Before creating anything, read the layout ```bash REPO=$(git rev-parse --show-toplevel) sed -n '1,80p' "$REPO/STRUCTURE.md" 2>/dev/null || echo "no STRUCTURE.md — see step 5" ls -d "$ROOT/Assets"/*/ ``` `STRUCTURE.md` is the authority. Where it and the tree disagree, the tree is what exists and the file is what someone intended — report the gap, do not silently pick one. No `STRUCTURE.md` at all means the project has not been set up. Run `unity-skill-package-setup` rather than inventing a layout here; it scans what the project already is first, which is the part that matters. ## 2. Placing a file Ask in this order, stopping at the first answer: 1. **Does `STRUCTURE.md` name a folder for this kind of thing?** Use it. Done. 2. **Does a sibling of the same kind already exist?** Put it beside them and mirror their naming. One existing example beats any rule here. 3. **Is it third-party?** It keeps the layout it shipped with, untouched. Never reorganize an imported package — the next update undoes the work and the conflicts are miserable. 4. **Otherwise it is a new category.** Go to step 4. Do not resolve it by dropping the file in