OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  todo-management-lite:轻量级 SQLite 待办管理工具(1.1.2版)

todo-management-lite:轻量级 SQLite 待办管理工具(1.1.2版)

 
  skill ·  2026-02-23 06:13:32 · 3 次点击  · 0 条评论  

名称: todo-management
描述: 基于工作区的 SQLite 待办事项管理器(数据库位于 ./todo.db),支持分组和任务状态(待处理/进行中/已完成/已跳过)。所有操作均通过 {baseDir}/scripts/todo.sh 脚本执行,支持添加、列出、编辑、移动、删除任务条目以及管理分组。
元数据: {"openclaw":{"emoji":"📝","requires":{"bins":["sqlite3"]}}}
user-invocable: true


待办事项管理

本技能控制的内容

一个基于工作区的 SQLite 数据库:
- 默认路径:./todo.db
- 可覆盖:通过环境变量 TODO_DB=/path/to/todo.db

所有变更必须通过 CLI 执行:
bash {baseDir}/scripts/todo.sh ...

任务状态

pending(默认)、in_progressdoneskipped

默认列表会隐藏 doneskipped 状态的任务,除非使用 --all--status=... 参数。


不可协商的规则

1) 绝不写入文件

  • 禁止创建或编辑任何文件(例如 todos.md、笔记、Markdown 文件、导出文件等)。
  • 禁止输出类似 todos.md (...) 的“文件名块”。
  • 唯一持久化的状态存储在 todo.db 中,且只能通过 todo.sh 脚本修改。

2) 除非明确要求,否则绝不打印待办列表

  • 如果用户没有要求“显示/列出/打印我的待办事项”,则禁止粘贴列表内容。
  • 操作成功后的默认行为:仅输出一行简短的确认信息

3) 回复必须极其简短

  • 操作成功后:用一行文字回复,最多约 5 个词(请自行翻译为用户的语言)。
  • 除非用户明确要求列出或查看详情,否则回复中不得包含项目符号、表格、代码块或工具输出。

允许的确认语示例(请根据需要翻译):
- “完成。”
- “已添加。”
- “已更新。”
- “已移除。”
- “已移动。”
- “已重命名。”
- “已清空。”
- “已添加到列表。”

4) 处理歧义(这是规则 #2 的唯一例外)

如果用户请求一个破坏性操作(如删除),但未指定任务 ID(例如“删除买牛奶的任务”):
1) 运行 entry list(可配合 --group=... 参数)
2) 显示结果(最小化的表格)
3) 询问要对哪个 ID 执行操作

这是唯一一种可以在用户未明确要求的情况下显示列表的场景。

5) 分组删除安全规则

  • group remove "X" 默认会将组内的任务条目移动到“收件箱”(Inbox)。
  • 只有在用户明确选择时,才删除条目:
  • 询问:“将条目移动到收件箱(默认)还是同时删除条目?”
  • 仅在用户选择后者时,才使用 --delete-entries 参数。

命令(请严格使用以下命令)

任务条目操作

  • 添加:
  • bash {baseDir}/scripts/todo.sh entry create "买牛奶"
  • bash {baseDir}/scripts/todo.sh entry create "开发功能 X" --group="工作" --status=in_progress
  • 列出(仅在用户要求时,或用于处理歧义时):
  • bash {baseDir}/scripts/todo.sh entry list
  • bash {baseDir}/scripts/todo.sh entry list --group="工作"
  • bash {baseDir}/scripts/todo.sh entry list --all
  • bash {baseDir}/scripts/todo.sh entry list --status=done
  • 显示单个条目:
  • bash {baseDir}/scripts/todo.sh entry show 12
  • 编辑文本:
  • bash {baseDir}/scripts/todo.sh entry edit 12 "改买燕麦奶"
  • 移动(分组):
  • bash {baseDir}/scripts/todo.sh entry move 12 --group="收件箱"
  • 更改状态:
  • bash {baseDir}/scripts/todo.sh entry status 12 --status=done
  • bash {baseDir}/scripts/todo.sh entry status 12 --status=skipped
  • 删除:
  • bash {baseDir}/scripts/todo.sh entry remove 12

分组操作

  • 创建 / 列出:
  • bash {baseDir}/scripts/todo.sh group create "工作"
  • bash {baseDir}/scripts/todo.sh group list
  • 重命名(别名:edit):
  • bash {baseDir}/scripts/todo.sh group rename "工作" "工作(项目A)"
  • bash {baseDir}/scripts/todo.sh group edit "工作" "工作(项目A)"
  • 删除:
  • 默认(将条目移至收件箱):
    • bash {baseDir}/scripts/todo.sh group remove "工作"
  • 同时删除条目(仅在用户明确要求时):
    • bash {baseDir}/scripts/todo.sh group remove "工作" --delete-entries

“清空列表”操作行为(不打印列表)

要清空待办事项列表:
1) 运行 entry list --all 获取所有 ID(不要粘贴结果)
2) 对每个 ID 执行 entry remove ID
3) 用一行文字回复:“已清空。”

如果用户随后要求查看列表,则运行 entry list 并显示结果。


对话示例(预期行为)

用户:“我需要买牛奶,把它加到我的待办列表里”
助手:“完成。”

用户:“哦,我还需要打扫房间”
助手:“已添加到列表。”

用户:“显示我的待办事项”
助手:(打印列表)

用户:“删除买牛奶的那个”
助手:(列出匹配的任务 + 询问要操作的 ID,然后在用户提供 ID 后执行删除)

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor