# mutare_phoenix v0.3.1 - Table of Contents > Mutare mutators for Phoenix ## Pages - [Mutare Phoenix](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - Mutator front / extension - [Mutare.Phoenix](Mutare.Phoenix.md): Custom [Mutare](https://hex.pm/packages/mutare) mutators for the Phoenix server-side surface — the `Phoenix.Controller` calls a controller action performs on the conn, the `Phoenix.Channel` replies and outbound messages, `Phoenix.PubSub`, and `Phoenix.Token` — plus macro routing that excludes Phoenix's compile-time macros from mutation to prevent metamutant compilation failures. - Mutator families - [Mutare.Phoenix.Body](Mutare.Phoenix.Body.md): `:controller_body` — blanks a rendered response body: the data argument of `Phoenix.Controller.json/2` becomes `%{}`, and that of `text/2` and `html/2` becomes `""`. A surviving mutant means the tests still pass with an empty response body: the status and content type are unchanged, and no assertion detects the missing content. - [Mutare.Phoenix.ChannelMessage](Mutare.Phoenix.ChannelMessage.md): `:channel_message` — removes a `Phoenix.Channel` outbound-message call, collapsing it to the `:ok` it returns on success. Three kinds, each a variant label - [Mutare.Phoenix.ChannelReply](Mutare.Phoenix.ChannelReply.md): `:channel_reply` — drops the reply element of a `Phoenix.Channel` callback's return tuple, reshaping it into a different but still valid return. Applies in modules that implement `@behaviour Phoenix.Channel` (which `use Phoenix.Channel` injects) - [Mutare.Phoenix.Download](Mutare.Phoenix.Download.md): `:download_disposition` — flips the explicit `:disposition` option of `Phoenix.Controller.send_download/3` between `:attachment` and `:inline`. A surviving mutant means no test checks whether the response specifies *saving* or *displaying* the file — the type in the `content-disposition` header. - [Mutare.Phoenix.PubSub](Mutare.Phoenix.PubSub.md): `:pubsub` — removes a `Phoenix.PubSub` call, collapsing it to the `:ok` it returns on success. Three kinds, each a variant label - [Mutare.Phoenix.Redirect](Mutare.Phoenix.Redirect.md): `:redirect_status` — swaps the explicit atom `:status` option of `Phoenix.Controller.redirect/2` for a plausible redirect-status sibling. - [Mutare.Phoenix.Token](Mutare.Phoenix.Token.md): `:token` — mutates the `Phoenix.Token` calls that generate and read signed or encrypted tokens. Three kinds, each a variant label