Full configuration example
View SourceCopy or merge these entries into your default .credo.exs configuration, then run mix credo --strict. This illustrates all available policies; review parameters and framework requirements before using it in CI.
The editable source is .credo.example.exs at the package root. This page is generated from that file.
# Copy or merge these entries into your default configuration before running mix credo --strict.
# Illustrative policy: FunctionOrder uses :alphabetical; Ash checks use ash: true.
# Explicit opt-in configuration. Review each detector and its parameters in docs/checks.md.
%{
configs: [
%{
name: "default",
strict: true,
files: %{included: ["mix.exs", "lib/", "test/", "config/", "priv/repo/migrations/", "priv/repo/seeds.exs", "priv/repo/seeds/"]},
checks: %{
enabled: [
{OptimumCredo.Check.Readability.AssignOrder, []},
{OptimumCredo.Check.Readability.AssignThree, []},
{OptimumCredo.Check.Readability.BannedAbbreviations, []},
{OptimumCredo.Check.Readability.BooleanFunctionName, []},
{OptimumCredo.Check.Readability.CastListOrder, []},
{OptimumCredo.Check.Readability.DefaultCallbackDefined, []},
{OptimumCredo.Check.Readability.DepsOrder, []},
{OptimumCredo.Check.Readability.DescribeFunctionArity, []},
{OptimumCredo.Check.Readability.DocumentationFormatting, []},
{OptimumCredo.Check.Readability.EventNameSnakeCase, []},
{OptimumCredo.Check.Readability.ExtractableSpecTypes, []},
{OptimumCredo.Check.Readability.FunctionOrder, [function_order: :alphabetical]},
{OptimumCredo.Check.Readability.GenericModuleName, []},
{OptimumCredo.Check.Readability.GettextDomain, [ash: true]},
{OptimumCredo.Check.Readability.ImplementationHelperInAssertion, []},
{OptimumCredo.Check.Readability.ImportOrder, []},
{OptimumCredo.Check.Readability.LlmScaffoldingComment, []},
{OptimumCredo.Check.Readability.MaybePrefix, []},
{OptimumCredo.Check.Readability.ModuleAttributeListOrder, []},
{OptimumCredo.Check.Readability.ModuleOrganization, []},
{OptimumCredo.Check.Readability.ModulePathMismatch, []},
{OptimumCredo.Check.Readability.ModuleSelfPrefix, []},
{OptimumCredo.Check.Readability.PrivateFunctionSpecs, []},
{OptimumCredo.Check.Readability.RedundantBooleanComparison, []},
{OptimumCredo.Check.Readability.RedundantFinalAssignment, []},
{OptimumCredo.Check.Readability.SchemaFieldOrder, []},
{OptimumCredo.Check.Readability.SingleElementTupleMessage, []},
{OptimumCredo.Check.Readability.SpecWithImpl, []},
{OptimumCredo.Check.Readability.TestNameLowercase, []},
{OptimumCredo.Check.Readability.TestNameRepeatsSubject, []},
{OptimumCredo.Check.Readability.TestPathMismatch, []},
{OptimumCredo.Check.Readability.TypeParenthesesConsistency, []},
{OptimumCredo.Check.Readability.TypespecOrder, []},
{OptimumCredo.Check.Readability.UnusedTypes, []},
{OptimumCredo.Check.Readability.VerboseAssertions, []},
{OptimumCredo.Check.Refactor.AdjacentClauseOneLiteral, []},
{OptimumCredo.Check.Refactor.CaseTrueFalse, []},
{OptimumCredo.Check.Refactor.ConditionalOnParameter, []},
{OptimumCredo.Check.Refactor.DuplicateHandleEvent, []},
{OptimumCredo.Check.Refactor.LiveViewBareMatch, []},
{OptimumCredo.Check.Refactor.RepeatedLiteral, []},
{OptimumCredo.Check.Refactor.SchemaTableNameMismatch, []},
{OptimumCredo.Check.Refactor.ToggleOnlyHandleEvent, []},
{OptimumCredo.Check.Refactor.WithElseManyClauses, []},
{OptimumCredo.Check.Warning.AshCallWithoutActor, [ash: true]},
{OptimumCredo.Check.Warning.AshUpsertOptions, [ash: true]},
{OptimumCredo.Check.Warning.AsyncFalseWithoutComment, []},
{OptimumCredo.Check.Warning.AuthorizeFalseWithoutComment, [ash: true]},
{OptimumCredo.Check.Warning.CallerModuleAttributes, []},
{OptimumCredo.Check.Warning.CommentedOutCode, []},
{OptimumCredo.Check.Warning.DescribeWithoutErrorCase, []},
{OptimumCredo.Check.Warning.EnvVarWithoutFailure, []},
{OptimumCredo.Check.Warning.ExplicitIndexName, []},
{OptimumCredo.Check.Warning.ExternalCallInMigration, []},
{OptimumCredo.Check.Warning.HardcodedAssetPath, []},
{OptimumCredo.Check.Warning.HardcodedYearInTest, []},
{OptimumCredo.Check.Warning.HiddenIdInput, []},
{OptimumCredo.Check.Warning.HttpClientInTest, []},
{OptimumCredo.Check.Warning.LoggerErrorWithoutContext, []},
{OptimumCredo.Check.Warning.MixOutsideBuildConfig, []},
{OptimumCredo.Check.Warning.NarrowRandomRange, []},
{OptimumCredo.Check.Warning.NotNullWithoutDefault, []},
{OptimumCredo.Check.Warning.RawSqlIndexInMigration, []},
{OptimumCredo.Check.Warning.ReferenceWithoutOnDelete, []},
{OptimumCredo.Check.Warning.RepoCallInEnumeration, []},
{OptimumCredo.Check.Warning.RequiredFieldConsistency, []},
{OptimumCredo.Check.Warning.SchemaModuleInMigration, []},
{OptimumCredo.Check.Warning.SeedInsertWithoutOnConflict, []},
{OptimumCredo.Check.Warning.SleepInTest, []},
{OptimumCredo.Check.Warning.SleepOutsideTest, []},
{OptimumCredo.Check.Warning.StaleRenderBinding, []},
{OptimumCredo.Check.Warning.TestWithoutAssertion, []},
{OptimumCredo.Check.Warning.UnsafeAtomConversion, []},
{OptimumCredo.Check.Warning.WebNamespaceInCore, []}
],
disabled: []
}
}
]
}