# Lark Workflow Meeting Automation

> 会议自动化：从纪要到待办。会议结束后一键完成：搜索会议 → 获取妙记纪要 → 提取待办 → 创建飞书任务并指派 → 生成纪要文档 → 发送群聊通知。当用户需要自动整理会议纪要、批量创建会议待办任务、发送会议总结通知时使用。

- Skill: `zhuyansen/lark-workflow-meeting-automation` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add zhuyansen/lark-workflow-meeting-automation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zhuyansen/lark-workflow-meeting-automation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: zhuyansen (https://skillmd.com/u/zhuyansen)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zhuyansen/lark-workflow-meeting-automation

---


# 会议自动化：从纪要到待办

**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)，其中包含认证、权限处理**。

## 适用场景

- "帮我整理会议纪要并创建待办" / "会议自动化"
- "把会议待办提取出来创建任务" / "会议结束了，帮我处理"
- "把会议纪要发到群里" / "整理今天的会议并通知大家"

## 前置条件

需要 **user 身份**（搜索会议、获取纪要）和 **bot 身份**（创建任务、发消息）。

```bash
lark-cli auth login --domain vc,task,im,docs   # 授权所需权限域
```

## 快速使用

项目自带一个 Shell 脚本 `meeting-automation.sh`，可直接运行：

```bash
# 查看帮助
bash meeting-automation.sh --help

# 预览模式（不实际执行）
bash meeting-automation.sh --dry-run

# 处理指定日期的会议
bash meeting-automation.sh --date 2026-04-01

# 指定会议 ID + 通知群聊
bash meeting-automation.sh --meeting-id <ID> --chat-id oc_xxx
```

也可以按照下方工作流手动编排执行。

## 工作流

```
{日期/会议ID} ─► vc +search ──► 会议列表
                      │
                      ▼
                  vc +notes ──► note_doc_token
                      │
                      ▼
                  docs +fetch ──► 纪要 Markdown（摘要 + 待办）
                      │
                      ▼
                  task +create (bot) ──► 创建任务
                  task +assign (bot) ──► 指派给用户
                      │
                      ▼
                  docs +create (bot) ──► 纪要文档（若无妙记）
                      │
                      ▼
                  im +messages-send (bot) ──► 群聊通知
```

### Step 1: 搜索会议

```bash
lark-cli vc +search --start "<YYYY-MM-DD>" --end "<YYYY-MM-DD>" --as user --format json
```

- 日期为**包含当天**（查"今天"时 start 和 end 都填今天）
- 返回 `.data.items[]`，每项包含 `.id`（meeting_id）和 `.display_info`（主题在第一行）
- 有 `page_token` 时需翻页

### Step 2: 获取会议纪要

分两步：先获取妙记 Token，再读取内容。

**2a. 获取妙记文档 Token：**

```bash
lark-cli vc +notes --meeting-ids "<meeting_id>" --as user --format json
```

- **重要**：输出包含 `[vc +notes]` 日志行，解析 JSON 前需过滤：`grep -v '^\[vc '`
- 返回 `.data.notes[0].note_doc_token`
- 部分会议无妙记（未开录制），会返回 `no notes available`

**2b. 读取纪要文档内容：**

```bash
lark-cli docs +fetch --doc "<note_doc_token>" --as user --format json
```

- 返回 `.data.markdown`（完整 Markdown 内容）
- 摘要在 `# 总结` 标题下
- 待办在 `# 待办` 标题下，格式为 `- [ ] 待办内容（来自xxx）`

### Step 3: 提取待办事项

从纪要 Markdown 中解析：

```bash
# 提取 # 待办 下的 checklist 行
echo "$MARKDOWN" | sed -n '/^# 待办$/,/^# /{/^# /d;p;}' | grep -E '^\s*-\s*\['
```

清理格式：去掉 `- [ ]` 前缀和 `（来自xxx）` 后缀。

### Step 4: 创建飞书任务并指派

**关键设计：bot 创建 + assign 给 user**。这样不依赖 user token 即可创建任务，且任务会出现在用户的飞书待办列表中。

```bash
# bot 创建任务
RESULT=$(lark-cli task +create \
  --summary "待办内容" \
  --description "来自会议「xxx」的待办事项" \
  --due "+7d" \
  --as bot \
  --format json)

# 提取任务 GUID
GUID=$(echo "$RESULT" | jq -r '.data.guid')

# 指派给用户
lark-cli task +assign --task-id "$GUID" --add "<user_open_id>" --as bot
```

- 获取当前用户 open_id：`lark-cli auth status` 中的 `userOpenId` 字段
- bot 创建的任务返回 `.data.guid`（不是 `.task.id`）
- assign 后用户在飞书「待办」Tab 即可看到

### Step 5: 处理纪要文档

- 如果会议已有妙记：直接使用妙记链接 `https://feishu.cn/docx/<note_doc_token>`
- 如果没有妙记：创建新文档

```bash
lark-cli docs +create \
  --title "会议纪要: <会议主题>" \
  --markdown "<纪要内容>" \
  --as bot
```

### Step 6: 发送群聊通知（可选）

```bash
lark-cli im +messages-send \
  --chat-id "<oc_xxx>" \
  --markdown "**会议纪要: xxx**\n\n**摘要:** ...\n\n**待办 (N 项):**\n- ...\n\n[查看完整纪要](链接)" \
  --as bot
```

## 踩坑记录

### 身份选择

| 命令 | 支持身份 | 推荐 |
|------|---------|------|
| `vc +search` | user only | `--as user` |
| `vc +notes` | user only | `--as user` |
| `docs +fetch` | user, bot | `--as user` |
| `task +create` | user, bot | `--as bot`（配合 assign） |
| `task +assign` | user, bot | `--as bot` |
| `im +messages-send` | user, bot | `--as bot` |
| `docs +create` | user, bot | `--as bot` |

### 其他注意事项

1. **`vc +notes` 的 stderr 日志**：输出中包含 `[vc +notes] querying...` 日志行，会污染 JSON。解析前用 `grep -v '^\[vc '` 过滤。

2. **`+notes` 只返回 Token**：不直接返回纪要内容，需要再调 `docs +fetch` 获取 Markdown。

3. **bot 创建的任务 user 看不到**：必须用 `task +assign` 指派给 user，才会出现在用户待办列表。

4. **搜索结果数据结构**：会议 ID 在 `.data.items[].id`，主题在 `.display_info` 第一行，时间在 `.meta_data.description`。

5. **权限审批**：首次 `auth login` 如果组织开启了审核，需管理员审批。用 `--recommend` 可申请自动审批的权限。

## 参考

- [lark-shared](../lark-shared/SKILL.md) — 认证、权限（必读）
- [lark-vc](../lark-vc/SKILL.md) — `+search`、`+notes` 详细用法
- [lark-doc](../lark-doc/SKILL.md) — `+fetch`、`+create`、`+update` 详细用法
- [lark-task](../lark-task/SKILL.md) — `+create`、`+assign` 详细用法
- [lark-im](../lark-im/SKILL.md) — `+messages-send` 详细用法

