@amaster.ai/pi-lark 0.1.5 → 0.1.6

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.
Files changed (144) hide show
  1. package/package.json +3 -3
  2. package/skills/lark-approval/references/lark-approval-initiate.md +2 -5
  3. package/skills/lark-approval/references/lark-approval-instances-initiated.md +6 -0
  4. package/skills/lark-approval/references/lark-approval-tasks-query.md +9 -0
  5. package/skills/lark-approval/references/lark-approval-tasks-rollback.md +8 -2
  6. package/skills/lark-apps/SKILL.md +25 -7
  7. package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
  8. package/skills/lark-apps/references/lark-apps-automation.md +164 -0
  9. package/skills/lark-apps/references/lark-apps-db-execute.md +186 -2
  10. package/skills/lark-apps/references/lark-apps-db.md +3 -3
  11. package/skills/lark-apps/references/lark-apps-get.md +43 -0
  12. package/skills/lark-apps/references/lark-apps-html-publish.md +7 -2
  13. package/skills/lark-apps/references/lark-apps-init.md +1 -2
  14. package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
  15. package/skills/lark-apps/references/lark-apps-release-create.md +3 -1
  16. package/skills/lark-apps/references/lark-apps-role.md +133 -0
  17. package/skills/lark-base/SKILL.md +7 -3
  18. package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
  19. package/skills/lark-base/references/lark-base-cell-value.md +9 -4
  20. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +7 -7
  21. package/skills/lark-base/references/lark-base-dashboard.md +11 -2
  22. package/skills/lark-base/references/lark-base-data-query.md +9 -7
  23. package/skills/lark-base/references/lark-base-field-create.md +4 -2
  24. package/skills/lark-base/references/lark-base-field-json.md +52 -15
  25. package/skills/lark-base/references/lark-base-field-update.md +4 -2
  26. package/skills/lark-base/references/lark-base-view-set-filter.md +3 -1
  27. package/skills/lark-calendar/SKILL.md +89 -31
  28. package/skills/lark-calendar/references/lark-calendar-create.md +8 -39
  29. package/skills/lark-calendar/references/lark-calendar-room-find.md +5 -9
  30. package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
  31. package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
  32. package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
  33. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +67 -210
  34. package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -5
  35. package/skills/lark-calendar/references/lark-calendar-update.md +2 -7
  36. package/skills/lark-doc/SKILL.md +1 -1
  37. package/skills/lark-doc/references/lark-doc-fetch.md +4 -2
  38. package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
  39. package/skills/lark-doc/references/lark-doc-whiteboard.md +4 -0
  40. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
  41. package/skills/lark-doc/references/lark-doc-xml.md +3 -2
  42. package/skills/lark-drive/SKILL.md +20 -8
  43. package/skills/lark-drive/references/lark-drive-comment-location.md +16 -4
  44. package/skills/lark-drive/references/lark-drive-comments-guide.md +16 -8
  45. package/skills/lark-drive/references/lark-drive-delete.md +35 -11
  46. package/skills/lark-drive/references/lark-drive-export.md +39 -10
  47. package/skills/lark-drive/references/lark-drive-files-list.md +27 -2
  48. package/skills/lark-drive/references/lark-drive-inspect.md +2 -0
  49. package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
  50. package/skills/lark-drive/references/lark-drive-member-add.md +1 -1
  51. package/skills/lark-drive/references/lark-drive-move.md +5 -3
  52. package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
  53. package/skills/lark-drive/references/lark-drive-pull.md +3 -3
  54. package/skills/lark-drive/references/lark-drive-push.md +33 -6
  55. package/skills/lark-drive/references/lark-drive-status.md +12 -14
  56. package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
  57. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
  58. package/skills/lark-drive/references/lark-drive-workflow.md +2 -1
  59. package/skills/lark-event/SKILL.md +2 -1
  60. package/skills/lark-event/references/lark-event-approval.md +170 -0
  61. package/skills/lark-im/SKILL.md +5 -4
  62. package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
  63. package/skills/lark-im/references/lark-im-messages-send.md +1 -1
  64. package/skills/lark-mail/SKILL.md +12 -9
  65. package/skills/lark-mail/references/lark-mail-forward.md +1 -1
  66. package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
  67. package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
  68. package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
  69. package/skills/lark-mail/references/lark-mail-reply.md +1 -1
  70. package/skills/lark-mail/references/lark-mail-watch.md +1 -1
  71. package/skills/lark-markdown/SKILL.md +3 -2
  72. package/skills/lark-markdown/references/lark-markdown-create.md +22 -2
  73. package/skills/lark-minutes/SKILL.md +19 -4
  74. package/skills/lark-minutes/references/lark-minutes-download.md +0 -2
  75. package/skills/lark-minutes/references/lark-minutes-search.md +0 -2
  76. package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +0 -2
  77. package/skills/lark-minutes/references/lark-minutes-summary.md +0 -2
  78. package/skills/lark-minutes/references/lark-minutes-todo.md +2 -4
  79. package/skills/lark-minutes/references/lark-minutes-update.md +0 -2
  80. package/skills/lark-minutes/references/lark-minutes-upload.md +10 -10
  81. package/skills/lark-shared/SKILL.md +26 -8
  82. package/skills/lark-sheets/SKILL.md +98 -29
  83. package/skills/lark-sheets/references/lark-sheets-batch-update.md +18 -9
  84. package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
  85. package/skills/lark-sheets/references/lark-sheets-chart.md +4 -2
  86. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +2 -0
  87. package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
  88. package/skills/lark-sheets/references/lark-sheets-float-image.md +6 -6
  89. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +12 -3
  90. package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
  91. package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
  92. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +7 -2
  93. package/skills/lark-sheets/references/lark-sheets-range-operations.md +44 -14
  94. package/skills/lark-sheets/references/lark-sheets-read-data.md +3 -3
  95. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +4 -4
  96. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +4 -4
  97. package/skills/lark-sheets/references/lark-sheets-workbook.md +29 -4
  98. package/skills/lark-sheets/references/lark-sheets-write-cells.md +21 -11
  99. package/skills/lark-slides/SKILL.md +29 -18
  100. package/skills/lark-slides/references/asset-planning.md +16 -5
  101. package/skills/lark-slides/references/examples.md +57 -227
  102. package/skills/lark-slides/references/iconpark.md +2 -2
  103. package/skills/lark-slides/references/lark-slides-create.md +21 -2
  104. package/skills/lark-slides/references/lark-slides-media-upload.md +0 -1
  105. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
  106. package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
  107. package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -1
  108. package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
  109. package/skills/lark-slides/references/lark-slides-whiteboard.md +31 -30
  110. package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
  111. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +9 -7
  112. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +4 -4
  113. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +12 -10
  114. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +14 -13
  115. package/skills/lark-slides/references/planning-layer.md +32 -2
  116. package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
  117. package/skills/lark-slides/references/slides_xml_schema_definition.xml +8 -3
  118. package/skills/lark-slides/references/troubleshooting.md +7 -25
  119. package/skills/lark-slides/references/validation-checklist.md +18 -9
  120. package/skills/lark-slides/references/visual-planning.md +4 -3
  121. package/skills/lark-slides/references/xml-format-guide.md +65 -1
  122. package/skills/lark-slides/references/xml-schema-quick-ref.md +7 -3
  123. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +907 -54
  124. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +876 -5
  125. package/skills/lark-task/SKILL.md +1 -0
  126. package/skills/lark-task/references/lark-task-create.md +14 -1
  127. package/skills/lark-vc/SKILL.md +6 -3
  128. package/skills/lark-vc/references/lark-vc-recording.md +0 -2
  129. package/skills/lark-vc/references/vc-domain-boundaries.md +9 -1
  130. package/skills/lark-vc-agent/SKILL.md +25 -15
  131. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +65 -37
  132. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +1 -1
  133. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +8 -8
  134. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +5 -2
  135. package/skills/lark-wiki/SKILL.md +7 -3
  136. package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
  137. package/skills/lark-wiki/references/lark-wiki-move.md +5 -3
  138. package/skills/lark-wiki/references/lark-wiki-node-get.md +1 -1
  139. package/skills/lark-wiki/references/lark-wiki-node-list.md +9 -2
  140. package/skills/lark-calendar/references/lark-calendar-agenda.md +0 -78
  141. package/skills/lark-calendar/references/lark-calendar-freebusy.md +0 -124
  142. package/skills/lark-calendar/references/lark-calendar-search-event.md +0 -29
  143. package/skills/lark-sheets/references/lark-sheets-core-operations.md +0 -103
  144. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +0 -220
