@amaster.ai/pi-lark 0.1.2-beta.40 → 0.1.2-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/skills/lark-apps/SKILL.md +10 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +1 -1
- package/skills/lark-apps/references/lark-apps-db.md +2 -2
- package/skills/lark-calendar/SKILL.md +89 -31
- package/skills/lark-calendar/references/lark-calendar-create.md +7 -39
- package/skills/lark-calendar/references/lark-calendar-room-find.md +5 -9
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +67 -210
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-update.md +2 -7
- package/skills/lark-doc/SKILL.md +1 -1
- package/skills/lark-doc/references/lark-doc-fetch.md +4 -2
- package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
- package/skills/lark-doc/references/lark-doc-whiteboard.md +4 -0
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +34 -0
- package/skills/lark-doc/references/lark-doc-xml.md +3 -2
- package/skills/lark-drive/SKILL.md +7 -3
- package/skills/lark-drive/references/lark-drive-delete.md +12 -0
- package/skills/lark-drive/references/lark-drive-files-list.md +27 -2
- package/skills/lark-drive/references/lark-drive-inspect.md +2 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
- package/skills/lark-drive/references/lark-drive-push.md +32 -5
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
- package/skills/lark-drive/references/lark-drive-workflow.md +2 -1
- package/skills/lark-mail/SKILL.md +12 -9
- package/skills/lark-mail/references/lark-mail-forward.md +1 -1
- package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
- package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
- package/skills/lark-mail/references/lark-mail-reply.md +1 -1
- package/skills/lark-mail/references/lark-mail-watch.md +1 -1
- package/skills/lark-markdown/SKILL.md +3 -2
- package/skills/lark-markdown/references/lark-markdown-create.md +22 -2
- package/skills/lark-minutes/references/lark-minutes-download.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-search.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-summary.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-todo.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-update.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-upload.md +10 -10
- package/skills/lark-shared/SKILL.md +18 -0
- package/skills/lark-slides/references/asset-planning.md +16 -4
- package/skills/lark-slides/references/lark-slides-whiteboard.md +31 -30
- package/skills/lark-slides/references/planning-layer.md +31 -1
- package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +1 -1
- package/skills/lark-slides/references/xml-format-guide.md +50 -1
- package/skills/lark-slides/references/xml-schema-quick-ref.md +1 -1
- package/skills/lark-task/references/lark-task-create.md +14 -1
- package/skills/lark-vc/references/lark-vc-recording.md +0 -2
- package/skills/lark-vc-agent/SKILL.md +13 -10
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +64 -36
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +7 -7
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +5 -2
- package/skills/lark-wiki/SKILL.md +4 -2
- package/skills/lark-wiki/references/lark-wiki-node-get.md +1 -1
- package/skills/lark-wiki/references/lark-wiki-node-list.md +9 -2
- package/skills/lark-calendar/references/lark-calendar-agenda.md +0 -78
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +0 -124
- package/skills/lark-calendar/references/lark-calendar-search-event.md +0 -29
|
@@ -1,206 +1,95 @@
|
|
|
1
1
|
# 预约/改约日程或会议、查询/搜索可用会议室的工作流
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 执行摘要
|
|
4
4
|
|
|
5
|
-
- **第一步永远是判断任务类型:新建日程,还是编辑已有日程。**
|
|
6
|
-
- **编辑已有日程时,必须先定位目标日程或实例的 `event_id`。**
|
|
7
|
-
- **默认做智能助理,不做表单填写机。**
|
|
8
|
-
- **新建流先补默认值,编辑流先继承已定位日程信息。**
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
- **模糊时间或无时间信息**:先 `+suggestion` 产出候选时间块;若需要会议室,再把这些时间块批量交给 `+room-find`,将“候选时间 + 对应可用会议室”一次性展示给用户选择。
|
|
14
|
-
- **BLOCKING REQUIREMENT: 只要面临时间方案(模糊时间/无时间)或会议室方案(需要会议室)的选择,必须先向用户展示选项并等待用户明确确认,绝对禁止在未获用户确认的情况下直接执行创建新日程或更新既有日程。**
|
|
15
|
-
- **用户选中了 `+suggestion` 返回的候选时间块后,不要再次调用 `+freebusy`。** 用户确认后直接进入最终落地操作:创建新日程,或更新既有日程。
|
|
16
|
-
- **当用户说“查会议室”“找会议室”“搜可用会议室”时,默认意图是查会议室可用性,不是检索会议室资源名录。**
|
|
17
|
-
- **必须按顺序执行。** 不要跳过“任务类型判定”“目标日程定位(编辑流)”“补默认值/继承基线信息”“判断时间明确性”这些前置步骤。
|
|
18
|
-
|
|
19
|
-
> **💡 核心原则:做智能助理,充分利用默认值规则(如默认标题、时长、参与人等)自动补全信息。极力避免像“表单填写机”一样频繁打断并反问用户,仅在必须决策的冲突或无法唯一确定的场景下才发起询问。**
|
|
5
|
+
- **第一步永远是判断任务类型:新建日程,还是编辑已有日程。**
|
|
6
|
+
- **编辑已有日程时,必须先定位目标日程或实例的 `event_id`。**
|
|
7
|
+
- **默认做智能助理,不做表单填写机。** 能根据上下文补全的默认值就直接补全,仅在必须决策的冲突或无法唯一确定的场景下才发起询问。
|
|
8
|
+
- **新建流先补默认值,编辑流先继承已定位日程信息。**
|
|
9
|
+
- **明确时间** → 进入 [明确时间分支](./lark-calendar-schedule-clear-time.md)
|
|
10
|
+
- **模糊时间或无时间信息** → 进入 [模糊时间分支](./lark-calendar-schedule-fuzzy-time.md)
|
|
11
|
+
- **BLOCKING REQUIREMENT**: 面临时间方案或会议室方案的选择时,必须先向用户展示选项并等待确认,禁止未经确认直接创建/更新日程。
|
|
12
|
+
- **必须按顺序执行。** 不要跳过"任务类型判定""目标日程定位(编辑流)""补默认值/继承基线信息""判断时间明确性"这些前置步骤。
|
|
20
13
|
|
|
21
14
|
## 严禁行为
|
|
22
15
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- **严禁在编辑已有日程时跳过目标定位步骤。**
|
|
27
|
-
-
|
|
28
|
-
- **不要在用户完全没给时间时,直接反问“你想约什么时候”。** 先补一个合理时间范围,再进入 `+suggestion`。
|
|
29
|
-
- **不要在“需要会议室 + 时间模糊”的场景下,先让用户只选时间。** 应先批量查出每个候选时间对应的可用会议室,再让用户一次性完成选择。
|
|
30
|
-
- **不要在用户已经选中 `+suggestion` 候选时间后,再重复调用 `+freebusy`。**
|
|
31
|
-
- **不要在用户未明确说出城市时,仅凭园区/办公室名自动补城市。**
|
|
32
|
-
- **严禁在面临时间方案或会议室方案的选择时(模糊时间、无时间或需要会议室),未经用户确认就擅自创建新日程或更新既有日程。**
|
|
16
|
+
- **严禁在未读取对应子命令文档前直接调用命令。**
|
|
17
|
+
- **严禁在尚未判断"新建"还是"编辑"之前,就直接进入创建日程或查会议室动作。**
|
|
18
|
+
- **严禁把带有既有日程锚点 + 修改动词的请求当成新建日程。**
|
|
19
|
+
- **严禁在编辑已有日程时跳过目标定位步骤。** 未拿到唯一 `event_id` 前,不得调用 `+update`。
|
|
20
|
+
- **严禁在面临时间/会议室方案选择时,未经用户确认就擅自创建/更新日程。**
|
|
33
21
|
|
|
34
22
|
## 适用场景
|
|
35
23
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- “明天下午3点约个日程/日历”
|
|
43
|
-
- “把明天上午的日程‘产品发布会’加上 小明
|
|
44
|
-
- “给下周一的周会换个会议室”
|
|
45
|
-
- “把这个日程改到明天下午,并加上学清 F201”
|
|
24
|
+
- "帮我约个会" / "下周找时间和 XX 开会"
|
|
25
|
+
- "帮我订/找/搜索一个可用会议室"
|
|
26
|
+
- "明天下午3点约个日程"
|
|
27
|
+
- "把明天上午的日程加上 小明"
|
|
28
|
+
- "给下周一的周会换个会议室"
|
|
29
|
+
- "把这个日程改到明天下午,并加上学清 F201"
|
|
46
30
|
|
|
47
31
|
## 核心概念
|
|
48
32
|
|
|
49
|
-
- **会议室是日程的一种参与人(attendee / resource),不能脱离日程单独预定。**
|
|
50
|
-
- **预定或查找会议室,均需先确定时间块。**
|
|
51
|
-
|
|
52
|
-
## CRITICAL 约束
|
|
53
|
-
|
|
54
|
-
- **在调用任何具体的 CLI 子命令(如 `+room-find`、`+suggestion`、`+freebusy`、`+create`)前,必须先读取其对应的 Markdown 文档。** 禁止仅凭记忆组装命令参数,以确保符合各命令最新的业务约束和格式规范。
|
|
55
|
-
- **当用户说“查会议室”“找会议室”“搜可用会议室”等,默认意图是查询会议室可用性,而不是检索会议室资源名录。**
|
|
56
|
-
- **必须严格按照下方【工作流】的步骤顺序完成任务。特别是单独查会议室时,若无明确时间,强制先走“模糊时间/无时间信息”分支调用 `+suggestion`。**
|
|
33
|
+
- **会议室是日程的一种参与人(attendee / resource),不能脱离日程单独预定。**
|
|
34
|
+
- **预定或查找会议室,均需先确定时间块。**
|
|
35
|
+
- **当用户说"查会议室""找会议室",默认意图是查会议室可用性,不是检索会议室资源名录。**
|
|
57
36
|
|
|
58
37
|
## 任务类型判定
|
|
59
38
|
|
|
60
39
|
| 类型 | 典型语言信号 | 第一动作 |
|
|
61
40
|
|------|--------------|----------|
|
|
62
|
-
| 新建日程 |
|
|
63
|
-
| 编辑已有日程 |
|
|
64
|
-
|
|
65
|
-
进一步规则:
|
|
41
|
+
| 新建日程 | "约个会""安排会议""新建日程""订个会议室开会" | 补默认值,再进入时间判断 |
|
|
42
|
+
| 编辑已有日程 | "给某日程加人/删人/加会议室""把某日程改到…""换会议室" | 先定位目标 `event_id` |
|
|
66
43
|
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
## 工作流
|
|
71
|
-
|
|
72
|
-
### 1. 编辑已有日程:先定位目标日程
|
|
44
|
+
规则:
|
|
45
|
+
- 只要同时出现**既有日程锚点**(标题、时间段、`这个日程`、`这场会`)和**修改动词**(添加、移除、改到、换),默认判定为编辑。
|
|
46
|
+
- 对重复性日程的编辑,必须先定位到对应实例的 `event_id`。
|
|
73
47
|
|
|
74
|
-
|
|
48
|
+
## 编辑流:先定位目标日程
|
|
75
49
|
|
|
76
50
|
定位规则:
|
|
51
|
+
- 优先利用用户给出的标题、日期、时间范围等锚点,通过 `+agenda`、`+search-event` 或实例视图缩小范围
|
|
52
|
+
- 命中多个候选日程时,必须向用户展示候选项并要求确认
|
|
53
|
+
- 重复性日程必须继续定位到该次实例的 `event_id`
|
|
77
54
|
|
|
78
|
-
|
|
79
|
-
- 如果命中多个候选日程,必须向用户展示候选项并要求确认,禁止自行猜测。
|
|
80
|
-
- 如果是重复性日程的某一次实例,必须继续定位到该次实例的 `event_id`。
|
|
55
|
+
编辑流分支路由:
|
|
81
56
|
|
|
82
|
-
|
|
57
|
+
| 编辑子场景 | 下一步 |
|
|
58
|
+
|-----------|--------|
|
|
59
|
+
| 仅增删普通参会人/群组,不改时间,不涉及会议室 | 直接 `+update`(详见 [lark-calendar-update.md](./lark-calendar-update.md)) |
|
|
60
|
+
| 新增会议室,不改时间 | 基于已定位日程 start/end → [明确时间分支](./lark-calendar-schedule-clear-time.md) |
|
|
61
|
+
| 只改时间,不涉及会议室 | 判断时间明确性 → 对应分支 |
|
|
62
|
+
| 既改时间,又新增/更换会议室 | 先确定最终时间 → 再查会议室 → 落地 |
|
|
83
63
|
|
|
84
|
-
|
|
85
|
-
- **新增会议室,但不改时间**:必须基于已定位日程的当前 `start/end` 作为时间块执行 `+room-find`,不能因为用户没重复说时间就退回“无时间信息”。
|
|
86
|
-
- **既改时间,又新增会议室**:必须先处理时间,拿到最终候选时间块后,再基于该时间执行 `+room-find`;最终只增量添加新会议室,不自动删除已有会议室。
|
|
87
|
-
- **既改时间,又更换会议室**:必须先处理时间,拿到最终候选时间块后,再基于该时间执行 `+room-find`;只有在用户明确表达“更换”时,最终才执行“移除旧会议室 + 添加新会议室”。
|
|
88
|
-
- **只改时间,不涉及会议室**:沿用下方时间工作流,但最终落地必须是 `+update`,不是 `+create`。
|
|
64
|
+
## 新建日程:智能推断默认值
|
|
89
65
|
|
|
90
|
-
|
|
91
|
-
|
|
66
|
+
- **标题**:根据上下文自动生成;如无法推断,默认"会议"
|
|
67
|
+
- **参会人**:如未指定,默认仅用户自己
|
|
68
|
+
- **时长**:基于上下文推断;默认 30 分钟
|
|
69
|
+
- **无时间信息**:默认推断合理区间(如"今天"或"近两天"),进入时间推荐流程,禁止询问用户
|
|
92
70
|
|
|
93
|
-
|
|
94
|
-
- **参会人**:如未明确指定其他人,默认参会人仅为**用户自己**
|
|
95
|
-
- **时长**:基于会议类型和上下文动态推断;如无法推断,默认为 30 分钟
|
|
96
|
-
- **无任何时间信息**:默认推断一个合理区间(如“今天”或“近两天”),并进入时间推荐流程,禁止询问用户
|
|
71
|
+
搜索参与人出现多个结果无法唯一确定时,必须询问用户并记录长期记忆。
|
|
97
72
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### 3. 判断时间是否明确
|
|
101
|
-
|
|
102
|
-
这一步判断的是**最终要落地的目标时间**,不是只看用户原句里有没有重复说时间。
|
|
73
|
+
## 判断时间是否明确
|
|
103
74
|
|
|
104
75
|
时间基准规则:
|
|
76
|
+
- **新建流**:使用用户给出的时间,或默认补全出的时间范围
|
|
77
|
+
- **编辑流且不改时间**:已定位日程的当前 `start/end` 就是明确时间
|
|
78
|
+
- **编辑流且改时间**:用户想改到的新时间;若表达模糊,进入模糊时间分支
|
|
79
|
+
**注意**: 在执行修改日程/会议时间的任务时,必须先获取原日程的持续时长。如果用户只提供了新的开始时间,你必须根据原时长自动计算出新的结束时间,严格保持原时长不变,禁止擅自改变原日程的时长。
|
|
105
80
|
|
|
106
|
-
|
|
107
|
-
- **编辑流且不改时间**:已定位日程的当前 `start/end` 就是时间基准。后续如需查会议室,直接使用这个明确时间块。
|
|
108
|
-
- **编辑流且改时间**:用户想改到的新时间才是时间基准;若表达模糊,则进入 `+suggestion`。
|
|
109
|
-
|
|
110
|
-
分两类处理:
|
|
111
|
-
|
|
112
|
-
- **明确时间**:如“明天下午3点”
|
|
113
|
-
- **模糊时间**:如“明天下午”“下周找个时间”
|
|
114
|
-
|
|
115
|
-
### 4. 明确时间
|
|
116
|
-
|
|
117
|
-
明确时间时,需先判断是否需要会议室,如果需要,提前查询会议室;然后判断是否有时间冲突。这里的“明确时间”既可以来自用户直接表达,也可以来自已定位日程的原始时间。
|
|
118
|
-
详见 [`+room-find`](./lark-calendar-room-find.md) 与 [`+freebusy`](./lark-calendar-freebusy.md)。
|
|
81
|
+
## 分支路由
|
|
119
82
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
lark-
|
|
123
|
-
|
|
124
|
-
--attendee-ids "<ids>" \
|
|
125
|
-
--city "<city>" \
|
|
126
|
-
--building "<building>" \
|
|
127
|
-
--floor "<F2>" \
|
|
128
|
-
--room-name "<room_name>"
|
|
129
|
-
|
|
130
|
-
# 2. 查询当前用户及其他参会人忙闲
|
|
131
|
-
# (如果有多名参会人,需分别调用查询:--user-id "<ou_xxx>")
|
|
132
|
-
lark-cli calendar +freebusy --start "<start>" --end "<end>"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
规则:
|
|
136
|
-
|
|
137
|
-
- **参会人过多或包含群组时的处理**:
|
|
138
|
-
- 如果参与人过多(例如超过 5 人),为避免高耗时,仅需查询**当前用户(自己)**及少数核心人员的忙闲状态即可。
|
|
139
|
-
- 如果参与人中包含**群组**,无需展开群组成员查询其忙闲状态。
|
|
140
|
-
- **编辑已有日程且不改时间,只新增会议室时**:这里的 `--slot` 必须来自已定位日程的当前 `start/end`。
|
|
141
|
-
- **编辑已有日程且既改时间又加会议室时**:这里的 `--slot` 必须来自候选新时间,而不是旧时间;如果用户是“新增会议室”,后续落地只做添加,不删除旧会议室。
|
|
142
|
-
- **如果没有冲突**:直接让用户选择会议室(如需),然后进入最终落地操作:创建新日程,或更新既有日程
|
|
143
|
-
- **如果有冲突**:必须先说明冲突情况,询问用户继续选择这个时间还是换个时间
|
|
144
|
-
- **如果说换个时间**:放弃当前时间,转入【模糊时间】流程,调用 `+suggestion` 推荐多个可用时间块
|
|
145
|
-
- **如果继续选择这个时间**:直接让用户选择会议室(如需),然后进入最终落地操作:创建新日程,或更新既有日程
|
|
146
|
-
- 位置信息要优先拆到结构化字段:用户明确说了城市才提取 `--city`;`--building` 不要再重复携带城市前缀。
|
|
147
|
-
- 参数归类顺序应为:`city/building/floor` > `floor + room-name` 复合表达 > `room-name`。像 `2L`、`2F` 这类更像楼层或区域定位的短词,优先视为 `--floor`,不要默认当作 `--room-name`。像 `学清2层` 这种表达,通常拆为 `--building "学清"` 与 `--floor "F2"`。
|
|
148
|
-
- 会议室名要做轻量归一化:`木星会议室` -> `--room-name "木星"`;`会议室 02` / `02会议室` -> `--room-name "02"`。
|
|
149
|
-
- 对 `F3-05` / `F5-07` / `3楼-08` 这类复合表达,若能稳定识别楼层与会议室号,应优先提取为 `--floor + --room-name`,不要把整段直接退化成 `--room-name`。
|
|
150
|
-
|
|
151
|
-
### 5. 模糊时间或无时间信息
|
|
152
|
-
|
|
153
|
-
先调用:
|
|
154
|
-
详见 [`+suggestion`](./lark-calendar-suggestion.md);若需要会议室,再结合 [`+room-find`](./lark-calendar-room-find.md)。
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
lark-cli calendar +suggestion \
|
|
158
|
-
--start "<range_start>" \
|
|
159
|
-
--end "<range_end>" \
|
|
160
|
-
--attendee-ids "<ids>" \
|
|
161
|
-
--duration-minutes <n> \
|
|
162
|
-
--event-rrule "<rrule>"
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
规则:
|
|
83
|
+
| 判定结果 | 下一步读取 |
|
|
84
|
+
|----------|-----------|
|
|
85
|
+
| 明确时间 | [schedule-clear-time.md](./lark-calendar-schedule-clear-time.md) |
|
|
86
|
+
| 模糊时间 / 无时间信息 | [schedule-fuzzy-time.md](./lark-calendar-schedule-fuzzy-time.md) |
|
|
166
87
|
|
|
167
|
-
|
|
168
|
-
- 编辑流中,若用户表达的是“改到明天下午”“下周找个时间再约”这类模糊新时间,则基于用户期望的新时间范围调用 `+suggestion`;不要继续沿用旧时间。
|
|
169
|
-
- **不需要会议室**:获取多个推荐时间块后,直接向用户展示候选时间,用户确认后进入最终落地操作:创建新日程,或更新既有日程。
|
|
170
|
-
- **需要会议室**:获取多个候选时间块后,**不要急于让用户选时间**。先将这些时间块一次性交给 `calendar +room-find` 批量查询可用会议室,然后将【候选时间】与【对应的可用会议室列表】结构化分行展示,让用户一次性完成选择。(**注意:即使用户最初只说“查会议室”,且未带时间,也必须强制走到这一步,先 suggestion 再 room-find**)。
|
|
171
|
-
- 用户一旦选择了 `+suggestion` 返回的时间块,**无需再次调用 `+freebusy`**
|
|
172
|
-
|
|
173
|
-
### 6. 模糊语义消解与长期记忆构建
|
|
174
|
-
|
|
175
|
-
针对用户专属的时间表达习惯或存在歧义的时间场景,严禁主观臆断。典型例子包括:
|
|
176
|
-
|
|
177
|
-
- “上班后”
|
|
178
|
-
- “下班前”
|
|
179
|
-
- 未明确上下午的 12 小时制时间表达
|
|
180
|
-
|
|
181
|
-
处理规则:
|
|
182
|
-
|
|
183
|
-
- 应主动澄清真实意图,而不是自行猜测
|
|
184
|
-
- 当用户给出澄清后,应将这类个性化定义沉淀为长期偏好,推动后续直接理解类似表达
|
|
185
|
-
|
|
186
|
-
### 7. 重复性日程
|
|
187
|
-
|
|
188
|
-
若当前会议为重复性日程,调用 `+room-find` 时需携带 `--event-rrule`。
|
|
189
|
-
|
|
190
|
-
必须检查返回中的:
|
|
191
|
-
|
|
192
|
-
- `reserve_until_time`
|
|
193
|
-
|
|
194
|
-
若候选会议室的可预约上限早于重复规则覆盖范围,**不要直接按原规则落地日程**。应:
|
|
195
|
-
|
|
196
|
-
- 向用户明确说明该会议室最长可约至何时。
|
|
197
|
-
- 若用户确认继续选用该会议室,你必须**自动将日程的重复规则结束时间缩短**至该 `reserve_until_time`,以防止会议室预约失败。
|
|
198
|
-
|
|
199
|
-
### 8. 落地日程变更
|
|
88
|
+
## 落地日程变更
|
|
200
89
|
|
|
201
90
|
用户确认后调用:
|
|
202
|
-
|
|
203
|
-
|
|
91
|
+
- 新建 → [`+create`](./lark-calendar-create.md)
|
|
92
|
+
- 编辑 → [`+update`](./lark-calendar-update.md)
|
|
204
93
|
|
|
205
94
|
```bash
|
|
206
95
|
lark-cli calendar +create \
|
|
@@ -214,52 +103,20 @@ lark-cli calendar +update \
|
|
|
214
103
|
--start "<start>" \
|
|
215
104
|
--end "<end>" \
|
|
216
105
|
--add-attendee-ids "omm_new_room"
|
|
217
|
-
|
|
218
|
-
# 仅当用户明确要求“更换会议室”时,才同时移除旧会议室并添加新会议室
|
|
219
|
-
lark-cli calendar +update \
|
|
220
|
-
--event-id "<event_id>" \
|
|
221
|
-
--remove-attendee-ids "omm_old_room" \
|
|
222
|
-
--add-attendee-ids "omm_new_room"
|
|
223
106
|
```
|
|
224
107
|
|
|
225
|
-
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
- 编辑流中如果是“新增会议室但不改时间”,必须先基于目标日程原始时间查到可用会议室,再 `+update --add-attendee-ids "<room_id>"`;默认保留已有会议室。
|
|
231
|
-
- 编辑流中如果是“既改时间又新增会议室”,顺序必须是:先确定最终时间,再查会议室,最后一次性 `+update` 时间与新增会议室;默认保留已有会议室。
|
|
232
|
-
- 编辑流中如果是“既改时间又更换会议室”,顺序必须是:先确定最终时间,再查会议室,最后一次性 `+update` 时间、移除旧会议室并添加新会议室。
|
|
233
|
-
- 需要会议室时,将选中的 `room_id` 写入最终落地请求的参与人列表
|
|
234
|
-
- 展示会议室候选时,必须保留 CLI/API 返回的完整 `room_name` 原值;允许附加“推断说明”,但禁止用摘要名、楼层及会议室号、容量/视频标签重组后的名称替换原值
|
|
235
|
-
|
|
236
|
-
## 用户展示建议
|
|
237
|
-
|
|
238
|
-
当向用户展示多个时间块及对应的多个会议室时,**必须使用结构化清晰的格式排版**。**严禁将时间与会议室名称放在同一行展示**,必须分行并使用编号列表呈现可用会议室,严禁将所有信息揉成一团纯文本堆叠。
|
|
239
|
-
|
|
240
|
-
**推荐展示格式参考:**
|
|
241
|
-
|
|
242
|
-
```text
|
|
243
|
-
## 2026-03-27 周五
|
|
244
|
-
|
|
245
|
-
[选项 1] 14:00 - 15:00(参会人均空闲)
|
|
246
|
-
可用会议室:
|
|
247
|
-
1. 学清嘉创大厦B座-F2-02🎦(7人)
|
|
248
|
-
2. 学清嘉创大厦B座-F2-05🎦(10人)
|
|
249
|
-
|
|
250
|
-
[选项 2] 16:00 - 17:00(参会人均空闲)
|
|
251
|
-
可用会议室:
|
|
252
|
-
1. 学清嘉创大厦B座-F3-01🎦(6人)
|
|
253
|
-
2. 学清嘉创大厦B座-F3-06🎦(8人)
|
|
254
|
-
|
|
255
|
-
💡 请回复您倾向的选项编号以及对应的会议室序号,我来为您完成预定。
|
|
256
|
-
```
|
|
108
|
+
落地规则:
|
|
109
|
+
- 编辑流必须始终沿用前面定位得到的目标 `event_id`;禁止在最后一步重新猜测目标日程
|
|
110
|
+
- 编辑流中"新增会议室"默认仅追加 `room_id`,不移除已有会议室
|
|
111
|
+
- 仅当用户明确说"更换会议室"时,才同时 `--remove-attendee-ids` 旧 + `--add-attendee-ids` 新
|
|
112
|
+
- 需要会议室时,将选中的 `room_id` 写入参与人列表
|
|
257
113
|
|
|
258
114
|
## 参考
|
|
259
115
|
|
|
116
|
+
- [lark-calendar-schedule-clear-time.md](./lark-calendar-schedule-clear-time.md)
|
|
117
|
+
- [lark-calendar-schedule-fuzzy-time.md](./lark-calendar-schedule-fuzzy-time.md)
|
|
260
118
|
- [lark-calendar-room-find.md](./lark-calendar-room-find.md)
|
|
261
|
-
- [lark-calendar-freebusy.md](./lark-calendar-freebusy.md)
|
|
262
119
|
- [lark-calendar-suggestion.md](./lark-calendar-suggestion.md)
|
|
263
120
|
- [lark-calendar-create.md](./lark-calendar-create.md)
|
|
264
|
-
- [lark-
|
|
265
|
-
- [
|
|
121
|
+
- [lark-calendar-update.md](./lark-calendar-update.md)
|
|
122
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# calendar +suggestion
|
|
2
2
|
|
|
3
|
-
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md)。
|
|
4
3
|
|
|
5
4
|
根据非明确时间或一段时间范围,推荐多个可用时间块方案。帮助用户解决协调时间的难题。
|
|
6
5
|
|
|
@@ -8,8 +7,6 @@
|
|
|
8
7
|
- ✅ **当用户需求涉及寻找时间块,且时间未完全确定**(如`今天`、`近三天`、`本周`、`下午`, `无时间描述`)时,调用此工具来获取推荐时间块给用户选择(包括但不限于预约日程)。
|
|
9
8
|
- ❌ **当用户已经明确了具体的时间点**(如`今天下午3点`),则**不需要**调用此工具
|
|
10
9
|
|
|
11
|
-
需要的scopes: ["calendar:calendar.free_busy:read"]
|
|
12
|
-
|
|
13
10
|
## 命令
|
|
14
11
|
|
|
15
12
|
```bash
|
|
@@ -121,5 +118,4 @@ lark-cli calendar +suggestion \
|
|
|
121
118
|
## 参考
|
|
122
119
|
|
|
123
120
|
- [lark-calendar-create](lark-calendar-create.md) — 创建日程
|
|
124
|
-
- [lark-calendar
|
|
125
|
-
- [lark-calendar](../SKILL.md) — 日历完整 API
|
|
121
|
+
- [lark-calendar](../SKILL.md) — skill 入口与路由
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# calendar +update
|
|
2
2
|
|
|
3
|
-
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
3
|
|
|
5
4
|
更新既有日程字段,或独立增量添加/移除参会人和会议室。
|
|
6
5
|
|
|
7
6
|
`+update` 支持三类互相独立的动作:更新日程字段、添加参会人/会议室、移除参会人/会议室。它们可以单独执行,也可以在同一次命令中组合执行。
|
|
8
7
|
|
|
9
|
-
需要的 scopes: ["calendar:calendar.event:update"]
|
|
10
|
-
|
|
11
8
|
## 推荐命令
|
|
12
9
|
|
|
13
10
|
```bash
|
|
@@ -66,8 +63,8 @@ lark-cli calendar +update \
|
|
|
66
63
|
- 如需替换某个参与人、群组或会议室,使用 `--remove-attendee-ids <旧ID>` + `--add-attendee-ids <新ID>`。
|
|
67
64
|
- 会议室是 resource attendee,必须使用 `omm_` ID 添加到参会人列表,不能脱离日程单独预定。
|
|
68
65
|
- 更新重复性日程时,必须先确定操作范围(仅此次/全部/此次及后续),然后按 [重复性日程操作规范](lark-calendar-recurring.md) 执行。
|
|
69
|
-
- 如果需要验证更新结果,等待至少 2 秒后再查询,避免同步延迟导致读到旧数据。
|
|
70
66
|
- 当同一次命令组合多个动作时,执行顺序为“日程字段 -> 移除参会人 -> 添加参会人”。若中途失败,不会自动回滚已成功步骤;错误信息会说明已完成的步骤。
|
|
67
|
+
**⚠️ 高风险操作**: 修改时间时必须先读取原日程时长并计算新 end。如果 end 计算错误,会导致日程时长变化,用户会直接感知,禁止擅自改变原日程的时长。
|
|
71
68
|
|
|
72
69
|
## 高级用法(完整 API 命令)
|
|
73
70
|
|
|
@@ -98,8 +95,6 @@ lark-cli calendar +update \
|
|
|
98
95
|
|
|
99
96
|
## 参考
|
|
100
97
|
|
|
101
|
-
- [lark-calendar](../SKILL.md) --
|
|
102
|
-
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
98
|
+
- [lark-calendar](../SKILL.md) -- skill 入口与路由
|
|
103
99
|
- [lark-calendar-schedule-meeting](lark-calendar-schedule-meeting.md) -- 预约/改约会议与会议室工作流
|
|
104
100
|
- [lark-calendar-room-find](lark-calendar-room-find.md) -- 查找可用会议室
|
|
105
|
-
- [lark-calendar-freebusy](lark-calendar-freebusy.md) -- 查询忙闲
|
package/skills/lark-doc/SKILL.md
CHANGED
|
@@ -14,7 +14,7 @@ metadata:
|
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
# 常用示例
|
|
17
|
-
lark-cli docs +fetch --doc "文档URL或token"
|
|
17
|
+
lark-cli docs +fetch --doc "文档URL或token;若 URL 存在 #share-... 锚点,优先使用锚点方式读取,不要全文拉取"
|
|
18
18
|
lark-cli docs +create --content '<title>标题</title><p>内容</p>'
|
|
19
19
|
lark-cli docs +update --doc "文档URL或token" --command append --content '<p>内容</p>'
|
|
20
20
|
```
|
|
@@ -17,8 +17,10 @@ lark-cli docs +fetch --doc Z1Fj...tnAc --detail with-ids
|
|
|
17
17
|
lark-cli docs +fetch --doc Z1Fj...tnAc --scope outline --max-depth 3
|
|
18
18
|
|
|
19
19
|
# 按 block id 区间精读
|
|
20
|
-
lark-cli docs +fetch --doc Z1Fj...tnAc
|
|
21
|
-
|
|
20
|
+
lark-cli docs +fetch --doc Z1Fj...tnAc --scope range --start-block-id blkA --end-block-id blkB --detail with-ids
|
|
21
|
+
|
|
22
|
+
# URL 带 #share 选区锚点时自动局部读取
|
|
23
|
+
lark-cli docs +fetch --doc 'docURL#share-anchor'
|
|
22
24
|
|
|
23
25
|
# 读整个章节(以标题 id 为锚点,自动展开到下一个同级/更高级标题前)
|
|
24
26
|
lark-cli docs +fetch --doc Z1Fj...tnAc \
|
|
@@ -9,6 +9,20 @@
|
|
|
9
9
|
> `mindnotes nodes create` 是新增/更新节点命令,**不是**新建一个新的思维笔记。
|
|
10
10
|
> 如果用户要**新建思维笔记**,不要走本链路,改走 [lark-doc-whiteboard](lark-doc-whiteboard.md)。
|
|
11
11
|
|
|
12
|
+
## 获取 `mindnote_id`
|
|
13
|
+
|
|
14
|
+
`--mindnote-id` 传 **Mindnote 文档 token**,不是节点 ID。`lark-cli mindnotes` 只负责读取和写入思维笔记内部节点。
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# 用户给了 Mindnote URL,或给了可能包着 Mindnote 的 Wiki URL
|
|
18
|
+
lark-cli drive +inspect --url "<mindnote_or_wiki_url>"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
处理规则:
|
|
22
|
+
|
|
23
|
+
- 普通 Mindnote URL:`drive +inspect` 返回的 Mindnote token 可作为 `--mindnote-id`。
|
|
24
|
+
- Wiki URL:不要把 `/wiki/` 路径里的 wiki token 当作 `--mindnote-id`;必须先 `drive +inspect` 解包,确认底层类型是 `mindnote` 后再使用返回的真实 token。直接把 wiki token 传给 `mindnotes nodes list` 通常会返回 `3410003 resource not found`。
|
|
25
|
+
|
|
12
26
|
## 命令
|
|
13
27
|
|
|
14
28
|
```bash
|
|
@@ -96,8 +110,8 @@ lark-cli mindnotes nodes create \
|
|
|
96
110
|
|
|
97
111
|
1. 先判断用户目标是不是“新建一个思维笔记”。
|
|
98
112
|
2. 如果是新建思维笔记,切到 [lark-doc-whiteboard](lark-doc-whiteboard.md)。
|
|
99
|
-
3.
|
|
100
|
-
4.
|
|
113
|
+
3. 如果是操作已有思维笔记,先按上方「获取 `mindnote_id`」确认已拿到 Mindnote 文档 token。
|
|
114
|
+
4. 确认目标类型是 **Mindnote** 后,把真实 Mindnote token 作为 `--mindnote-id`。
|
|
101
115
|
5. 先执行 `mindnotes nodes list`,确认目标 `parent_id`。
|
|
102
116
|
6. 新增子节点时,在 `nodes[]` 里传 `parent_id`;更新已有节点时,在 `nodes[]` 里传已有 `node_id`。
|
|
103
117
|
7. 再执行 `mindnotes nodes create`。
|
|
@@ -110,4 +124,5 @@ lark-cli mindnotes nodes create \
|
|
|
110
124
|
|
|
111
125
|
- [lark-doc-fetch](lark-doc-fetch.md) — 获取文档内容
|
|
112
126
|
- [lark-doc-whiteboard](lark-doc-whiteboard.md) — 新建思维笔记走画板链路
|
|
127
|
+
- [lark-drive](../../lark-drive/SKILL.md) — 解析 Mindnote / Wiki 等云空间资源
|
|
113
128
|
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
@@ -44,6 +44,8 @@ SubAgent 插入 SVG。
|
|
|
44
44
|
</whiteboard>
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
如果 Mermaid 已在本地文件中,可写成 `<whiteboard type="mermaid" path="@diagram.mmd"></whiteboard>`;CLI 会在写入前读取文件并展开为内联内容。
|
|
48
|
+
|
|
47
49
|
### 步骤 2B: SubAgent 使用 SVG 插入图表
|
|
48
50
|
|
|
49
51
|
主 Agent 启动 SubAgent,让它用 `docs +create` / `docs +update` 插入:
|
|
@@ -56,6 +58,8 @@ SubAgent 插入 SVG。
|
|
|
56
58
|
</whiteboard>
|
|
57
59
|
```
|
|
58
60
|
|
|
61
|
+
如果 SVG 已在本地文件中,可写成 `<whiteboard type="svg" path="@diagram.svg"></whiteboard>`;PlantUML 文件同理使用 `<whiteboard type="plantuml" path="@sequence.puml"></whiteboard>`。
|
|
62
|
+
|
|
59
63
|
Sub Agent 需要携带以下的最小上下文,以及后续的 [SVG 设计 Workflow] 章节指南:
|
|
60
64
|
|
|
61
65
|
- doc token、插入位置(标题 / block_id / command)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# XML 扩展块补充说明
|
|
2
|
+
|
|
3
|
+
本文件用于补充说明 block XML 扩展能力。常用标签和通用规则见 [`lark-doc-xml.md`](lark-doc-xml.md);后续新增其他 block 说明时可继续追加到本文件。
|
|
4
|
+
|
|
5
|
+
## OKR block
|
|
6
|
+
|
|
7
|
+
OKR block 可用 XML 格式完整表达。创建前先参考 [`lark-okr`](../../lark-okr/SKILL.md) 确认可用周期;创建时只写 root-only `<okr cycle-id="..."/>` 挂载已有 OKR,不构造 Objective/KR/Progress 子树。
|
|
8
|
+
|
|
9
|
+
获取时,XML 结构示例如下:
|
|
10
|
+
|
|
11
|
+
```xml
|
|
12
|
+
<okr cycle-id="" cycle-name="CYCLE_NAME" user-name="USER_NAME">
|
|
13
|
+
<okr-objective objective-id="OBJECTIVE_ID" status="normal" percent="80" score="75">
|
|
14
|
+
<p>O 描述</p>
|
|
15
|
+
<okr-progress>
|
|
16
|
+
<p>O 进展</p>
|
|
17
|
+
<checkbox done="true">事项</checkbox>
|
|
18
|
+
</okr-progress>
|
|
19
|
+
<okr-key-result key-result-id="KEY_RESULT_ID" status="risk" percent="60" score="80">
|
|
20
|
+
<p>KR 描述</p>
|
|
21
|
+
<okr-progress>
|
|
22
|
+
<p>KR 进展</p>
|
|
23
|
+
</okr-progress>
|
|
24
|
+
</okr-key-result>
|
|
25
|
+
</okr-objective>
|
|
26
|
+
</okr>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- `cycle-id` 仅用于创建时挂载已有当前周期 OKR;`cycle-name`、`user-name` 只读。
|
|
30
|
+
- `objective-id`、`key-result-id` 为只读业务 ID,更新已有 OKR 时保持不变。
|
|
31
|
+
- `okr-objective` / `okr-key-result`
|
|
32
|
+
- 可更新 `status`、`percent`、`score`;`percent` / `score` 取值 0-100,`status` 取值 `unset`/`normal`/`risk`/`extended`。
|
|
33
|
+
- 不可更新 objective 和 key-result 内容描述。
|
|
34
|
+
- `okr-progress` 承载进展内容,支持更新。支持内嵌 `<p>`、`<checkbox>`、`<grid>`、`<img>`。
|
|
@@ -41,12 +41,13 @@ p, h1-h9, ul, ol, li, table, thead, tbody, tr, th, td, blockquote, pre, code, hr
|
|
|
41
41
|
文档中可嵌入外部资源块(属于容器标签的特殊形式),需要额外语法创建:
|
|
42
42
|
|
|
43
43
|
- `<img>` — `<img href="https://..."/>` 上传网络图片
|
|
44
|
-
- `<whiteboard>` — 简单图由 SubAgent 直接插入 `<whiteboard type="svg">完整自包含 SVG</whiteboard
|
|
44
|
+
- `<whiteboard>` — 简单图由 SubAgent 直接插入 `<whiteboard type="svg">完整自包含 SVG</whiteboard>`;也可用本地文件简写 `<whiteboard type="svg" path="@diagram.svg"></whiteboard>`、`<whiteboard type="mermaid" path="@flow.mmd"></whiteboard>`、`<whiteboard type="plantuml" path="@sequence.puml"></whiteboard>`,CLI 会写入前展开为内联内容;复杂图使用 `<whiteboard type="blank"></whiteboard>` 先创建空白画板,再按 [`lark-doc-whiteboard.md`](lark-doc-whiteboard.md) 启动 SubAgent 调用 `lark-whiteboard` 写入;
|
|
45
45
|
- `<sheet>` — `<sheet type="blank"></sheet>` 空白;`<sheet sheet-id="SID" token="TOKEN"></sheet>` 复制已有
|
|
46
46
|
- `<task>` — `<task task-id="GUID"></task>`,必传 task-id(任务 guid)
|
|
47
47
|
- `<chat_card>` — `<chat_card chat-id="CHAT_ID"></chat_card>`,必传 chat-id
|
|
48
48
|
- `<sub-page-list>` — `<sub-page-list></sub-page-list>` 子页面列表块;仅 wiki 文档可插入
|
|
49
|
-
- bitable、base_ref、synced_reference、synced_source
|
|
49
|
+
- bitable、base_ref、synced_reference、synced_source — 不可创建,仅支持移动
|
|
50
|
+
- `<okr>` — 创建时仅支持 root-only `<okr cycle-id="..."/>` 挂载已有 OKR;完整结构与字段规则见 [`lark-doc-xml-extended-blocks.md`](lark-doc-xml-extended-blocks.md#okr-block)
|
|
50
51
|
|
|
51
52
|
# 四、块级复制与移动
|
|
52
53
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-drive
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: "飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token
|
|
4
|
+
description: "飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。"
|
|
5
5
|
metadata:
|
|
6
6
|
requires:
|
|
7
7
|
bins: ["lark-cli"]
|
|
@@ -21,8 +21,10 @@ metadata:
|
|
|
21
21
|
## 快速决策
|
|
22
22
|
|
|
23
23
|
- 用户要**复制文档 / 创建副本 / 另存为副本**时,使用 `lark-cli drive files copy`。先用 `lark-cli schema drive.files.copy --format json` 确认参数;如果来源是 wiki URL/token,先用 `lark-cli drive +inspect` 获取底层 `token` 和 `type`,不要把 wiki token 直接当 `file_token`。`params.file_token` 传源文档 token,`data.folder_token` 传目标文件夹 token,`data.name` 传副本名称,`data.type` 传源文件类型(如 `docx` / `sheet` / `bitable` / `slides`)。示例:`lark-cli drive files copy --params '{"file_token":"<DOC_TOKEN>"}' --data '{"folder_token":"<FOLDER_TOKEN>","name":"<COPY_NAME>","type":"docx"}'`。如返回 `confirmation_required`,按 `lark-shared` 高风险审批协议向用户确认后,在原命令末尾追加 `--yes` 重试。
|
|
24
|
+
- 用户要**识别飞书 / doubao 云空间 URL 的类型和 token**时,可以先按 URL 路径形态做轻量判断;当路径已明确指向 docx / sheet / bitable / slides / file / folder 等资源时,可直接提取对应 token/type。传入 wiki URL、需要识别标题或 canonical URL、URL/token 有歧义,或后续操作依赖底层真实资源时,再使用 `lark-cli drive +inspect --url '<url>'` 进行识别;具体用法、失败处理和边界见 [`references/lark-drive-inspect.md`](references/lark-drive-inspect.md)。
|
|
25
|
+
- 高风险写操作(删除、公开权限修改、owner 转移、版本删除/回滚、批量移动/覆盖/同步)必须同时满足三个条件才执行:目标已解析为该操作可直接使用的执行对象,执行细节已明确到可直接调用命令(例如删除的 file-token/type、公开权限修改的共享范围、owner 转移的目标 owner、版本删除/回滚的 version id、移动/覆盖/同步的目标位置和冲突策略),且用户在本轮明确确认执行这些具体目标和执行细节。用户只说“删除没用的文件”“开放/共享给大家”“改成开放”“覆盖/移动这些”只表示目标状态;先只读发现并列出候选、权限档位或执行方案,停止等待用户确认。
|
|
24
26
|
- 用户要**检查 / 治理文档权限、公开范围、链接分享、外部访问、复制下载权限、密级标签、owner 转移**,或要“权限风险报告、收紧权限、申请查看 / 编辑权限、转移 / 批量转移 owner”,必须先阅读 [`references/lark-drive-workflow.md`](references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`permission_governance`](references/lark-drive-workflow-permission-governance.md) workflow。
|
|
25
|
-
- 用户要**整理云盘 / 文件夹 / 文档库 / 知识库 / 个人文档库**,或要“盘点目录结构、找出未归档/临时/重复/空目录、生成整理方案”,必须先阅读 [`references/lark-drive-workflow-
|
|
27
|
+
- 用户要**整理云盘 / 文件夹 / 文档库 / 知识库 / 个人文档库**,或要“盘点目录结构、找出未归档/临时/重复/空目录、生成整理方案”,必须先阅读 [`references/lark-drive-workflow.md`](references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`knowledge_organize`](references/lark-drive-workflow-knowledge-organize.md) workflow。默认只生成方案;创建目录、移动资源、申请权限都必须单独确认。
|
|
26
28
|
- 用户要**搜文档 / Wiki / 电子表格 / 多维表格 / 云空间(云盘/云存储)对象**,优先使用 `lark-cli drive +search`。自然语言里"最近我编辑过的"、"我创建的"(→ `--created-by-me`,原始创建者语义)、"我负责/owner 的"(→ `--mine`,owner 语义)、"最近一周我打开过的 xxx"、"某人 owner 的 docx" 等直接映射到扁平 flag,避免手写嵌套 JSON。
|
|
27
29
|
- 用户要**根据文档评论定位正文位置**,例如 根据评论 review 文档、根据评论内容回看文档、区分多处相同引用文本时,对于 docx 类型(`file_type=docx`)的文档支持通过 `need_relation=true` 返回评论位置,其他类型暂不支持,具体用法需要先阅读 [`references/lark-drive-comment-location.md`](references/lark-drive-comment-location.md) 了解。
|
|
28
30
|
- 用户给出 doubao.com 的云空间资源 URL/token,或明确提到豆包里的 file/folder/docx/sheet/bitable/wiki 资源时,仍按资源类型、URL 路径和 token 路由到本 skill;不要因为域名不是飞书而回退到 WebFetch。
|
|
@@ -162,7 +164,7 @@ lark-cli drive <resource> <method> [flags] # 调用 API
|
|
|
162
164
|
|
|
163
165
|
> **重要**:使用原生 API 时,必须先运行 `schema` 查看 `--data` / `--params` 参数结构,不要猜测字段格式。
|
|
164
166
|
>
|
|
165
|
-
> **高频原生命令:** 读取 Drive 文件夹清单时使用 `drive files list
|
|
167
|
+
> **高频原生命令:** 读取 Drive 文件夹清单时使用 `drive files list`,使用前先读 [`references/lark-drive-files-list.md`](references/lark-drive-files-list.md),按模板通过 `--params` 传参并手动处理分页;不要把 `--page-all` 输出直接交给 JSON 解析脚本。
|
|
166
168
|
|
|
167
169
|
### files
|
|
168
170
|
|
|
@@ -204,10 +206,12 @@ lark-cli drive <resource> <method> [flags] # 调用 API
|
|
|
204
206
|
### file.statistics
|
|
205
207
|
|
|
206
208
|
- `get` — 获取文件统计信息
|
|
209
|
+
- 获取 docx / 文件统计信息时,建议优先使用 typed flags:`lark-cli drive file.statistics get --file-token <token> --file-type <type> --format json`;`--params` JSON 也支持,适合批量拼装或 raw 参数场景。
|
|
207
210
|
|
|
208
211
|
### file.view_records
|
|
209
212
|
|
|
210
213
|
- `list` — 获取文档的访问者记录
|
|
214
|
+
- 查看 docx 最近访问记录、返回 open_id、最多 N 条时,建议优先使用 typed flags:`lark-cli drive file.view_records list --file-token <docx_token> --file-type docx --page-size <N> --viewer-id-type open_id --format json`;`--params` JSON 也支持,适合批量拼装、分页续跑或 raw 参数场景。
|
|
211
215
|
|
|
212
216
|
### file.comment.reply.reactions
|
|
213
217
|
|
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
|
|
8
8
|
> [!CAUTION]
|
|
9
9
|
> 这是**高风险写操作**。CLI 层要求显式传 `--yes`;如果用户已经明确要求删除且目标明确,直接执行并带上 `--yes`。
|
|
10
|
+
> “目标明确”表示用户给出了可解析为 `file-token` + `type` 的具体 URL/token,或对你刚列出的可解析资源列表逐项/整批确认删除。按“没用的”“临时的”“疑似重复的”“全部旧文件”等描述搜索出来的候选属于待确认目标;这类请求先列候选、说明筛选依据和影响范围,然后停止等待确认。
|
|
11
|
+
|
|
12
|
+
## 删除前门槛
|
|
13
|
+
|
|
14
|
+
执行 `drive +delete --yes` 前同时满足:
|
|
15
|
+
|
|
16
|
+
| 条件 | 可执行信号 |
|
|
17
|
+
|------|------------|
|
|
18
|
+
| 具体目标 | 单个可解析为 `file-token` + `type` 的 URL/token,或用户确认过且可解析的资源列表 |
|
|
19
|
+
| 执行确认 | 用户在本轮明确说确认删除这些具体目标 |
|
|
20
|
+
|
|
21
|
+
若缺少任一条件,使用 `drive +search`、`drive +inspect` 或只读 API 收集候选并回复待确认清单;启发式规则(打开时间、标题模式、owner、文件类型等)只能作为候选筛选依据,不能升级为删除确认。执行 `drive +delete` 时必须使用解析后的 `--file-token` 和 `--type`。
|
|
10
22
|
|
|
11
23
|
## 命令
|
|
12
24
|
|