mcpField
P
project-status-report

project-status-report

github.com/mondaycom生产力551 次安装1 周前更新
代码仓库

关于 project-status-report

project-status-report 是从一个或多个 monday.com 看板生成结构化项目状态报告的技能,适用于项目负责人和团队。它综合看板项目、汇总数据与近期活动,并突出逾期事项和阻碍。

主要功能

  1. 01汇总一个或多个看板数据
  2. 02识别逾期和即将到期事项
  3. 03整理阻碍及相关更新
  4. 04统计状态、分组和负责人分布
  5. 05展示近期活动与项目进度

适用场景

  1. 01检查单个项目的状态和风险
  2. 02汇总多个看板的进度
  3. 03定位逾期或受阻工作
  4. 04查看团队任务分配情况

MCP 相关

该技能通过 monday.com MCP 工具读取看板、项目、更新和活动,并使用图表、电量条及表格 UI 组件呈现报告。

安装

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

$npx skills add https://github.com/mondaycom/skills --skill project-status-report

安装后在 Claude Code 中输入/project-status-report确认已加载。

详细介绍

项目状态报告

从一个或多个 monday.com 看板生成结构化状态报告。monday.com 是一个可定制的 AI 工作平台,提供专注于工作管理、CRM、开发、服务和营销活动的专用产品——看板是其组织内容的核心单元。这项技能会整合看板元数据、事项数据、汇总洞察和近期活动,生成一份可采取行动的综合摘要。

输出行为

使用通俗易懂的语言和清晰的格式呈现报告。不要描述调用了哪些 API 工具,也不要展示原始 JSON,而应总结数据的含义。重点指出需要关注的问题(阻碍因素、逾期事项、未分配工作),而不是照搬原始数字。始终包含每个看板的 URL,方便用户直接访问。

使用 MCP UI 小组件展示可视化内容

这项技能非常适合使用 monday 的 MCP UI 小组件。请按以下方式使用:

  • 状态分布:调用 show-chart(比 Markdown 表格更便于快速浏览)
  • 项目完成情况:调用 show-battery 来呈现进度指示器
  • 逾期事项:调用 show-table,方便用户排序、筛选和点击查看
  • 按人员统计的工作量:比较不同负责人时调用 show-chart

对于简短的摘要行(总数、计数),使用纯文本。不要在小组件之后再用 Markdown 表格重复展示小组件内容——二者选其一。

show-table 筛选回退(必需)

使用包含 filters 数组的参数调用 show-table 时(例如,筛选逾期事项或排除 Done),务必在小组件正下方直接打印一份简短的筛选结果纯文本列表。有些客户端会显示筛选标签,但不会自动应用筛选,因此 Done 事项仍会出现在表格中。纯文本列表是权威视图;小组件则用于交互。

回退列表应采用精简的项目符号格式,最多列出 10 行,每行显示事项名称、负责人、到期日期和状态。如果匹配项超过 10 行,先列出前 10 行,再添加一行“(另有 N 项)”。只有在未发送 filters 数组时才跳过回退内容(未筛选的 show-table 会正确呈现)。

前置条件

开始前,务必对报告中包含的每个看板调用 get_board_info。此调用会获取列 ID、列类型、状态标签映射和分组结构——这些信息都是正确解读事项数据所必需的。

工作流

步骤 1:确定目标看板

如果用户指定了看板名称或 ID,请直接使用。否则:

  1. 调用 get_user_context,获取用户的看板、工作区和近期活动
  2. 如果目标不明确,询问用户要报告哪些看板
  3. 对于多看板报告,收集所有看板 ID
步骤 2:获取看板结构

对每个看板,使用其 ID 调用 get_board_info。提取:

  • 列定义 - ID、类型和允许值(尤其是状态标签映射)
  • 分组 - 分组 ID 和名称(表示“待办”、“进行中”、“已完成”等工作流阶段)
  • 负责人 - 看板负责人和订阅者

确定哪些列表示:

  • 状态 - 主要工作流状态(通常是 status 类型列)
  • 日期/时间线 - 截止日期或日期范围(date 或 timeline 类型的列)
  • 人员 - 任务分配(people 类型的列)
  • 优先级 - 重要程度(通常是标记为“优先级”的 status 或 color 类型列)
步骤 3:检索事项

调用 get_board_items_page,并使用以下参数:

  • boardId:目标看板
  • includeColumns:true
  • 根据需要进行筛选或排序,以聚焦于活跃事项

根据步骤 2 中的列定义解析每个事项的列值。

步骤 4:识别逾期事项

同时满足以下所有条件的事项即为逾期:

  1. 日期或时间线列的值已过期(早于今天,按用户的时区上下文判断)
  2. 状态列未设为“已完成”标签

确定“已完成”标签。 看板状态列中的每个标签都有一个 is_done 标记。实际使用中,用户创建的看板或默认看板通常不会设置此标记(观察结果:真实测试看板上的所有标签,包括“Done”,其值都为 false)。如果设置了 is_done: true,则以此为主要判断依据;否则,将标签名称与以下常见集合进行匹配:Done、Completed、Closed、Resolved、Verified、Fixed、Won、Approved。如果两种判断方式都不适用,请询问用户该看板上哪个标签表示“已完成”。

同时将 24 小时内到期的事项标记为“即将到期”,以便提前提醒用户。

收集逾期事项的以下信息:事项名称、负责人、到期日期、当前状态和分组名称。

步骤 5:识别阻塞事项

满足以下任一条件的事项即为阻塞:

  1. 状态为“Stuck”、“Blocked”或类似标签(检查看板的状态标签)
  2. 有近期更新/评论指出存在阻塞问题

对于状态为“Stuck”的事项,调用 get_updates 获取说明其受阻原因的最新评论。

