# Adze v0.1.0 - Table of Contents

> Structural Elixir refactoring and outline-first code exploration. Built on Sourceror and Igniter.

## Pages

- [Adze](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [Adze](Adze.md): Structural Elixir refactoring and outline-first code exploration.

- Read-Only Analysis
  - [Adze.Aliases](Adze.Aliases.md): List every `alias` / `import` / `require` / `use` directive in a file,
scoped per `defmodule` and emitted in source order.
  - [Adze.Deps](Adze.Deps.md): Intra-module call graph.
  - [Adze.FindCallers](Adze.FindCallers.md): Find every project-wide reference to a `Module.fun[/arity]`.
  - [Adze.LsDeps](Adze.LsDeps.md): Recursive views over the intra-module call graph.
  - [Adze.Outline](Adze.Outline.md): Parse Elixir source and return its structural outline.

- Refactoring
  - [Adze.Extract](Adze.Extract.md): `extract` — cut a definition (plus its private closure) out of a module
into a brand-new module file.
  - [Adze.ExtractPrivate](Adze.ExtractPrivate.md): Flip a public `def` (or `defmacro` / `defguard`) to its private form
when `find-callers` reports zero external callers.
  - [Adze.Move](Adze.Move.md): `mv` — reorder a logical definition within a single file.
  - [Adze.Rename](Adze.Rename.md): `rename` / `rename!` — globally rename a module across the project.

- Internals
  - [Adze.CLI](Adze.CLI.md): Command-line entry point.
  - [Adze.Definition](Adze.Definition.md): Logical-definition primitive.
  - [Adze.Diff](Adze.Diff.md): Line-based unified diff for write-op dry-runs.
  - [Adze.Formatter](Adze.Formatter.md): Render outline results as either compact text (for humans + LLMs)
or JSON (for tools).

  - [Adze.ProjectRewrite](Adze.ProjectRewrite.md): Thin wrapper around Igniter for project-wide write ops.
  - [Adze.Types](Adze.Types.md): Module-local typespec primitives.

## Mix Tasks

- [mix adze](Mix.Tasks.Adze.md): Run from the root of an Elixir project that depends on adze
(typically `{:adze, ..., only: [:dev]}` in `mix.exs`). The mix
task reads `Mix.Project.config()` (formatter opts,
`elixirc_paths`) and `Application.get_env(:adze, :include_attrs)`
from the loaded project.
- [mix adze.install](Mix.Tasks.Adze.Install.md): Installs adze into your project

