SuperAPI AI Directory

lark-workflow-workload-balancer

Office & productivity

View repository

Updated 10-16 10:16

About this skill

Team Workload Balancer Workflow

CRITICAL — Before starting, you MUST first use the Read tool to read lark-shared/SKILL.md, which contains authentication, permission handling, and security rules.

Applicable Scenarios

  • "Look at everyone's workload on the team" / "Who is relatively free and can take on new tasks"
  • "Team workload balancing" / "Workload analysis"
  • "Who is busiest right now" / "Task allocation suggestions"
  • "Team Workload report" / "Manpower allocation situation"
  • "Who should this task be assigned to" / "Team workload balancer"

Complementary to the existing task-prioritizer(personal perspective: how to schedule my tasks), this Skill is aimed at theteam manager perspective: see clearly each person's workload and reasonably allocate new tasks.

Prerequisites

Supports user identity. Before execution, ensure authorization:

lark-cli auth login --domain task,calendar,contact

Note: Viewing others' tasks and schedules requires the corresponding permissions. If a member's data cannot be obtained, it will be marked as "data unavailable".

Workflow

团队成员列表 ──► contact +search(逐个确认 user_id)
                       │
          ┌────────────┼────────────┐
          ▼            ▼            ▼
    task(各成员    calendar       approval
     待办数量)    (日程密度)   (审批量,可选)
          │            │            │
          └────────────┼────────────┘
                       ▼
                AI 综合评估
                       │
            ┌──────────┼──────────┐
            ▼          ▼          ▼
        负载热力图  任务分配建议  风险预警

Step 1: Determine the team member list

Method A — User specifies the member list:

The user says "look at the workload of Zhang San, Li Si, and Wang Wu", search and confirm one by one:

lark-cli contact +search --query "<姓名>" --format json

Method B — Obtain by department:

# 获取部门成员列表
lark-cli contact users find_by_department --params '{"department_id":"<dept_id>"}' --format json

Note: Obtaining department members requires administrative permissions. If there are no permissions, prompt the user to manually list the team members.

Step 2: Obtain each member's task volume

Refer to lark-task/SKILL.md。

Method A — Search tasks by assignee (recommended, v1.0.11+):

# 按负责人搜索未完成任务(逐人查询)
lark-cli task +search --assignee "<user_open_id>" --completed=false --format json

# 搜索本周到期的任务
lark-cli task +search --assignee "<user_open_id>" --completed=false --due "-0d,+7d" --format json

Tip: The newly added +search in v1.0.11 supports the --assignee parameter to query by assignee, breaking through the limitation that +get-my-tasks can only query one's own tasks. Requires each member's open_id(obtained through Step 1's contact +search ).

Method B — Query only the current user's tasks (fallback solution):

# 获取当前登录用户的未完成任务
lark-cli task +get-my-tasks --format json

⚠️ Permission restriction: If +search --assignee does not have permission to query others' tasks, degrade to the user manually entering each member's task data, or mark the results as "data restricted".

Extract from the task data:

  • Number of incomplete tasks
  • Number of tasks due this week
  • Number of overdue tasks
  • Total estimated work hours of tasks (if there is a work hours field)

Step 3: Obtain each member's schedule density

Refer to lark-calendar/SKILL.md。

# 查询忙闲状态(freebusy,推荐方式)
lark-cli calendar freebusy list --data '{
  "time_min": "<本周一>",
  "time_max": "<本周日>",
  "user_ids": ["<user_id_1>", "<user_id_2>", "<user_id_3>"]
}' --format json

or query schedules person by person:

lark-cli calendar +agenda --start "<start>" --end "<end>"

Calculate from the busy/free data:

  • Total meeting duration this week
  • Proportion of meetings in working time
  • Total amount of free time slots

Step 4: AI comprehensive evaluation

Load scoring model:

负载分 = 任务权重 × 任务分 + 会议权重 × 会议分

任务分 = (未完成任务数 × 1 + 本周到期 × 2 + 已过期 × 3) / 基准值
会议分 = 会议时间占工作时间比例 / 30%

基准值 = 团队平均任务数 × 1.2

Load levels:

Level Score range Display Description
Low 0 - 0.5 🟢 Has more free time, can take on new tasks
Moderate 0.5 - 0.8 🟡 Normal load
High 0.8 - 1.2 🟠 Approaching full load
Overload > 1.2 🔴 Overloaded, needs relief

Step 5: Generate report

## 👥 团队负载报告({日期})

### 负载热力图

| 成员 | 待办 | 本周到期 | 已过期 | 会议占比 | 负载 |
|------|------|---------|--------|---------|------|
| 张三 | 12 | 5 | 2 | 45% | 🔴 过载 |
| 李四 | 8 | 3 | 0 | 30% | 🟡 适中 |
| 王五 | 4 | 1 | 0 | 20% | 🟢 低 |
| 小赵 | 9 | 4 | 1 | 55% | 🔴 过载 |
| 小钱 | 5 | 2 | 0 | 15% | 🟢 低 |

### 📊 负荷分布

Zhang San ████████████████░░░░ 80% 🔴 Xiao Zhao ██████████████████░░ 90% 🔴 Li Si ████████████░░░░░░░░ 60% 🟡 Xiao Qian ████████░░░░░░░░░░░░ 40% 🟢 Wang Wu ██████░░░░░░░░░░░░░░ 30% 🟢


### ⚠️ 风险预警
- 🔴 **张三** 有 2 项已过期任务,且本周会议占比 45%,建议减轻负担
- 🔴 **小赵** 会议占比 55%,几乎无法专注处理任务
- 🟡 团队平均负载 {X}%,整体偏{高/正常/低}

### 💡 任务分配建议

如果有新任务需要分配:
1. **优先考虑**:🟢 王五(负载最低,空闲时间充足)
2. **次选**:🟢 小钱(负载较低,本周日程稀疏)
3. **避免分配给**:🔴 张三、小赵(已过载)

### 📋 建议行动
1. 与张三沟通,协助处理 2 项过期任务或延期
2. 尝试减少小赵的会议(建议取消非必要参加的会议)
3. 将张三的 {任务X} 转移给王五

Fault tolerance mechanism

Exception scenario Handling method
Unable to query others' tasks Ask the user to manually enter each member's task count, or analyze based only on the calendar
freebusy has no permission Degrade to task-dimension-only analysis
Department query has no permission Ask the user to manually list the team member roster
A member's data is unavailable Mark as "data unavailable", analyze the remaining members normally

Permission table

Step Command Required scope Required
Search users contact +search contact:user.base:readonly ✅ Required
Department members contact users find_by_department contact:user.employee:readonly Optional
Search tasks task +search task:task:read Recommended (v1.0.11+)
My tasks task +get-my-tasks task:task:read Alternative
Busy/free query calendar freebusy list calendar:calendar.freebusy:read Recommended
Calendar query calendar +agenda calendar:calendar.event:read Alternative

Reference