
Quarterly Shoebox Summary
Close the quarter the way your accountant wishes everyone did: totals by category computed from the ledger entries themselves, the missing-documentation list naming each entry that lacks its paperwork, and the estimated-payment reminder in plain words. Locks the target quarter and the checks FIRST, then reconciles the numbers, then writes the summary — twenty minutes, four times a year, instead of an April archaeology dig. Use for quarterly tax summaries, 'how did the quarter shake out', estimated payment prep, and shoebox quarter closes.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Scope the quarterdata-analystentry
target quarter, checks, what the summary must report
Show working prompt
Define the close before computing anything. Step 1: read ledger.json from the workspace and lock the target quarter (default: the most recently ended calendar quarter) and the prior quarter as the comparison baseline. Step 2: define the checks — entries in the quarter with no category or a category that fits badly, entries with no source document behind them, and amounts that look like typos against their category's usual range. Step 3: define what the summary must report — totals by category computed from the entries, the missing-documentation list naming each entry that lacks its source, the delta versus the prior quarter, and a plain-words estimated-payment reminder. Step 4: write an acceptance-criteria checklist ('every quarter entry counted exactly once', 'totals computed from the entries, never estimated', 'every entry without a source document named', 'one concrete next-quarter action', 'no figure in the summary that is not derivable from the ledger'). Call write_task_note with the quarter + checks + checklist and write notes/scope.md. No totals yet. - Reconcile the quarterdata-analyst
category totals from the entries, missing docs, prior-quarter deltas
Show working prompt
Reconcile the quarter against the locked checks. Step 1: list every entry in the target quarter and total them by category directly from the amounts — show the per-category arithmetic in your notes so the summary phase inherits checkable numbers. Step 2: sweep for the problem entries — no category, no source document, amounts that look off — and list each one with what is missing. Step 3: compute the prior-quarter comparison per category and flag the big movers. Step 4: note anything that affects the estimated payment — a quarter well above or below the last one deserves a plain-words caution. Step 5: write the structured findings to notes/reconcile.md and call write_task_note with the quarter total, the biggest mover, and the missing-documentation count.
- Write the quarter summarycopywriter
category table, missing-doc list, one next-quarter action
Show working prompt
Write the quarter summary from the reconciliation. Step 1: open with the headline — the quarter's total spend in one plain sentence. Step 2: give the category table — one row per category with its total, computed from the entries, under Category and Total columns. Step 3: list the missing-documentation entries by date and vendor so finding the paperwork is a checklist, not a hunt. Step 4: give the prior-quarter comparison in a line or two, and the estimated-payment reminder in words a non-accountant acts on. Step 5: close with ONE concrete action for next quarter. Keep it calm and factual. Write report.md and call write_task_note with the report path and the quarter total.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
Open report.md and notes/reconcile.md and verify every criterion from notes/scope.md: every entry in the quarter is counted exactly once (re-add one category yourself to check), the category table's totals trace to the entries, every entry lacking a source document appears in the missing-documentation list, the prior-quarter comparison is present, the estimated-payment reminder is in plain words, and exactly one next-quarter action is named. Write PASS/FAIL per criterion; on any failure, name the gap and loop back to report. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "report" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- quarterly shoebox summary
- how did the quarter shake out
- close the tax quarter
- quarterly expense summary
- estimated payment prep
Source
View this craftbook on GitHub · MIT license