mcpField
T
task-management

task-management

github.com/joelhooks生产力6564 次安装5 天前更新
代码仓库

关于 task-management

面向使用 Todoist 管理个人行动的 Agent,提供一套结合 GTD、Shape Up 与 Tiny Habits 的任务整理方法。内容涵盖任务捕获、收件箱分流、项目和习惯管理,以及通过 todoist-cli 执行的操作规范。

主要功能

  1. 01GTD、Shape Up 与 Tiny Habits 方法
  2. 02将任务写成具体的下一步行动
  3. 03收件箱分流与每周回顾流程
  4. 04项目时限、优先级和标签规范
  5. 05通过 todoist-cli 管理任务

适用场景

  1. 01捕获并整理口头提出的个人待办
  2. 02回顾收件箱并安排或删除任务
  3. 03为项目拆解具体的人工作业
  4. 04规划与日常习惯关联的重复任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/joelhooks/joelclaw --skill task-management

安装后在 Claude Code 中输入/task-management确认已加载。

附带文件agents/openai.yamlassets/small-logo.svg

详细介绍

任务管理——替你思考的系统

Todoist 是任务层。Agent 是园丁。

理念

三个系统,一种实践:

Getting Things Done(David Allen):你的大脑是用来产生想法的,不是用来记住它们的。立即记录所有事情。处理时将其转化为下一步具体行动。如果不到 2 分钟,现在就做。每周回顾神圣不可侵犯。

Shape Up(Ryan Singer,Basecamp):工作会膨胀到填满可用时间。设定投入时限(这件事值得花多少时间?),而不是估算工期。项目是有固定时间线的押注,不是无休止的待办列表。如果不值得押注,就放弃它。

Tiny Habits(BJ Fogg):行为改变 = 锚定时刻 + 微小行为 + 庆祝。“在我 [现有日常惯例] 之后,我会 [新习惯的微小版本]。”让它小到毫不费力。立即庆祝。让它自然成长。

实践中的含义
  • 每项任务都是下一步具体行动。 不是“研究 X”,而是“花 20 分钟阅读 X 的文档”。不是“修复这个 bug”,而是“在测试中重现这个 bug”。
  • 收件箱是捕获缓冲区,不是待办列表。 将其清空。每个条目都要:立即完成(不到 2 分钟)、安排时间、委派、放到“以后再说”,或删除。
  • 项目都有投入时限。 “2 周,小批量”或“6 周,大批量”。如果项目开放的时间已经是其投入时限的 3 倍,却毫无进展,那它就是僵尸项目。放弃它或重新设定范围。
  • 习惯要锚定,而不是安排时间。 “早晨喝完咖啡后 → 肩部热身”,而不是“早上 7 点做运动”。锚点就是触发因素。
  • 少即是多。 一份包含 5 项明确下一步行动的清单,胜过 50 项模糊意向。果断删减。如果你 2 周没碰过某件事,而且它也没有安排时间,那它就不重要。

个人行动边界

Todoist 是 Joel 实际使用的 GTD 风格个人行动清单。Brain PARA 存放项目支持材料、领域、资源、收据和归档。不要在 Todoist 中重建 PARA 树。

规则:

  • 默认的行动归属项目是 Joel's Tasks。
  • Questions for Joel 仅用于实际决策,不能当作杂物堆。
  • 旧的 Agent Work 项目已归档。机器记账、基础设施后续事项、旧版记忆审查杂务和系统杂务不属于 Todoist。
  • 默认禁用系统总线对 Todoist 的修改。TODOIST_AUTOMATION_WRITES_ENABLED=true 是紧急兼容性覆盖选项,不是正常操作方式。
  • Joel 要求记录、安排、移动、完成或删除个人任务时,Agent 可以通过明确的 todoist-cli 命令修改 Todoist。
  • 如果 Agent 现在就能完成工作,就直接去做,而不是把它列为任务。

适合面向人的任务:

  • “询问 Kristina 术后复诊预约日期”
  • “向 Grzegorz 更新讲师群聊进展”
  • “为发布定价在 A 和 B 之间做出选择”

不适合面向人的任务:

  • “调查 gateway 重试相关讨论”
  • “审查旧版记忆提案 p-20260306-030”(已弃用的历史工作流)
  • “为 LiveKit 集成构建日志查询工具”(Agent 已经能完成这项工作时)

Todoist 适配器

