forked from mosaicstack/stack
rev-974 blocked PR #1027: AC2 was pre-registered and explicitly required rejecting symlinked generated state; the implementation accepts it (ln -s into .next, preflight exits 0 instead of 43) while the acceptance suite ran 21/21 green throughout. Confirmed independently: preflight.mjs:82-92 rejects symlinks on the SOURCE path, :28 merely skips symlinked dirs, and the generated-state path :141-163 checks uid but never isSymbolicLink(). The suite's only symlink cases cover the turbo binary and a source file. Sharpens D-8 rather than repeating it. D-8: pre-registration does not confer CORRECTNESS. D-17: it does not confer COVERAGE — a suite can be green with every criterion appearing satisfied while a criterion's actual requirement is untested. RM-02 third clause: the registry must bind each criterion to the specific case that exercises it and prove that case red before trusting its green. Mutation testing pointed at the criterion-to-case mapping, not just the gate. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>