Determines which modules have pending Ash migrations by running mix ash.codegen --check once per project invocation.
mix ash.codegen --check
Do not call check/1 per module — it spawns one Mix process per call. Call once, then use pending?/2 to query individual modules.
@spec check(project_root :: String.t()) :: {:ok, MapSet.t()} | {:error, term()}
@spec pending?(module :: module(), pending_set :: MapSet.t()) :: boolean()