-
Notifications
You must be signed in to change notification settings - Fork 0
Automation Chat produces prose, never proposals — the chat workflow needs re-thinking #2004
Copy link
Copy link
Open
Labels
Priority IRelease-blocking or trust-breaking now; release scope still requires milestone membership.Release-blocking or trust-breaking now; release scope still requires milestone membership.automationProposal/triage/workflow automation mechanics and automation policy control planes.Proposal/triage/workflow automation mechanics and automation policy control planes.backendPrimary implementation impact in .NET API/domain/application/infrastructure.Primary implementation impact in .NET API/domain/application/infrastructure.bugSomething isn't workingSomething isn't workingdogfoodingFrom real personal/beta use; evidence-grade product feedback (exempt from intake severity bar).From real personal/beta use; evidence-grade product feedback (exempt from intake severity bar).frontendPrimary implementation impact in Vue/TypeScript UI and client runtime.Primary implementation impact in Vue/TypeScript UI and client runtime.llmAI/provider/planner/executor/chat-related implementation and policy work.AI/provider/planner/executor/chat-related implementation and policy work.uxDiscoverability, accessibility, interaction model, and user workflow quality.Discoverability, accessibility, interaction model, and user workflow quality.
Description
Activity
Metadata
Metadata
Assignees
Labels
Priority IRelease-blocking or trust-breaking now; release scope still requires milestone membership.Release-blocking or trust-breaking now; release scope still requires milestone membership.automationProposal/triage/workflow automation mechanics and automation policy control planes.Proposal/triage/workflow automation mechanics and automation policy control planes.backendPrimary implementation impact in .NET API/domain/application/infrastructure.Primary implementation impact in .NET API/domain/application/infrastructure.bugSomething isn't workingSomething isn't workingdogfoodingFrom real personal/beta use; evidence-grade product feedback (exempt from intake severity bar).From real personal/beta use; evidence-grade product feedback (exempt from intake severity bar).frontendPrimary implementation impact in Vue/TypeScript UI and client runtime.Primary implementation impact in Vue/TypeScript UI and client runtime.llmAI/provider/planner/executor/chat-related implementation and policy work.AI/provider/planner/executor/chat-related implementation and policy work.uxDiscoverability, accessibility, interaction model, and user workflow quality.Discoverability, accessibility, interaction model, and user workflow quality.
Projects
- StatusShow more project fieldsReview
What happened (live dogfooding, 2026-08-23)
Created a chat session titled "Shopping" with no board context, then asked the assistant to improve a card on Angela's Board. Over four turns the assistant produced only prose: a clarification question, then a Markdown "revised task description", then the same description again with "Deadline: Today". No proposal was created. Nothing appeared in Review. Nothing changed on the board. From the user's seat there was no signal that anything was wrong — the assistant behaved as if it had done the work.
Transcript (abridged):
Root causes found
ChatService.HandleMessagegates every proposal attempt onsession.BoardId.HasValue(backend/src/Taskdeck.Application/Services/ChatService.cs:461). The session in this transcript had none. The user names a board in the message ("Angela's Board") and the system never binds it, never asks, never warns — the board picker is a free-text "Board context (optional)" input in the sidebar that the user has no reason to know is load-bearing.useAutomationChat.ts:40defaultsrequestProposaltofalseand resets it tofalseafter every send (:272). The one control that turns chat from a text generator into an agent is off by default, unlabelled as to consequence, and self-disarming.ClarificationDetectorflags the response as a clarification and suppresses proposal creation entirely (ChatService.cs:449-456). "Just do your best" does not force best-effort; the model answered in prose and the loop simply ended with no action and no state change.Why this matters
Taskdeck's whole premise is capture → proposal → human review → apply. Chat is the surface where a user naturally expresses intent, and in its current shape it produces zero proposals for the most obvious phrasing of the most obvious task. It reads as a chatbot bolted next to the product rather than the front door to it.
What needs re-thinking (not just a patch)
This is a workflow redesign, not a bug fix. Suggested shape — to be settled by an ADR before implementation:
forceBestEffortinChatService.cs:450); a proposal the user can reject is strictly better than prose the user cannot act on.Acceptance criteria
docs/decisions/covering board binding, default-to-act, grounding, and clarification termination for the chat surface.Evidence
Live session
71e202fd-22f0-4c9d-9308-6ab7952ecc63, board "Angela's Board", OpenAI gpt-4o-mini, 2026-08-23 16:32–16:34.Related
Reported alongside GH-2005 (capture due date dropped end-to-end) and GH-2006 (date-field picker affordance) from the same dogfooding pass.