C.W.K.
Stream
Lesson 03 of 04 · published

The Intent Crumb That Just Appears

~9 min · intent-capture, projection, not-a-reminder-app, free-by-construction

Level 0Cold Hearth
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Future-crumb arrival: nothing happens. Today surfaces intent crumbs for free."

The Question That Almost Grew a Scheduler

Once you allow future scatter, an obvious question follows: what should happen when a future-dated crumb's day finally arrives? The tempting answers all add machinery — fire a push notification, drop it into a 'due today' lane, badge the icon, mark it done when acted on. Every one of those quietly turns the journal into a task manager. And Vesta's resolved answer is the opposite of machinery: nothing happens.

Nothing happens because nothing needs to. The Today stream is a projection over the date axis — it shows the crumbs whose target_date is today. A crumb you placed on a future date was invisible only because that date wasn't today yet. The moment the date arrives, the same projection includes it, automatically, with no arrival event, no scheduler, no notification path. The intent crumb doesn't get delivered; it was always there, and Today simply reaches it.

The best arrival mechanism is no arrival mechanism. When your state is a projection over an axis, 'the future becoming the present' is free — you don't build it, you just don't prevent the projection from working. Reach for a scheduler only when the model can't already answer the question. Here, the model already answers it.

A Journal, Not a Reminder App

This is a genuine product boundary, not just an implementation shortcut. Intent capture is not a todo. When you place a note on a future day, you're leaving a thought for a future self to find, not scheduling an obligation with a deadline and a nagging alarm. A reminder app's whole job is to interrupt you until you comply; a journal's job is to be there, quietly, when you arrive. Collapsing intent into 'due dates' would rebuild the exact guilt machine Vesta was made to escape.

When a Real Notification Is Needed

Does this mean Vesta can never notify? No — it means notification is not Vesta's job. If a genuine need for an alert ever appears, it routes through cwkPippa's heartbeat (the family's existing scheduling brain), never a scheduler grown inside the journal. That keeps the boundary clean: Vesta owns crumbs and drafts and projections; the family's brain owns anything that has to reach out and interrupt you. The journal stays a place you come back to, not a thing that chases you.

Code

Today is a query, not a scheduler·python
def today_stream(crumbs, today):
    # The whole 'arrival' mechanism: a projection over the date axis.
    return [c for c in crumbs if c.target_date == today]

# A crumb placed on a future date is simply not selected yet:
#   target_date = 2026-08-31  ->  invisible on 2026-07-24
#   ...same crumb, same store, no change...
#   target_date = 2026-08-31  ->  appears on 2026-08-31, for free
#
# There is no cron job, no notification, no 'due' flag. The intent
# crumb was never delivered — Today just reached the day it lives on.

External links

Exercise

Think of a feature you once solved by adding a background job, timer, or notification. Ask: was the underlying state already a projection that could have answered the question directly, just by being queried at the right moment? Write down whether the scheduler was essential — or whether the model could have made 'the future arriving' free, the way Today does.
Hint
The tell is whether anything must actively PUSH to the user versus whether the user will PULL at the right time anyway. Journals are pull-shaped; reminder apps are push-shaped. If a pull is enough, the scheduler was ceremony.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.