AI ProgramsRetreat
AboutCareersBook a Conversation
Workflows/Operations

Daily Check-in Agent

The stand-up is the meeting everyone attends and nobody needs, because the answers already live on the Workboard. This agent reads them off the cards every morning, posts a three-line check-in per team, and chases only the people whose cards went quiet. On Wednesday it closes the week with the outcomes and the Human and AI token report the planning session runs on.

Source Workboard cards + commentsCadence Weekdays 09:00 and 09:30, Wednesdays 09:00Human touchpoints The card, the planning read

Cards in, check-ins out

This rail is the orientation, not the workflow. Real life branches, loops, and fails; the diagrams below are the truth, drawn branch by branch.

0109:00 weekdays
Time to Check In
System
02Thirty minutes, on the Workboard
Cards Move
Team
0309:30 weekdays
Check-ins Gathered
Claude
04Infinite Leverage, EO
Posted to the Chat
System
05Hourly, late ones in the thread
The Nudge
Claude
06Tuesday night
Week Closes
System
07Wednesday 09:00
Weekly Summary
Claude
08Wednesday
Planning
Team leads

The morning check-in, every branch

Eight boxes in the rail; three decisions, one loop and two quiet endings in reality. The 09:00 message is the only warning anyone gets; thirty minutes later the agent reads the board as it stands. The check-in itself is the easy part: done yesterday is the Done lane, doing today is the Doing lane, blockers are the comments. The interesting work is the silence: telling a day off from a forgotten board, chasing only the latter, and putting a late update where the day’s record already lives, in the morning post’s thread, rather than as a second post.

thirty minutes to update cardsyesnoyesnolook againday endsyeslate09:00 (+07) the reminder firesevery weekday, both teamspost to both chats:time to update your cards09:30 (+07) the check-in firesthirty minutes laterload the two team rostersProduct Team and EO, one Lark chat eachread the Workboard per personcards, moves, comments since last postread fails: abort,post nothingany card moved orcommented in 24h?day off booked?listed as off, never pingedLark DM the person:update your cardsthe post lists them as pendingwait one hourthen look again17:30, still nothing:named in tomorrow’s postcompose the check-indone yesterday, doing today, blockersfirst run of the day?post to the team’s Lark chatsend fails: summary to run loglate: reply in thread,edit the morning postlog the run: routine_runshuman and AI tokens counted
The 09:00 reminder and the 09:30 agent. The bold box on the right is a DM to one person, not the channel; the green loop looks again every hour and stops at 17:30. A late update takes the left fork: a thread reply and an edit, never a second post.
schedule firesdecisionhuman touchpointwait an hourrun log writeflag a humanquiet end

What one person’s day looks like to the agent

Underneath the morning run sits one entity with rules: a person on a given day. Everyone starts stale at 09:30. A move or a comment in the window makes them fresh; a booked day off makes them off; anything else makes them pinged, hourly, until a card moves or the day ends. A person who turns fresh before 09:30 is in the post; one who turns fresh after it goes into the post’s thread. Only the human move, updating a card, is dashed. The agent never marks anyone fresh on its own.

no day offday off bookedevery hourupdates a cardby 09:30after 09:3017:30, no updatelisted as offstalepingedfreshpostedoff17:30, no update:named tomorrowlate: in the thread,post edited
Green arrows are agent moves; the dashed arrow is the one thing only the person can do. Off and fresh-by-09:30 reach the post; fresh-after-09:30 reaches its thread; missed is named the next morning instead.
agent may movehuman only (dashed)quiet end

The weekly summary, every branch

The week runs Wednesday to Tuesday because Wednesday is planning day: the summary lands an hour before the session and is read aloud in it. Three reads, one decision, one post. Human Tokens come from the tracker, per person; AI tokens come from the run log, per team; a person with no card activity all week is named, never averaged away.

yesnoWednesday 09:00 (+07): planning daythe week ran Wednesday to Tuesdayread the week’s cards per teamshipped, carried over, blockedread fails: abort,no summarysum Human Tokens per personHuman Token Tracker, Wednesday to Tuesdaysum AI tokens per teamroutine runs and agent sessionsanyone with zero cardupdates all week?named in the summaryfor the team leadcompose the weekly summaryoutcomes, tokens, blockers, missespost to both Lark chatsread aloud at planningsend fails: summaryto the run loglog the run: routine_runsthe summary’s own tokens count too
The Wednesday agent. The red box in the middle is not a failure: it is the summary naming a person for the team lead. The two red paths on the left are failures, and both end in the run log.
schedule firesdecisionhuman touchpointrun log writeflag a human

