# `Pixir.Doctor`
[🔗](https://github.com/Ranvier-Technologies/pixir/blob/main/lib/pixir/doctor.ex#L1)

Local first-run diagnostics for the source-install beta path.

`Pixir.Doctor` is intentionally no-network: it checks local runtime readiness,
configuration shape, auth presence, source-install artifacts, session-log writability,
and ACP availability. Provider connectivity remains an explicit smoke/probe step.

The JSON envelope gives orchestrators an explicit delegation decision in `proceed`:
`"true"` is ready, `"judge"` requires inspecting the non-passing ids already listed
in `judge_checks`, and `"block"` is not safe to proceed. `judge_checks` carries the
non-passing ids for `"block"` too (it is never assumed empty there); severity lives
in `proceed` and per-check detail in `checks[]`.

# `check`

```elixir
@type check() :: %{required(String.t()) =&gt; term()}
```

# `render`

```elixir
@spec render(map()) :: String.t()
```

Render a compact human-readable diagnostic report.

# `run`

```elixir
@spec run(keyword()) :: %{required(String.t()) =&gt; term()}
```

Run local diagnostics and return a JSON-serializable result.

---

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