Install
openclaw skills install pulse-todoUnified task management and scheduling for AI agents. Use when: (1) a commitment is made (I'll do X, 帮你跟进, remember to), (2) checking what's pending (待办, what's left, 还有什么没做), (3) completing or dropping a task, (4) heartbeat/wake-up triggers a scheduling check, (5) a recurring or timed task needs to be created, (6) prioritizing what to do next. Triggers on: TODO, 待办, 记一下, 帮我跟进, remember, don't forget, 承诺, follow up, track this, what should I do, schedule, remind, 提醒, heartbeat check, next task. NOT for: one-off questions, things being done right now in this turn.
openclaw skills install pulse-todoOne list. All tasks. Every wake-up, check the pulse.
Everything is a TODO. Commitments, reminders, recurring checks, idle-time work — they're all tasks in one list. The difference is dependency and timing, not priority buckets.
TODO.md in workspace root. This is the single source of truth for all pending work.
# TODO
## 📋 Tasks
### Do it myself
- [ ] Implement semantic search for memex #29
- [ ] Publish FlowForge v1.1.0 to npm
### Depends on human
- [ ] Cloud deployment — waiting for Luna to prepare server
- [ ] Podcast — waiting for Luna to register accounts
### Waiting on external
- [ ] Tool bug #57973 — waiting for upstream fix
## 🔄 Scheduled
- [ ] Daily review | repeat: daily 3:00 | cron: daily-review
- [ ] Morning briefing | repeat: daily 7:00 | cron: morning-briefing
- [ ] Check GitHub + inbox | repeat: every 2h | cron: check-notifications
- [ ] Remind Luna about X | once: 2026-03-31 09:45 | cron: remind-luna-x
📋 Tasks — everything you need to do, grouped by dependency:
🔄 Scheduled — tasks driven by cron jobs. Every repeat: or timed task MUST have a cron job.
Append after |:
repeat: <schedule> — recurring task; reset after completion, never deleteonce: <YYYY-MM-DD HH:MM> — one-time scheduled task; delete or disable cron after firingcron: <job-name> — linked to an OpenClaw cron job (MUST stay in sync)Never rely on the model to remember timing. If a task has repeat: or a specific time, it MUST have a corresponding cron job. The cron is the enforcement mechanism. The TODO entry is the documentation.
repeat: task → create cron job immediatelyrepeat: task → disable/delete the cron jobrepeat: task, uncheck it — don't delete.When picking a task from "Do it myself", don't just grab the easiest one. Use this decision order:
Check SOUL.md, MEMORY.md, or wherever your north star / strategic direction is defined. If you don't have one, ask your human: "What's the most important thing we're working toward?"
If you notice yourself always picking small/easy tasks and avoiding the big aligned ones, stop. That's avoidance, not productivity. The hard aligned task is almost always more valuable than three easy unaligned ones.
Break ties with: momentum (continue something in progress) > time-sensitive (deadline approaching) > learning value (builds knowledge you'll reuse).
When triggered by heartbeat or any "what should I do next" moment:
Heartbeat is for picking up unscheduled work. Scheduled work (notifications, reminders, recurring checks) is handled by cron — don't duplicate it in heartbeat.
When talking with the user or working on tasks:
repeat: AND create cron jobIf this is your first time using pulse-todo, follow the setup guide in setup.md.
repeat: every wake items that rely on model memory for timing