Todo List 待办事项管理

ReviewAudited by ClawScan on May 18, 2026.

Overview

This todo skill is mostly purpose-aligned, but the provided code still uses unsafe shell execution for cron cleanup despite documentation claiming that was removed.

Review this skill before installing. Its todo/reminder purpose is coherent, but you should be comfortable with local storage of tasks and attachments, scheduled messages to the saved chat target, and should patch or avoid the shell=True cron cleanup path until it is fixed.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A malformed or poisoned reminder record could potentially cause the script to run an unintended local shell command during reminder cleanup.

Why it was flagged

The skill invokes a shell command using a cron job ID read from stored reminder data. If that local reminder state is ever tampered with or contains shell metacharacters, this pattern can allow unintended command execution.

Skill content
subprocess.run(f"openclaw cron delete {old_job_id}", shell=True, capture_output=True)
Recommendation

Replace this call with an argument list such as subprocess.run(["openclaw", "cron", "delete", old_job_id], ...) and validate cron job IDs before use.

What this means

Users or reviewers may believe a command-injection risk was fixed when the provided code still contains the risky pattern.

Why it was flagged

The checklist claims shell=True was removed, but the provided scripts/todo.py still contains a shell=True subprocess call. This weakens the reliability of the skill's safety claims.

Skill content
- [x] 移除 `shell=True` 使用,改用 args 列表形式
Recommendation

Correct the implementation and update the documentation so safety claims match the reviewed source.

What this means

Reminder messages may be sent later to the configured destination even after the original chat session has ended.

Why it was flagged

The skill creates persistent scheduled reminders through OpenClaw cron. This is disclosed and fits the todo reminder purpose, but it continues operating after the initial command.

Skill content
本技能使用 OpenClaw CLI 的 `cron` 功能创建定时提醒:
- 所有提醒任务都通过 `openclaw cron add` 命令创建
- 用户可以通过 `openclaw cron list` 查看所有提醒
Recommendation

Review scheduled jobs with openclaw cron list and delete reminders you no longer want.

What this means

Personal task titles, descriptions, attachment copies, and chat routing data may remain on disk and be reused by future skill commands.

Why it was flagged

The skill persistently stores tasks, copied attachments, reminder metadata, and session routing information in OpenClaw memory.

Skill content
所有数据存储在 `~/.openclaw/workspace/memory/` 目录:
- `todo.json` - 待办事项数据
- `todo-attachments/` - 任务附件
- `todo-session-config.json` - 会话配置
- `todo-reminders.json` - 提醒配置
Recommendation

Avoid adding sensitive attachments or task details unless you are comfortable storing them locally, and periodically clean the todo memory files if needed.

What this means

For quick todo commands, the agent may send the status/list through the script and then only return NO_REPLY in the chat.

Why it was flagged

The skill instructs the agent to force specific tool use and suppress normal response content for certain todo commands. This is disclosed and purpose-aligned with direct message sending, but it changes normal agent behavior.

Skill content
必须使用 `send-status` 或 `send-list` 命令直接发送消息,**不要**自己输出内容 ... AI 应直接回复 `NO_REPLY`
Recommendation

Use these quick commands only when you expect the skill to post directly to the current configured chat target.

What this means

Users may not see dependency requirements from registry metadata alone and may be surprised that the skill runs local Python scripts and OpenClaw CLI commands.

Why it was flagged

The skill itself discloses Python and OpenClaw CLI requirements, while the registry requirements section lists no required binaries and no install spec. This is an under-declared dependency/capability signal rather than hidden execution.

Skill content
requires:
  - python3
  - openclaw
Recommendation

Declare python3 and OpenClaw CLI in registry metadata/capability signals as well as in SKILL.md.