# Frontier v0.2.1 - Table of Contents

Smart boundary enforcement for Elixir projects

## Pages

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

## Modules

- [Frontier](Frontier.md): Smart boundary enforcement for Elixir projects.
- [Frontier.Application](Frontier.Application.md): OTP Application that initializes Frontier's ETS tables on startup.
- [Frontier.Classifier](Frontier.Classifier.md): Classifies modules by priority: ignored, global, reclassified, context root, schema, exported, internal, or unowned.
- [Frontier.Definition](Frontier.Definition.md): Parses `use Frontier` options into structured config tuples for root, context, ignored, and reclassified modules.
- [Frontier.Graph](Frontier.Graph.md): Builds DOT graph format output for boundary visualization. Renders nodes, edges, and a violations legend.
- [Frontier.Rules](Frontier.Rules.md): Enforces boundary rules by checking whether a call from one module to another is allowed.
- [Frontier.Store](Frontier.Store.md): ETS-backed runtime store for Frontier config: root, contexts, ignored modules, reclassifications, and tracer references.
- [Frontier.Store.Owner](Frontier.Store.Owner.md): Stable owner process for Frontier's ETS tables.
- [Frontier.Tracer](Frontier.Tracer.md): Compile-time tracer that intercepts remote function calls and records cross-module references.
- [Frontier.Validation](Frontier.Validation.md): Validates Frontier config after compilation — catches bad reaches, exports, reclassifications, and public_schemas entries.
- [Frontier.Visualization](Frontier.Visualization.md): Builds a dependency graph from Frontier config and tracer references for `mix frontier.visualize`.
- [Frontier.Warning](Frontier.Warning.md): Formats boundary violations into actionable compiler warnings with fix suggestions.

## Mix Tasks

- [mix compile.frontier](Mix.Tasks.Compile.Frontier.md): Verifies cross-module function calls according to Frontier boundaries.
- [mix frontier.check](Mix.Tasks.Frontier.Check.md): Runs boundary checks without requiring `:frontier` in your compilers list.
- [mix frontier.spec](Mix.Tasks.Frontier.Spec.md): Prints a human-readable summary of all declared Frontier boundaries.
- [mix frontier.visualize](Mix.Tasks.Frontier.Visualize.md): Generates a DOT or PNG graph of Frontier boundary relationships.

