Basics
This check is disabled by default.
Learn how to enable it via .credo.exs.
This check has a base priority of normal and works with any version of Elixir.
Explanation
When multiple actions of the same type exist (e.g., two :create actions),
one should declare primary?: true. Without this, Ash raises at runtime
when framework features implicitly invoke the primary action.
create :register do
primary? true
# ...
endThis check uses Ash's runtime introspection (Ash.Resource.Info.actions/1)
to see the fully-resolved action list - including actions contributed by
Spark transformers and extensions - so it catches cases where a
transformer adds an action that breaks the primary-action invariant.
Requirements
Your project must be compiled before running mix credo so that the
referenced resource modules are loadable. Typically chain them in a Mix
alias: lint: ["compile", "credo --strict"]. If Ash is not loaded in the
VM running Credo, the check is a no-op and emits a single diagnostic.
Check-Specific Parameters
There are no specific parameters for this check.
General Parameters
Like with all checks, general params can be applied.
Parameters can be configured via the .credo.exs config file.