Data shape of one declarative doctor reconciliation rule: a
(Predicate, Transformation, Verification) triple, per
GgenIgniter.DoctorFixes's moduledoc. Every field is a real,
single-argument function over a project_dir -- no captured mutable
state, no File.cwd!()/Mix.Project reads baked in, so a Rule is as
testable against a throwaway temp directory as any of the plain
functions it replaces.