@@ -9,6 +9,7 @@
9
9
  - `--json` 必须是 JSON 对象。
10
10
  - 顶层统一使用:`type` + `name` + 类型特有字段。
11
11
  - 所有字段类型都支持可选 `description`;支持纯文本,也支持 Markdown 链接。
12
+ - 字段默认值使用 `default_value`,直接传对应 CellValue;支持范围只有 `text`、`number`、静态 `select`、`datetime`、`user`。清空默认值传 `null`;省略表示创建时不设置、更新时不修改。
12
13
  - 不要使用旧结构:`field_name`、`property`、`ui_type`、数字枚举 `type`。
13
14
  - `+field-update` 使用同样的字段 JSON 结构,但语义是 `PUT`;这是高风险写入操作,建议先 `+field-get` 再按目标状态全量提交,并带 `--yes`。
14
15
  - `type=formula` 或 `type=lookup` 创建/更新前,必须先读对应 guide。
@@ -27,12 +28,12 @@
27
28
 
28
29
  | 类型 | 最小必填字段 | 常见补充字段 |
29
30
  |------|--------------|-------------|
30
- | `text` | `type` `name` | `style.type` |
31
- | `number` | `type` `name` | `style` |
32
- | `select` | `type` `name` | `multiple` + `options`,或 `multiple` + `dynamic_options_source` |
33
- | `datetime` | `type` `name` | `style.format` |
31
+ | `text` | `type` `name` | `style.type` `default_value` |
32
+ | `number` | `type` `name` | `style` `default_value` |
33
+ | `select` | `type` `name` | `multiple` + `options` + 静态 `default_value`,或 `multiple` + `dynamic_options_source` |
34
+ | `datetime` | `type` `name` | `style.format` `default_value` |
34
35
  | `created_at` / `updated_at` | `type` `name` | `style.format` |
35
- | `user` / `group_chat` | `type` `name` | `multiple` |
36
+ | `user` / `group_chat` | `type` `name` | `multiple`;仅 `user` 支持 `default_value` |
36
37
  | `created_by` / `updated_by` | `type` `name` | 无 |
37
38
  | `link` | `type` `name` `link_table` | `bidirectional` `bidirectional_link_field_name` |
38
39
  | `formula` | `type` `name` `expression` | 无 |
@@ -47,31 +48,37 @@
47
48
  ### 3.1 text
48
49
 
49
50
  文本字段;电话、超链接、邮箱、条码也都属于 `text`,通过 `style.type` 区分。
51
+ 支持 `default_value`:静态 Markdown 文本字符串;`phone` style 必须是合法电话号码;`url` style 传一个 Markdown 链接或裸 URL;`email` style 必须是合法邮箱字符串,不要传 Markdown 链接或 `mailto:`。
50
52
 
51
53
  最小写法(默认 `style.type` 为 `plain`):
52
54
 
53
55
  ```json
54
56
  {
55
57
  "type": "text",
56
- "name": "标题"
58
+ "name": "标题",
59
+ "default_value": "默认标题"
57
60
  }
58
61
  ```
59
62
 
60
63
  常用写法:
61
64
 
65
+ 默认值可以是 Markdown 文本
62
66
  ```json
63
67
  {
64
68
  "type": "text",
65
69
  "name": "标题",
66
- "description": "主标题字段"
70
+ "description": "主标题字段",
71
+ "default_value": "未命名"
67
72
  }
68
73
  ```
69
74
 
75
+ `style.type=phone` 时默认值是合法电话号码字符串。
70
76
  ```json
71
77
  {
72
78
  "type": "text",
73
79
  "name": "联系电话",
74
- "style": { "type": "phone" }
80
+ "style": { "type": "phone" },
81
+ "default_value": "+8613800000000"
75
82
  }
76
83
  ```
77
84
 
