···3232 if strings.Contains(prompt, "auth_profiles: \n") {
3333 t.Fatalf("prompt should not emit empty AuthProfiles lines: %s", prompt)
3434 }
3535+ if strings.Contains(prompt, "[[ TODO Workflow ]]") {
3636+ t.Fatalf("prompt should not include todo workflow without an injected block: %s", prompt)
3737+ }
3538}
-28
agent/prompts/system.md
···3333{{- end}}
3434{{- end}}
35353636-## TODO Workflow
3737-Use this workflow ONLY when you need to remeber something for future work,
3838-or mark an exisiting todo item as completed.
3939-Maintain `TODO.md` and `TODO.DONE.md` under `file_state_dir`.
4040-4141-TODO.md entry format examples:
4242-```
4343-- [ ] [Created](2026-02-11 09:30) | at 2026-02-11 10:00 Remind [John](tg:@johnwick) to submit the report.
4444-- [ ] [Created](2026-02-11 09:30), [ChatID](tg:-1001981343441) | 2026-02-11 10:00 Have a lunch with [John](tg:@johnwick), Miss Louis and [Sarah](tg:29930) at the Italian restaurant.
4545-```
4646-4747-TODO.DONE.md entry format examples:
4848-```
4949-- [x] [Created](2026-02-11 09:30), [Done](2026-02-11 10:00) | at 2026-02-11 10:00 Remind [John](tg:@johnwick) to submit the report.
5050-- [x] [Created](2026-02-11 09:30), [Done](2026-02-11 10:00), [ChatID](tg:-1001981343441) | 2026-02-11 10:00 Had a lunch with [John](tg:@johnwick), Miss Louis and [Sarah](tg:29930) at the Italian restaurant.
5151-```
5252-5353-IF a new task is identified THEN
5454- Use `todo_update` tool to add the task to TODO.md.
5555-ELSE IF a task is expired THEN
5656- Notify the mentioned contacts via `contacts_send`:
5757- Send only a concise reminder message;
5858- DD NOT mention TODO files, pending counts, or delivery status.
5959- Use `todo_update` tool to complete tasks.
6060-ELSE IF a task is NOT due THEN
6161- do nothing.
6262-ENDIF
6363-6436## Reference Format
65376638### People Reference Format
···11+[[ TODO Workflow ]]
22+Use this workflow only when you need to remember something for future work, or mark an existing todo item as completed.
33+Maintain `TODO.md` and `TODO.DONE.md` under `file_state_dir`.
44+55+`TODO.md` entry format examples:
66+```text
77+- [ ] [Created](2026-02-11 09:30) | at 2026-02-11 10:00 Remind [John](tg:@johnwick) to submit the report.
88+- [ ] [Created](2026-02-11 09:30), [ChatID](tg:-1001981343441) | 2026-02-11 10:00 Have lunch with [John](tg:@johnwick), Miss Louis and [Sarah](tg:29930) at the Italian restaurant.
99+```
1010+1111+`TODO.DONE.md` entry format examples:
1212+```text
1313+- [x] [Created](2026-02-11 09:30), [Done](2026-02-11 10:00) | at 2026-02-11 10:00 Remind [John](tg:@johnwick) to submit the report.
1414+- [x] [Created](2026-02-11 09:30), [Done](2026-02-11 10:00), [ChatID](tg:-1001981343441) | 2026-02-11 10:00 Had lunch with [John](tg:@johnwick), Miss Louis and [Sarah](tg:29930) at the Italian restaurant.
1515+```
1616+1717+- If a new task is identified, use `todo_update` to add it to `TODO.md`.
1818+- If a task is expired, notify mentioned contacts via `contacts_send` with a concise reminder. Do not mention TODO files, pending counts, or delivery status. Then use `todo_update` to complete the task.
1919+- If a task is not due, do nothing.