关于 project-status-report
project-status-report 是从一个或多个 monday.com 看板生成结构化项目状态报告的技能,适用于项目负责人和团队。它综合看板项目、汇总数据与近期活动,并突出逾期事项和阻碍。
主要功能
- 01汇总一个或多个看板数据
- 02识别逾期和即将到期事项
- 03整理阻碍及相关更新
- 04统计状态、分组和负责人分布
- 05展示近期活动与项目进度
适用场景
- 01检查单个项目的状态和风险
- 02汇总多个看板的进度
- 03定位逾期或受阻工作
- 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,请直接使用。否则:
- 调用
get_user_context,获取用户的看板、工作区和近期活动 - 如果目标不明确,询问用户要报告哪些看板
- 对于多看板报告,收集所有看板 ID
步骤 2:获取看板结构
对每个看板,使用其 ID 调用 get_board_info。提取:
- 列定义 - ID、类型和允许值(尤其是状态标签映射)
- 分组 - 分组 ID 和名称(表示“待办”、“进行中”、“已完成”等工作流阶段)
- 负责人 - 看板负责人和订阅者
确定哪些列表示:
- 状态 - 主要工作流状态(通常是
status类型列) - 日期/时间线 - 截止日期或日期范围(
date或timeline类型的列) - 人员 - 任务分配(
people类型的列) - 优先级 - 重要程度(通常是标记为“优先级”的
status或color类型列)
步骤 3:检索事项
调用 get_board_items_page,并使用以下参数:
boardId:目标看板includeColumns:true- 根据需要进行筛选或排序,以聚焦于活跃事项
根据步骤 2 中的列定义解析每个事项的列值。
步骤 4:识别逾期事项
同时满足以下所有条件的事项即为逾期:
- 日期或时间线列的值已过期(早于今天,按用户的时区上下文判断)
- 状态列未设为“已完成”标签
确定“已完成”标签。 看板状态列中的每个标签都有一个 is_done 标记。实际使用中,用户创建的看板或默认看板通常不会设置此标记(观察结果:真实测试看板上的所有标签,包括“Done”,其值都为 false)。如果设置了 is_done: true,则以此为主要判断依据;否则,将标签名称与以下常见集合进行匹配:Done、Completed、Closed、Resolved、Verified、Fixed、Won、Approved。如果两种判断方式都不适用,请询问用户该看板上哪个标签表示“已完成”。
同时将 24 小时内到期的事项标记为“即将到期”,以便提前提醒用户。
收集逾期事项的以下信息:事项名称、负责人、到期日期、当前状态和分组名称。
步骤 5:识别阻塞事项
满足以下任一条件的事项即为阻塞:
- 状态为“Stuck”、“Blocked”或类似标签(检查看板的状态标签)
- 有近期更新/评论指出存在阻塞问题
对于状态为“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 个合乎逻辑的后续步骤:
- “要我跟进逾期项目的负责人吗?”
- “要我起草一份可分享给利益相关者的状态更新吗?”
- “要我深入调查 [具体项目] 受阻的原因吗?”
多看板报告
当用户要求生成跨多个看板或工作区的报告时:
- 调用
get_user_context,列出范围内的所有看板 - 对每个看板执行步骤 2-7
- 在顶部呈现汇总摘要,然后按看板分别呈现各部分内容
- 突出显示跨看板的模式(例如:“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-managementskill)或检查看板设置。 - 多看板请求部分失败。 如果多看板请求中的某个看板无法访问(私有、已删除或返回 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- 逾期条目组件