@@ -79,7 +86,17 @@
79
86
  {
80
87
  "type": "text",
81
88
  "name": "官网",
82
- "style": { "type": "url" }
89
+ "style": { "type": "url" },
90
+ "default_value": "[官网](https://example.com)"
91
+ }
92
+ ```
93
+
94
+ ```json
95
+ {
96
+ "type": "text",
97
+ "name": "邮箱",
98
+ "style": { "type": "email" },
99
+ "default_value": "owner@example.com"
83
100
  }
84
101
  ```
85
102
 
@@ -88,13 +105,15 @@
88
105
  ### 3.2 number
89
106
 
90
107
  数字字段;货币、进度、评分都属于 `number`,通过 `style.type` 区分。
108
+ 支持 `default_value`:静态 JSON number;所有 number style 都按这个规则写。
91
109
 
92
110
  最小写法(默认 `style.type` 为 `plain`):
93
111
 
94
112
  ```json
95
113
  {
96
114
  "type": "number",
97
- "name": "工时"
115
+ "name": "工时",
116
+ "default_value": 8
98
117
  }
99
118
  ```
100
119
 
@@ -118,7 +137,8 @@
118
137
  "precision": 2,
119
138
  "percentage": false,
120
139
  "thousands_separator": true
121
- }
140
+ },
141
+ "default_value": 8
122
142
  }
123
143
  ```
124
144
 
@@ -151,7 +171,8 @@
151
171
  {
152
172
  "type": "number",
153
173
  "name": "完成度",
154
- "style": { "type": "progress", "percentage": true, "color": "Blue" }
174
+ "style": { "type": "progress", "percentage": true, "color": "Blue" },
175
+ "default_value": 0.65
155
176
  }
156
177
  ```
157
178
 
@@ -180,6 +201,7 @@
180
201
  #### 静态选项
181
202
 
182
203
  支持字段:`multiple`、`options`
204
+ 支持 `default_value`:静态选项名数组;即使 `multiple=false` 也写数组,如 `["Todo"]`。
183
205
 
184
206
  默认值 / 约束:
185
207
  - `multiple` 默认 `false`
@@ -189,12 +211,14 @@
189
211
  - `options[].hue` 可用:`Red`、`Orange`、`Yellow`、`Lime`、`Green`、`Turquoise`、`Wathet`、`Blue`、`Carmine`、`Purple`、`Gray` 缺省值为 `Blue`
190
212
  - `options[].lightness` 可用:`Lighter`、`Light`、`Standard`、`Dark`、`Darker` 缺省值为 `Lighter`
191
213
  - 选项里没有 `id`,只有 `name`。
214
+ - 支持 `default_value` 配置:填选项名数组。
192
215
 
193
216
  ```json
