Manually-triggered scheduled tasks are indistinguishable from automatic runs — prompt always says "the user is not present"
Description
When a scheduled task is started manually ("Run now"), the task prompt delivered to the model is byte-identical to an automatic cron-triggered run. It is wrapped in the same <scheduled-task> block, which states:
This is an automated run of a scheduled task. The user is not present to answer questions. ... execute autonomously without asking clarifying questions.
The model therefore has no way to know a human is sitting there waiting, and behaves autonomously even when the user explicitly clicked Run now and intends to interact.
Impact
This breaks any routine whose whole design is interactive. My Todoist inbox routine is written to go task-by-task and wait for my approval before each change. On a manual run the model reads "the user is not present", skips every confirmation, and either acts unattended or just produces a report. The user's stated intent (I clicked the button, I am here) is overridden by the harness's boilerplate.
Note the runtime clearly does distinguish the two cases internally — see #33027 / #47180, where permissions granted during a manual "Run now" do not carry over to the next automatic run. The distinction exists; it just is not surfaced to the model.
Steps to reproduce
- Create a scheduled task whose instructions require step-by-step user confirmation.
- Trigger it manually via "Run now" (desktop Routines UI).
- Observe the prompt still contains "This is an automated run ... The user is not present".
- The model proceeds without asking for confirmation.
Expected
The wrapper should reflect the actual trigger, e.g. trigger: manual vs trigger: schedule, and the "user is not present" sentence should only appear for automatic runs. A manual run should be treated as interactive.
Environment
- Claude Code 2.1.226
- macOS 26.5.2
- Local scheduled task (
~/.claude/scheduled-tasks/)
Related: #33027, #47180, #89632
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