PAR-226
Triage bot fabricates tasks from scrollback when @-mentioned with non-actionable messages
Symptom: @-mentioning the bot with a non-actionable message (e.g. "are you still a brain-dead bot?") made it propose a fully-formed CREATE_TASK ("Fix error message for duplicate firm invite") that had nothing to do with the message — pulled from unrelated, off-screen channel history.
Cause: the @-mention path gathers 50 messages of channel scrollback as context (ContextGatherer.gather(channel, instruction, 50, …)), and the system prompt opened with "Read the conversation … then decide." The model treated the transcript as a to-do list and surfaced the most actionable-looking topic in the window, regardless of whether the instruction asked for anything.
Fix (prompt grounding, TriageService):
- Reframe: the INSTRUCTION (the @-mention /
/tasktext) is the command; the transcript is BACKGROUND only, to interpret references in the instruction. Never create/update/comment on a topic the instruction didn't ask about, even if the transcript discusses other bugs/ideas; don't trawl history for something actionable. - CREATE_TASK only when the instruction itself asks to capture something (or is a reply whose replied-to message is the thing to capture).
- Stronger NONE rule with the exact failure as an example: a question/insult/banter directed at the bot → NONE, do not mine the conversation.
Backend compiles; triage suite green. Real validation is dogfooding in Discord.
Follow-up lever if it recurs: drop the @-mention scrollback window (currently 50) — most instructions only need the last few messages + the replied-to message.
Resources
- commitc9d0a19 Triage: ground decisions on the instruction, not the scrollback (PAR-226)ParadauxIO/tesks
Comments
No comments yet.
Activity
- paradaux changed status to Status → Done
- tesks changed status to Status → Pending Release
- ParadauxIO linked a commit — Commit c9d0a19 — Triage: ground decisions on the instruction, not the scrollback (PAR-226)
- tesks created the issue