---
name: kw-my-inbox
description: KippiesWork 订阅技能 — 每日汇总「谁@了我、今天有什么会、什么待办到期」。从飞书消息、日历、任务三处取数，按紧急度排序并给出建议动作。触发词："谁@我了""今天有什么会""我的待办""今日提醒""消息摘要""别让我漏事"。需要飞书 user access token。
---

# KippiesWork 我的收件箱

把订阅者今天需要知道的三件事汇成一条：**谁在等我回、我今天有什么会、什么快到期了。**

## 参数

- `lookback_hours` — 可选，回看窗口，默认 24（周一自动放宽到 72 以覆盖周末）
- `watch_keywords` — 可选，订阅者自定义的关注词（如「合同」「赔偿」），命中时升级紧急度

**订阅者身份不需要传参** —— 本技能以当前 profile 的用户身份执行，`--as user` 自动就是本人。
**不要向 prompt 里硬编码 open_id**：结果推送到当前会话（`target: origin`），订阅者本来就在这个会话里。

## 工作流程

### 第一步：确认今天

```bash
date '+%Y-%m-%d %A'
```

若今天是周一，把回看窗口放宽到 72 小时（覆盖周末）。

### 第二步：取「@我的」消息

```bash
lark-cli --as user im +messages-search --query "@<本人姓名>" --page-size 50
```

搜不到结果时，再用请求类关键词补搜（人们不总是用 @）：

```bash
lark-cli --as user im +messages-search --query "辛苦" --page-size 30
lark-cli --as user im +messages-search --query "麻烦" --page-size 30
```

若 `watch_keywords` 有值，每个词各搜一次。

**只保留回看窗口内的消息。** 窗口外的丢弃，不要因为"看起来重要"就留下。

### 第三步：取今日日程

```bash
lark-cli calendar +agenda --as user
```

### 第四步：取到期待办

```bash
lark-cli task +get-my-tasks --due-end "<今天 23:59:59 的 ISO8601，+08:00>"
```

`date -d` 在部分环境不可用，拿不到就用 Python 拼 ISO 8601 字符串。

### 第五步：定级与组织

对每条 @我的消息判紧急度：

- 🔴 **紧急** — 命中 `watch_keywords`；或同一人 24h 内 @我 ≥2 次；或含「紧急/今天/马上/截止」
- 🟠 **待回** — 含请求词（辛苦/麻烦/请/帮/看下）且已过 4 小时未回
- 🟡 **知悉** — 其余

## 输出格式

```
🔔 我的收件箱 · {今日日期} {星期}

## 📬 等我回的（{n} 条）
🔴 {来源群聊/私聊} · {发起人}
   {一句话说清他要什么}
   → 建议：{具体动作，不超过 20 字}

🟠 ...
（无则写：暂时没人在等你）

## 📅 今日日程（{n} 场）
• 09:00-10:00  {标题}（{组织者}）
（无则写：今日暂无会议安排）

## ✅ 今天到期（{n} 项）
• [ ] {任务名}（截止 MM-DD HH:mm）
• [ ] {任务名}（已逾期 ⚠️）
（无则写：今日暂无到期任务）

## 💡 如果今天只做一件事
{基于上面三块给一条建议}
```

排序规则：待办按截止时间升序，**已逾期的排最前**并标 ⚠️；无截止日期的排最后。时间一律 Asia/Shanghai。

## 反编造规则（硬性）

这个技能最容易出的错是**漏一条**和**多一条**，两者都会让订阅者失去信任：

- **条目只能来自工具返回结果。** 不要"推测"某人可能在等回复。
- **不要合并同类项到看不出原始条数。** 三个人问同一件事就是三条，各自标明发起人。
- **不要过滤掉看起来不重要的。** 判重要是订阅者的事，你只负责定级和排序。
- **空结果是合格输出**：没人 @我就写「暂时没人在等你」，没会就写「今日暂无会议安排」。
  **绝不允许在空结果时编造条目或用示例内容填充。**
- 工具调用失败时**说清楚哪一步失败了**，不要用"暂无"掩盖失败 —— 「取不到」和「没有」是两件事，必须区分：
  - 取不到 → 「消息搜索失败（{错误}），这块今天没能查到」
  - 没有 → 「暂时没人在等你」

## 权限不足时

`lark-cli` 报权限/登录失败时，不要重试到超时，也不要静默降级。直接如实说明缺哪项授权并结束 —— 系统会自动弹出授权卡，用户授权后会自动续接。