194
217
  {
195
218
  "type": "select",
196
219
  "name": "状态",
197
220
  "multiple": false,
221
+ "default_value": ["Todo"],
198
222
  "options": [
199
223
  { "name": "Todo", "hue": "Blue", "lightness": "Lighter" },
200
224
  { "name": "Done", "hue": "Green", "lightness": "Light" }
@@ -205,6 +229,7 @@
205
229
  #### 动态选项
206
230
 
207
231
  支持字段:`multiple`、`dynamic_options_source`
232
+ 动态选项不支持 `default_value`。
208
233
 
209
234
  默认值 / 约束:
210
235
  - `multiple` 默认 `false`
@@ -213,6 +238,7 @@
213
238
  - `dynamic_options_source.field_id` 填来源字段 id 或字段名
214
239
  - `dynamic_options_source` 仅创建支持;更新已有字段时不要传
215
240
  - 引用选项条件 / 级联筛选条件:这个功能在 Base 前端支持,属于 UI-only 属性,OpenAPI 里不支持,CLI 不能读取、创建或更新;不要根据接口返回缺失判断未配置
241
+ - 动态选项不支持配置 `default_value`。
216
242
 
217
243
  ```json
218
244
  {
@@ -229,13 +255,15 @@
229
255
  ### 3.4 datetime
230
256
 
231
257
  手动填写的日期/时间字段。系统时间用 `created_at` / `updated_at`。
258
+ 支持 `default_value`:静态时间字符串,或 `{ "$slot": "record_created_time" }`。`datetime + record_created_time` 是自动填充可编辑单元格;`created_at` 是只读创建时间元信息。
232
259
 
233
260
  最小写法:
234
261
 
235
262
  ```json
236
263
  {
237
264
  "type": "datetime",
238
- "name": "截止时间"
265
+ "name": "截止时间",
266
+ "default_value": "2026-03-24 10:00:00"
239
267
  }
240
268
  ```
241
269
 
@@ -251,7 +279,8 @@
251
279
  {
252
280
  "type": "datetime",
253
281
  "name": "截止时间",
254
- "style": { "format": "yyyy-MM-dd HH:mm" }
282
+ "style": { "format": "yyyy-MM-dd HH:mm" },
283
+ "default_value": { "$slot": "record_created_time" }
255
284
  }
256
285
  ```
257
286
 
@@ -276,12 +305,19 @@
276
305
  ### 3.6 user / group_chat
277
306
 
278
307
  人员字段和群字段都支持 `multiple`。
308
+ `user` 支持 `default_value`:人员 CellValue 数组,元素可用 `{ "id": "ou_xxx" }` 或 `{ "$slot": "current_user" }`;不要猜用户 ID。`group_chat` 不支持默认值。
279
309
 
280
310
  默认值 / 约束:
281
311
  - `multiple` 默认 `true`
312
+ - `user` 字段支持 `default_value` 配置,`group_chat` 字段不支持 `default_value` 配置。
282
313
 
283
314
  ```json
284
- { "type": "user", "name": "负责人", "multiple": true }
315
+ {
316
+ "type": "user",
317
+ "name": "负责人",
318
+ "multiple": true,
319
+ "default_value": [{ "$slot": "current_user" }, { "id": "ou_xxx" }]
320
+ }
285
321
  ```
286
322
 
287
323
  ```json
@@ -488,3 +524,4 @@ Object(对象字段)、Button(按钮字段)、Stage(流程字段)暂
488
524
  - `number` 的精度、货币、进度、评分配置都放在 `style` 下,不要写顶层 `precision`。
489
525
  - `datetime` 是手动日期字段;系统时间请改用 `created_at` / `updated_at`。
490
526
  - `formula` / `lookup` 没读 guide 前不要直接写。
527
+ - 只有 `text`、`number`、静态 `select`、`datetime`、`user` 支持 `default_value`;清空统一传 `"default_value": null`。其他字段类型不要配置默认值。
@@ -11,14 +11,14 @@ lark-cli base +field-update \
11
11
  --base-token <base_token> \
12
12
  --table-id <table_id> \
13
13
  --field-id <field_id> \
14
- --json '{"name":"状态","type":"select","multiple":false,"options":[{"name":"Todo","hue":"Blue","lightness":"Lighter"},{"name":"Doing","hue":"Orange","lightness":"Light"},{"name":"Done","hue":"Green","lightness":"Light"}]}' \
14
+ --json '{"name":"状态","type":"select","multiple":false,"default_value":["Doing"],"options":[{"name":"Todo","hue":"Blue","lightness":"Lighter"},{"name":"Doing","hue":"Orange","lightness":"Light"},{"name":"Done","hue":"Green","lightness":"Light"}]}' \
15
15
  --yes
16
16
 
17
17
  lark-cli base +field-update \
18
18
  --base-token <base_token> \
19
19
  --table-id <table_id> \
20
20
  --field-id <field_id> \
21
- --json '{"name":"负责人","type":"user","multiple":false,"description":"用于标记记录的直接负责人"}' \
21
+ --json '{"name":"负责人","type":"user","multiple":false,"default_value":null,"description":"用于标记记录的直接负责人"}' \
22
22
  --yes
23
23
  ```
24
24
 
@@ -47,6 +47,7 @@ PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
47
47
  - `--json` 必须是 **JSON 对象**,顶层直接传字段定义。
48
48
  - 更新语义是 `PUT`(全量字段配置更新),不要只传零散片段;至少显式包含 `name`、`type`,并补齐该类型所需关键配置。
49
49
  - 所有字段类型都支持可选 `description`;支持纯文本,也支持 Markdown 链接。
50
+ - 需要字段默认值时传 `default_value`,直接使用字段对应 CellValue;传 `null` 清空,省略表示不修改现有默认值。完整规则见 [lark-base-field-json.md](lark-base-field-json.md)。
50
51
  - `select` 更新时:`options` 仍按对象数组传,避免混入无效字段。
51
52
  - `link` 更新限制:
52
53
  - 不能把非 `link` 字段改成 `link`,也不能把 `link` 改成非 `link`。
@@ -59,6 +60,7 @@ PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
59
60
  "name": "状态",
60
61
  "type": "select",
61
62
  "multiple": false,
63
+ "default_value": ["Doing"],
62
64
  "options": [
63
65
  { "name": "Todo", "hue": "Blue", "lightness": "Lighter" },
64
66
  { "name": "Doing", "hue": "Orange", "lightness": "Light" },
@@ -174,11 +174,13 @@ lark-cli base +view-set-filter \
174
174
 
175
175
  - 先读取当前筛选配置,理解现有 `logic` 和 `conditions` 的组合关系;只替换用户要求变更的条件,未提到的条件默认保留。
176
176
  - 优先传字段 id,不要依赖字段名。
177
+ - 拿不准字段 type 或真实取值时,先用 `+field-list` / `+record-list` 确认,再按对应字段类型的 value 写法构造条件;别按字段名猜 type、凭印象猜枚举取值。
177
178
  - 需要清空全部筛选时,直接传 `{"conditions":[]}`。
178
179
 
179
180
  ## 7. 易错点
180
181
 
181
- - 不要再写旧对象风格:`{"field_name":...,"operator":...}`。
182
+ - 本 tuple DSL 由 `+view-set-filter` 与 `+record-list` / `+record-search` 的 `--filter-json` 共用;不要写成 `+data-query` 的对象风格 `{"field_name":...,"operator":...}`(会报校验失败)。
183
+ - 标量类字段(`text` / `number` / `datetime` 等)的 value 用标量、别包成数组(各类型详见 value 写法一节)。
182
184
  - `user` / `group_chat` / `link` 不要写成单个标量。
183
185
  - `empty` / `non_empty` 不要硬塞无意义的 value。
184
186
  - 日期条件稳定写法用 `ExactDate(...)` 或 `Today` / `Yesterday` / `Tomorrow`。
@@ -12,7 +12,7 @@ metadata:
12
12
 
13
13
  开始前先读 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)(认证、权限处理)。
14
14
 
15
- **CRITICAL — 凡涉及预约日程/会议或查询/搜索会议室,第一步 MUST 读 [`references/lark-calendar-schedule-meeting.md`](references/lark-calendar-schedule-meeting.md)。禁止跳过此步直接调用 API 或 Shortcut!**
15
+ **CRITICAL — 凡涉及预约日程/会议室、调整时间或查询/搜索会议室,第一步 MUST 读 [`references/lark-calendar-schedule-meeting.md`](references/lark-calendar-schedule-meeting.md)。仅编辑字段(改标题/描述)或增删参会人(不涉及时间和会议室)时可跳过,直接读 [`references/lark-calendar-update.md`](references/lark-calendar-update.md)。**
16
16
 
17
17
  ## 身份
18
18
 
@@ -30,26 +30,80 @@ lark-cli calendar +agenda --as user
30
30
 
31
31
  | Shortcut | 说明 |
32
32
  |----------|------|
33
- | [`+agenda`](references/lark-calendar-agenda.md) | 查看日程安排(默认今天) |
34
- | [`+search-event`](references/lark-calendar-search-event.md) | 按关键词、时间范围和参会人搜索日程, 仅返回 日程ID/主题/时间等信息,详情需走 `events get` |
33
+ | `+agenda` | 查看日程安排(默认今天) |
35
34
  | [`+meeting`](references/lark-calendar-meeting.md) | 通过日程事件 ID 获取关联的视频会议信息(meeting_id、meeting_note),日程开过视频会议才会有meeting_id |
36
35
  | [`+create`](references/lark-calendar-create.md) | 创建日程并邀请参会人(ISO 8601 时间) |
37
36
  | [`+update`](references/lark-calendar-update.md) | 更新既有日程字段,或独立增量添加/移除参会人和会议室 |
38
- | [`+freebusy`](references/lark-calendar-freebusy.md) | 查询用户主日历的忙闲信息和 RSVP 状态 |
37
+ | `+freebusy` | 查询用户主日历的忙闲信息和 RSVP 状态(纯查询场景;预约场景走 `+suggestion`) |
39
38
  | [`+room-find`](references/lark-calendar-room-find.md) | 针对一个或多个**明确的**时间块查找可用会议室(无明确时间时禁止直接调用,需先走 +suggestion) |
40
39
  | [`+rsvp`](references/lark-calendar-rsvp.md) | 回复日程(接受/拒绝/待定) |
41
40
  | [`+suggestion`](references/lark-calendar-suggestion.md) | 根据非明确时间或一段时间范围,推荐多个可用时间块方案 |
42
41
 
42
+ ### `+get` — 单日程详情
43
+
44
+ 通过 `calendar_id` + `event_id` 获取**单个日程**详情。
45
+
46
+ ```bash
47
+ # calendar_id不传,默认primary
48
+ lark-cli calendar +get --calendar-id <calendar_id> --event-id <event_id>
49
+ ```
50
+
51
+ ### `+search-event` — 按关键词、时间范围和参会人搜索日程
52
+
53
+ 仅返回基础字段(`event_id`/`summary`/`start`/`end` 等),需要详情请走 `+get`。
54
+
55
+ ```bash
56
+ # query 按关键词 可选
57
+ # start/end 按时间范围(ISO 8601 或 YYYY-MM-DD)可选
58
+ # attendee-ids 按参会人(自动识别 ou_ 用户 / oc_ 群聊 / omm_ 会议室前缀)可选
59
+ # page-token 分页游标,用于继续翻页 可选
60
+ # page-size 每页数量,默认 30 可选
61
+ lark-cli calendar +search-event --query "周会" --start 2026-04-20 --end 2026-04-27 --attendee-ids "ou_user1,oc_chat1,omm_room1" --page-token <page_token> --page-size 30
62
+ ```
63
+
64
+ ### `+agenda` — 查看近期日程安排
65
+
66
+ 默认查询当天。结果应整理为按日期分组、按开始时间升序的易读时间线。
67
+
68
+ ```bash
69
+ # start/end 时间范围(ISO 8601 / YYYY-MM-DD / Unix 秒),均可选;默认当天
70
+ # calendar-id 日历 ID(默认primary)可选
71
+ lark-cli calendar +agenda --start 2026-03-10 --end 2026-03-17 --calendar-id <calendar_id>
72
+ ```
73
+
74
+ 注意:
75
+ - 已取消的日程自动过滤;无日程时直接告知"日程清空"。
76
+ - 时间范围超过 40 天会自动拆分查询并合并结果。
77
+
78
+ ### `+freebusy` — 查询主日历忙闲时段和 RSVP 状态
79
+
80
+ 仅返回忙碌时段起止时间,不含日程标题等隐私信息;其他订阅日历不在范围内。
81
+
82
+ ```bash
83
+ # start/end 时间范围(ISO 8601 / YYYY-MM-DD / Unix 秒),均可选;默认当天
84
+ # user-id 目标用户 open_id(ou_ 前缀)可选;默认当前登录用户,bot 身份必须显式指定
85
+ lark-cli calendar +freebusy --start 2026-03-11 --end 2026-03-12 --user-id ou_xxx
86
+ ```
87
+
88
+ 用法提示:
89
+ - **仅判断是否有空** → `+freebusy`;**需要日程详情** → `+agenda`。
90
+ - 检查多人可用性:分别调用并对比,找共同空闲。
91
+ - 预约/改约场景下,调用规则(参与人过多、含群组、来自 `+suggestion` 等)详见 [schedule-clear-time.md § 查询忙闲](references/lark-calendar-schedule-clear-time.md#2-查询忙闲)。
92
+
43
93
  ## 前置条件路由
44
94
 
45
95
  | 场景 | 前置要求 |
46
96
  |------|----------|
47
- | 预约日程/会议、查会议室 | 先读 [lark-calendar-schedule-meeting.md](references/lark-calendar-schedule-meeting.md) |
48
- | 编辑已有日程 | 先定位目标日程 `event_id` |
97
+ | 预约日程/会议、调整时间、查会议室 | 先读 [lark-calendar-schedule-meeting.md](references/lark-calendar-schedule-meeting.md) |
98
+ | 仅编辑字段(标题/描述)或增删参会人 | 先定位 `event_id`,再读 [lark-calendar-update.md](references/lark-calendar-update.md) |
99
+ | 编辑已有日程(涉及时间或会议室) | 先定位目标日程 `event_id`;若是重复性日程,必须定位到具体实例的 `event_id`(禁止使用原重复日程 ID) |
49
100
  | 编辑/删除重复性日程 | 先读 [重复性日程操作规范](references/lark-calendar-recurring.md),按操作范围(仅此次/全部/此次及后续)执行 |
50
- | 删除/修改后验证 | 等待 2 秒再查询(API 最终一致性),不要告知用户你等待了 |
51
101
  | 调用任何 Shortcut | 先读其对应 reference 文档 |
52
102
 
103
+ ## 写操作反馈
104
+
105
+ 创建、更新、删除、RSVP 等写操作完成后,直接基于命令返回结果反馈用户;不要为了“确认是否生效”主动发起二次查询。只有用户明确要求复查,或命令返回信息不足以回答用户问题时,才需要再查询。
106
+
53
107
  ## 核心概念
54
108
 
55
109
  - **日程实例(Instance)**:重复性日程展开后的具体时间实例。「仅此次」操作时使用具体实例的 `event_id`;「全部」或「此次及后续」操作时需对原重复性日程操作(使用原日程 `event_id`),并按需处理例外。
@@ -72,7 +126,8 @@ lark-cli calendar +agenda --as user
72
126
  | 按关键词搜索日程 | 本 skill(`+search-event`) |
73
127
  | 从日程获取关联的视频会议 ID 或用户绑定的会议纪要文档 | 本 skill(`+meeting`) |
74
128
  | 从日程进一步拿 AI 智能纪要 / 逐字稿 / 妙记产物 | 先 `+meeting` 取 `meeting_id`,再 [`vc +detail`](../lark-vc/references/lark-vc-detail.md) → [`note +detail`](../lark-note/references/lark-note-detail.md) / [`minutes +detail`](../lark-minutes/references/lark-minutes-detail.md) |
75
- | 预约/改约日程、添加/移除参会人、添加/更换会议室、调整时间 | 先判断新建 vs 编辑,再进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md) |
129
+ | 预约/改约日程、调整时间、添加/更换会议室、查会议室 | 先判断新建 vs 编辑,再进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md) |
130
+ | 仅编辑日程字段(标题/描述)或增删参会人(不涉及时间和会议室) | 先定位 `event_id`,再读 [+update](references/lark-calendar-update.md) 执行变更 |
76
131
  | 编辑/删除重复性日程(「改这个重复日程」「删掉后面的」「全部取消」等) | 先读 [重复性日程操作规范](references/lark-calendar-recurring.md),确认操作范围后执行 |
77
132
 
78
133
  ## 任务类型分流
@@ -90,7 +145,7 @@ lark-cli calendar +agenda --as user
90
145
 
91
146
  ## 会议室规则
92
147
 
93
- - 凡是"预定/查询/搜索可用会议室",都必须进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md)。
148
+ - 凡是"预定/查询/搜索可用会议室",都必须进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md),会议室参数规范详见 [+room-find](references/lark-calendar-room-find.md)。
94
149
  - `+room-find` 的时间输入必须是确定时间块,不能是时间区间搜索。
