# Lark Worklog Query

> 领导即席查询。当领导/组长在飞书里问"张三这周在干啥/CRM-V2 进度如何/谁这周加班最多/李四那个 bug 修完没/项目 A 谁投入最多"时触发。把自然语言翻译成 base 查询，聚合 worklogs/tasks/projects/members 数据，用一段话 + 卡片回复。支持查人、查项目、查进度、查工时、查卡点五个维度。

- Skill: `tjxj/lark-worklog-query` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tjxj/lark-worklog-query`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tjxj/lark-worklog-query/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tjxj (https://skillmd.com/u/tjxj)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tjxj/lark-worklog-query

---


# lark-worklog-query — 领导即席查询

领导在对话框里直接问，AI 从多维表里捞答案。

## 何时触发

- 任何人在群里/私聊问工作进度类问题：
  - "张三这周在干啥"
  - "CRM-V2 现在啥进度"
  - "谁这周加班最多"
  - "李四那个登录 bug 修完没"
  - "王五这周工时多少"
  - "项目 A 谁投入最多"
  - "这个月有哪些任务延期了"
  - "孙七在哪个项目上"
- 提问者必须是被查询人的 leader 或更高（权限校验）

## 依赖

- `lark-cli base`：查 worklogs / tasks / projects / members
- `lark-cli contact`：识别提问者身份，做权限校验
- `lark-cli im`：回消息（支持卡片）

## 查询能力（5 个维度）

### 1. 查人（Who）

**问题示例**：
- "张三这周在干啥"
- "李四今天填日报了吗"
- "王五这周加班几天"

**AI 翻译**：
```json
{
  "type": "member_report",
  "member": "张三",
  "time_range": "this_week",
  "group_by": "project"
}
```

**回复示例**：
```
👤 张三 · 本周（8/10-8/14）

总工时 40h，主要在干 CRM-V2（22h，55%）

按项目：
• CRM-V2     22h  ████████░░  登录重构 90%
• APP-V3     10h  ████░░░░░░  推送接入 40%
• 日常        8h  ███░░░░░░░  会议/面试

任务进度：
✅ 客户列表 bug 已上线
🚧 登录重构 60→90%
🚧 推送通知 20→40%
⚠️ Android 推送通道卡了 5 天

明天计划：完成登录联调（T001 明天到期）
```

### 2. 查项目（What）

**问题示例**：
- "CRM-V2 现在啥进度"
- "APP-V3 这周谁在干"
- "数据中台这个月投入了多少"

**回复示例**：
```
📦 CRM-V2 客户管理系统改版

整体进度 70%（月初 40%，↑30）
本周投入 22h：张三 12h / 王五 6h / 孙七 4h

里程碑：
✅ 客户列表 bug 修复（8/12 上线）
🟡 登录模块联调（计划 8/15，预计延到 8/18）
⏳ 客户详情页（等设计稿）

风险：
🔴 登录模块延期 3 天，SSO 接口比预期复杂
🟡 孙七的设计稿预计明天交，已经压了前端 2 天

下一个关键节点：8/18 登录提测
```

### 3. 查进度（How）

**问题示例**：
- "T001 那个登录任务怎么样了"
- "李四那个 bug 修完没"
- "哪些任务本周到期但还没做完"

**回复示例**：
```
🎯 T001 登录模块重构

负责人：张三
项目：CRM-V2
状态：🟡 进行中
进度：90%（上周 60%）
已用工时：28h（预估 16h，超了 12h）
截止：2026-08-15（明天）

最近 3 天工作：
• 8/13 对接 SSO 接口 4h
• 8/12 修复 token 并发 bug 4h
• 8/11 写单元测试 3h

卡点：SSO 文档和实际不一致，走了弯路
预计完成：8/18（延期 3 天）
```

### 4. 查工时统计（How much）

**问题示例**：
- "谁这周加班最多"
- "研发组这周总工时多少"
- "王五这个月休了几天假"
- "CRM-V2 到目前为止一共烧了多少工时"

**回复示例**：
```
⏱️ 研发组 · 本周工时榜

1. 张三   44h  🔥 加班 2 天
2. 王五   42h  🔥 加班 1 天
3. 李四   40h
4. 孙七   38h
5. 赵六   36h

平均 40h，总投入 200h
其中 CRM-V2 占 55%（110h），APP-V3 占 25%（50h）

⚠️ 张三连续加班 2 天，建议关注
```

### 5. 查风险/卡点（Risk）

**问题示例**：
- "现在有哪些阻塞任务"
- "本月有哪些延期的"
- "有什么需要我协调的吗"

**回复示例**：
```
⚠️ 当前阻塞/风险

🔴 高优
1. T004 Android 推送通道
   - 卡了 5 天，等运维审批
   - 影响 APP-V3 8/30 灰度
   - 负责人：张三

🟡 中优
2. T003 客户详情页设计稿延期 2 天
   - 负责人：孙七
   - 下游王五在等

🟢 已解决（本周）
3. T002 客户列表 bug → 已上线
```

## 工作原理

### 第一步：识别提问者权限

```bash
# 通过 open_id 查 member 记录
lark-cli base record-list --table-id members \
  --filter '{"field_name":"open_id","operator":"is","value":["ou_xxx"]}'
```

- 普通员工只能查自己
- leader 可以查下属（含两级）
- 总监/HR 可以查全员
- 权限不够直接回："这个问题需要 @李四 权限，你当前只能查自己和下属 5 人"

### 第二步：自然语言 → 查询意图

用 LLM 把问题解析成结构化 intent：

```json
{
  "type": "member_report|project_status|task_detail|stats|risk_list",
  "targets": ["张三"],
  "time_range": "today|this_week|this_month|last_week|custom",
  "group_by": "project|member|day|task",
  "metrics": ["hours", "progress", "overtime", "blocker"],
  "filters": {"is_overtime": true, "status": "blocked"}
}
```

### 第三步：查多维表

按 intent 组装 lark-cli base 查询，支持：
- 时间范围过滤
- 成员/项目/任务关联过滤
- 聚合（lark-cli base 的 data-query 支持 group by + sum/count）

```bash
lark-cli base +data-query --app-token $APP --table-id worklogs \
  --query '{
    "group_by":[{"field_name":"project"}],
    "metrics":[{"field_name":"hours","aggregation":"sum"}]
  }'
```

### 第四步：组织回复

- 200 字以内（领导没耐心看长文）
- 关键数字加粗或用 emoji
- 有风险的放最前面
- 给下钻入口："想看明细回复'张三日报'"

## 设计原则

- **快**：领导问完 3 秒内有答案
- **准**：数据来自真实日报，不瞎编
- **短**：一段话 + 一张卡片，不写小作文
- **安全**：权限严格，越权不给查
- **可下钻**：回复里带"回复 X 看明细"的引导

## 典型对话流

```
领导：张三这周在干啥
AI：👤 张三本周总工时 40h...（卡片）

领导：他那个登录任务呢
AI：🎯 T001 登录重构 90%，明天到期，预计延期 3 天

领导：为什么延期
AI：从 worklogs 看，主要卡在 SSO 接口...
    8/11 张三在日报里写"SSO 文档与实际不一致"
    8/13 又花了 4h 对接

领导：让李四帮他协调一下运维
AI：✅ 已把这条发给李四，并建了任务 T009"协调 SSO 对接"，
    截止今天下午
```

## 不做什么

- 不做绩效评价（只给数据，不给"这个人最近不行"这种判断）
- 不做工资/薪酬查询
- 不做跨公司数据查询
- 不替领导做决策（只提供信息）

