All notable changes to this project will be documented in this file.
[Unreleased]
[0.2.0] - 2026-10-13
Added
- Added curated
jump_credo_checks,credo_mox, andforge_credo_checksdependencies with explicit allowlists. - Added
CodeStyle.Check.Warning.EnvironmentVariableAccessto keep direct OS environment reads out oflib/application source while allowing the configuration boundary underconfig/. - Added policy tests that pin the exact enabled third-party check sets.
Changed
- Reframed CodeStyle as shared deterministic Elixir code-quality policy rather than a collection of personal Credo checks.
- Tightened the ExSlop policy after auditing enabled refactor and optimization checks for semantic safety.
- Kept
RepoInsideLoopas the single source-level owner of Repo calls inside repeated execution.
Removed
- Removed ExSlop refactor checks whose matcher does not establish a safe or
sufficiently general rewrite, including
ReduceAsMap,ListLast,IdentityPassthrough,WithIdentityElse,SortThenReverse,StringConcatInReduce,RedundantBooleanIf,FlatMapFilter,SortThenAt,ListFold, andPreferEnumSlice. - Removed
MapIntoLiteralfrom the Credo policy because Styler owns that mechanical rewrite. - Removed
TryRescueWithSafeAlternativebecause its local matcher cannot prove that changing exception handling preserves behavior.
[0.1.2] - 2026-10-13
Changed
- Re-enabled
Credo.Check.Readability.BlockPipeas a lint backstop even though Styler recommends disabling it, because Styler can leave some multi-stage pipelines ending in block expressions formatted. - Kept
Credo.Check.Readability.SingleFunctionToBlockPipeenabled alongside the broaderBlockPipepolicy.
Added
- Regression coverage for a multi-stage pipeline ending in a
caseblock.
Removed
- Removed
CodeStyle.Check.Design.NoDatabaseConstraints; database-constraint policy is no longer part of the shared CodeStyle checks.
[0.1.1] - 2026-07-17
Changed
- Reworked
RepoInsideLooparound repeated execution acrossEnum,Stream,Task,Task.Supervisor, andforcomprehensions. - Removed the overlapping ExSlop
QueryInEnumMapcheck soRepoInsideLoopis the single owner of that policy. - Made coverage compilation part of
mix checkand fixedRepoInsideLoopto compile safely under coverage. - Left Credo file discovery to consumers and Credo's defaults instead of replacing it from the plugin.
- Pinned the curated ExSlop policy to an explicit, version-stable check set.
- Resolved exact Ecto migration aliases and imports lexically in
NoDatabaseConstraints, includingcreate_if_not_exists/2andadd_if_not_exists/3, while skipping quoted and unsupported forms.
[0.1.0] - 2026-07-10
Added
- Shared Credo policy plugin with ExSlop and ExcellentMigrations checks.
NoDatabaseConstraintsandRepoInsideLoopcustom Credo checks.