# `mix reach.check`
[🔗](https://github.com/elixir-vibe/reach/blob/v2.2.0/lib/mix/tasks/reach.check.ex#L1)

Runs structural validation and change-safety checks.

    mix reach.check
    mix reach.check --arch
    mix reach.check --changed --base main
    mix reach.check --dead-code
    mix reach.check --smells
    mix reach.check --candidates

## Options

  * `--format` — output format: `text` or `json`
  * `--arch` — check `.reach.exs` architecture policy
  * `--changed` — report changed functions and configured test hints
  * `--base` — git base ref for `--changed` (default: auto-detect `main`, `master`, or upstream)
  * `--dead-code` — find unused pure expressions
  * `--smells` — find graph/effect/data-flow performance smells
  * `--candidates` — emit advisory refactoring candidates
  * `--top` — limit candidate output for `--candidates`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
