context-infra 检查与复盘infra.guiming.net · 全内容自包含呈现 · 生成于 2026-07-21 16:28 UTC

TODO 管理与执行

Z3 全文↑ Z2 条目

术-操作 · 术层 skill 全文

← 返回术层 skill 索引 · 返回方法论区

本页是 <code>rules/skills/workflow_todo.md</code> 的逐字投影(仅隐私清洗,零改写)。

时点提示:本页是仓内文件 rules/skills/workflow_todo.md 的逐字投影(仅做隐私清洗:仓库根绝对路径→相对路径、家目录→~/;除此零改写)。若源文件后续有修订,以仓内真源为准。

Skill: TODO 管理与执行

When to Use

使用的工具

工具路径见 tools/INDEX.md

工具名用途
todo任务 CLI:add, list, start, done, cancel, show, edit
todo_sync双向同步 TODO.md ↔ Apple Reminders
todo_daily_reminder每日邮件提醒 + macOS 通知

数据位置:

外部依赖:Apple Reminders "项目待办" 列表(iCloud 同步)、remindctl(已授权)

todo CLI 命令

# 查看
todo list
todo list --status all
todo show <id>

# 添加
todo add "标题" --priority high --desc "描述" --context "file1,file2"

# 状态变更
todo start <id>
todo done <id> --notes "完成说明"
todo cancel <id> --notes "原因"

# 编辑
todo edit <id> --desc "新描述" --priority medium

注:todopython3 tools/todo/todo.py 的简写(从仓库根执行)。该入口含 repo bootstrap,支持手册和 cron 直接用 path-script 写法;路径真源仍从 tools/INDEX.md 查。

执行流程

场景 A: 用户说「开始 TODO」「去完成 TODO」

主对话只做调度,不做执行。每个 TODO 通过独立 Claude Code 进程完成。

阶段 1:同步与排序
  1. 同步todo_sync(全量双向同步)
  2. 列出任务todo list,展示给用户
  3. 筛选:判断每个 pending 任务是否可由 AI 独立完成。需要用户参与的(如"同步微信内容")标记跳过,告知用户
  4. 排序:按优先级排序(high > medium > low),同优先级内检查是否有依赖关系(如 T012 依赖 T011 的产出),确定执行顺序
  5. 确认:向用户报告执行计划(顺序、预计跳过的任务),用户确认后开始
阶段 2:串行执行(每个 TODO = 独立 CC 进程)

对每个待执行的 TODO,按顺序执行以下步骤:

a. 标记开始todo start <id>

b. 准备 prompt:组装 CC 子实例的任务 prompt,包含:

c. 通过 sub-agent 调用 CC 子实例

主对话不直接调用 claude CLI。通过 Agent tool 派出一个 sub-agent(run_in_background=true),由 sub-agent 执行 CC 调用。

sub-agent 内部执行:

PROMPT="<组装好的任务 prompt>"
TASK_ID="T011"
LOG_DIR="/tmp/cc_selfinvoke"
mkdir -p "$LOG_DIR"

printf '%s' "$PROMPT" | env -u CLAUDECODE claude -p \
  --model opus \
  --setting-sources "user,project" \
  --strict-mcp-config \
  --permission-mode acceptEdits \
  --max-turns 50 \
  --output-format json \
  --allowedTools "Bash,Read,Write,Edit,Glob,Grep,Agent,WebSearch,WebFetch" \
  > "$LOG_DIR/todo_${TASK_ID}_result.json" 2> "$LOG_DIR/todo_${TASK_ID}_error.log"

遵循 Claude Code Self Evoke / Call Codex / Loop 硬规则(详见 skill claude_code_self_evoke_call_codex_loop):

  1. env -u CLAUDECODE:移除嵌套检测
  2. --setting-sources "user,project" --strict-mcp-config:加载 workspace 规则,隔离默认 MCP
  3. 输出重定向到文件:不依赖 stdout

注意:不加 --no-session-persistence。CC 子实例的 session 会自动保存到 [session-path],与正常交互 session 格式一致。每天 06:00 的 extract_claude_conversations cron 会自动将这些 session 提取到 contexts/daily_records/claude/,纳入记忆管线。

CC 子实例是完整的 Claude Code 进程,拥有 Agent tool,可以自行派出 sub-agent 处理子任务。

d. 等待完成:等系统通知 sub-agent 完成,取回结果

e. 验证结果与记录

主对话检查 CC 子实例的产出:

f. 标记完成todo done <id> --notes "完成说明。session: <session_id>"

g. 进入下一个 TODO,重复 a-f

阶段 3:汇总

所有 TODO 执行完毕后:

场景 B: 用户说「添加 TODO」

  1. 先同步todo_sync(全量双向同步),确保 ID 不冲突、两侧状态一致
  2. 从用户消息中提取任务标题、描述、优先级
  3. 识别相关文件路径作为 context
  4. 执行 todo add ...
  5. 确认添加成功

场景 C: 用户通过 Dispatch 发来任务

Dispatch 消息通常简短。处理方式:

  1. 解析消息意图
  2. 如果是任务创建:同场景 B
  3. 如果是查询状态:同「查看 TODO」
  4. source 标记为 dispatch

CC 子实例内部行为

以下是 CC 子实例启动后应自行完成的事项(写在 prompt 中指导它):

