← All craftbooks

Daily Calendar & Prep Brief

Comms and ops automationevalv1.0.0released 2026-06-05workflow: build-loop

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Source

View this craftbook on GitHub · MIT license