# temper v0.3.0 - Table of Contents

> Flaky-test detection for ExUnit: records every test outcome and reports tests with divergent results on the same git SHA.

## Pages

- [Temper](readme.md)
- [CI Recipes](ci-recipes.md)
- [History Schema (v1)](history-schema.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [Temper](Temper.md): Flaky-test detection for ExUnit.
- [Temper.Analysis](Temper.Analysis.md): Classifies recorded test outcomes into flaky tests and suspects.
- [Temper.Doctor](Temper.Doctor.md): Preflight checks behind `mix temper.doctor`, diagnosing the setup
mistakes that fail silently: a formatter that never registers, a
`history_path` invisible outside the test env, a suite that records
nothing, records without a usable commit SHA.
- [Temper.Env](Temper.Env.md): Boundary module that gathers run context data from the real world:
git, CI environment variables, the system clock and the runtime.
- [Temper.Formatter](Temper.Formatter.md): ExUnit formatter that records every test outcome to the history file.
- [Temper.History.Codec](Temper.History.Codec.md): Encodes `Temper.Record`s as history lines and decodes them back.
- [Temper.History.Merge](Temper.History.Merge.md): Merges history lines from several sources into one deduplicated
stream — the aggregation step behind `mix temper.merge`.
- [Temper.History.Prune](Temper.History.Prune.md): Selective retention for history files — the pure core behind
`mix temper.clean --older-than` and `--keep-shas`.
- [Temper.History.Reader](Temper.History.Reader.md): Boundary module that reads history files back into records.
- [Temper.History.Template](Temper.History.Template.md): The `{partition}` placeholder in configured history paths.
- [Temper.History.Writer](Temper.History.Writer.md): Boundary module that appends history lines to a `.jsonl` file.
- [Temper.Record](Temper.Record.md): One recorded test outcome — the unit Temper's history is made of.
- [Temper.Report](Temper.Report.md): Renders analysis results for humans or machines.
- [Temper.RunContext](Temper.RunContext.md): The run context shared by every test outcome recorded during one
ExUnit suite run.

## Mix Tasks

- [mix temper.clean](Mix.Tasks.Temper.Clean.md): Deletes Temper's recorded history files, or prunes lines from them.
- [mix temper.doctor](Mix.Tasks.Temper.Doctor.md): Preflight check for a working Temper setup.
- [mix temper.merge](Mix.Tasks.Temper.Merge.md): Merges recorded history files into a single deduplicated file.
- [mix temper.report](Mix.Tasks.Temper.Report.md): Reports flaky tests: tests with divergent outcomes on the same git SHA.

