# fallow explain

> Learn what a fallow finding means and how to fix it, without running analysis. Fallow explain prints the rationale, an example, fix guidance, and a docs link for one issue type.

> Page index of all docs: https://fallow.tools/llms.txt
> Docs MCP server (search and read the docs): https://fallow.tools/docs/mcp
> HTML version of this page: https://fallow.tools/docs/cli/explain/

Get a short rule guide for one issue type before you decide to fix, suppress, or configure a finding. `fallow explain` does not run analysis. Agents and CI bots use it to read the rule before they act.

```bash
fallow explain unused-export
fallow explain fallow/code-duplication --format json --quiet
```

## Arguments

| Argument | Description |
|:---------|:------------|
| `<issue-type>` | Issue type token or rule id, for example `unused-export`, `fallow/unused-dependency`, `high-complexity`, or `code-duplication`. Fallow also accepts common plural aliases such as `unused-exports`, and issue labels such as `unused exports` or `code duplication`. |

## Output

| Format | Description |
|:-------|:------------|
| `human` | Rule id, summary, rationale, example, fix guidance, and docs URL. |
| `json` | An object with `kind: "explain"` and the same fields. Use this format from agents. |

**$ fallow explain unused-export --format json --quiet**

```json
{
  "kind": "explain",
  "id": "fallow/unused-export",
  "name": "Unused Exports",
  "summary": "Export is never imported",
  "rationale": "Named exports that are never imported by any other module in the project. Includes both direct exports and re-exports through barrel files. The export may still be used locally within the same file.",
  "example": "export const formatPrice = ... exists in src/money.ts, but no module imports formatPrice.",
  "how_to_fix": "Remove the export or make it file-local. If it is public API, import it from an entry point or add an intentional suppression with context.",
  "docs": "https://fallow.tools/docs/explanations/dead-code/#unused-exports"
}
```

## MCP tool

The `fallow_explain` MCP tool runs `fallow explain <issue-type> --format json --quiet`:

**Example request**

```json
{
  "tool": "fallow_explain",
  "arguments": {
    "issue_type": "unused-export"
  }
}
```

An agent can call it to read the rule before it applies a fix or a suppression.

An unknown issue type exits with code 2. The error message gives examples of valid values.

## See also

- [Rules & severity](https://fallow.tools/docs/configuration/rules/): Set the severity of each issue type.
- [Inline suppression](https://fallow.tools/docs/configuration/suppression/): Suppress a finding with a comment or config.
- [Agent integration](https://fallow.tools/docs/integrations/mcp/): Call `fallow_explain` and other tools from an agent.
- [Dead code explained](https://fallow.tools/docs/explanations/dead-code/): Read what each dead code finding means.
