Safety and Invariants - jrampey/MiSTer-Audit GitHub Wiki
Safety and Invariants
These boundaries describe the current project design and should remain true unless deliberately redesigned.
Auditor
MiSTer_Audit.sh is read-only with respect to ROMs and saves. It may scan, hash, classify, cache metadata, and write audit/report files, but it does not rename, move, or delete games or saves.
Updater
MiSTer_Audit.sh is the only current script that mutates game/save filenames. Mutation requires an explicit Apply action and exact confirmation text. Rollback is also explicit and manifest-driven.
Rename safeguards
The updater currently enforces root-path checks, unsafe-filename checks, source existence, target nonexistence, duplicate-target prevention, and a CUE rename block. Apply rechecks source/target existence before each move.
Generated state
Reports, caches, preview files, skip files, and rename history live under /media/fat/GameLibraryAudit. They are runtime state, not library content.
Distribution boundary
ROMs, saves, generated audit reports, caches, and rename history are not distribution artifacts and must not be managed by MiSTer Update All.
Separate project boundary
The MiSTer Health Check project is separate from this Game Library Audit and should not be folded into this repository's audit/update behavior.
Version boundary
The current Game Library Audit release is v1.4. Do not increment the release version merely for documentation or maintenance changes unless explicitly directed.