backlog
backlog
为 Claude Code 提供持久化、跨会话的任务管理。任务可以在会话间保留,因此一个智能体开始的工作可以由另一个智能体继续完成。
基于 @backloghq/agentdb 构建 —— 支持类型化模式、自动递增 ID、虚拟过滤器和 Blob 存储。纯 TypeScript 编写,零原生依赖。
安装
/plugin marketplace add backloghq/backlog
/plugin install backlog@backloghq-backlog从源码安装
git clone https://github.com/backloghq/backlog.git
cd backlog && npm install && npm run build
claude --plugin-dir /path/to/backlog独立 MCP 服务器
添加到项目的 .claude/settings.json 中:
{
"mcpServers": {
"backlog": {
"command": "node",
"args": ["/path/to/agent-teams-task-mcp/dist/index.js"],
"env": {
"TASKDATA": "/path/to/task-data"
}
}
}
}技能
技能 | 描述 |
| 显示当前待办事项 —— 待处理、进行中、阻塞、逾期任务 |
| 将目标分解为带有依赖项、优先级和规范的任务 |
| 每日站会 —— 已完成、进行中、阻塞、下一步 |
| 整理待办事项 —— 修复模糊的任务、缺失的优先级、损坏的依赖项、陈旧的项目 |
| 在实施前为任务编写规范文档 |
| 领取任务、阅读规范、实施并标记为完成 |
| 为下一次会话做准备 —— 注释进度、停止活动任务、总结状态 |
智能体
当有人需要规划工作时,Claude 可以自动调用 task-planner 智能体。它会读取代码库,将目标分解为带有依赖项的任务,并为复杂项目编写规范。
钩子
事件 | 作用 |
| 会话开始时显示待处理任务数量 |
| 将 Claude 内置任务同步到持久化待办事项中 |
| 当 Claude 完成内置任务时,将对应的待办事项标记为完成 |
| 将未分配的待处理任务自动分配给生成的智能体 |
工具 (MCP)
24 个用于完整任务生命周期管理的工具:
工具 | 描述 |
| 使用过滤器语法查询任务。返回包含所有字段的 JSON 数组。 |
| 统计符合过滤器的任务数量。语法与 task_list 相同。 |
| 创建一个新的待处理任务。仅需描述;其他字段可选。 |
| 直接以已完成状态记录已完成的工作。 |
| 对符合过滤器的任务进行部分更新。仅修改提供的字段。 |
| 复制现有任务,并可选择覆盖字段。 |
| 将任务标记为完成,并记录结束时间戳。 |
| 软删除任务。可通过 task_undo 恢复。使用 task_purge 永久删除。 |
| 添加带时间戳的注释。长内容请使用 task_doc_write。 |
| 通过精确文本匹配删除注释。 |
| 将任务标记为正在进行。在 +ACTIVE 查询中可见。 |
| 停止处理任务。将其返回到待处理状态。 |
| 撤销最近的操作。可重复调用。 |
| 通过 ID 或 UUID 获取单个任务的完整 JSON 详情。 |
| 从 JSON 数组批量创建任务。原子批处理操作。 |
| 永久删除已删除的任务。不可逆。 |
| 为任务附加/替换 Markdown 文档(规范、注释、上下文)。 |
| 读取附加到任务的 Markdown 文档。 |
| 删除任务的文档。永久操作。 |
| 将旧的已完成/已删除任务移动到季度归档段。 |
| 列出可用的归档段。 |
| 加载归档任务以进行只读检查。 |
| 列出包含待处理/循环任务的项目名称。 |
| 列出包含待处理/循环任务的标签。 |
过滤器语法
status:pending # all pending tasks
project:backend +bug # bugs in backend project
priority:H due.before:friday # high priority due before friday
+OVERDUE # overdue tasks
+ACTIVE # tasks currently being worked on
+BLOCKED # tasks blocked by dependencies
+READY # actionable tasks (past scheduled date)
agent:explorer # tasks assigned to the explorer agent
( project:web or project:api ) # boolean with parentheses
description.contains:auth # substring match支持属性修饰符(.before, .after, .by, .has, .not, .none, .any, .startswith, .endswith)、标签(+tag, -tag)、虚拟标签(+OVERDUE, +ACTIVE, +BLOCKED, +READY, +TAGGED, +ANNOTATED 等)以及布尔运算符(and, or)。
任务文档
为任何任务附加 Markdown 文档(规范、上下文、交接笔记):
task_doc_write id:"1" content:"# Spec\n\nBuild the auth flow.\n"
task_doc_read id:"1"
task_doc_delete id:"1"编写文档会添加 +doc 标签和 has_doc:yes,以便智能体可以发现带有文档的任务:
task_list filter:"+doc"
task_list filter:"has_doc:yes"智能体身份
任务支持 agent 字段,用于跟踪哪个智能体拥有该任务:
task_add description:"Investigate bug" agent:"explorer"
task_list filter:"agent:explorer status:pending"项目隔离
每个项目都会自动获得自己的任务数据。作为插件使用时,任务数据位于 ~/.claude/plugins/data/backlog/projects/<project-slug>/。独立使用时,请显式设置 TASKDATA。
变量 | 描述 |
| 任务数据目录的显式路径(覆盖自动推导) |
| 自动推导的项目级任务数据的根目录 |
| 存储后端:留空为文件系统(默认), |
| S3 存储桶名称(当 |
| AWS 区域(如果使用默认凭证则可选) |
S3 后端
将任务数据存储在 S3 中以供团队共享或云端持久化。需要 @backloghq/opslog-s3:
npm install @backloghq/opslog-s3通过 .claude/settings.json 中的环境变量进行配置:
{
"mcpServers": {
"backlog": {
"command": "node",
"args": ["/path/to/backlog/dist/index.js"],
"env": {
"TASKDATA": "my-project/tasks",
"BACKLOG_BACKEND": "s3",
"BACKLOG_S3_BUCKET": "my-team-backlog",
"BACKLOG_S3_REGION": "us-east-1"
}
}
}
}使用 S3 时,TASKDATA 将成为存储桶中的键前缀,而不是文件系统路径。
Docker
docker build -t backlog .
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
| docker run --rm -i backlog开发
npm install
npm run build # compile TypeScript
npm run lint # run ESLint
npm test # run tests (189 tests)
npm run test:coverage # run tests with coverage
npm run dev # watch mode社区
GitHub Discussions — 问题、想法、展示与交流
Issue Tracker — 错误报告和功能请求
Documentation — 完整文档、技能参考、过滤器语法
如果 backlog 对你有帮助,请考虑给它点个星标 —— 这有助于其他人发现该项目。
许可证
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/backloghq/backlog'
If you have feedback or need assistance with the MCP directory API, please join our Discord server