没有更新时的备用方案。 如果 get_updates 对某个受阻事项返回空结果,则从该事项的文本列中提取上下文,优先级如下:标题为 Notes、Description 或 Steps to Reproduce 的列,然后是任何其他有非空内容的 text 或 long_text 列。许多团队会在 Notes 列中记录阻塞问题,而不是通过更新记录。若文本列中有说明,请勿将受阻事项描述为“没有详情”。

步骤 6:获取汇总洞察

调用 board_insights 获取:

  • 状态分布(每个状态标签的事项数)
  • 分组分布(每个分组的事项数)
  • 分配情况(每个人负责的事项数)

这样无需重新处理所有事项,即可获取高层级统计数据。

使用步骤 2 中的看板专属状态列 ID。 传入通过 get_board_info 提取的实际列 ID(例如 color_mm2xbcrm、status_1、color_mm30e66p),切勿使用通用字面值 "status"。大多数真实看板上都不存在字面值 "status"——即使根本原因是“找不到列”,board_insights 仍会返回 403 INTERNAL_SERVER_ERROR。如果此处触发 403,请重新读取 get_board_info,找到 type 为 status 的列,并使用其确切 ID 重试。此规则同样适用于开发、CRM 和服务看板上的 Priority / Severity / Workflow status 列。

步骤 7:获取近期活动

调用 get_board_activity 并明确指定时间范围。MCP 工具自身默认使用 30 天,但此技能默认使用 7 天,因此除非用户要求其他时间段,否则你必须传入 fromDate(也可选传入 toDate)以确保时间范围为 7 天。这样可以获取:

  • 新建、更新或移动的事项
  • 状态变更
  • 分配变更
步骤 8:格式化报告

按以下结构呈现报告:


项目状态:[看板名称] 报告生成时间:[今天的日期] | 时间范围:[时间范围] 看板 URL:[看板 URL]

摘要

  • 项目总数:[数量]
  • 已完成:[数量]([百分比]%)
  • 进行中:[数量]
  • 已逾期:[数量]
  • 受阻:[数量]

状态分布 -> 通过 show-chart 渲染

项目完成度 -> 通过 show-battery 渲染(例如:60%)

逾期项目 -> 通过 show-table 渲染,列包括:项目、负责人、截止日期、状态、分组

阻塞项

  • [项目名称](负责人:@name)- [最新评论或原因]
  • [项目名称](负责人:@name)- [最新评论或原因]

近期活动(过去 7 天)

  • [数量] 个项目已完成
  • [数量] 个项目已创建
  • [数量] 次状态变更
  • 值得关注:[突出显示任何重要进展或更新]

最后提出 2-3 个合乎逻辑的后续步骤:

  • “要我跟进逾期项目的负责人吗?”
  • “要我起草一份可分享给利益相关者的状态更新吗?”
  • “要我深入调查 [具体项目] 受阻的原因吗?”

多看板报告

当用户要求生成跨多个看板或工作区的报告时:

  1. 调用 get_user_context,列出范围内的所有看板
  2. 对每个看板执行步骤 2-7
  3. 在顶部呈现汇总摘要,然后按看板分别呈现各部分内容
  4. 突出显示跨看板的模式(例如:“5 个看板中有 3 个存在逾期项目”)

套餐级别说明: 多看板汇总在 Standard 及以上套餐中效果最佳。在 Free / Basic 套餐中,monday 的跨看板功能较有限——报告仍可生成,但可能更像单看板报告。AI Portfolio Risk 洞察(board_insights 中的“自动识别风险”功能)仅适用于 Enterprise 套餐。如果用户使用较低级别的套餐,并且特别要求 AI 风险分析,请说明其套餐支持哪些功能,并提供手动分析阻塞项的替代方案。

输出自定义

根据用户的要求调整报告:

  • “只看阻塞项” - 跳至步骤 5,只显示阻塞项部分
  • “仅显示逾期项目” - 跳至步骤 4,只显示逾期表格(使用 show-table)
  • “过去 30 天” - 调整步骤 7 中的时间范围
  • “针对我的团队” - 在步骤 3 中按人员分配筛选项目

错误预防与补救

  • 如果 get_board_info 失败(例如,找不到看板或没有权限),说明无法访问的看板,并提供替代方案:“我无法访问 Q3 Marketing 看板。要我改用你有权访问的看板,还是请所有者共享该看板?”
  • 如果 board_insights 返回空结果,请改用 get_board_items_page 手动汇总,而不是报告空的分布数据。在 board_insights 中,没有设置状态的项目会显示为空字符串标签;请在图表中将其呈现为“无状态”,而不是空白区段。
  • 如果看板没有状态列,请说明这一点,并根据分组分布进行报告。
  • 空看板。 如果 get_board_items_page 返回 0 个项目,请勿执行步骤 4-7,也不要渲染任何组件。回复:“ 还没有项目。”然后建议创建项目(链接到 task-management skill)或检查看板设置。
  • 多看板请求部分失败。 如果多看板请求中的某个看板无法访问(私有、已删除或返回 403),不要中止整个报告。对可访问的看板执行完整流程,然后在汇总摘要顶部添加简短的“无法访问:<board name(s)>”说明,并建议后续步骤(“请所有者共享”“从请求中移除”或“选择其他看板”)。

使用的工具

  • get_user_context - 识别看板和工作区
  • get_board_info - 看板结构、列定义、状态标签
  • get_board_items_page - 包含列值的条目数据
  • board_insights - 汇总计数和分布
  • get_board_activity - 最近的更改和时间线
  • get_updates - 关于受阻或已标记条目的评论
  • show-chart - 状态 / 工作量分布组件
  • show-battery - 完成百分比组件
  • show-table - 逾期条目组件

评论

支持 Markdown