← ClaudeAtlas

decomp-match-reviewlisted

Review a decompilation matching change the way a decomp maintainer would - first verifying the match is real (fakematch / NONMATCHING-banner / wrong-compiler checks), then whether the recovered source is admissible, then what it costs the host port. Use when reviewing or preparing a matching PR/branch/diff in a decomp project (sm64ds-decomp, NSMB-Decomp/nsmb, or any objdiff/dsd/mwccarm tree), or when asked to check matched source for fake matches, magic addresses, un-recovered types/structs, wrong or contradictory extern signatures, formatting drift, portability / host-build impact, or PR shape before submitting.
tangosdev/sm64ds-decomp · ★ 154 · Code & Development · score 80
Install: claude install-skill tangosdev/sm64ds-decomp
# Decompilation match review ## What the project is for — read this before you rank anything sm64ds-decomp's goal, in the maintainer's words and in this order: 1. **A historically accurate representation of the C++ version of SM64DS, byte-matched to the `.nds`.** One goal, two halves, both required. 2. **Portability.** 3. **Readability.** The two halves of goal 1 are not equally defended. **The byte match is falsifiable and gated; the C++ accuracy is neither.** `match.py` fails loudly when the bytes are wrong. Nothing fails when a file byte-matches while spelling `_ZN9ActorBasenwEj` as a C identifier, declaring a destructor `int(char*)`, or leaving a member filed as a free function. That asymmetry is why the C++ half rots, and it is what a human reviewer is *for* — everything the gates catch, they already caught before you opened the diff. **The pass order below is review sequencing, not this ranking.** Pass 0 runs first because it is the cheapest disqualifier and a fake match is a lie in the progress bar — not because bytes outrank structure. Do not read pass order as priority order. Two consequences worth stating, because they resolve most ranking questions on their own: - **A byte-free fix that recovers original structure outranks a byte-free readability fix.** Both are free; only one delivers goal 1. Renaming `sp0` → `index` is free and welcome. Correcting `extern int _ZN5ActorD2Ev(char*)` to the signature the mangled name already states is *also usually f