95
150
  - 用户仅要求"查会议室"但未提供明确时间时,必须先调用 `+suggestion` 获取可用时间块,再将时间块交给 `+room-find`。严禁猜测时间盲目调用。
96
151
  - 编辑已有日程时,"添加会议室"默认是增量语义,保留已有会议室;只有用户明确说"更换会议室""移除会议室"时才删除旧会议室。
@@ -98,42 +153,45 @@ lark-cli calendar +agenda --as user
98
153
  ## API Resources
99
154
 
100
155
  ```bash
156
+ # 通用调用格式
101
157
  lark-cli calendar <resource> <method> [flags]
102
- ```
103
158
 
104
- ### calendars
159
+ # 查询用户主日历
160
+ lark-cli calendar calendars primary
105
161
 
106
- - `create` — 创建共享日历
107
- - `delete` — 删除共享日历
108
- - `get` — 查询日历信息
109
- - `list` — 查询日历列表
110
- - `patch` — 更新日历信息
111
- - `primary` — 查询用户主日历
112
- - `search` — 搜索日历
162
+ # 获取日程分享链接
163
+ lark-cli calendar events share_info --calendar-id <calendar_id> --event-id <event_id>
164
+
165
+ # 删除日程
166
+ lark-cli calendar events delete --calendar-id <calendar_id> --event-id <event_id>
167
+ ```
113
168
 
114
- ### event.attendees
169
+ > `calendar_id` 可以直接传 `primary`,代表当前调用身份的主日历 ID。
115
170
 
116
- - `batch_delete` — 删除日程参与人
117
- - `create` — 添加日程参与人
118
- - `list` — 获取日程参与人列表
171
+ ### 查询资源的方法列表以及方法的使用方式
119
172
 
120
- ### events
173
+ - 列出某资源下的方法:`lark-cli calendar <resource> -h`
174
+ - 查看方法的cli flag:`lark-cli calendar <resource> <method> -h`
175
+ - 查看方法API参数:`lark-cli schema calendar.<resource>.<method>`
121
176
 
122
- - `create` — 创建日程
123
- - `delete` — 删除日程
124
- - `get` — 获取日程
125
- - `instance_view` — 查询日程视图
126
- - `patch` — 更新日程
127
- - `share_info` — 获取日程分享链接
177
+ `<resource>` 为 `calendars`(日历本身)/ `events`(日程)/ `event.attendees`(参与人)/ `freebusys`(忙闲)。例:`lark-cli schema calendar.events.delete`。
128
178
 
129
- ### freebusys
179
+ ## 常用其他域命令
130
180
 
131
- - `list` — 查询主日历日程忙闲信息
181
+ ```bash
182
+ # 搜索用户,更多参数详见 lark-contact
183
+ lark-cli contact +search-user --query <query> --as user
184
+
185
+ # 搜索群聊,更多参数详见 lark-im
186
+ lark-cli im +chat-search --query <query> --as user
187
+ ```
132
188
 
133
189
  ## 不在本 skill 范围
134
190
 
135
191
  - 查询过去的视频会议记录 → [lark-vc](../lark-vc/SKILL.md)
136
192
  - 待办任务管理 → [lark-task](../lark-task/SKILL.md)
193
+ - 通讯录 → [lark-contact](../lark-contact/SKILL.md)
194
+ - 即时通讯 → [lark-im](../lark-im/SKILL.md)
137
195
  - 会议室物理设施管理 → 管理员后台
138
196
 
139
197
  **注意(强制性):**
@@ -1,12 +1,9 @@
1
1
 
2
2
  # calendar +create
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
4
 
6
5
  创建日程并按需邀请参会人。
7
6
 
8
- 需要的scopes: ["calendar:calendar.event:create","calendar:calendar.event:update"]
9
-
10
7
  ## 推荐命令
11
8
 
12
9
  ```bash
