# MikaCredoRules v0.1.0 - Table of Contents

> Custom Credo checks used across Mika's Elixir projects

## Pages

- [MikaCredoRules](readme.md)
- [Changelog](changelog.md)

## Modules

- [MikaCredoRules.AstHelpers](MikaCredoRules.AstHelpers.md): Shared AST matching for module identity across every check.
- [MikaCredoRules.ErrorMessageRequired](MikaCredoRules.ErrorMessageRequired.md): Error tuples must carry a structured `%ErrorMessage{}`, not a bare string literal.
- [MikaCredoRules.GenServerRequiresHandleContinue](MikaCredoRules.GenServerRequiresHandleContinue.md): GenServer `init/1` must defer real work to `handle_continue/2`.
- [MikaCredoRules.LoggerModulePrefixAndInspect](MikaCredoRules.LoggerModulePrefixAndInspect.md): Logger messages must start with `"#{__MODULE__}: "` and wrap every interpolated
value in `inspect/1`.
- [MikaCredoRules.NoApplicationEnvOutsideConfig](MikaCredoRules.NoApplicationEnvOutsideConfig.md): Application environment must only be read or written from a config module.
- [MikaCredoRules.NoBlanketRescue](MikaCredoRules.NoBlanketRescue.md): A rescue clause must not catch every exception only to swallow it.
- [MikaCredoRules.NoMixEnvAtRuntime](MikaCredoRules.NoMixEnvAtRuntime.md): `Mix.env()` and `Mix.target()` must not be called from compiled code.
- [MikaCredoRules.NoMockingLibraries](MikaCredoRules.NoMockingLibraries.md): Mocking libraries must not be used — define a behaviour and inject the
implementation instead.
- [MikaCredoRules.NoNilComparison](MikaCredoRules.NoNilComparison.md): Comparing against `nil` must use `is_nil/1`, not an equality operator.
- [MikaCredoRules.NoProcessSleepInTests](MikaCredoRules.NoProcessSleepInTests.md): Tests must not sleep — sleeping is the number one source of flaky, slow suites.
- [MikaCredoRules.NoReimplementedHelper](MikaCredoRules.NoReimplementedHelper.md): Helpers that already exist in a shared library must not be reimplemented locally.
- [MikaCredoRules.NoSingleLetterVariables](MikaCredoRules.NoSingleLetterVariables.md): Variables must not be named with a single letter.
- [MikaCredoRules.RefuteOverAssertNot](MikaCredoRules.RefuteOverAssertNot.md): Negated assertions must use `refute`, not `assert !` or `assert not`.
- [MikaCredoRules.SourceFilter](MikaCredoRules.SourceFilter.md): Pure filename predicates shared by the scoping guards of every check.
- [MikaCredoRules.StrictEquality](MikaCredoRules.StrictEquality.md): Comparisons must use `===`/`!==` instead of `==`/`!=`.
- [MikaCredoRules.TodosNeedTickets](MikaCredoRules.TodosNeedTickets.md): Every todo comment must reference a ticket URL on the same or an adjacent line.

