# assay v0.6.0 - Table of Contents

> A tool for running Dialyzer in incremental mode on Elixir projects, with human and machine readable output formats.

## Pages

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

## Modules

- [Assay](Assay.md): Public entrypoints for running incremental Dialyzer via Assay.

- [Assay.Config](Assay.Config.md): Minimal configuration loader backed directly by `Mix.Project.config/0`.
- [Assay.Daemon](Assay.Daemon.md): JSON-RPC daemon that exposes incremental Dialyzer runs to tooling (e.g. MCP).
- [Assay.DialyzerFlags](Assay.DialyzerFlags.md): Parses and normalizes Dialyzer command-line flags.
- [Assay.Formatter](Assay.Formatter.md): Formats Dialyzer warnings into various output formats.
- [Assay.Formatter.Helpers](Assay.Formatter.Helpers.md): Formatter-agnostic helpers used across warning renderers to normalize Erlang
terms and render rich diffs.

- [Assay.Formatter.Suggestions](Assay.Formatter.Suggestions.md): Provides actionable, context-aware suggestions for fixing Dialyzer warnings.
Extracts information from multiple sources in the warning entry to provide
specific, helpful guidance.
- [Assay.Formatter.Warning](Assay.Formatter.Warning.md): Shared helpers for turning Dialyzer warning payloads into friendly, Elixir-style
text sections. A handler can take an `entry` (as delivered by the formatter),
produce a `%Result{headline, details}`, and lean on these utilities for consistent
indentation, diff highlighting, and term rendering.
- [Assay.Formatter.Warning.Result](Assay.Formatter.Warning.Result.md): Struct returned by `Assay.Formatter.Warning.render/2` representing a formatted
Dialyzer warning with a headline and optional detail lines.

- [Assay.Ignore](Assay.Ignore.md): Warning decoration and ignore rule filtering.
- [Assay.MCP](Assay.MCP.md): Minimal Model Context Protocol (MCP) server built on top of the Assay daemon.
- [Assay.Runner](Assay.Runner.md): Executes incremental Dialyzer runs directly via `:dialyzer.run/1`.

- [Assay.Watch](Assay.Watch.md): File watching and incremental Dialyzer re-execution.

## Mix Tasks

- [mix assay](Mix.Tasks.Assay.md): Run incremental Dialyzer using the host project's mix.exs config.
- [mix assay.daemon](Mix.Tasks.Assay.Daemon.md): Run Assay as a JSON-RPC daemon over stdio.
- [mix assay.install](Mix.Tasks.Assay.Install.md): Installs and configures Assay in the current project.
- [mix assay.mcp](Mix.Tasks.Assay.Mcp.md): Run Assay as an MCP (Model Context Protocol) server over stdio.
- [mix assay.watch](Mix.Tasks.Assay.Watch.md): Watch project files and rerun incremental Dialyzer on change.

