task/431-board-surface-maven-holds-the-work-board
The decision the task asked for. Build it, in a smaller shape than the task imagined, because most of it is already there: the tasks table, the capture parse, the recite matcher and the /tasks page all landed under #130, #129 and #128. Three findings changed the shape. The intake form cannot live on the voice path. resolveConfirm is a binary yes/no slot with a 90-second life, so filling four fields is a mechanism nobody has written, and the definition of done is the worst possible field to dictate through whisper. It moves to the page. Voice captures a line and recites the list; the page turns a candidate into an open item. The stage-0 trick stretches to recite and to status change, both of which are a marker plus a lookup. It does not stretch to intake, and it does not have to. A task is write-once except for its status. SetTaskStatus is the only mutation, so the form has nothing to save into until an edit path exists. That is now step 2 of four, and it was not in the task text. The argument stays unbuilt. Same line internal/memory/behavior.go already drew for habits: she counts a stall and never assesses one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
Languages
Go
97.1%
HTML
0.9%
Shell
0.6%
CSS
0.5%
Makefile
0.3%
Other
0.6%