
Daily Calendar & Prep Brief
Assemble a morning brief from the day's calendar: a chronological agenda with per-meeting prep notes, conflicts flagged, and a short focus-time/priorities summary. Scopes the brief layout and prep rules FIRST (which meetings need prep, what prep means, how to flag conflicts and back-to-backs), then a developer pulls the day's events and assembles the brief deterministically against those rules. The scope-first ordering ensures the brief always flags double-bookings and attaches the right context (attendees, agenda, links) instead of just dumping a raw event list. Use for daily agenda briefs, meeting prep, morning planning, schedule rundowns, and turning a calendar into an actionable day plan.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Scope the briefplannerentry
lock the layout, prep rules, and conflict flags
Show working prompt
Define the brief format before pulling events. (1) Lock the layout — At-a-glance (count of meetings, total meeting hours, first/last event), Agenda (chronological, with time, title, attendees, location/link), Prep (per-meeting context), Conflicts & gaps, Focus/priorities. (2) Set the prep rule: which meetings get prep notes (e.g. external attendees, no agenda attached, or >30 min) and what a prep note contains (purpose in one line, attendees, the doc/link, one suggested talking point). (3) Define conflict detection: overlapping events flagged RED, three+ back-to-backs flagged as a fatigue risk, and gaps ≥ 60 min surfaced as focus blocks. (4) Set the day/timezone. Write an acceptance-criteria checklist ('every event for the day appears in time order', 'overlaps are flagged', 'every meeting meeting the prep rule has a prep note', 'focus gaps surfaced', 'at-a-glance totals are correct') plus the layout + rules to notes/scope.md via write_task_note AND the produces path. - Assemble the briefdeveloper
pull the day's events and build the brief to the rules
Show working prompt
Build brief.md for the target day using the locked layout and rules. (1) Pull the day's events (from the connected calendar tool or a pasted agenda); sort strictly by start time. (2) Compute the at-a-glance totals (meeting count, summed meeting hours, first start, last end). (3) Render the chronological agenda with time range, title, attendees, and location/link per event. (4) For each event meeting the prep rule, write its prep note (purpose, attendees, link, one talking point) — invent no facts; bracket anything the calendar doesn't provide. (5) Scan for overlaps (flag RED), 3+ back-to-backs (fatigue note), and ≥60-min gaps (focus blocks) and list them in Conflicts & gaps. (6) Close with a 3-item priorities line. On a loop-back fix only the flagged parts. Write the brief via write_task_note and the path + event count to notes.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
QA brief.md against the locked criteria. (1) Confirm every event for the day is present and strictly time-ordered; FAIL on any missing or out-of-order event. (2) Recompute the at-a-glance totals from the agenda and confirm they match. (3) Confirm every meeting matching the prep rule has a prep note with the required fields, and that no facts were invented (placeholders bracketed). (4) Verify conflict detection: any two overlapping events flagged, back-to-back runs noted, ≥60-min gaps surfaced as focus blocks. (5) Confirm the priorities line is present. Write PASS/FAIL per criterion with specifics. 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: "assemble" })` 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.
- daily brief
- what's on my calendar
- meeting prep
- morning agenda
- today's schedule
Source
View this craftbook on GitHub · MIT license