The working surface
506 tasks. One definition of late.
Every one of them came from a sentence, not a form. You correct them the same way — by talking about the ones that are wrong, in the reply you were already writing.
The count, and what it doesn't hide.
211 are done. How many are overdue is a live number and this page does not print one — see below for why that restraint is the actual feature. What is fixed is the DEFINITION, applied the same way to every row: the due day is strictly before today, in the timezone the workspace itself is set to.
506
Tasks in the record
211
Completed
1
Definition of overdue
Why there is no overdue count on this page. Writing it, three different numbers came back within a minute for the same question: one from the briefing tool, one from a hand-written query, and one from an earlier note. None was a typo. The tool converts each due date into a day in the workspace’s own timezone before comparing; the hand-written query compared raw UTC timestamps; the note was simply stale.
Three definitions of one word is the exact defect this system was rebuilt to remove — it previously carried three definitions of “stalled” and two of “completion”, and the cost each time was a screen that disagreed with itself. A static page cannot hold a number that changes daily and depends on which definition produced it, so it does not print one. Ask the record and it answers, with the same definition every time.
Due today is not late. A task due at any hour today is on time until the day ends in your zone, not UTC's. That distinction used to fail: a date stored as a bare string reads as UTC midnight, which is already yesterday evening west of Greenwich, so a task due this morning showed as overdue before breakfast. It is fixed in one place — every overdue count in this system routes through it — rather than patched wherever a date got compared.
You don't open the task. You mention it.
There is no board to drag a card across, no checkbox to tick, no edit screen with a save button. The task list lives inside the conversation, and so does the correction.
- "That one's done."The task closes, and the move is written to a trail — not a column overwritten in place, a row appended, so "how long did this actually sit in progress" stays answerable later.
- "Give that one to someone else."Reassigned, without retyping the task, the due date, or anything else about it.
- "That's not going to happen this week."The due date moves, and the task doesn't quietly become a different task — it's still the row it always was, just later.
- "I got two of those wrong."Both corrections land in one exchange. There is no queue of pending edits sitting between what you said and what the record shows.
Nothing here is undone by a form validating your input after the fact. A write that fails, fails before a row changes — not after, with the record half-updated and no way to tell.
Three questions, not a filter panel.
The read tools are named for what a person actually asks, not for the table they query. None of them prompt for approval — asking is free, only writing needs your yes.
- "What should I work on?"Overdue, due today, and in flight — with due today kept separate from late, because the two are not the same question.
- "What's actually stuck?"Not a vibe. A task counts as stuck by one written rule applied uniformly, not by whichever of three definitions a particular screen happened to use.
- "What's the full list?"All 506, paged, with a real total attached — not a page of results with no way to know how many more exist.
Said plainly, so you don't find out by trying it.
No calendar view No drag to reorder No bulk edit screen No recurring tasks
A calendar, a board, and a way to select forty rows at once and change them together are all things a dashboard would give you. There is no dashboard yet, so none of those exist — not disabled, not planned for this quarter, just not built. What exists instead is the sentence you were already going to say.
Questions about the tool surface itself — what set_task_status and
reassign_task actually accept — go to jake@aifrontdesk.com.