Five cards instead of forty notes: a local model that refuses to guess
Description and use
The five‑things tool quickly identifies the five most important notes from a large folder using a local Gemma 2 2B model, enforces time and count budgets, and verifies that each card contains a quoted sentence from the source.
Problem
A notes folder grows faster than it is read; users need a quick way to identify the five most important notes each week.
Outcome
The tool reduces the effort to identify key notes from ~20 minutes to a single command, outputs concise actionable cards, enforces a time budget, and guarantees quote verification to avoid misleading summaries.
Workflow
- Scan folder for notes and compute ranking signals (age, markers, dates, sections).
- Apply budget allocator to limit to N notes and M minutes of wall‑clock time.
- For each selected note, send text to local Gemma 2 2B model via llama‑cpp to generate a card JSON.
- Validate the generated quote against the note text; if invalid, mark card as unverified and keep note in queue.
- Print the five cards and a list of deferred notes with reasons.
- Cache results keyed on note text to avoid re‑processing on subsequent runs.
Evidence
five-things brief ~/notes --budget 5 --minutes 2
A quote without a receipt is not a card.
On this laptop, CPU only: Generation, single stream 0.8 to 1.1 tokens per second
The cache is the third saving: cards are keyed on note text, not path, so renaming a file does not burn another call.
- Record date: 2026-10-24T12:11:11.057Z