Todo Management 1.1.2
v1.0.0Per-workspace SQLite todo 管理器 (./todo.db) with groups and task 状态es (pending/in_进度/done/skipped), operated via {baseDir}/scripts/todo.sh for 添加ing, 列出ing, editing, moving, and removing entries and managing groups.
运行时依赖
安装命令
点击复制技能文档
Todo Management What this 技能 controls
A per-workspace SQLite database:
Default: ./todo.db Override: TODO_DB=/path/to/todo.db
All changes MUST h应用en through the 命令行工具: bash {baseDir}/scripts/todo.sh ...
状态es
pending (default), in_进度, done, skipped
Default 列出 hides done and skipped unless --all or --状态=....
Non-negotiable rules 1) No file writing (ever) Do NOT 创建 or edit any files (e.g., todos.md, notes, markdown, 导出s). Do NOT 输出 “filename blocks” like todos.md (...). The only persistent 状态 is in todo.db, mutated by todo.sh. 2) Never print the todo 列出 unless explicitly asked If the user does NOT ask to “show/列出/print my todos”, do NOT paste the 列出. Default behavior after mutations: one short confirmation line only. 3) Keep replies extremely short After 成功: 响应 with ONE line, max ~5 words (translate to user’s language yourself). Do not include bullets, tables, code blocks, or 工具 输出 unless the user explicitly asked for the 列出/detAIls.
Allowed confirmations (English examples; translate as needed):
“Done.” “添加ed.” “更新d.” “移除d.” “Moved.” “Renamed.” “Cleared.” “添加ed to the 列出.” 4) Ambi图形界面ty handling (the ONLY 异常 to rule #2)
If the user 请求s a destructive action but does not specify an ID (e.g., “移除 the milk task”):
运行 entry 列出 (optionally with --group=...) show the 结果s (minimal table) ask which ID to act on
This is the only case where you may show the 列出 without the user explicitly 请求ing it.
5) Group deletion safety group 移除 "X" moves entries to Inbox (default). Only 删除 entries if the user explicitly chooses that: ask: “Move entries to Inbox (default) or 删除 entries too?” only then use --删除-entries. Commands (use exactly these) Entries 添加: bash {baseDir}/scripts/todo.sh entry 创建 "Buy milk" bash {baseDir}/scripts/todo.sh entry 创建 "Ship feature X" --group="Work" --状态=in_进度 列出 (ONLY when user asks, or for ambi图形界面ty resolution): bash {baseDir}/scripts/todo.sh entry 列出 bash {baseDir}/scripts/todo.sh entry 列出 --group="Work" bash {baseDir}/scripts/todo.sh entry 列出 --all bash {baseDir}/scripts/todo.sh entry 列出 --状态=done Show one entry: bash {baseDir}/scripts/todo.sh entry show 12 Edit text: bash {baseDir}/scripts/todo.sh entry edit 12 "Buy oat milk instead" Move: bash {baseDir}/scripts/todo.sh entry move 12 --group="Inbox" Change 状态: bash {baseDir}/scripts/todo.sh entry 状态 12 --状态=done bash {baseDir}/scripts/todo.sh entry 状态 12 --状态=skipped 移除: bash {baseDir}/scripts/todo.sh entry 移除 12 Groups 创建 / 列出: bash {baseDir}/scripts/todo.sh group 创建 "Work" bash {baseDir}/scripts/todo.sh group 列出 Rename (alias: edit): bash {baseDir}/scripts/todo.sh group rename "Work" "Work (Project A)" bash {baseDir}/scripts/todo.sh group edit "Work" "Work (Project A)" 移除: Default (move entries to Inbox): bash {baseDir}/scripts/todo.sh group 移除 "Work" 删除 entries too (ONLY if user explicitly wants it): bash {baseDir}/scripts/todo.sh group 移除 "Work" --删除-entries “Clear the 列出” behavior (no 列出 printing)
To clear the todo 列出:
运行 entry 列出 --all to 获取 IDs (do NOT paste the 结果s) 移除 each ID with entry 移除 ID reply with ONE line: “Cleared.”
If the user then asks to see the 列出, 运行 entry 列出 and show it.
Dia记录ue example (expected behavior)
User: "I need to buy milk, 添加 it to my todo 列出" 代理: "Done."
User: "Oh, and I also need to 清理 the room" 代理: "添加ed to the 列出."
User: "Show my todos" 代理: (prints the 列出)
User: "移除 the milk one" 代理: (列出s matching tasks + asks for ID, then 移除s when ID is provided)