@@ -38,10 +35,10 @@ lark-cli calendar +create --summary "..." --start "..." --end "..." \
38
35
  | `--description <text>` | 否 | 日程详细描述。提供会议议程、活动内容、注意事项或链接等。与 summary 配合使用,仅关注当前日程信息 |
39
36
  | `--attendee-ids <id_list>` | 否 | 参与人 ID 列表(逗号分隔)。支持用户(`ou_`)、群组(`oc_`)和会议室(`omm_`)。AI 提取时请务必保留对应前缀 |
40
37
  | `--calendar-id <id>` | 否 | 日历 ID(省略则使用主日历) |
41
- | `--rrule <rrule>` | 否 | 重复日程的重复性规则,规则设置方式参考rfc5545。**【⚠️注意:系统绝对不支持 COUNT,如需限制重复次数,必须转为 UNTIL】**。示例值:"FREQ=DAILY;INTERVAL=1" |
38
+ | `--rrule <rrule>` | 否 | 重复日程的重复性规则,规则设置方式参考rfc5545。示例值:"FREQ=DAILY;INTERVAL=1;UNTIL=<具体日期>" |
42
39
  | `--dry-run` | 否 | 预览 API 调用,不执行 |
43
40
 
44
- > **⚠️ `rrule` 规则限制:飞书日历系统不支持 `COUNT` 参数。遇到限制重复次数的需求,必须根据开始时间和频率自行推算并转换成 `UNTIL=<具体日期>` 格式。**
41
+ > 当用户表达'每周 X'、'每周重复'、'连续 N 周'时,必须使用 rrule 创建重复性日程,而非创建多个独立日程
45
42
  > 自动设置 `attendee_ability: "can_modify_event"`,参会人可查看彼此并编辑日程。
