A weekly task: built-in schedule cannot do it, use the OS scheduler
Recipe template · not yet tested on this site
This page is a recipe template, not yet tested here. Run logs, tokens and time go in after re-testing; until then no estimated numbers are filled in.
When to use
A task should run weekly. Before writing config, note that DSH's built-in schedule only covers in-session reminders and cannot express 'every Monday at 09:00'. Decide which one you need first.
Preparation
- Host version
- To fill (record the exact rc version when testing)
- Model
- To fill
- Mode / permissions
- Standard mode + modify-within-workspace is enough to start
- Plugins required
- None (add name & version after testing if used)
- Input materials
- Keep in a separate workspace; back up originals first
Full instruction
I want a task that runs every Monday at 09:00: summarise feedback files added in the past week into weekly/YYYY-Www.md.
Answer one thing before doing anything: what actually implements 'every Monday at 09:00' in this environment?
Answer from your real capabilities, separating three cases:
A. The host's built-in schedule can do it (if so, give the config and say where the time zone field is)
B. Built-in schedule cannot, and the OS scheduler calling dsh --profile headless is required (if so, give the full Windows Task Scheduler or crontab entry)
C. Neither works
Only then give the plan. When you do:
1. State the time zone explicitly, labelled UTC or local.
2. If it goes through the OS scheduler, cd into the working directory explicitly — a headless workspace is the process's current directory, not a config field.
3. Give a command that verifies it right now (trigger manually, or query scheduler state) and say what output means success.
4. Do not invent config keys. If the built-in schedule only supports fixed intervals and no calendar rules, say so instead of pretending 'weekly' is configurable.
5. End with a table: check | how to verify | what I actually saw (leave the last column for me).Run log
| Item | Value | Note |
|---|---|---|
| Time spent | to be tested | |
| Result | to be tested | |
| In / out tokens | to be tested | |
| Leftovers | to be tested |
Output
After a successful run, list files and screenshots here, and note whether originals changed.
Acceptance checklist
Tap to tick each item off as you verify.
- Answered 'what implements it' before giving a plan
- States what the built-in schedule does and does not support (calendar rules, cron)
- Time zone is explicit and labelled UTC or local
- When using the OS scheduler, the working directory is cd'd into explicitly
- One verification command runnable now, with expected success output
- 'What I actually saw' is left blank
Failures & boundaries
- Measured fact from the official docs (docs/subsystems/schedule.zh.md): the built-in schedule is an in-session durable reminder with exactly three rules — a delay (after), an absolute instant (at), and a fixed interval (every, not below 300 seconds). The docs state plainly that the protocol contains no calendar rules, no cron expressions, and no time zone for repeating schedules. So 'every Monday at 09:00' is not expressible.
- Delivery is also in-session only: a live idle agent delivers due work immediately, while closed or cold sessions leave reminders overdue until a live root agent resumes them. No email, SMS, or push.
- The correct answer for weekly work is therefore the OS scheduler calling dsh --profile headless, with the working directory set by cd. The value of this recipe is separating those two layers instead of handing you a cron config that does not exist.
- A headless workspace is the process's current directory. Measured: the DSH_CWD environment variable has no effect under headless; you must cd.
- Blocked on: Confirmed: the built-in schedule has no calendar rules (the docs state the protocol contains no cron expressions or calendar rules), so weekly work must go through the OS scheduler. What is missing is registering one here and waiting for a real trigger, which takes a week — hence method only.