credo-configuration

Credo is a static code analysis tool for Elixir focused on code quality and consistency.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "credo-configuration" with this command: npx skills add thebushidocollective/han/thebushidocollective-han-credo-configuration

Credo Configuration

Credo is a static code analysis tool for Elixir focused on code quality and consistency.

Configuration File

.credo.exs

%{ configs: [ %{ name: "default", strict: true, color: true, files: %{ included: ["lib/", "src/", "test/", "web/", "apps//lib/", "apps//test/"], excluded: [~r"/_build/", ~r"/deps/", ~r"/node_modules/"] }, plugins: [], requires: [], parse_timeout: 5000, checks: %{ enabled: [ # Consistency checks {Credo.Check.Consistency.ExceptionNames, []}, {Credo.Check.Consistency.LineEndings, []}, {Credo.Check.Consistency.ParameterPatternMatching, []}, {Credo.Check.Consistency.SpaceAroundOperators, []}, {Credo.Check.Consistency.SpaceInParentheses, []}, {Credo.Check.Consistency.TabsOrSpaces, []},

      # Design checks
      {Credo.Check.Design.AliasUsage, [priority: :low, if_nested_deeper_than: 2]},
      {Credo.Check.Design.TagFIXME, []},
      {Credo.Check.Design.TagTODO, [exit_status: 0]},

      # Readability checks
      {Credo.Check.Readability.AliasOrder, []},
      {Credo.Check.Readability.FunctionNames, []},
      {Credo.Check.Readability.LargeNumbers, []},
      {Credo.Check.Readability.MaxLineLength, [priority: :low, max_length: 120]},
      {Credo.Check.Readability.ModuleAttributeNames, []},
      {Credo.Check.Readability.ModuleDoc, []},
      {Credo.Check.Readability.ModuleNames, []},
      {Credo.Check.Readability.ParenthesesInCondition, []},
      {Credo.Check.Readability.ParenthesesOnZeroArityDefs, []},
      {Credo.Check.Readability.PipeIntoAnonymousFunctions, []},
      {Credo.Check.Readability.PredicateFunctionNames, []},
      {Credo.Check.Readability.PreferImplicitTry, []},
      {Credo.Check.Readability.RedundantBlankLines, []},
      {Credo.Check.Readability.Semicolons, []},
      {Credo.Check.Readability.SpaceAfterCommas, []},
      {Credo.Check.Readability.StringSigils, []},
      {Credo.Check.Readability.TrailingBlankLine, []},
      {Credo.Check.Readability.TrailingWhiteSpace, []},
      {Credo.Check.Readability.UnnecessaryAliasExpansion, []},
      {Credo.Check.Readability.VariableNames, []},
      {Credo.Check.Readability.WithSingleClause, []},

      # Refactoring opportunities
      {Credo.Check.Refactor.Apply, []},
      {Credo.Check.Refactor.CondStatements, []},
      {Credo.Check.Refactor.CyclomaticComplexity, [max_complexity: 12]},
      {Credo.Check.Refactor.FunctionArity, [max_arity: 8]},
      {Credo.Check.Refactor.LongQuoteBlocks, []},
      {Credo.Check.Refactor.MatchInCondition, []},
      {Credo.Check.Refactor.MapJoin, []},
      {Credo.Check.Refactor.NegatedConditionsInUnless, []},
      {Credo.Check.Refactor.NegatedConditionsWithElse, []},
      {Credo.Check.Refactor.Nesting, [max_nesting: 3]},
      {Credo.Check.Refactor.UnlessWithElse, []},
      {Credo.Check.Refactor.WithClauses, []},

      # Warnings
      {Credo.Check.Warning.ApplicationConfigInModuleAttribute, []},
      {Credo.Check.Warning.BoolOperationOnSameValues, []},
      {Credo.Check.Warning.ExpensiveEmptyEnumCheck, []},
      {Credo.Check.Warning.IExPry, []},
      {Credo.Check.Warning.IoInspect, []},
      {Credo.Check.Warning.OperationOnSameValues, []},
      {Credo.Check.Warning.OperationWithConstantResult, []},
      {Credo.Check.Warning.RaiseInsideRescue, []},
      {Credo.Check.Warning.SpecWithStruct, []},
      {Credo.Check.Warning.UnusedEnumOperation, []},
      {Credo.Check.Warning.UnusedFileOperation, []},
      {Credo.Check.Warning.UnusedKeywordOperation, []},
      {Credo.Check.Warning.UnusedListOperation, []},
      {Credo.Check.Warning.UnusedPathOperation, []},
      {Credo.Check.Warning.UnusedRegexOperation, []},
      {Credo.Check.Warning.UnusedStringOperation, []},
      {Credo.Check.Warning.UnusedTupleOperation, []},
      {Credo.Check.Warning.UnsafeExec, []}
    ],
    disabled: [
      # Controversial and experimental checks
      {Credo.Check.Consistency.MultiAliasImportRequireUse, []},
      {Credo.Check.Consistency.UnusedVariableNames, []},
      {Credo.Check.Design.DuplicatedCode, []},
      {Credo.Check.Design.SkipTestWithoutComment, []},
      {Credo.Check.Readability.AliasAs, []},
      {Credo.Check.Readability.BlockPipe, []},
      {Credo.Check.Readability.ImplTrue, []},
      {Credo.Check.Readability.MultiAlias, []},
      {Credo.Check.Readability.NestedFunctionCalls, []},
      {Credo.Check.Readability.OneArityFunctionInPipe, []},
      {Credo.Check.Readability.OnePipePerLine, []},
      {Credo.Check.Readability.SeparateAliasRequire, []},
      {Credo.Check.Readability.SingleFunctionToBlockPipe, []},
      {Credo.Check.Readability.SinglePipe, []},
      {Credo.Check.Readability.Specs, []},
      {Credo.Check.Readability.StrictModuleLayout, []},
      {Credo.Check.Readability.WithCustomTaggedTuple, []},
      {Credo.Check.Refactor.ABCSize, []},
      {Credo.Check.Refactor.AppendSingleItem, []},
      {Credo.Check.Refactor.DoubleBooleanNegation, []},
      {Credo.Check.Refactor.FilterReject, []},
      {Credo.Check.Refactor.IoPuts, []},
      {Credo.Check.Refactor.MapMap, []},
      {Credo.Check.Refactor.ModuleDependencies, []},
      {Credo.Check.Refactor.NegatedIsNil, []},
      {Credo.Check.Refactor.PipeChainStart, []},
      {Credo.Check.Refactor.RejectFilter, []},
      {Credo.Check.Refactor.VariableRebinding, []},
      {Credo.Check.Warning.LazyLogging, []},
      {Credo.Check.Warning.LeakyEnvironment, []},
      {Credo.Check.Warning.MapGetUnsafePass, []},
      {Credo.Check.Warning.MixEnv, []},
      {Credo.Check.Warning.UnsafeToAtom, []}
    ]
  }
}

] }

Multiple Configurations

%{ configs: [ %{ name: "default", # Default strict config }, %{ name: "legacy", files: %{ included: ["lib/legacy/"] }, checks: %{ disabled: [ {Credo.Check.Readability.ModuleDoc, []} ] } } ] }

Command Line Options

Use specific config

mix credo --config-name legacy

Strict mode

mix credo --strict

Show all issues

mix credo --all

Only specific categories

mix credo --only readability,refactor

Priority Levels

  • :higher

  • Critical issues

  • :high

  • Important issues

  • :normal

  • Default priority

  • :low

  • Minor issues

  • :ignore

  • Completely disabled

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

typescript-type-system

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

typescript-async-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

c-systems-programming

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

cpp-templates-metaprogramming

No summary provided by upstream source.

Repository SourceNeeds Review