凭据
# API token from https://app.todoist.com/app/settings/integrations/developer
# Stored in agent-secrets
export TODOIST_API_TOKEN=$(secrets lease todoist_api_token --raw)
读取
todoist-cli today                    # What's due today
todoist-cli inbox                    # Needs triage
todoist-cli list                     # All active tasks
todoist-cli list --filter "p1"       # Todoist filter query (priority 1)
todoist-cli list --project ID        # Tasks in a project
todoist-cli list --label review      # Tasks with a label
todoist-cli projects                 # All projects
todoist-cli sections --project ID    # Sections in a project
todoist-cli labels                   # All labels
todoist-cli show ID                  # Task detail + comments
todoist-cli review                   # Daily standup: today, inbox, overdue, project breakdown
写入
# Create a task
todoist-cli add "Title" --due today --description "Details" --project ID

# With labels, priority, deadline
todoist-cli add "Ship feature" --due "next monday" --priority 3 --labels urgent --deadline 2026-03-01

# Complete
todoist-cli complete ID

# Update
todoist-cli update ID --content "New title" --due tomorrow --description "Updated notes"

# Move between projects
todoist-cli move ID --project ID

# Delete permanently
todoist-cli delete ID

# Reopen a completed task
todoist-cli reopen ID

# Create a project
todoist-cli add-project "Project Name" --color blue

# Create a section
todoist-cli add-section "Section Name" --project ID
优先级约定

使用 Todoist 原生的 p1–p4。API 中的优先级顺序相反:--priority 4 = UI 中的 p1(红色)。

UIAPI含义Agent 规则
p1 🔴--priority 4紧急 / 今天会阻碍其他事情。现在就做或升级处理。
p2 🟠--priority 3高 / 本周接下来要做。Agent 优先从这些任务中选择。
p3 🔵--priority 2中 / 本周期已安排的工作。p1–p2 清空后再完成。
p4 ⚪--priority 1待办以后再说/也许会做。每周回顾,过时则删除。

标准操作流程:根据 ADR 或会话工作创建已授权的人类行动任务时,始终设置优先级。 默认为 p3。如果能解除其他工作的阻碍,则提升为 p2。p1 很少使用——只有出现故障或 Joel 的工作受阻时才用。

计划映射
TodoistGTD 情境CLI 标志
收件箱(无项目)已捕获,尚未处理(默认)
--due today已承诺 — 今天要做--due today
--due "next week"已安排--due "next monday"
无截止日期下一步行动,无日期压力(省略 --due)
标签:someday以后再说 — 每周回顾--labels someday
--due "every day"周期性习惯--due "every day"
结构
概念Todoist规则
项目项目有明确范围的目标。具有“完成”状态。完成后归档。
分区分区项目内的分组。可选 — 除非复杂度要求,否则保持扁平。
任务任务下一步具体行动。具体明确,以动词开头。
习惯周期性任务--due "every day" 或 "every friday at 5pm"。融入日常惯例。
情境标签轻量标签:review、agent、someday、waiting。
Todoist 筛选器(Pro)

Todoist 的筛选语法功能强大。使用 todoist-cli list --filter:

todoist-cli list --filter "today | overdue"     # Due today or overdue
todoist-cli list --filter "p1 & !#Inbox"        # Priority 1, not in inbox
todoist-cli list --filter "no date"             # Floating tasks
todoist-cli list --filter "@review"             # Label: review
todoist-cli list --filter "assigned to: me"     # My tasks
todoist-cli list --filter "created before: -14d"  # Stale tasks

Agent 行为

立即捕获

当 Joel 说的内容暗示有任务时 —“我需要……”“提醒我……”“我们应该……”“别忘了……”— 请将其捕获:

todoist-cli add "The thing Joel said"

然后确认:“已捕获 → 收件箱:‘Joel 说的那件事’”

直接捕获用户要求的任务。用户指定截止日期或项目,即表示授权设置该项。如果用户没有指定,就将任务保留在收件箱中,不要擅自安排日程,也不要提出不必要的问题。

处理收件箱(GTD)

当用户要求检查收件箱,或收件箱中有项目时:

对每个项目,只选择以下一项:

  1. 立即完成 — 少于 2 分钟?现在就做。完成该任务。
  2. 安排时间 — todoist-cli update ID --due today 或 --due "next monday"
  3. 移至项目 — todoist-cli move ID --project ID
  4. 以后再说/待定 — todoist-cli update ID --labels someday
  5. 删除 — 不值得做。todoist-cli delete ID

将处理结果作为一批决策呈现:“收件箱中有 4 项。以下是我的分类……”

根据工作创建任务

