# Feishu Weekly Report

> 生成飞书周报。通过两种方式收集工作内容：(1) 调用飞书API拉取指定时间范围的聊天记录，(2) 读取本地daily memory日志。 合并两个数据源后，按用户指定的周报模板自动整理输出。 触发词：周报、工作总结、上周总结、本周总结、写周报、weekly report。 Use when: 用户需要生成周报、工作总结，或要求回顾某段时间的工作内容。

- Skill: `whyzsm/feishu-weekly-report` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add whyzsm/feishu-weekly-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/whyzsm/feishu-weekly-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: whyzsm (https://skillmd.com/u/whyzsm)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/whyzsm/feishu-weekly-report

---


# 飞书周报 Skill

生成周报分两步：收集素材 → 整理输出。

## Step 1: 收集素材

从两个数据源并行收集，合并去重。

### 数据源 A: 飞书聊天记录（API 拉取）

1. 确定时间范围（默认上周一 00:00 到上周日 23:59，用户本地时区）
2. 从 OpenClaw 配置获取飞书 app_id 和 app_secret：
   ```bash
   grep -E "appId|appSecret" ~/.openclaw/openclaw.json
   ```
3. 获取当前 chat_id（从 inbound context 的 `chat_id` 字段取）
4. 计算时间戳（秒级）并执行拉取脚本：
   ```bash
   START_TS=$(python3 -c "import datetime; d=datetime.datetime(2026,2,24,0,0,tzinfo=datetime.timezone(datetime.timedelta(hours=8))); print(int(d.timestamp()))")
   END_TS=$(python3 -c "import datetime; d=datetime.datetime(2026,2,28,23,59,59,tzinfo=datetime.timezone(datetime.timedelta(hours=8))); print(int(d.timestamp()))")
   bash <skill_dir>/scripts/fetch_feishu_messages.sh <app_id> <app_secret> <chat_id> $START_TS $END_TS
   ```
5. 输出为 JSON lines，每行一条消息。过滤掉 `msg_type` 不是 `text` 或 `post` 的消息（图片、卡片等无法提取有效文本）。过滤掉机器人的"正在思考中..."等状态消息。

**注意事项：**
- 时间戳单位是**秒**（不是毫秒）
- 如果用户有多个群聊，可能需要拉取多个 chat_id 的消息
- 消息量可能很大，优先提取用户发的消息（sender_type=user），机器人回复作为补充上下文

### 数据源 B: 本地 Daily Memory 日志

读取 workspace 下的 memory 目录：
```bash
ls <workspace>/memory/YYYY-MM-DD.md  # 对应日期范围内的文件
```

如果日志存在，内容通常已经是整理过的工作要点，优先使用。

### 合并策略

- daily memory 有的内容优先使用（已整理过，质量高）
- 飞书聊天记录补充 memory 中没有的内容
- 去掉闲聊、调试、重复内容，只保留工作相关的实质内容

## Step 2: 整理输出

### 默认周报模板

```markdown
## 本周工作总结

[按工作模块分条列出，每条简洁描述做了什么、产出是什么]

## 关键成果与进展

[本周最重要的2-3个产出/里程碑]

## 下周工作计划

[基于本周工作的延续和未完成事项，按优先级排列]

## 遇到的问题与需要的支持

[阻塞项、跨团队协作需求、资源需求等]

## 其他备注

[可选：学习心得、工具探索、流程优化建议等]
```

### 输出原则

- **简洁**：每条工作描述控制在1-2行
- **结果导向**：强调产出而非过程（"输出了XX文档" 而非 "研究了很久XX"）
- **量化**：有数据的加数据（"完成了3个模块的测试，通过率95%"）
- **分类清晰**：按工作模块分组，不要流水账

### 用户自定义模板

如果用户提供了自定义模板格式，使用用户的格式。将收集到的素材按用户模板的结构重新组织。

## Daily Memory 写入（可选）

如果用户同意，在每次有实质工作内容的对话结束后，主动将当天要点写入：
```
<workspace>/memory/YYYY-MM-DD.md
```

格式：
```markdown
# YYYY-MM-DD 工作记录

## 工作内容
- [具体做了什么]

## 关键产出
- [文档/代码/配置等具体产出]

## 待跟进
- [未完成的事项]
```

这样下次生成周报时，日志已经准备好了。

