Three near-identical generate_daily/weekly/monthly functions collapsed
into one generate_digest() parameterized by DigestLevel descriptors.
Three separate prompt templates merged into one prompts/digest.md with
level-specific instructions carried in the DigestLevel struct.
Each level defines: name, title, period label, input title, output
format instructions, child prefix (None for daily = reads journal),
and Sonnet timeout.
digest_auto simplified correspondingly — same three phases but using
the unified generator.
Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>