---
name: yoooclaw-work-report
description: 从工作相关的消息通知中自动提取当天或本周的工作进展、沟通要点和待办，生成一份工作日报或周报。触发：日报 / 周报 / 工作汇报 / 今天干了啥 / 这周做了什么 / 帮我写日报 / 帮我整理周报 / 工作简报 / 工作总结。
---

# work-report

## 目标

下班前或周末前，从手机通知中自动提炼出「今天（或这周）工作上发生了什么」，生成一份可以直接发给领导或贴进工作台的简报。

用户不需要回忆今天干了啥——通知里全有：飞书消息、钉钉审批、企业微信讨论、邮件往来、日历提醒、项目管理工具通知。本 skill 把这些散落的工作信号提炼成结构化简报。

用户通过安装弹窗设置：
- 关注什么事（`{{what}}`）：报告类型——日报、周报或两者。
- 关注哪些群和应用（`{{where}}`）：工作相关的应用和群，如飞书、钉钉、企业微信、Outlook、Jira、GitHub、Notion 等。未设置时自动从通知中识别工作类应用。

## 数据加载策略

- **先通过 `openclaw ntf storage-path` 获取通知存储目录**（用 Bash 工具运行该命令，stdout 即是目录的绝对路径）。后续所有通知文件直接在这个目录下，命名为 `YYYY-MM-DD.json`。
- **文件命名**：`YYYY-MM-DD.json`，一天一文件，包含当日全部 App 通知
- **加载优先级**：① 用户在 prompt 里明确给的路径 > ② `<storage-path>/<YYYY-MM-DD>.json`
- **时间窗口（按报告类型决定）**：
  - 日报 → 仅当天
  - 周报 → 本周一 00:00 至当前
  - 用户指定"最近 N 天" → 近 N 天
  - 用户给定具体日期段 → 严格按指定
- 跳过不存在的文件，不报错
- 若 `openclaw ntf storage-path` 不可用，提示用户给出数据路径

## 输入数据 schema

JSON 数组，每条：
```json
{"appName":"com.bytedance.ee.lark","title":"群名或联系人名","content":"消息内容","timestamp":"2026-05-13T14:30:00.000+08:00","appDisplayName":"飞书"}
```

## 核心逻辑

### 1. 工作信号识别

从通知中识别工作相关内容。工作信号来源：

| 来源类型 | 典型 App / 信号 |
|---|---|
| 办公 IM | 飞书、钉钉、企业微信、Slack、Teams |
| 邮件 | Outlook、Gmail、网易邮箱（工作邮件） |
| 项目管理 | Jira、Notion、飞书多维表格、Teambition、Linear |
| 代码协作 | GitHub、GitLab（PR/Issue/CI 通知） |
| 日程会议 | 日历提醒、飞书日历、会议纪要 |
| 审批流程 | OA 审批、请假、报销、用印、采购 |
| 文档协作 | 飞书文档、Notion、Google Docs 评论通知 |

如果用户在「关注哪些群和应用」中指定了具体应用（如"飞书、GitHub"），优先从这些应用中提取；未指定时自动识别上述类型。

### 2. 噪音过滤

以下内容不属于工作产出，直接丢弃：

- **生活类**：外卖、快递、打车、购物、缴费、家庭群消息
- **营销推送**：App 运营通知、促销、直播预告
- **纯闲聊**：表情包、"收到"、"+1"、无实质内容的回复
- **系统噪音**：App 更新提醒、存储空间警告、安全验证码
- **消费/财务**：银行短信、支付通知 → 属于 expense-tracker

### 3. 信息归类

将工作信号归入以下类别：

- **推进的事项**：项目进展、任务完成、文档交付、代码合并、方案确认
- **沟通与对齐**：会议讨论要点、跨团队协作、需求对齐、反馈收集
- **审批与流程**：发起/完成的审批、签字、报销、流程节点推进
- **待办与跟进**：被分配的任务、被 @ 要求回复、承诺了但还没做的、明天需要继续的
- **风险与阻塞**：延期、被驳回、依赖方未响应、资源不足、排期冲突

### 4. 合并与提炼

- 同一事项的多条消息合并为一条，以最终结论/最新状态为准
- 用一句话概括每个事项的核心进展，不照搬原文
- 保留关键实体：项目名、文档名、会议名、人名、截止时间
- 按时间线排序，让简报有"一天的节奏感"

## 输出要求

输出为会话文本，不生成文件。

### A. 日报模式

```
📋 工作日报（YYYY-MM-DD）

一句话总览：用 1 句话概括今天的工作重心和主要产出。

━━ 今日进展 ━━

  1. <事项名>：<一句话概括进展>
     涉及：<项目/文档/会议名>
  2. <事项名>：<一句话概括进展>
     涉及：<项目/文档/会议名>
  ...

━━ 沟通与对齐 ━━

  1. <会议/讨论主题>：<结论或要点>
     参与方：<人名/团队>
  ...

━━ 审批与流程 ━━（如有）

  1. <审批事项>：<状态（已通过/待审批/已驳回）>
  ...

━━ 明日待办 ━━

  □ <待办事项>（截止：<如有>）
  □ <待办事项>
  ...

━━ 风险与阻塞 ━━（如有）

  ⚠️ <风险描述>
  ...
```

### B. 周报模式

```
📋 工作周报（MM/DD ~ MM/DD）

一句话总览：用 1 句话概括本周的核心产出和关键进展。

━━ 本周完成 ━━

  1. <事项名>：<成果概括>
  2. <事项名>：<成果概括>
  ...

━━ 进行中 ━━

  1. <事项名>：<当前状态和进度>
  2. <事项名>：<当前状态和进度>
  ...

━━ 关键沟通 ━━（如有）

  1. <会议/讨论>：<结论>
  ...

━━ 下周计划 ━━

  □ <计划事项>
  □ <计划事项>
  ...

━━ 风险与阻塞 ━━（如有）

  ⚠️ <风险描述>
  ...
```

### C. 兜底模式

若当天（或本周）没有识别到工作相关通知，输出：

```
📋 工作日报（YYYY-MM-DD）

今日无工作动态记录。
```

### D. 简化模式

若工作通知数量很少（少于 3 条有效信号），降级为简化版：

```
📋 工作日报（YYYY-MM-DD）

今日工作动态较少：

  1. <事项>：<概括>
  2. <事项>：<概括>

明日待办：
  □ <如有从通知中识别到的待办>
```

## 决策准则

- 不做流水账，优先输出有实质产出和推进的事项
- 会议只记结论和决策，不记过程
- "收到""好的""+1"等不构成工作产出，丢弃
- 被 @ 但还没回复的，归入「明日待办」
- 审批被驳回的，归入「风险与阻塞」
- 不编造通知里没有的内容；信息不足时宁可输出简化版或兜底文案
- 日报控制在 800 字以内，周报控制在 1500 字以内
- 语气专业、简洁，产出的简报可以直接发给领导或贴进工作台

## 输出风格

- 信息密度高，适合下班前 1 分钟扫完。
- 事项用一句话概括，不展开背景。
- 关键实体（项目名、人名、截止时间）保留原文，不模糊化。
- 仅生成会话文本，不写文件。