当其他活动(转录的照片、日历事件、项目规划)中出现可执行事项时:

  1. 提取具体的下一步行动(以动词开头,表述明确)
  2. 先判断受众:人、决策,还是机器
  3. 只有面向人或决策的工作才放入面向 Joel 的 Todoist 视图
  4. 分配到合适的项目
  5. 添加包含上下文的描述(ADR 引用、链接、验收标准)
  6. 报告已创建的内容
每周回顾

当 Joel 要求进行每周回顾,或每周五的周期性任务触发时:

todoist-cli review

然后:

  1. 将收件箱处理至清空
  2. 标记僵尸项目(2 周或更久没有活动)
  3. 标记逾期任务 — 重新安排或删除
  4. 标记未安排时间的任务(无截止日期)— 是否仍然相关?
  5. 询问:“下周哪一件事能让你觉得最成功?”
保持整洁
  • 今天到期的项目最多 7 项。 超过这个数量 = 承诺过多。把超出的任务推迟。
  • 处理后收件箱应为空。 不是“剩得不多” — 而是清空。
  • 完成或删除。 除非标记为 someday,否则任何任务都不应超过 2 周没有进展。
  • 项目名称应体现结果。 用“交付任务集成”,而不是“任务相关事项”。
  • 描述很重要。 每项任务都要提供足够的上下文,让你可以在不了解前情的情况下直接接手。
“Agent 能直接完成吗?”

创建任务前,先问:joelclaw 现在能完成这件事吗? 如果可以,就直接完成。不要只为显得有条理,就在 Joel 的任务列表里创建机器要做的杂事。任务是给人做的;Agent 负责执行。

  • Agent 负责完成:代码修改、研究、文件操作、API 调用、日历更新
  • Agent 起草,Joel 审阅:以 Joel 的口吻写作、设计决策
  • 仅 Joel 负责:实际行动(购物、锻炼)、打电话、编辑品味
  • 机器的记录维护不应出现在面向 Joel 的界面中:记忆回顾、基础设施看护、重试清理、Agent 待办事项

后备方案:Vault 清单

如果 Todoist 身份验证失败,请使用 Vault Markdown 清单:

- [ ] Task description
- [x] Completed task

Google Tasks 可通过 gog 作为备用适配器使用。

SOP:ADR → 任务

对于已获授权的 ADR 到任务梳理,只将具体的人工后续行动放入 Todoist。提议中的 ADR 不代表获准实施。Agent 执行、项目工作和验证凭据应保留在对应的 issue、Brain 或运行时中。

完成 ADR 梳理或产生行动项的会话后:

  1. 检查 ADR 的验证清单中是否有未勾选的项目
  2. 仅为具体且由人负责的行动创建任务;跳过纯机器检查,并对现有工作去重。
  3. 根据影响力设置优先级:是否会解除其他 ADR 的阻塞?设为 p2。独立任务?设为 p3。研究任务?设为 p3。
  4. 标记实际负责的人;自主工作留在其执行系统中。如果是系统工作,则添加 joelclaw。
  5. 描述中包含 ADR 引用和足够的上下文,以便之后能快速接手
  6. 交叉引用:如果某个任务完成了 ADR 中的最后一项,则将 ADR 更新为 implemented

**工作循环:**ADR 梳理 → 创建任务 → Agent/Joel 处理任务 → 完成任务 → 更新 ADR 状态 → 下次梳理时发现无待办事项。

不要为以下事项创建任务:

  • Agent 现在就能完成的事项(少于 5 分钟)——直接去做
  • 已延期的 ADR——取消延期后再创建任务
  • 模糊的研究事项——先设定时间限制(“花 30 分钟研究 X”,而不是“研究 X”)
  • Todoist 中任何纯机器记账事项——改为保存在 Brain 凭据、issue 或运行时状态中

反模式

  • 不要创建模糊的任务——“看看 X”不是后续行动。“花 15 分钟阅读 X 文档”才是。
  • 不要让收件箱不断累积——如果超过 10 项,添加更多事项之前先分拣。
  • 不要过度整理——标签和分区会增加阻力。在复杂性确实需要结构之前,保持扁平。
  • 不要重复创建——创建任务前先检查现有任务。使用 todoist-cli list --filter 搜索。
  • 不要在任务标题中加入 Agent 上下文——标题应便于人类阅读。将 ADR 引用和技术细节放在描述中。
  • 不要让机器杂项污染面向 Joel 的视图——如果 Joel 不需要看到,就不该放在那里。

致谢

  • David Allen — 《Getting Things Done》
  • Ryan Singer — 《Shape Up》(Basecamp)
  • BJ Fogg — 《Tiny Habits》
  • Todoist / Doist — 官方 API 和 SDK

评论

支持 Markdown