A nudge for a tool that was not in the room
prompt/multi-step-task-nudge, #3733 · observed 2026-08-25 in a session with no TaskCreate · 2026-08-31
Why it never stopped
silencer: sessionHasTasks() reads .claude/logs/task-creations.jsonl for this session id
a session whose tool set has no TaskCreate can never write that line
throttle: first qualifying prompt fires, then every 6th ... forever
result: "[task-nudge #N] ... Open one now, TaskCreate per step ..." every 6th prompt, all session,
telling the model to call a tool it does not have
HookInput carries no tool list, so "skip when TaskCreate is absent" cannot be implemented. The cap is keyed to this session's own non-usage instead: after N qualifying prompts with zero TaskCreated, one final conditional line, then silence. The counter keeps advancing (it is the Stop-side telemetry denominator), and a TaskCreated before N restores the normal silencing with no new code.
Try it: a session's qualifying prompts
Wording
full (1st, then every 6th under the cap):
[task-nudge #1] This prompt reads as 3+ step work and no task list exists yet this session.
If TaskCreate is in this session's tool set, open one now (TaskCreate per step, ...).
final (the Nth qualifying prompt with no task yet):
[task-nudge #N final] N prompts this session read as 3+ step work and none created a task.
If TaskCreate is available, open a task list now (one task per step, TaskUpdate as you go).
If it is not in this session's tool set, disregard; this nudge stays silent for the rest of the session.
explicit asks ("todo list", "organise the session") still fire past the cap, worded like the final line.
Control: the old throttle test expected the 7th prompt to re-fire ([T,F,F,F,F,F,T]); it now expects [T,F,T,F,F,F,F] and fails on main. That is the fix living on the branch a task-less session actually reaches.