使用说明
懒惰的待办事项
AI驱动的Jira智能。不仅仅是CRUD——深刻的洞察力。
懒惰的待办事项是 主控程序 将您的AI助手变成Jira高级用户的服务器。它为你的Confluence文档建立索引,从完成的工单中学习你的团队模式,并利用这种智能为产品负责人、Scrum Master和工程师提供他们所需的深入见解,而无需手动收集数据或进行LLM猜测。
问一个简单的问题,从数百张历史门票、球队模式、速度数据和质量分数中获得分析结果。复杂性都是内部的。
是什么让这与众不同
| 你问 | 内部发生了什么 |
|---|---|
| “为OAuth迁移创建票证” | 在知识库中搜索上下文,从团队模式中建议受让人/点/标签,检测重复项,查找具有典型工作量范围的类似已解决工作,从团队格式中构建AC |
| “冲刺怎么样了?” | 健康评分、阻断器老化、WIP限制警告、人均工作量平衡、过时项目检测——一次通话 |
| “准备我的站立” | 每人摘要:已完成、已开始、自昨天以来被阻止。标记老化阻断剂。冲刺中期添加的新项目突出显示 |
| “运行我的复古” | 速度趋势、循环时间(P50/P75/P90)、范围蠕变百分比、遗留分析(标记为慢性拖鞋)、估计精度、工作量分布、冲刺比较 |
| “帮我计划下一个冲刺” | 平均速度、风险调整后的容量、结转检测、积压项目的贪婪装箱、每个受让人的工作负载平衡、超额承诺警告 |
| “对这个bug进行分类” | 完整性评分、关键字严重性推断、冲刺推荐、团队惯例检查、组件返工率警告、最近的错误模式检测 |
| “显示待办事项列表” | 每个项目的质量标志(孤立、过时、未估计、精简)、重复集群、老化分析、健康状况摘要 |
每个响应都包含上下文相关的下一步建议,因此LLM知道下一步该调用什么,而无需记住所有工具。
安装和设置
需要 Node.js 18+和A Atlassian API令牌.
克劳德代码
claude mcp add lazy-backlog \
-e ATLASSIAN_SITE_URL=https://your-site.atlassian.net \
-e ATLASSIAN_EMAIL=you@company.com \
-e ATLASSIAN_API_TOKEN=your-api-token \
-- npx -y lazy-backlog
然后问: “设置我的Jira项目” --AI将提示您输入项目密钥、板ID和Confluence空间,然后运行安装程序以做好一切准备。
Claude Desktop
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"lazy-backlog": {
"command": "npx",
"args": ["-y", "lazy-backlog"],
"env": {
"ATLASSIAN_SITE_URL": "https://your-site.atlassian.net",
"ATLASSIAN_EMAIL": "you@company.com",
"ATLASSIAN_API_TOKEN": "your-api-token",
"JIRA_PROJECT_KEY": "BP",
"JIRA_BOARD_ID": "266",
"CONFLUENCE_SPACES": "ENG,PRODUCT"
}
}
}
}
Cursor / Windsurf / Other MCP Clients
添加到您的 .mcp.json:
{
"mcpServers": {
"lazy-backlog": {
"command": "npx",
"args": ["-y", "lazy-backlog"],
"env": {
"ATLASSIAN_SITE_URL": "https://your-site.atlassian.net",
"ATLASSIAN_EMAIL": "you@company.com",
"ATLASSIAN_API_TOKEN": "your-api-token",
"JIRA_PROJECT_KEY": "BP",
"JIRA_BOARD_ID": "266",
"CONFLUENCE_SPACES": "ENG,PRODUCT"
}
}
}
}
From Source
git clone https://github.com/Ricky-Stevens/lazy-backlog.git
cd lazy-backlog
npm install
npm run build
然后将MCP客户端指向本地版本:
{
"mcpServers": {
"lazy-backlog": {
"command": "node",
"args": ["/path/to/lazy-backlog/dist/index.js"],
"env": {
"ATLASSIAN_SITE_URL": "https://your-site.atlassian.net",
"ATLASSIAN_EMAIL": "you@company.com",
"ATLASSIAN_API_TOKEN": "your-api-token"
}
}
}
}
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
ATLASSIAN_SITE_URL |
是 | 您的Atlassian网站URL(例如。 https://acme.atlassian.net) |
ATLASSIAN_EMAIL |
是 | Atlassian帐户电子邮件 |
ATLASSIAN_API_TOKEN |
是的 | API令牌 |
JIRA_PROJECT_KEY |
否 | 默认项目密钥(例如。 BP)--也可以通过以下方式设置 configure |
JIRA_BOARD_ID |
否 | 默认板ID——冲刺操作和板范围查询需要 |
CONFLUENCE_SPACES |
否 | 要索引的逗号分隔空格键(例如。 ENG,PRODUCT) |
LAZY_BACKLOG_DB_PATH |
否 | SQLite数据库的自定义路径(默认为 .lazy-backlog/knowledge.db) |
设置也可以通过以下方式保存 configure setup,这是推荐的方法,因为它还可以发现你的Jira模式,索引Confluence,并学习团队惯例。
工具
8个工具,25个动作。你不需要记住它们——只需描述你想要什么,人工智能就会选择正确的一个。
configure --开始使用
跑 setup 一次连接一切。它可以发现您的Jira模式,索引Confluence文档,分析已完成的工单以学习约定,并报告数据质量。
| 行动 | 它的作用 |
|---|---|
setup |
先运行这个。 连接Jira+Confluence,学习团队模式。返回包含通过率和主要弱点的数据质量报告。 |
set |
保存单个设置 |
get |
使用设置新鲜度指示器显示配置状态并重新运行建议 |
“使用板266设置我的Jira项目BP,并索引ENG和PRODUCT空间”
insights --团队情报与分析
情报中心。每一个动作都会返回深度分析,而不仅仅是原始数据。
| 行动 | 它的作用 |
|---|---|
team-profile |
谁拥有什么,估计准确性,描述模式,返工率,惯例。标记异常:单点故障、组件速度慢。零API调用-读取存储的分析。 |
epic-progress |
基于速度的预测和置信区间的完成统计数据。检测史诗儿童身上的阻断链。 |
retro |
自动检测正确的冲刺。返回速度趋势、循环时间(P50/P75/P90)、范围蠕变、结转(标记为慢性拖鞋)、估计精度、工作负载分布、冲刺与冲刺的比较以及3次打印的平均值。 |
plan |
Sprint计划助理。根据速度+历史结转率计算风险调整后的产能。贪婪地将积压项目与所有权数据中的受让人建议打包在一起。超限和低容量警告。 |
“显示团队简介” “史诗般的BP-100看起来怎么样?” “运行我的复古” “帮我计划下一个冲刺”
issues --创建和管理门票
创建、更新、搜索和分解Jira问题。 始终先创建预览 --在任何东西击中Jira之前,你都会看到一张内容丰富的卡片。
| 行动 | 它的作用 |
|---|---|
get |
完整的问题细节,包括周期时间背景与团队平均值。标记超过P75周期时间的风险项目。 |
create |
单程票、批量票(通行证 tickets 数组)或史诗级分解(pass epicKey).预览包括智能默认值、团队约定、知识库上下文、重复项以及典型工作量范围内的类似已解决问题。 |
update |
修改字段、转换状态、分配、排名、链接、删除链接。显示缺失字段的丰富建议。状态转换为完成:显示影响涟漪(未阻止的问题+史诗般的进度增量)。 |
search |
通用JQL搜索(自动作用域到项目)。结果包括分析:状态细分、平均年龄、优先级分布、未分配计数。 |
“创建迁移到OAuth2的任务” --复习预览-- “看起来不错,确认” “在支付组件中搜索未解决的错误”
bugs --分流管道
在一次通话中完成错误评估。不再在查找、评估和分诊之间来回奔波。
| 行动 | 它的作用 |
|---|---|
triage |
完整性评分(再现步骤、预期/实际、环境)。根据关键字推断严重程度。建议冲刺位置。评估团队惯例。警告高返工组件。检测漏洞模式(本月“支付”中的第三个漏洞——系统性问题?)。可选择自动应用 autoUpdate=true. |
“BP-45和BP-67分型”
对于bug搜索,请使用 issues search 和 type = Bug JQL。
backlog --健康情报的董事会积压
每个待办事项列表视图都是一次健康检查。
| 行动 | 它的作用 |
|---|---|
list |
积压的项目带有每个项目的质量标志(孤立、过时、未估计、描述稀疏)。始终处于重复检测状态。账龄分析:按账龄排列的项目,带有过期项目警告。健康摘要页脚。 |
rank |
使用影响预览重新排序项目:显示问题背景、故事点,以及如果被拖入下一个冲刺,该项目将消耗团队速度的百分比 |
“显示待办事项列表” “将BP-42移到顶部”
对于JQL筛选查询,使用 issues search 和 sprint is EMPTY.
sprints --Sprint管理
上下文自适应的冲刺视图,在正确的时刻为您提供正确的信息。
| 行动 | 它的作用 |
|---|---|
list |
具有主动冲刺快速健康指标的冲刺(完成百分比、剩余天数、SP进度) |
get |
上下文自适应。 主动冲刺:完整的仪表板,包括健康状况、阻止程序、WIP限制警告、每个受让人的工作负载。通过 since=24h 用于站立摘要(每人完成/开始/阻止)。封闭式冲刺:按类型(功能、错误、技术债务)、结转、指标分组的发布说明。 |
create |
带有可选目标的新冲刺。根据团队速度返回容量预计算结果。 |
update |
设定目标(通过对齐检查——与目标相关的冲刺项目的百分比),重命名,修改日期。 |
move-issues |
通过容量影响分析将问题分配给sprint。警告过度承诺与团队速度。 |
“目前的冲刺进展如何?” “准备我的站立” “我们上次冲刺时运送了什么?” “将BP-42和BP-43移动到下一个冲刺中”
knowledge --搜索和浏览您的文档
具有内置智能的源无关知识库。
| 行动 | 它的作用 |
|---|---|
search |
对所有索引内容进行全文搜索。结果包括智力:类型/来源/年龄细分,陈旧警告。 |
stats |
KB仪表板:计数、上下文摘要(ADR、设计、规格)、最近的更改、过时的文档、健康指标、覆盖差距检测(未记录的组件、缺失的ADR/运行手册)。 |
get-page |
包含新鲜度指示器、相关页面和Jira票证引用的完整页面内容。 |
“搜索文档以进行身份验证” “知识库看起来怎么样?”
confluence --索引与回写汇流
Spider Confluence空间进入知识库并发布回。要搜索索引内容,请使用 knowledge.
| 行动 | 它的作用 |
|---|---|
spider |
抓取和索引页面。内容哈希增量同步——正文时重新索引 或 元数据(标签)发生变化,而不仅仅是在什么时候 updatedAt 进展。返回质量报告:内容深度、类型分布、需要分类审查的页面。 |
list-spaces |
显示可用汇流空间 |
publish |
从markdown创建或更新页面。 预览并确认门控 --没有 confirm: true 仅返回预览;从不自动写作。通过 pageId 更新(在页面版本上使用乐观并发),或 spaceKey + title 创造。可选的 parentId 为了筑巢。 |
“重新索引工程文档” “将此设计文档发布到产品空间” → 复习预览→ “确认”
丰富的内容保真度
Lazy Backlog端到端保留丰富的内容,而不是将其扁平化为纯文本:
- 表格 双向往返(markdown管道表↔ Jira ADF,汇流存储
<table>). - 面板和块报价 作为警告语法保留(
> **Note:**,> **Warning:**等等),并在输出时渲染回右侧的ADF/存储节点。 - 汇流宏 —
info/note/warning/tip面板,code宏(带语言),expand,status,toc,jiraissue宏——被渲染为markdown,而不是被剥离。未知宏会优雅地降级为其内部文本。 - 图片和媒体 --汇流
<img>/<ac:image>Jira ADFmedia/mediaSingle/mediaGroup节点显示为markdown。根据页面的附件清单解析汇流图像引用,以便图表URL正常工作。 - 保持安全不变量 —
<script>/<style>markdown从不发出事件处理程序→存储转换器,即使在往返途中也是如此。
附件和下载
| 能力 | 如何 |
|---|---|
| 表面Jira附件 | issues get 列出文件名、mime类型、人类可读大小、作者、创建日期和下载URL。标记图像附件。 |
| 上传到Jira | issues create / issues update 接受a attachments 本地文件路径数组。文件在上传前经过验证——必须存在,每个文件≤10MB,每批文件≤50MB——符号链接被拒绝,这样服务器就不会被欺骗上传任意的本地文件。API令牌从未被记录。 |
| 从Jira下载 | issues get 和 download: true 将附件字节提取到配置的目录中。可选的 attachmentIds 过滤器选择特定文件。 |
| 汇流页附件 | Spider获取每页的附件清单。 knowledge get-page 列出附件并解析内联图像引用。 |
| 从Confluence下载 | knowledge get-page 和 download: true 将所选附件保存到磁盘。 |
下载时的安全栏:
- 服务器返回的文件名已针对路径遍历进行了净化(
..,绝对路径,分隔符被剥离)。 - 每个文件都有大小上限;记录内容类型。
- 下载URL已通过相同的验证
validateSiteUrl/PRIVATE_HOST_RE用于配置站点的防护——Atlassian可以提供来自不同主机的媒体,但它是经过验证的,而不是盲目获取的。手动遵循重定向,并重新验证最终URL(通过重定向到私有主机没有SSRF)。 - 文件仅保存到配置的目录中(请参阅
downloadDir在......下面
downloadDir 配置键
下载的附件保存的位置。默认为 $HOME/lazy-backlog-downloads。通过以下方式设置:
configure set --downloadDir /absolute/path/to/dir
这是 仅 用户控制的磁盘写入位置和单一事实来源: issues get / knowledge get-page 始终通过 download 旗帜——有意为之 无每次呼叫的目录覆盖 (恶意或提示注入的客户端必须无法将写入重定向到其他地方)。 configure set 验证它(绝对路径,否 .. 不在禁止的系统路径下)。
Spec → 票循环
阶段D工作流关闭了Confluence规范和Jira工作之间的循环,而不添加新的操作:
- Spec → 门票。 通过
sourcePageId到issues create将生成的史诗+儿童票放在知识库的Confluence页面中。预览内联了规范上下文(表、图像、面板均按A保留)。确认后,史诗将链接回源代码页面(KB规范链接+Jira远程问题链接)。将其用于一次性创建、批量创建或史诗级分解。 - 状态→ spec.
insights epic-progress渲染a 实施状态 markdown块已准备好输入confluence publish(确认门控)这样规格页面就可以跟踪发货内容。 - 新鲜循环。 当史诗完成时,源代码规范会自动标记为过时,并出现“更新规范”的建议。
示例工作流
首次设置
“设置我的Jira项目并索引我们的工程文档”
AI会询问您的项目密钥、板ID和Confluence空间,然后运行安装程序。模式发现、文档索引、团队分析——一次调用。返回一份数据质量报告,显示团队的优势和需要改进的领域。
冲刺计划
“帮我计划下一个冲刺”
返回风险调整后的容量(考虑历史结转和估计偏差),推荐合适的积压项目,根据所有权数据建议受让人,警告超额承诺。
每日站会
“准备我的站立”
每人摘要:自昨天以来完成、开始或阻止的内容。标记老化阻断剂。冲刺中期添加的新项目突出显示。不需要手动Jira拖网。
票创建
“创建迁移到新支付网关的票证”
具有知识库上下文的丰富预览、来自团队模式的智能默认值、重复检测、具有典型工作量范围的类似已解决工作,以及基于团队实际模板格式构建的验收标准。检查它,然后确认。
冲刺回顾
“运行我的复古”
速度趋势、周期时间分析、范围蠕变量化、慢性遗留检测、估计准确性、工作负载平衡评估和冲刺比较——所有这些都在一个调用中。
缺陷类选
“对最新漏洞进行分类”
每个bug的完整管道:完整性评分、严重性推断、冲刺推荐、团队惯例评估、组件返工率警告和模式检测(此组件是否出现峰值?)。
发展
npm install # Install dependencies
npm run check # Typecheck + lint + test (all at once)
npm run typecheck # TypeScript strict mode
npm run lint # Biome linter
npm test # Vitest (1300+ tests)
npm run build # Compile to dist/
为什么不是Atlassian Rovo?
Atlassian拥有Rovo,随着时间的推移,它很可能会赶上。但现在,在方法上有一个根本的区别。
Rovo是一个带有聊天界面的CRUD。 它可以创建工单、搜索问题并回答有关Jira数据的问题。它是围绕Atlassian API的自然语言包装器。让它创建一张票,它就创建了一张票。问它关于你的冲刺,它会向你展示冲刺板。
Lazy Backlog是一个智能层。 它不仅可以读写Jira,还可以从已完成的工单中学习团队的模式,对文档进行索引,并使用该上下文为您提供您没有要求但实际需要的见解:
- Rovo创建了一张票。懒惰积压创建工单 和 告诉您,在3-5 SP的4-6天内解决了3个类似的问题,根据组件所有权、您团队实际格式的脚手架验收标准建议正确的受让人,并警告您重复。
- Rovo向您展示冲刺。Lazy Backlog向您展示短跑 和 标记Alice有4个项目正在进行中(超出WIP限制),支付组件本月有3个错误(系统性问题?),并且您的速度超出了18%。
- Rovo进行搜索。Lazy Backlog运行搜索 和 为您提供状态细分、平均年龄、优先级分布,并注意到3个结果未分配。
该值不在CRUD操作中——任何工具都可以完成这些操作。价值在于智能,它可以帮助产品负责人、Scrum Master和工程师在不手动收集数据或提出正确问题的情况下做出更好的决策。懒惰的积压在内部完成繁重的工作,并浮出水面。
Rovo可能会变得更聪明。但是敏捷智能中“足够好”的标准很高,开源社区可以快速行动。欢迎捐款。