46
43
  > 自动设置 `free_busy_status: "busy"`,默认日程忙闲状态为忙碌。
47
44
  > 自动设置 `reminders: [{"minutes": 5}]`,默认日程开始前 5 分钟提醒。
@@ -56,44 +53,17 @@ lark-cli calendar +create --summary "..." --start "..." --end "..." \
56
53
  - 全天日程的开始日期和结束日期必须分别是日程开始的第一天和结束的最后一天。如果只有一天的话,开始日期和结束日期是相同。
57
54
 
58
55
  ```bash
59
- # 第一步:创建日程(含高级参数)
60
- ## 查看完整参数定义
61
- lark-cli schema calendar.events.create
62
- ## 创建日程
63
- lark-cli calendar events create \
64
- --params '{"calendar_id":"<CALENDAR_ID>"}' \
65
- --data '{
66
- "summary": "技术分享:CLI 架构设计",
67
- "start_time": { "timestamp": "1741586400" },
68
- "end_time": { "timestamp": "1741593600" }
69
- }'
70
-
71
- # 第二步:添加参会人(使用第一步返回的 calendar_id 和 event_id)
72
- ## 查看完整参数定义
73
- lark-cli schema calendar.event.attendees.create
74
- ## 添加参会人
75
- lark-cli calendar event.attendees create \
76
- --as user \
77
- --params '{"calendar_id":"<CALENDAR_ID>","event_id":"<EVENT_ID>"}' \
78
- --data '{"attendees": [{"type": "user", "user_id": "ou_xxx"}]}'
79
-
80
56
  ## 添加需要审批的会议室(approval_reason 最大 200 字符)
81
57
  lark-cli calendar event.attendees create \
82
58
  --as user \
83
59
  --params '{"calendar_id":"<CALENDAR_ID>","event_id":"<EVENT_ID>"}' \
84
60
  --data '{"attendees": [{"type": "resource", "room_id": "omm_xxx", "approval_reason": "申请原因"}]}'
85
61
 
86
- # 可选第三步(推荐):若第二步失败,回滚删除空日程
87
- ## 查看完整参数定义
88
- lark-cli schema calendar.events.delete
89
- ## 删除空日程
90
- lark-cli calendar events delete \
91
- --params '{"calendar_id":"<CALENDAR_ID>","event_id":"<EVENT_ID>","need_notification":false}'
92
-
93
- ```
94
-
95
- > 完整 API 命令的时间参数是 **Unix 秒字符串**(非 ISO 8601)。
96
- > 当你手动拆成两步执行时,建议保留“失败后回滚删除”的第三步,避免遗留空日程。
62
+ 完整 API 命令的关键差异:
63
+ - 时间参数是 **Unix 秒字符串**(非 ISO 8601)。
64
+ - 全天日程的开始日期和结束日期必须分别是日程开始的第一天和结束的最后一天;单日全天日程两者相同。
65
+ - 手动拆成“创建日程 + 添加参会人”两步时,若第二步失败,建议删除刚创建的空日程,避免遗留无参会人的日程。
66
+ - 设置会议 owner:`+create` 不支持,需用完整 API 命令在 `vchat.meeting_settings.owner_id` 中设置,且必须同时设置 `vchat.vc_type` 为 `vc`(代表该日程为 VC 视频会议)。仅当以应用(bot)身份在应用日历上操作时生效;owner 必须为用户身份(`ou_` open_id),不能为非用户或外部租户用户。
97
67
 
98
68
  ## 参会人类型
99
69
 
@@ -109,6 +79,5 @@ lark-cli calendar events delete \
109
79
 
110
80
  ## 参考
111
81
 
112
- - [lark-calendar](../SKILL.md) -- 日历全部命令
113
- - [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
82
+ - [lark-calendar](../SKILL.md) -- skill 入口与路由
114
83
  - [lark-calendar-suggestion](lark-calendar-suggestion.md) -- 根据非明确时间或一段时间范围,推荐多个可用时间块方案
@@ -1,11 +1,8 @@
1
1
  # calendar +room-find
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md)。
4
3
 
5
4
  针对一个或多个时间块查找/搜索可用会议室。会议室是日程的一种资源型参与人,不能脱离日程单独预定。
6
5
 
7
- 需要的 scopes: ["calendar:calendar.free_busy:read"]
8
-
9
6
  ## 适用场景
10
7
 
11
8
  - 已知一个或多个待选时间块,需要查找可用会议室
@@ -50,7 +47,7 @@ lark-cli calendar +room-find \
50
47
  | `--city <text>` | 否 | 会议室所在城市强约束。**仅当**用户明确说出具体城市(如北京、上海)时才提取,**严禁**根据园区或楼宇名称自行联想或补全。 |
51
48
  | `--building <text>` | 否 | 会议室所在楼宇强约束,承载城市以下、楼层以上的办公区/园区/楼栋描述。|
52
49
  | `--floor <text>` | 否 | 仅用于筛选会议室所在楼层。应先做归一化,再传递规范值;例如 `2楼` / `二楼` / `2F` 统一为 `F2`。注意:此参数只筛选楼层,不可混入区域定位(如“A区”)或具体会议室号。 |
53
- | `--room-name <text>` | 否 | 会议室名称约束,支持以**英文逗号**分隔传入多个名称。仅当用户明确提到会议室专名或会议室号(如"木星""02")时使用。当用户需要在一组编号会议室中搜索时(如"帮我约 16~20 号的会议室"),应将编号展开为逗号分隔列表,如 `"16,17,18,19,20"`。应优先传递去后缀、去冗余后的规范名,例如 `木星会议室` → `木星`,`会议室 02` / `02会议室` → `02`。 |
50
+ | `--room-name <text>` | 否 | 会议室名称约束,支持以**英文逗号**分隔传入多个名称。仅当用户明确提到会议室专名、会议室号或编号区间时使用。 |
54
51
  | `--min-capacity <n>` | 否 | 会议室最小容纳人数。当用户明确参会人数或提出“至少容纳N人”等要求时,提取数字放入此参数,必须为正整数。 |