上下文回溯(CC 子实例自行完成)

  1. 读取必读文件:SOUL/USER/WORKSPACE/COMMUNICATION/skills INDEX
  2. 关键词搜索:从任务标题和描述中提取关键词,在 contexts/daily_records/claude/ 中 grep
  3. 时间窗口:优先搜索任务创建日期前后 3 天的日志
  4. 文件关联:如果 context_files 指向具体文件,读取这些文件了解当前状态
  5. 历史完成记录:检查 contexts/todo/history/ 中是否有相关任务的完成记录
  6. 调研报告:在 contexts/survey_sessions/ 中搜索相关调研

迭代执行(CC 子实例自行完成)

对于探索性或开发性任务,采用 autoresearch 循环:

  1. 理解目标和当前状态
  2. 执行一步改动
  3. 验证结果
  4. 如果不满足:分析原因,调整方案,重复
  5. 如果满足:写入完成产物

CC 子实例可以使用 Agent tool 派出 sub-agent 处理子任务(如并行调研、代码编辑等)。

Prompt 模板

主对话组装给 CC 子实例的 prompt 应包含以下结构:

你是一个独立的 Claude Code 执行进程,负责完成以下 TODO 任务。

## 任务
- ID: {task_id}
- 标题: {title}
- 描述: {description}
- 优先级: {priority}
- 关联文件: {context_files}

## Workspace
根目录: ~/context-infra

## 必读文件(启动后立即读取)
1. rules/SOUL.md
2. rules/USER.md
3. rules/WORKSPACE.md
4. rules/COMMUNICATION.md
5. rules/skills/INDEX.md

## 相关 Skill
{相关 skill 路径列表}

## 上下文回溯
启动后先做上下文回溯:
- grep contexts/daily_records/claude/ 搜索与任务相关的历史对话
- 读取 context_files 中列出的文件
- 搜索 contexts/survey_sessions/ 中的相关调研
- 检查 contexts/todo/history/ 中的相关记录

## 完成标准
{具体的完成标准和输出要求}

## 约束
- 语言:中文为主,技术术语保留英文
- 所有重要发现写入文件,不要只留在输出中
- 可以使用 Agent tool 派出 sub-agent 处理子任务
- 完成后在输出中明确说明做了什么、产出了什么文件

自动提取

定时任务 todo_extractor(路径见 config/CRONTAB.md)每日 08:30 扫描 claude_logs,提取未完成任务自动添加到 TODO 列表(source=extracted)。

多设备输入与双向同步

用户可以从任何设备添加任务到"项目待办"列表:

todo_sync 工具每 30 分钟自动双向同步。同步包括:新增同步、完成同步、删除检测(通过 .sync_state.json 跟踪上次状态,检测两侧的删除操作)。

todo_sync              # 全量双向同步(含删除检测)
todo_sync --pull       # 仅 Reminders → TODO.md
todo_sync --dry-run    # 预览

冲突策略:以最新操作为准。Reminders 侧删除 → TODO.md 自动 cancel;TODO.md 侧 cancel/done → Reminders 自动标记完成。

Session 开始时:执行 TODO 前必须先跑 todo_sync,不要依赖 30 分钟的 cron 间隔。

与现有系统的关系

相关文档(最新,2026-04-11)

三工具统一导航 hub:Git + TODO + WeClaude 三个工具的完整文档矩阵、数据流图、交叉引用链路和入口指南见 tools/INTEGRATED_TOOLS_MAP.md。本节是 TODO 工具视角的精简索引。

TODO 工具自身

文档用途
tools/todo/IMPLEMENTATION_STATUS.md当前实现快照:字段完整规范、状态机、Markdown 存储格式、数据流图、同步机制、推送链路、已知约束
config/build_logs/TODO_BUILD_LOG.mdTODO 工具从 V0 到 V1.3 的完整建设历史,含 session 对齐表(用 git 问责制追溯每个关键改动到具体 session)
tools/git/CRON_WORKTREE_SYNC.mdcron worktree 与 main 的 TODO.md 所有权模型:TODO.md 的唯一写入站是主 worktree,cron worktree 通过 daily_digest.py:75-78 的 STAGE_PATHS 白名单明确排除

微信接入(weclaude)相关

文档用途
adhoc_jobs/weclaude/docs/wechat_todo_creation_spec.md微信协调者大模型创建 TODO 的字段规范:决策树、title/priority/type/project/parent_id/description 零压缩原则、含糊消息先落盘规则、完整例子
adhoc_jobs/weclaude/docs/wechat_todo_git_integration.md微信 bridge 写 TODO 后的 git commit 链路分析 + 两种独立 worktree 方向对比
adhoc_jobs/weclaude/SETUP_LOG.mdToken 刷新 SOP(4 步流程 + 4 个坑位)+ 2026-04-11 事件叙事
rules/common/todo-command.md用户级的 todo: 前缀命令解析规则(todo: 任务 !high 等简写)

下一轮优化的集中入口

文档用途
config/build_logs/GIT_TODO_MERGE_ISSUES_20260409.md 第七章2026-04-11 Agent 补充报告:session-per-worktree 差距、问责制 5 个 gap、P0-P3 后续优化 TODO 清单(含 token 自动预警、微信 /login 命令、通用化 worktree_merge.sh 等)
config/build_logs/WECLAUDE_V2_BUILD_LOG.mdweclaude v2 改造 build log,末尾含 Phase 0.5 运维追加记录

← 返回术层 skill 索引 · 返回方法论区