关于 cco-task
cco-task 是任务管理 Skill,可按项目中的任务跟踪执行状态和 Token 成本。其有上限的 JSON 状态支持增量更新,并可在上下文压缩或会话恢复后重新注入。
主要功能
- 01启动、切换和完成任务
- 02跟踪每项任务的 Token 和费用
- 03增量更新精简 JSON 执行状态
- 04压缩或恢复后重新载入状态
- 05列出任务及其费用
适用场景
- 01上下文压缩后继续查看任务进度
- 02为子 Agent 提供精简任务说明
- 03检查项目任务的 Token 用量
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ egorfedorov/ claude-context-optimizer --skill cco-task安装后在 Claude Code 中输入/cco-task确认已加载。
详细介绍
任务 — 按任务统计上下文、成本和执行状态
任务是一个有名称的工作单元。任务处于活动状态时,会将会话消耗的 Token 归属到该任务,因此 Control Center(/cco)可以显示每个任务的成本,而不只是每个会话的成本。
每个任务还会附带一个简短的 JSON 执行状态,包含目标、已完成事项、待处理事项和下一步操作。你可以通过 补丁 更新状态,而不是从对话记录中重新推导进度;状态上限约为 1K Token,因此不会随着步骤数量增加而变长,并且在 /compact 后(以及使用 --resume 时)会原样重新注入。这是在插件能够应用的范围内实现 SKILL.state 理念(Google / Purdue,2026):压缩摘要有损且格式自由,而状态精确且有界。
命令
解析用户的参数并运行匹配的命令(工作目录会将任务限定在当前项目中):
开始 / 切换任务(同时关闭上一个活动任务):
node ${CLAUDE_PLUGIN_ROOT}/src/tasks.js add "<task name>"
开始后,建议为任务打包最少量的上下文:
/cco-pack "<task name>",并用目标和计划初始化状态:
/cco-task patch '{"goal": "...", "plan": ["...", "..."], "next": "..."}'。
更新执行状态(设置键;null 会删除键):
node ${CLAUDE_PLUGIN_ROOT}/src/tasks.js patch '{"done": ["read auth.ts"], "next": "write the failing test", "scratch": null}'
补丁必须是一个 JSON 对象。如果状态会超出上限,补丁将被拒绝——请先用 null 清理已完成的键。
显示当前状态:
node ${CLAUDE_PLUGIN_ROOT}/src/tasks.js state
列出任务(最新的排在前面,并显示每个任务的 Token 数和 $):
node ${CLAUDE_PLUGIN_ROOT}/src/tasks.js list
完成活动任务:
node ${CLAUDE_PLUGIN_ROOT}/src/tasks.js done
状态管理规范(让状态值得保留的做法)
- 保留的是 状态,而不是日志:
done、open、next、decisions、files——只记录继续工作所需的事实,而不是过程。推理是短暂的;能够留存的是状态。 - 每完成一个里程碑(测试通过、做出决定、文件完成)后就更新状态,并在键不再重要时立即删除。
/compact后,SessionStart 钩子会自动将活动任务的状态输出到新上下文中——应以它为准,而不是摘要。- 将任务委派给子 Agent 时,应把状态(而不是对话)作为任务说明传递;它已经是当前最精简的任务描述。
建议的工作流程
/cco-task add "implement X"— 开始任务/cco-pack "implement X"— 仅加载该任务所需的文件/cco-task patch '{"goal": "...", "next": "..."}'— 初始化状态,并在工作过程中持续更新/cco— 查看预算、节省情况和此任务的成本/cco-task done— 固定任务的 Token / $ 总量
每个项目一次只能有一个活动任务;开始新任务时会自动结算上一个任务的成本。