EVO-123: convert 11 UPDATE OF invariant guards to AFTER/no-column-list
EVO-123 / evolutiva-db.md R5. Convert each final-row-invariant UPDATE OF guard: no column list, OLD.x IS DISTINCT FROM NEW.x in body, AFTER (or constraint trigger), forced-red arm where a neighbouring BEFORE trigger does the rewrite. Write-shaping triggers keep UPDATE OF. Latent today (no rewriter found), hence p2; raise if a migration adds a BEFORE trigger that assigns a watched column. Done = every guard listed converted and its forced-red arm recorded. Guards (migration files, 11 applied): lookupOptions forbidOrphaningScopeMembers; terraModuloCampos definitionGuard; terraPracticas anestesiaVocabGuard, pacienteSexoGuard, sedeOtroDetalleGuard; terraPracticasCampos valueGuard; terraPracticasComplicaciones vocabGuard; terraPracticasParticipantes requireTerraMembership, vocabGuard; terraPracticasRegionesAnatomicas vocabGuard; vocabularyScopeMembers integrityGuard. Draft terra_240 requireTerraMembership vs terra_238 disputeGuard (sets deletedAt) is the one REAL exposure - terra_279 fix in flight with coder-terra-cc. Confirm against the live catalog.