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
- "Help me prioritize my tasks" / "What should I do first today"
- "There are too many tasks, help me sort them out" / "Which things are most urgent"
- "Plan out today's work" / "Help me make a work plan"
- "Task prioritization" / "priority ranking"
- "There isn't enough time, what can be postponed" / "What must be completed today"
Not just listing a task checklist, butcombining schedule constraints and the urgent/important dimensionsto perform intelligent ranking and provide specifictime-block suggestions(what to do when).
Prerequisites
Only supports user identity. Before execution, ensure authorization:
lark-cli auth login --domain task,calendar
Workflow
task +get-my-tasks ──► 分配给我的未完成任务
task +get-related-tasks ──► 我创建/关注的任务(v1.0.11+)
task +search ──► 关键词搜索(可选,v1.0.11+)
│
calendar +agenda ──► 今日日程(时间约束)
│
▼
AI 分析(紧急/重要矩阵)
│
┌────────────┼────────────┐
▼ ▼ ▼
🔴 紧急重要 🟡 重要不紧急 🟢 紧急不重要
(立刻做) (安排时间做) (委托或快速处理)
│
▼
时间块分配(匹配空闲时段)
│
▼
优先级排序 + 行动建议
Step 1: Determine the target time range
Defaulttoday. Inference rules:
- "Today's tasks" / "What to do first today" → today
- "This week's priorities" / "This week's plan" → this week (Monday–Sunday)
- "Tomorrow's schedule" → tomorrow
# 获取目标日期范围
date "+%Y-%m-%dT00:00:00%z"
date "+%Y-%m-%dT23:59:59%z"
Step 2: Retrieve incomplete tasks
Refer to lark-task/SKILL.md。
Task Retrieval Strategy (v1.0.11+): prefer using list-type capabilities to get the full picture, and use search only when the user provides explicit keywords.
A. Retrieve tasks assigned to me (required):
# 获取分配给我的未完成任务
lark-cli task +get-my-tasks --format json
# 如果只看近期任务,加截止日期过滤
lark-cli task +get-my-tasks --due-end "<end_date>" --format json
B. Retrieve tasks related to me (recommended, v1.0.11+):
# 获取与我相关的未完成任务(我创建的、我关注的,覆盖更广)
lark-cli task +get-related-tasks --include-complete=false --format json
# 仅我创建的任务
lark-cli task +get-related-tasks --created-by-me --include-complete=false --format json
Tip:
+get-related-taskscovers more than+get-my-tasks, and can capture tasks you created but assigned to others, or tasks you follow but are not the owner of. Taking the union of both provides the most comprehensive task view.
C. Search tasks by keyword (optional, when the user specifies keywords, v1.0.11+):
# 搜索包含特定关键词的未完成任务
lark-cli task +search --query "<关键词>" --completed=false --format json
# 搜索特定时间范围内到期的任务
lark-cli task +search --due "-1d,+7d" --completed=false --format json
Note: use
+searchonly when the user explicitly provides query keywords. If the user only says "prioritize my tasks" without keywords, prefer methods A/B.
Merge strategy: deduplicate and merge the results of A + B by guid to form a complete task list.
Extract the following for each task from the returned results:
summary: task titledue: due timecreated_at: creation timeupdated_at: last update timecreator: creator (to determine whether it was created by yourself vs assigned by others)
Step 3: Retrieve schedule constraints
Refer to lark-calendar/SKILL.md。
# 获取目标日期的日程
lark-cli calendar +agenda --start "<start>" --end "<end>"
Extract from the schedule:
- Time periods already occupied
- Free time periods (used to allocate task time blocks)
Step 4: AI analysis and ranking
Urgent/Important matrix evaluation rules:
| Dimension | Signal |
|---|---|
| Urgent | Due date is today/tomorrow; overdue; creator is a superior/client |
| Important | Task title keywords ("report", "decision", "launch", "delivery"); associated meeting is today; affects others' progress |
| Not urgent | Due date is in 3 days; no due date and not assigned by others |
| Not important | Task title keywords ("understand", "research", "optional"); no due date and no association |
Classification rules:
🔴 P0 — 紧急且重要(Do First)
· 今天到期 or 已过期
· 关键交付物 or 影响他人进度
🟡 P1 — 重要不紧急(Schedule)
· 截止日期在 2-7 天内
· 需要深度思考或较长时间
🟢 P2 — 紧急不重要(Delegate/Quick Do)
· 今天到期但预计 <30 分钟可完成
· 简单回复、确认类任务
⚪ P3 — 不紧急不重要(Backlog)
· 无截止日期 or 截止日期 >7 天
· 非核心低优先级
Step 5: Time block allocation
Based on the free time slots from Step 3 and the sorting from Step 4, generate time block suggestions:
空闲时段推算:
全天工作时间(09:00-18:00)- 已有日程 = 可用时间块
分配策略:
1. P0 任务优先分配到最早的空闲时段
2. P1 任务分配到较长的连续空闲时段(>1小时)
3. P2 任务分配到碎片时间(会议间隙 30 分钟内)
4. P3 任务不分配时间,放入 Backlog
Step 6: Generate sorting results
## 📋 任务优先级排序({YYYY-MM-DD 星期X})
### 📊 概览
- 📌 共 **N** 项未完成任务
- 🔴 **A** 项紧急重要 | 🟡 **B** 项重要 | 🟢 **C** 项快速处理 | ⚪ **D** 项 Backlog
- ⏰ 今日可用工作时间:**X 小时**(扣除 Y 场会议)
### 🔴 P0 — 立刻做(紧急且重要)
| # | 任务 | 截止 | 建议时间段 | 理由 |
|---|------|------|-----------|------|
| 1 | 提交 Q2 预算报告 | 今天 18:00 | 09:00-10:30 | 今日截止,需 1.5h |
| 2 | 回复客户技术方案 | 已过期 | 10:30-11:30 | 已过期,影响客户进度 |
### 🟡 P1 — 安排时间做(重要不紧急)
| # | 任务 | 截止 | 建议时间段 | 理由 |
|---|------|------|-----------|------|
| 3 | 撰写技术设计文档 | 周五 | 14:00-16:00 | 需要深度思考,安排午后 |
| 4 | 准备周一评审材料 | 下周一 | 明天处理 | 时间充裕,今天优先 P0 |
### 🟢 P2 — 快速处理(<30min)
| # | 任务 | 预估时间 | 建议时间段 |
|---|------|---------|-----------|
| 5 | 确认会议纪要 | 10min | 11:30-11:40(会前间隙) |
| 6 | 审阅 PR | 20min | 16:00-16:20 |
### ⚪ P3 — Backlog(可推迟)
- 调研竞品 XX 功能(无截止日期)
- 整理个人笔记(非紧急)
### ⏰ 今日时间规划
09:00 ███████ Submit Q2 budget report (P0) 10:30 ███████ Reply to client technical proposal (P0) 11:30 ██ Confirm meeting minutes (P2) 12:00 ░░░░░░ Lunch break 13:00 ████ Product requirements review (📅 Meeting) 14:00 █████████ Write technical design document (P1) 16:00 ███ Review PR (P2) 16:30 ████ Technical proposal discussion (📅 Meeting) 17:30 ░░░░ Buffer time
### 💡 建议
- {如果 P0 任务过多} "今天 P0 任务较多,建议与{上级/相关人}沟通是否可以延期 XX"
- {如果有冲突} "任务 X 和日程 Y 时间冲突,建议..."
- {如果任务乐观估计时间 > 可用时间} "今日可用时间不足以完成所有 P0 任务,建议优先处理第 1、2 项"
Permission table
| Step | Command | Required scope | Required |
|---|---|---|---|
| Get tasks | task +get-my-tasks |
task:task:read |
✅ Required |
| Related tasks | task +get-related-tasks |
task:task:read |
Recommended (v1.0.11+) |
| Search tasks | task +search |
task:task:read |
Optional (v1.0.11+) |
| Get calendar | calendar +agenda |
calendar:calendar.event:read |
✅ Required |
Reference
- lark-shared — Authentication, permissions (required reading)
- lark-calendar —
+agendaDetailed usage - lark-task —
+get-my-tasksDetailed usage