55
52
  | `--max-capacity <n>` | 否 | 会议室最大容纳人数。用于过滤过大空间,必须为正整数。 |
56
53
  | `--attendee-ids <id_list>` | 否 | 参会对象 ID 列表。支持用户 ID(`ou_` 前缀)和群组 ID(`oc_` 前缀),多个 ID 以逗号分隔。 |
@@ -67,7 +64,7 @@ lark-cli calendar +room-find \
67
64
  - 同一语义槽位只保留一个规范值。例如用户说“2楼”,应转换为 `--floor "F2"`;**禁止**同时传 `2楼 F2` 这类重复楼层信息。
68
65
  - 参数归类顺序应为:`city/building/floor` > `floor + room-name` 复合表达 > `room-name`。若短词更像楼层/区域定位(如 `2L`、`2F`),优先落到 `--floor`,不要默认落到 `--room-name`。像 `学清2层` 这种表达,通常拆为 `--building "学清"` 与 `--floor "F2"`。
69
66
  - 对会议室名要做轻量归一化:`木星会议室` 应提取为 `--room-name "木星"`;`会议室 02` / `02会议室` 应提取为 `--room-name "02"`。
70
- - **多会议室名称场景**:当用户表达"帮我约 XX 到 YY 号之间的会议室"或一次提及多个会议室名称时,应将所有目标名称用英文逗号拼接传入 `--room-name`。例如:
67
+ - 当用户表达"帮我约 XX 到 YY 号之间的会议室"或一次提及多个会议室名称时,应将所有目标名称用英文逗号拼接传入 `--room-name`。例如:
71
68
  - "帮我约 16~20 号的会议室" → `--room-name "16,17,18,19,20"`
72
69
  - "查下木星和火星是否有空" → `--room-name "木星,火星"`
73
70
  - "看看 01、02、03 会议室" → `--room-name "01,02,03"`
@@ -90,9 +87,8 @@ lark-cli calendar +room-find \
90
87
  ```
91
88
 
92
89
  > **AI 行为指导:**
93
- > - **结构化展示时间块与会议室**:默认按“时间块 -> 会议室候选”的层级结构展示。**严禁将时间与会议室名称输出在同一行**。以清晰的分行列表呈现可用会议室,并直接询问用户意向。默认原样展示完整 `room_name`;不要擅自缩写、截断、改写,或仅提取楼层及会议室号替代完整名称。
90
+ > - **结构化展示时间块与会议室**:默认按“时间块 -> 会议室候选”的层级结构展示,并直接询问用户意向。
94
91
  > - **`room_name` 必须逐字透传**:展示给用户的会议室名称,必须直接使用 CLI/API 返回的 `room_name` 原值。禁止提取楼层、会议室号、容量、视频能力后重组成新的名称,禁止意译、缩写、去前缀、去后缀,或仅保留"便于阅读"的摘要名。
95
- > - **主动识别区间/多名称意图**:当用户提到"帮我约 XX 到 YY 号的会议室""XX~YY 之间的会议室"或一次列出多个会议室名称时,将所有目标名称展开为英文逗号分隔列表,传入 `--room-name`。例如"帮我约 16 到 20 号的会议室"应生成 `--room-name "16,17,18,19,20"`。
96
92
  > - **重复日程要明确阻断原因与自动缩短**:若某候选会议室的 `reserve_until_time` 无法覆盖重复性日程,**必须**向用户明确说明该会议室最长可约至何时。若用户确认继续选用该会议室,你必须**自动将日程的重复规则结束时间缩短**至该 `reserve_until_time`,以防止会议室预约失败。不能直接按原规则继续。
97
93
  > - **正确解释推荐结果**:如果返回结果与用户输入条件不完全字面一致,先说明底层可能返回邻近位置或相近条件的推荐候选,不要直接将其判定为异常。
98
94
  > - **默认减少用户输入成本**:应主动引导用户不必一开始就提供很详细的会议室搜索条件。只要时间块已明确,用户直接表达“想约会议室”即可,先基于当前信息查询候选;只有在用户对结果不满意时,再引导其补充更具体的楼宇、楼层、会议室名或容量条件。
@@ -102,7 +98,7 @@ lark-cli calendar +room-find \
102
98
  | 字段名 | 说明 |
103
99
  | :--- | :--- |
104
100
  | `room_id` | 会议室唯一标识,用于后续创建日程时添加为会议室参与人使用。 |
105
- | `room_name` | 会议室名称,默认原样完整展示给用户,不要自行缩写、截断、改写,也不要用楼层及会议室号摘要替代原值。 |
101
+ | `room_name` | 会议室名称,展示给用户时必须使用原值。 |
106
102
  | `capacity` | 会议室最大容纳人数。 |
107
103
  | `reserve_until_time` | 该会议室当前允许被预约到的最晚时间点,用于校验重复性日程是否超期。 |
108
104
 
@@ -110,4 +106,4 @@ lark-cli calendar +room-find \
110
106
 
111
107
  - [lark-calendar-create](lark-calendar-create.md)
112
108
  - [lark-calendar-suggestion](lark-calendar-suggestion.md)
113
- - [lark-calendar](../SKILL.md) — 日历完整 API
109
+ - [lark-calendar](../SKILL.md) — skill 入口与路由
@@ -1,11 +1,8 @@
1
1
  # calendar +rsvp
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
3
 
5
4
  回复指定的日程,更新当前用户的 RSVP 状态(接受、拒绝或待定)。
6
5
 
7
- 需要的scopes: ["calendar:calendar.event:reply"]
8
-
9
6
  ## 命令
10
7
 
11
8
  ```bash
@@ -38,5 +35,4 @@ lark-cli calendar +rsvp --calendar-id cal_xxx --event-id evt_xxx --rsvp-status a
38
35
 
39
36
  ## 参考
40
37
 
41
- - [lark-calendar](../SKILL.md) -- 日历全部命令
42
- - [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
38
+ - [lark-calendar](../SKILL.md) -- skill 入口与路由