Treat every .meta file as part of the asset.
Unity references assets through identifiers stored in metadata. A file operation that separates an asset from its metadata can turn an ordinary rename into project damage.
Pair assets and metadata
Flag a removed asset with a surviving .meta file, a new asset without a .meta file, and metadata moved independently of its asset.
Detect unexpected GUID movement
Surface duplicate GUIDs, regenerated GUIDs for an apparent rename, and changed GUID fields when the asset identity was expected to remain stable.
Review folder metadata too
Unity also creates metadata for folders. Include folder moves and deletes in the same pairing logic rather than checking only leaf assets.
Follow changed serialized references without pretending to load Unity.
Text-serialized scenes, prefabs, and assets expose GUID/file-ID references that can be checked against repository state.
Resolve changed GUID targets
For changed YAML, confirm referenced GUIDs still map to available project or package assets. Point to the exact source line and missing target.
Separate built-in and external references
Do not label every unknown GUID as broken. Maintain explicit treatment for Unity built-ins, packages, submodules, generated content, and intentionally absent dependencies.
Avoid broad semantic claims
A resolvable reference can still be wrong for the game. Static integrity should report structural availability, not claim gameplay correctness.
Check the storage rules that make Unity projects reproducible.
The repository contract includes more than Assets. A PR can be structurally valid but still leave another machine unable to reproduce the project.
Verify LFS pointers and attributes
Detect tracked binary types committed as full blobs, pointer files that no longer match policy, and changes to .gitattributes that silently move file classes out of LFS.
Review package state together
Compare Packages/manifest.json with packages-lock.json. Raise added sources, unresolved dependencies, or lock movement that does not match the declared manifest change.
Scope generated and ignored paths
Make the expected policy for Library, Temp, Logs, Builds, user settings, and generated artifacts explicit, then report only concrete violations.
Begin with definite contradictions, not a wall of warnings.
Repository checks earn trust by being quiet. Version each rule and make its evidence independently inspectable.
Gate only high-confidence findings
Start with missing pairs, duplicate identity, invalid LFS form, and inconsistent package state. Let the team promote other rules after measuring noise.
Include a repair path, not an auto-fix
Name the likely safe human check—restore the original .meta, verify the intended asset move, fetch LFS content, or regenerate the lock through the approved workflow.
Validate against history
Replay the rules over known-good PRs and historical failures before turning them into merge gates. Record false positives as first-class evidence.
Inspect the underlying documentation.
This guide is XeSoft's evaluation framework, not a substitute for the source documentation. Links below go to the primary publisher.
How Unity creates .meta files and uses asset identity across a project.
UnityTryGetGUIDAndLocalFileIdentifier ↗Unity's GUID and local file-ID model for serialized asset references.
Unity TechnologiesProject Auditor ↗An existing Unity static-analysis surface; useful for defining what a focused PR-integrity check should complement rather than duplicate.