---
name: kw-worklog
description: KippiesWork 订阅技能 — 自动生成日报/周报草稿。从日历日程、会议纪要、飞书消息、指定文档四处取素材，归并汇总成可直接提交的工作汇报。触发词："帮我写日报""生成周报""我这周干了啥""周报素材""工作总结"。需要飞书 user access token。
---

# KippiesWork 工作日志

把订阅者散落在日程、会议纪要、群消息、文档里的痕迹，汇成一份可直接交的日报或周报。

## 参数

- `period` — 必填，`day` 或 `week`
- `sections` — 可选，汇报分组（如「财务侧/运营侧/产品侧/商务侧」），不给则按内容自动归并
- `keywords` — 可选，本岗位的业务关键词，用于消息搜索
- `last_report_doc` — 可选，上期报告的文档 token，用于「上期计划 vs 本期完成」对照

**不要硬编码任何 open_id 或文档 token。** 结果推送到当前会话（`target: origin`）。

## 时间范围

先执行 `date '+%Y-%m-%d %A'` 确认今天，然后：

- `period=day` — 前一天 18:00 到今天 18:00（跨天的工作在这个窗口里最完整）
- `period=week` — 本周周一 00:00 到此刻

一律 Asia/Shanghai。**算出来的起止日期要在输出里写明**，订阅者需要一眼看出覆盖范围。

## 工作流程

### 第一步：日程

```bash
lark-cli calendar +agenda --start <起> --end <止> --as user
```

提取每场：标题、时间、参会人、是否有会议纪要。

### 第二步：会议纪要

对有纪要的日程：

```bash
lark-cli vc +notes --calendar-event-ids <id1,id2,...> --as user
```

提取结论、待办、关键决策 —— **纪要里的结论比日程标题有价值得多**，这是周报质量的主要来源。

### 第三步：本人发出的关键消息

```bash
lark-cli --as user im +messages-search --query "<keywords 用 OR 连接>" --start-time <起时间戳> --end-time <止时间戳>
```

`keywords` 未给时，用通用业务词：`合同 OR 方案 OR 上线 OR 排期 OR 复盘 OR 需求 OR 问题`。

### 第四步（可选）：上期计划对照

给了 `last_report_doc` 才做：

```bash
lark-cli docs +fetch --api-version v2 --doc <token> --doc-format markdown --as user
```

提取上期的「下期计划」，作为本期完成情况的对照基线，在输出里标出哪些兑现了、哪些顺延了。

## 汇总规范

素材抓完之后是**归并**，不是罗列。这一步决定周报是不是能直接交：

- **按主题合并，不按时间罗列。** 同一个项目/业务线的多个进展合成一条，提炼核心结论。
- **每条不超过 50 字**，语言简洁有力。
- **技术/系统侧的 Bug、需求、排期合并成 1-2 条**，不逐条列举每个 Bug。
- 重复、琐碎的细节不出现 —— 只留有意义的进展和结论。
- 每条标注来源，三选一：`日程` / `消息` / `文档`。**这条是硬要求**，订阅者需要能追溯。

## 输出格式

### period=day

```
📝 今日工作日报 · {日期} {星期}
覆盖范围：{起} ~ {止}

**今日完成**
1. ✅ {事项}（来源：{日程/消息/文档}）

**进行中**
1. 🔁 {事项}（来源：…）

**明日计划**
1. {事项}

**需要协调**
（无则写：暂无）
```

### period=week

```
📅 {月份}第{X}周工作周报（{起} - {止}）

{按 sections 分组，未给 sections 则自动归并}
**【{分组}】**
1. ✅ {已完成事项}（来源：…）
2. 🔁 {从上期计划延续/未完成}（来源：…）

**下周计划**
1. {事项}

**预判与建议**
{基于本周进展，预判下周的风险点或机会点，1-2 条}
```

给了 `last_report_doc` 时，在「下周计划」前加一节：

```
**上期计划兑现情况**
- ✅ {上期计划项} → 本期已完成
- 🔁 {上期计划项} → 顺延，原因：{一句话}
```

## 反编造规则（硬性）

日报周报是要交给上级看的，编一条比少一条严重得多：

- **每一条都必须能指回一个具体素材**（某场会、某条消息、某段文档）。指不回去的**不写**。
- **不要为了填满格式而生成事项。** 分组下没有内容就写「本周无」，不要造。
- **不要把日程标题当成完成事项。** 开了会 ≠ 事情做完了；结论要来自纪要或消息，只有日程标题时写成「参加了 {会议名}」，不要替他宣布结果。
- **日期覆盖必须完整**：算出的起止之间每一天都要查过。某天确实没有素材，就在输出里体现「{日期} 无记录」，**不要静默跳过** —— 静默丢天是这类报告最隐蔽的错误。
- **「预判与建议」必须基于本期实际素材**，不要写放之四海皆准的空话。
- 取数失败时说明哪一步失败，不要用"本周无"掩盖失败。

## 权限不足时

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