Every exception has an owner

An automation is defined by what happens off the happy path. Each row here is a real condition the agent hits, what it does about it, and where a human hears about it. Silence is only ever by design.

ConditionWhat happensWhere you hear about it
No card moved or commented in 24 hoursDay off checked; if none, a DM every hourThe DM; the post lists them as pending
Cards updated after the 09:30 postCheck-in posted as a reply in the morning post’s thread; the pending line is editedThe thread, the same day
Day off bookedListed as off, never pingedThe team post, one line
Pinged all day, still nothing by 17:30Pings stop; named as missing in the next postTomorrow’s team post
Person has no cards on any boardListed with “no cards”, no nudgeThe team post, for the lead to fix
Card moved by someone other than the assigneeCounts as activity; the mover is namedThe team post
Blocker written in a card commentSurfaces under Blockers until the card movesEvery post until it clears
Public holidayTreated as a day off for the whole team, no runNowhere, by design
Workboard read failsRun aborts before any message or pingRun log; the missing post is the tell
Lark send failsSummary printed to the run log, pings skippedRun log
No token data for a person that weekShown as “no data”, never zeroThe weekly summary
Same team and day seen againNo-op by key, never a duplicate postNowhere, by design

Data, timing, and how we know it works

Reads and writes

  • Reads: tasks, the stage log and the comments on them for the window; time off; the two team rosters and their chats; the Human Token Tracker; the routine run log for AI tokens
  • Writes: one reminder and one check-in per team per weekday, at most one DM per stale person per hour, one thread reply and one post edit per late person, one weekly summary per team, one routine run row per run
  • Idempotency keys: team plus date for the reminder and the post; person plus date plus hour for a ping; person plus date for the thread reply; team plus week for the summary
  • Re-running any morning is a no-op: every message checks its key first

Timing model

  • 09:00 (+07) weekdays: the reminder, thirty minutes before the board is read
  • 09:30 (+07) weekdays: the check-in, after the first coffee, before the first meeting
  • The window is since the previous post, so a Monday reads back over the weekend
  • Pings run 10:30 to 17:30; a late update is threaded the same hour; the last ping is the last one, and the miss is named next morning
  • Wednesday 09:00: the summary lands an hour before planning, covering Wednesday to Tuesday
  • Runs live on a workstation schedule: a missed run executes at next wake, keys make that safe

How we know it works

  • A weekday with no post in either chat is itself the alarm
  • Every post lists who was off and who was pinged, so a quiet board is visible the same day
  • The weekly token totals reconcile to the tracker; a gap means the tracker is behind, not the team
  • Weekly eyeball: people pinged three days running, cards in Doing for over a week. Zero of each is the target

The seven elements

Every workflow we document has the same anatomy: seven elements, each assigned to a human, a machine, or both. This is the Centaur Map from our workflow design method.

01 TriggerMachine

Time. 09:00 (+07) every weekday for the reminder, 09:30 for the check-in, 09:00 every Wednesday for the weekly summary. Nobody calls a meeting.

02 InputsMachine

The Workboard: each person’s cards, the moves logged against them, and the comments on them. Days off from the time-off table. Human Tokens from the tracker, AI tokens from the run log.

03 DecisionBoth

The agent decides whether a person has been active in the window and whether silence is a day off. It never decides what someone did; it reads it off the cards.

04 RoutingMachine

Two rosters, two chats. Product Team check-ins land in Infinite Leverage, EO check-ins land in EO. A nudge goes to the person as a DM, never to the channel.

05 OutputMachine

One check-in message per team per weekday, one weekly summary per team on Wednesday, and a routine run row with the tokens it cost.

06 DeliveryMachine

Lark messages in the team chat; hourly DMs to anyone stale; a late check-in as a reply in the morning post’s thread, with the post edited to match. The weekly summary is the first thing read at Wednesday planning.

07 MeasurementHuman

A weekday with no post is the alarm. Every post names who was pinged and who was off, so the gaps are visible daily, not at the retro.

This is the same pattern as Lark Scheduler to CRM Updates: a scheduled agent reading systems that already hold the truth, writing one message a human actually reads, and refusing to guess. The cards are the stand-up; the agent only reads them out.