- Atomic — a fix applies fully or not at all.
- Conflict-aware — overlapping edits are skipped rather than producing a corrupted file.
- Configurable — per-rule fix modes let you control exactly which fixes run and when.
Basic usage
Apply all safe fixes:Safe vs. unsafe fixes
The 🔧 marker in the rules reference indicates a rule has auto-fix support. Safe fixes are things like adding a missing newline, reordering
instructions, or converting
RUN echo to a COPY heredoc. Unsafe fixes may restructure stages or change command arguments.
Per-rule fix modes
Control when fixes are allowed per rule in.tally.toml:
How conflict resolution works
When two fixes would modify overlapping lines, tally skips the conflicting fix rather than applying a partial or corrupted change. The skipped fix is reported to stderr:Examples of fixable rules
Rules marked 🔧 in the rules reference support auto-fix. Some notable examples:AI AutoFix
Some fixes are too complex to implement deterministically. For those, tally supports an opt-in AI resolver via ACP (Agent Client Protocol). AI fixes are marked unsafe and require both--fix and --fix-unsafe. See the AI AutoFix (ACP) guide for setup instructions.