diff --git a/test/wcc/989_septest_run.c b/test/wcc/989_septest_run.c
index 508963fa..12eb1dcc 100644
--- a/test/wcc/989_septest_run.c
+++ b/test/wcc/989_septest_run.c
@@ -15,6 +15,13 @@
* fails. The failing row is the non-vacuity teeth: it proves the @tests
* genuinely RUN under sep (a no-op --sep that linked an empty main would
* exit 0 on the failing fixture and the gate would catch it).
+ * This same RUN-EXIT path also hosts the @test user-facing reject +
+ * coexist legs ported from 910/997 (C2a, #83), which die at the M4 flip
+ * that deletes 910/997: `userman` (explicit user main collides with the
+ * -T synth entry) and `badsig` (non-`fn() void` @test) must reject
+ * (exit != 0) on both stages; `collide_run` (user `fn run` coexists with
+ * lib/test's bound runner) must accept and run to exit 0 — under sep the
+ * two land in distinct units, so a regressed collision fails the link.
* 2. cs==ww (rule 10): the cstage `ww` and wwstage `ww_ww` sep-drivers emit
* byte-identical per-package .s/.wwi for the passing fixture — including
* __root.s, which carries the synth `CALL test.run`.
@@ -153,8 +160,10 @@ cmp_sepwork(const char *csdir, const char *wwdir, const char *label)
struct tcase {
const char *label;
const char *src; /* inline fixture written to