# `Squidie.ReadModel.Explanation.Diagnostic`
[🔗](https://github.com/dark-trench/squidie/blob/main/lib/squidie/read_model/explanation/diagnostic.ex#L1)

Deterministic explanation built from a projection-backed inspection snapshot.

It describes what the Jido-native journals prove right now and which runtime
boundary would make forward progress, while leaving mutation to recovery or
dispatch modules.

# `next_action`

```elixir
@type next_action() ::
  :schedule_pending_dispatch
  | :apply_pending_result
  | :recover_expired_claim
  | :wait_for_worker_claim
  | :wait_until_attempt_visible
  | :wait_for_attempt_completion
  | :resolve_manual_step
  | :inspect_terminal_run
  | :wait_for_new_runnables
  | :inspect_dispatch_state
```

# `t`

```elixir
@type t() :: %Squidie.ReadModel.Explanation.Diagnostic{
  definition_version: String.t() | nil,
  details: map(),
  evidence: map(),
  next_actions: [next_action()],
  queue: String.t(),
  reason: Squidie.ReadModel.Inspection.Snapshot.reason(),
  run_id: String.t(),
  status: atom(),
  step: String.t() | nil,
  summary: String.t(),
  workflow: String.t() | nil
}
```

---

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