# `mix preflight`
[🔗](https://github.com/plushie-ui/plushie-elixir/blob/v0.7.2/lib/mix/tasks/preflight.ex#L1)

Runs all CI checks locally. Exits with a non-zero status on first failure.

## Usage

    mix preflight

## What it runs

1. Renderer rebuild (when `PLUSHIE_RUST_SOURCE_PATH` is set)
2. `mix format --check-formatted`
3. `mix compile --warnings-as-errors`
4. `mix credo --strict`
5. `mix test`
6. `mix test` (headless backend)
7. `mix docs --warnings-as-errors`
8. `mix dialyzer`

## Renderer freshness

Tests exercise the real renderer binary, so a stale binary hides real
bugs and surfaces phantom ones. When `PLUSHIE_RUST_SOURCE_PATH` is set
to a plushie-rust checkout, the first preflight step rebuilds
`plushie-renderer` from source via `cargo build --release -p plushie-renderer`
and exports `PLUSHIE_BINARY_PATH` so the test runs use the fresh binary.
Without `PLUSHIE_RUST_SOURCE_PATH` the existing binary resolution
(env -> config -> custom build -> downloaded) is used unchanged.

---

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