@amaster.ai/pi-lark 0.1.14 → 0.1.16
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 +4 -4
- package/skills/lark-apps/SKILL.md +1 -0
- package/skills/lark-apps/references/lark-apps-db.md +2 -0
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-env.md +1 -1
- package/skills/lark-apps/references/lark-apps-export.md +62 -0
- package/skills/lark-apps/references/lark-apps-local-dev.md +1 -1
- package/skills/lark-apps/references/lark-apps-observability.md +1 -1
- package/skills/lark-base/SKILL.md +6 -5
- package/skills/lark-base/references/lark-base-app.md +3 -3
- package/skills/lark-base/references/lark-base-dashboard-block-config.md +21 -3
- package/skills/lark-base/references/lark-base-dashboard.md +1 -1
- package/skills/lark-base/references/lark-base-data-query.md +1 -1
- package/skills/lark-base/references/lark-base-field-create.md +1 -1
- package/skills/lark-base/references/lark-base-field-update.md +1 -1
- package/skills/lark-base/references/lark-base-form-questions-create.md +1 -1
- package/skills/lark-base/references/lark-base-form-questions-update.md +1 -1
- package/skills/lark-base/references/lark-base-form-submit.md +1 -1
- package/skills/lark-base/references/lark-base-view-set-filter.md +1 -1
- package/skills/lark-base/references/lark-base-view.md +109 -0
- package/skills/lark-base/references/lark-base-workflow-schema.md +90 -12
- package/skills/lark-base/references/lark-base-workflow.md +99 -3
- package/skills/lark-calendar/SKILL.md +13 -8
- package/skills/lark-calendar/references/lark-calendar-meeting-relation.md +99 -0
- package/skills/lark-calendar/references/lark-calendar-meeting.md +1 -1
- package/skills/lark-calendar/references/lark-calendar-recurring.md +3 -1
- package/skills/lark-calendar/references/lark-calendar-transfer.md +1 -1
- package/skills/lark-doc/SKILL.md +1 -1
- package/skills/lark-doc/references/lark-doc-create-workflow.md +8 -10
- package/skills/lark-doc/references/lark-doc-media-download.md +1 -1
- package/skills/lark-doc/references/lark-doc-media-insert.md +1 -1
- package/skills/lark-doc/references/lark-doc-media-preview.md +1 -1
- package/skills/lark-doc/references/lark-doc-resource-cover.md +1 -1
- package/skills/lark-doc/references/lark-doc-script.md +11 -17
- package/skills/lark-drive/references/lark-drive-add-comment.md +1 -1
- package/skills/lark-drive/references/lark-drive-apply-permission.md +1 -1
- package/skills/lark-drive/references/lark-drive-copy.md +1 -1
- package/skills/lark-drive/references/lark-drive-cover.md +1 -1
- package/skills/lark-drive/references/lark-drive-create-folder.md +1 -1
- package/skills/lark-drive/references/lark-drive-create-shortcut.md +1 -1
- package/skills/lark-drive/references/lark-drive-delete.md +1 -1
- package/skills/lark-drive/references/lark-drive-download.md +1 -1
- package/skills/lark-drive/references/lark-drive-export-download.md +1 -1
- package/skills/lark-drive/references/lark-drive-export.md +1 -1
- package/skills/lark-drive/references/lark-drive-import.md +1 -1
- package/skills/lark-drive/references/lark-drive-inspect.md +2 -2
- package/skills/lark-drive/references/lark-drive-list-comments.md +1 -1
- package/skills/lark-drive/references/lark-drive-move.md +4 -4
- package/skills/lark-drive/references/lark-drive-permission-guide.md +1 -1
- package/skills/lark-drive/references/lark-drive-preview.md +1 -1
- package/skills/lark-drive/references/lark-drive-pull.md +1 -1
- package/skills/lark-drive/references/lark-drive-push.md +1 -1
- package/skills/lark-drive/references/lark-drive-search.md +1 -1
- package/skills/lark-drive/references/lark-drive-status.md +1 -1
- package/skills/lark-drive/references/lark-drive-task-result.md +4 -4
- package/skills/lark-drive/references/lark-drive-update-title.md +1 -1
- package/skills/lark-drive/references/lark-drive-upload.md +1 -1
- package/skills/lark-drive/references/lark-drive-version-delete.md +1 -1
- package/skills/lark-drive/references/lark-drive-version-get.md +1 -1
- package/skills/lark-drive/references/lark-drive-version-history.md +1 -1
- package/skills/lark-drive/references/lark-drive-version-revert.md +1 -1
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +1 -1
- package/skills/lark-im/SKILL.md +7 -1
- package/skills/lark-im/references/lark-im-chat-create.md +1 -1
- package/skills/lark-im/references/lark-im-chat-list.md +1 -1
- package/skills/lark-im/references/lark-im-chat-members-list.md +1 -1
- package/skills/lark-im/references/lark-im-chat-messages-list.md +7 -2
- package/skills/lark-im/references/lark-im-chat-search.md +1 -1
- package/skills/lark-im/references/lark-im-chat-update.md +1 -1
- package/skills/lark-im/references/lark-im-feed-groups.md +1 -1
- package/skills/lark-im/references/lark-im-feed-shortcut-create.md +1 -1
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
- package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +1 -1
- package/skills/lark-im/references/lark-im-flag-cancel.md +1 -1
- package/skills/lark-im/references/lark-im-flag-create.md +1 -1
- package/skills/lark-im/references/lark-im-flag-list.md +1 -1
- package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
- package/skills/lark-im/references/lark-im-message-read-status.md +1 -1
- package/skills/lark-im/references/lark-im-messages-edit.md +1 -1
- package/skills/lark-im/references/lark-im-messages-mget.md +20 -3
- package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
- package/skills/lark-im/references/lark-im-messages-resources-download.md +3 -1
- package/skills/lark-im/references/lark-im-messages-search.md +2 -2
- package/skills/lark-im/references/lark-im-messages-send.md +1 -1
- package/skills/lark-im/references/lark-im-reactions.md +1 -1
- package/skills/lark-im/references/lark-im-threads-messages-list.md +6 -2
- package/skills/lark-mail/SKILL.md +19 -8
- package/skills/lark-mail/references/lark-mail-draft-create.md +1 -1
- package/skills/lark-mail/references/lark-mail-draft-edit.md +1 -1
- package/skills/lark-mail/references/lark-mail-forward.md +1 -1
- 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-rules.md +87 -4
- package/skills/lark-mail/references/lark-mail-send.md +1 -1
- package/skills/lark-mail/references/lark-mail-thread-modify.md +73 -0
- package/skills/lark-mail/references/lark-mail-thread-trash.md +62 -0
- package/skills/lark-mail/references/lark-mail-triage.md +1 -1
- package/skills/lark-mail/references/lark-mail-watch.md +2 -2
- package/skills/lark-markdown/references/lark-markdown-create.md +1 -1
- package/skills/lark-markdown/references/lark-markdown-diff.md +1 -1
- package/skills/lark-markdown/references/lark-markdown-fetch.md +1 -1
- package/skills/lark-markdown/references/lark-markdown-overwrite.md +1 -1
- package/skills/lark-markdown/references/lark-markdown-patch.md +1 -1
- package/skills/lark-meeting/SKILL.md +2 -2
- package/skills/lark-meeting/references/lark-minutes-search.md +2 -2
- package/skills/lark-meeting/references/lark-vc-meeting-events.md +15 -15
- package/skills/lark-meeting/references/lark-vc-search.md +10 -7
- package/skills/lark-meeting/scenes/create-and-edit-minutes.md +4 -0
- package/skills/lark-meeting/scenes/live-meeting-attend.md +2 -2
- package/skills/lark-meeting/scenes/live-meeting-interact.md +1 -1
- package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +3 -3
- package/skills/lark-shared/references/lark-wiki-token-routing.md +7 -7
- package/skills/lark-sheets/SKILL.md +60 -173
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +10 -10
- package/skills/lark-sheets/references/lark-sheets-chart.md +68 -34
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-filter.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-float-image.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +90 -4
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +49 -13
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +13 -13
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +12 -9
- package/skills/lark-sheets/references/lark-sheets-read-data.md +14 -12
- package/skills/lark-sheets/references/lark-sheets-search-replace.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +8 -4
- package/skills/lark-sheets/references/lark-sheets-sparkline.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-styles-put.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +22 -19
- package/skills/lark-sheets/references/lark-sheets-workbook.md +22 -7
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +66 -57
- package/skills/lark-sheets/scripts/lark_chart_quality_check.py +1540 -0
- package/skills/lark-sheets/scripts/lark_chart_size_advisor.py +409 -0
- package/skills/lark-sheets/scripts/lark_chart_size_rules.py +292 -0
- package/skills/lark-sheets/scripts/lark_inspect_workbook.py +37 -9
- package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +53 -0
- package/skills/lark-sheets/scripts/{sheets_df.py → lark_sheets_df.py} +1 -1
- package/skills/lark-slides/SKILL.md +11 -18
- package/skills/lark-slides/references/cli/lark-slides-add-slide.md +1 -1
- package/skills/lark-slides/references/cli/lark-slides-create.md +3 -3
- package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +1 -1
- package/skills/lark-slides/references/cli/lark-slides-history.md +1 -8
- package/skills/lark-slides/references/cli/lark-slides-media-upload.md +6 -11
- package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +15 -16
- package/skills/lark-slides/references/cli/lark-slides-update-slide.md +2 -2
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +3 -108
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +6 -183
- package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +26 -143
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +3 -3
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -2
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +2 -2
- package/skills/lark-slides/references/workflow/error-handling.md +3 -3
- package/skills/lark-slides/references/workflow/slides-editing.md +10 -11
- package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +333 -20
- package/skills/lark-task/references/lark-task-assign.md +1 -1
- package/skills/lark-task/references/lark-task-comment.md +1 -1
- package/skills/lark-task/references/lark-task-complete.md +1 -1
- package/skills/lark-task/references/lark-task-create.md +1 -1
- package/skills/lark-task/references/lark-task-followers.md +1 -1
- package/skills/lark-task/references/lark-task-get-my-tasks.md +1 -1
- package/skills/lark-task/references/lark-task-get-related-tasks.md +1 -1
- package/skills/lark-task/references/lark-task-reminder.md +1 -1
- package/skills/lark-task/references/lark-task-reopen.md +1 -1
- package/skills/lark-task/references/lark-task-search.md +1 -1
- package/skills/lark-task/references/lark-task-set-ancestor.md +1 -1
- package/skills/lark-task/references/lark-task-tasklist-create.md +1 -1
- package/skills/lark-task/references/lark-task-tasklist-members.md +1 -1
- package/skills/lark-task/references/lark-task-tasklist-search.md +1 -1
- package/skills/lark-task/references/lark-task-tasklist-task-add.md +1 -1
- package/skills/lark-task/references/lark-task-update.md +1 -1
- package/skills/lark-task/references/lark-task-upload-attachment.md +1 -1
- package/skills/lark-wiki/SKILL.md +1 -2
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +1 -1
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +1 -1
- package/skills/lark-wiki/references/lark-wiki-move.md +4 -3
- package/skills/lark-wiki/references/lark-wiki-node-create.md +4 -3
- package/skills/lark-wiki/references/lark-wiki-node-delete.md +8 -4
- package/skills/lark-wiki/references/lark-wiki-node-get.md +7 -4
- package/skills/lark-sheets/references/lark-sheets-legacy-command-migration.md +0 -152
- package/skills/lark-sheets/scripts/lark_chart_layout_check.py +0 -472
|
@@ -108,9 +108,8 @@
|
|
|
108
108
|
| 需求描述 | 触发器 |
|
|
109
109
|
|---------|--------|
|
|
110
110
|
| 新增记录时 | `AddRecordTrigger` |
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
| 拿不准用哪个 | `ChangeRecordTrigger` |
|
|
111
|
+
| 指定字段发生修改时(仅修改,可限定修改后的值) | `SetRecordTrigger` |
|
|
112
|
+
| 新增或修改记录,且满足配置的筛选条件时 | `ChangeRecordTrigger` |
|
|
114
113
|
|
|
115
114
|
> ⚠️ `SetRecordTrigger` 仅监听修改,`ChangeRecordTrigger` 同时监听新增 + 修改。
|
|
116
115
|
|
|
@@ -125,6 +124,7 @@
|
|
|
125
124
|
| `Delay` | 延迟 |
|
|
126
125
|
| `LarkMessageAction` | 发送飞书消息 |
|
|
127
126
|
| `GenerateAiTextAction` | AI 生成文本 |
|
|
127
|
+
| `AIAnalysisAction` | AI 分析 |
|
|
128
128
|
|
|
129
129
|
> 所有 Action 节点**请勿设置** `children` ,通过 `next` 串联后继。
|
|
130
130
|
|
|
@@ -134,6 +134,7 @@
|
|
|
134
134
|
|------|------|
|
|
135
135
|
| `IfElseBranch` | 条件分支,`children.links` 含 `if_true` 和 `if_false` |
|
|
136
136
|
| `SwitchBranch` | 多路分支,`children.links` 含多个 `case` |
|
|
137
|
+
| `AIClassificationBranch` | AI 分类分支,`children.links` 含多个 `case` |
|
|
137
138
|
|
|
138
139
|
### System 类型
|
|
139
140
|
|
|
@@ -153,7 +154,7 @@
|
|
|
153
154
|
"table_name": "订单表",
|
|
154
155
|
"watched_field_name": "状态",
|
|
155
156
|
"trigger_control_list": ["pasteUpdate", "automationBatchUpdate"],
|
|
156
|
-
"condition_list": [] /* AndCondition 数组 */
|
|
157
|
+
"condition_list": [] /* AndCondition 数组 */
|
|
157
158
|
}
|
|
158
159
|
```
|
|
159
160
|
|
|
@@ -162,7 +163,7 @@
|
|
|
162
163
|
| `table_name` | 是 | 监控的数据表名 |
|
|
163
164
|
| `watched_field_name` | 是 | 监控的字段名 |
|
|
164
165
|
| `trigger_control_list` | 否 | 触发控制,可选值:`pasteUpdate` / `automationBatchUpdate` / `syncUpdate` / `appendImport` / `openAPIBatchUpdate` |
|
|
165
|
-
| `condition_list` | 否 |
|
|
166
|
+
| `condition_list` | 否 | 数组中的每个元素表示一个条件组,条件组之间为 OR,组内 conditions 之间必须为 AND |
|
|
166
167
|
|
|
167
168
|
### ChangeRecordTrigger
|
|
168
169
|
|
|
@@ -170,15 +171,26 @@
|
|
|
170
171
|
{
|
|
171
172
|
"table_name": "任务表",
|
|
172
173
|
"trigger_control_list": [],
|
|
173
|
-
"
|
|
174
|
+
"condition_list": [
|
|
175
|
+
{
|
|
176
|
+
"conjunction": "and",
|
|
177
|
+
"conditions": [
|
|
178
|
+
{
|
|
179
|
+
"field_name": "预计工时",
|
|
180
|
+
"operator": "isGreater",
|
|
181
|
+
"value": [{ "value_type": "number", "value": 0 }]
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
]
|
|
174
186
|
}
|
|
175
187
|
```
|
|
176
188
|
|
|
177
|
-
| 字段 | 必填 | 说明
|
|
178
|
-
|
|
179
|
-
| `table_name` | 是 | 监控的数据表名
|
|
189
|
+
| 字段 | 必填 | 说明 |
|
|
190
|
+
|------|------|---------------------------------------------------------------------------------|
|
|
191
|
+
| `table_name` | 是 | 监控的数据表名 |
|
|
180
192
|
| `trigger_control_list` | 否 | 触发控制,可选值:`pasteUpdate` / `automationBatchUpdate` / `syncUpdate` / `appendImport` |
|
|
181
|
-
| `condition_list` |
|
|
193
|
+
| `condition_list` | 是 | 不能为空;数组中的每个元素表示一个条件组,条件组之间为 OR,组内 conditions 之间必须为 AND |
|
|
182
194
|
|
|
183
195
|
### SetRecordTrigger
|
|
184
196
|
|
|
@@ -202,7 +214,7 @@
|
|
|
202
214
|
| `record_watch_info` | 否 | 记录级过滤条件(修改前值匹配),为空则监听全部 |
|
|
203
215
|
| `field_watch_info` | 是 | 字段级监控条件列表,至少一个 |
|
|
204
216
|
| `trigger_control_list` | 否 | 触发控制,可选值:`pasteUpdate` / `automationBatchUpdate` / `syncUpdate` / `appendImport` |
|
|
205
|
-
| `condition_list` | 否 |
|
|
217
|
+
| `condition_list` | 否 | 数组中的每个元素表示一个条件组,条件组之间为 OR,组内 conditions 之间必须为 AND |
|
|
206
218
|
|
|
207
219
|
`FieldWatchItem`:
|
|
208
220
|
|
|
@@ -255,7 +267,7 @@
|
|
|
255
267
|
| `offset` | 是 | 提前/延后的偏移量(触发时间 = 日期字段时间 + `offset` × `unit`,因此负数=提前、正数=延后;范围由 `unit` 决定):`MINUTE` ∈ {0, 5, 15, 30, -5, -15, -30};`HOUR` ∈ [-6, -1] ∪ [1, 6];`DAY` ∈ [-7, 7];`WEEK` ∈ [-7, -1] ∪ [1, 7];`MONTH` ∈ [-7, -1] ∪ [1, 7] |
|
|
256
268
|
| `hour` | 是 | 触发小时 (0-23),默认 9 |
|
|
257
269
|
| `minute` | 是 | 触发分钟 (0-59),默认 0 |
|
|
258
|
-
| `condition_list` | 否 |
|
|
270
|
+
| `condition_list` | 否 | 数组中的每个元素表示一个条件组,条件组之间为 OR,组内 conditions 之间必须为 AND |
|
|
259
271
|
|
|
260
272
|
|
|
261
273
|
### ButtonTrigger
|
|
@@ -473,6 +485,26 @@
|
|
|
473
485
|
|------|------|------|
|
|
474
486
|
| `prompt` | 是 | TextRefItem[] 提示词,支持 `text` / `ref` |
|
|
475
487
|
|
|
488
|
+
### AIAnalysisAction
|
|
489
|
+
|
|
490
|
+
```json
|
|
491
|
+
{
|
|
492
|
+
"analysis_task": [
|
|
493
|
+
{ "value_type": "text", "value": "分析昨日订单趋势、异常原因,并给出行动建议" }
|
|
494
|
+
],
|
|
495
|
+
"analysis_table_names": ["订单表", "退款表"],
|
|
496
|
+
"identity_type": "maker",
|
|
497
|
+
"output_instruction": "先给结论,再列证据与行动建议"
|
|
498
|
+
}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
| 字段 | 必填 | 说明 |
|
|
502
|
+
|------|------|------|
|
|
503
|
+
| `analysis_task` | 是 | TextRefItem[] 分析任务,支持 `text` / `ref` 混排;至少包含一项有效内容 |
|
|
504
|
+
| `analysis_table_names` | 否 | string[] 分析数据范围;为空数组 `[]` 或省略时表示当前 Base 的全部数据表 |
|
|
505
|
+
| `identity_type` | 是 | 数据访问身份:`maker`(固定流程身份) / `triggerPersonal`(流程触发者) |
|
|
506
|
+
| `output_instruction` | 否 | 仅支持纯文本 |
|
|
507
|
+
|
|
476
508
|
|
|
477
509
|
## Branch data 详细结构
|
|
478
510
|
|
|
@@ -552,6 +584,45 @@
|
|
|
552
584
|
| `name` | string | 分支名称 |
|
|
553
585
|
| `condition` | OrGroup | 分支条件 |
|
|
554
586
|
|
|
587
|
+
### AIClassificationBranch
|
|
588
|
+
|
|
589
|
+
`AIClassificationBranch` 用 AI 对 `content` 内容做分类,再通过 `children.links` 中的 `case` 边进入命中的后续步骤。`steps[].data` 使用公开 Agent Data 协议。
|
|
590
|
+
|
|
591
|
+
```json
|
|
592
|
+
{
|
|
593
|
+
"classes": [
|
|
594
|
+
{
|
|
595
|
+
"name": "Bug",
|
|
596
|
+
"desc": "功能报错、异常、不可用或结果错误"
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"name": "功能建议",
|
|
600
|
+
"desc": "希望新增能力或优化现有功能"
|
|
601
|
+
}
|
|
602
|
+
],
|
|
603
|
+
"content": [
|
|
604
|
+
{ "value_type": "text", "value": "请根据反馈内容判断类型:" },
|
|
605
|
+
{ "value_type": "ref", "value": "$.step_trigger.fldFeedback" }
|
|
606
|
+
],
|
|
607
|
+
"classification_rule": "信息不足时判定为无法匹配。"
|
|
608
|
+
}
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
| 字段 | 必填 | 说明 |
|
|
612
|
+
|------|------|----------------------------------------------------------------------|
|
|
613
|
+
| `classes` | 是 | 分类列表,至少 2 项。每项包含 `name` 和 `desc` |
|
|
614
|
+
| `classes[].name` | 是 | 分类名称,需与对应普通 `children.links[].desc` 保持一致 |
|
|
615
|
+
| `classes[].desc` | 是 | 分类描述,可为空字符串,但字段必须存在 |
|
|
616
|
+
| `content` | 是 | TextRefItem[],用于分类的内容,支持 `text` / `ref` |
|
|
617
|
+
| `classification_rule` | 否 | 全局分类规则纯文本 |
|
|
618
|
+
| `no_match_action` | 否 | 无匹配策略。`classifyToOther`:进入默认分支;`fail`:当前节点失败。省略时使用 `classifyToOther` |
|
|
619
|
+
|
|
620
|
+
`children.links` 规则:
|
|
621
|
+
- 每个分类命中后要跳到哪个后续步骤,必须写在 children.links 中。
|
|
622
|
+
- 普通分类边使用 `kind: "case"` 和 `label: "branch_1"`、`branch_2` 等稳定标签;`desc` 与 `classes[i].name` 保持一致;`to` 指向该分类的入口 step。
|
|
623
|
+
- `no_match_action: "classifyToOther"` 时必须额外提供一条默认分支边:`{ "kind": "case", "label": "default", "desc": "默认分支", "to": "step_other_action" }`。
|
|
624
|
+
- `no_match_action: "fail"` 时不要提供默认分支边。
|
|
625
|
+
|
|
555
626
|
|
|
556
627
|
## System data 详细结构
|
|
557
628
|
|
|
@@ -788,6 +859,12 @@ HTTPClientAction 的输出取决于 `response_type`:
|
|
|
788
859
|
|--------|------|----------|
|
|
789
860
|
| (整体出参) | AI 生成的文本内容(不支持下钻,只能引用 `$.{stepId}`) | `$.{stepId}` |
|
|
790
861
|
|
|
862
|
+
##### AIAnalysisAction(AI 分析)
|
|
863
|
+
|
|
864
|
+
| pathId | 说明 | 引用示例 |
|
|
865
|
+
|--------|------|----------|
|
|
866
|
+
| `analysisResult` | AI 分析结果字符串 | `$.{stepId}.analysisResult` |
|
|
867
|
+
|
|
791
868
|
##### 无输出的操作节点
|
|
792
869
|
|
|
793
870
|
以下节点不产生任何可引用的输出数据:
|
|
@@ -887,6 +964,7 @@ $.{stepId}.{fieldId}.fileToken → 文件 Token 列表(array<string>,仅
|
|
|
887
964
|
| SetRecordAction | 动作 | ✅ | 动态(用户配置的字段) |
|
|
888
965
|
| HTTPClientAction | 动作 | ✅ | 动态(取决于用户配置的 HTTP 响应输出) |
|
|
889
966
|
| GenerateAiTextAction | 动作 | ✅ | 静态(单 string) |
|
|
967
|
+
| AIAnalysisAction | 动作 | ✅ | 静态(`analysisResult`) |
|
|
890
968
|
| Delay | 动作 | ❌ | 无输出 |
|
|
891
969
|
| LarkMessageAction | 动作 | ❌ | 无输出 |
|
|
892
970
|
| IfElseBranch | 分支 | ❌ | 无输出 |
|
|
@@ -57,9 +57,10 @@
|
|
|
57
57
|
| 新增触发+通知 | AddRecordTrigger → LarkMessageAction | [下方](#示例1-新增记录触发--发送消息) |
|
|
58
58
|
| 按钮点击+调用外部接口+写入日志 | ButtonTrigger → HTTPClientAction → AddRecordAction | [下方](#示例-6-按钮触发--调用外部接口--写入同步日志) |
|
|
59
59
|
| 定时+循环 | TimerTrigger → FindRecordAction → Loop → LarkMessageAction | [下方](#示例2-定时触发--查找记录--循环遍历--发送消息) |
|
|
60
|
-
| 条件判断 | ... → IfElseBranch → 分支处理 | [下方](#示例3
|
|
61
|
-
| 多路分类 | ... → SwitchBranch → 多分支处理 | [下方](#示例4
|
|
62
|
-
| 复杂组合 | 定时+查找+循环+分支+消息 | [下方](#示例5
|
|
60
|
+
| 条件判断 | ... → IfElseBranch → 分支处理 | [下方](#示例3-条件分支ifelsebranch) |
|
|
61
|
+
| 多路分类 | ... → SwitchBranch → 多分支处理 | [下方](#示例4-多路分支switchbranch) |
|
|
62
|
+
| 复杂组合 | 定时+查找+循环+分支+消息 | [下方](#示例5-组合场景定时查找循环分支消息) |
|
|
63
|
+
| AI 分类 | ... → AIClassificationBranch → 分类后处理 | [下方](#示例7-ai-分类用户反馈自动分流) |
|
|
63
64
|
|
|
64
65
|
---
|
|
65
66
|
|
|
@@ -741,6 +742,101 @@
|
|
|
741
742
|
|
|
742
743
|
---
|
|
743
744
|
|
|
745
|
+
### 示例 7: AI 分类(用户反馈自动分流)
|
|
746
|
+
|
|
747
|
+
**场景**: 当用户反馈表新增记录时,AI 根据反馈内容分类为 Bug 或功能建议;无法判断时标记为待人工复核。
|
|
748
|
+
|
|
749
|
+
```json
|
|
750
|
+
{
|
|
751
|
+
"client_token": "1704067206",
|
|
752
|
+
"title": "用户反馈自动分流",
|
|
753
|
+
"steps": [
|
|
754
|
+
{
|
|
755
|
+
"id": "step_trigger",
|
|
756
|
+
"type": "AddRecordTrigger",
|
|
757
|
+
"title": "新增反馈时触发",
|
|
758
|
+
"next": "step_ai_classify",
|
|
759
|
+
"data": {
|
|
760
|
+
"table_name": "用户反馈表",
|
|
761
|
+
"watched_field_name": "反馈详情"
|
|
762
|
+
}
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
"id": "step_ai_classify",
|
|
766
|
+
"type": "AIClassificationBranch",
|
|
767
|
+
"title": "AI 判断反馈类型",
|
|
768
|
+
"children": {
|
|
769
|
+
"links": [
|
|
770
|
+
{ "kind": "case", "to": "step_bug_action", "label": "branch_1", "desc": "Bug" },
|
|
771
|
+
{ "kind": "case", "to": "step_feature_action", "label": "branch_2", "desc": "功能建议" },
|
|
772
|
+
{ "kind": "case", "to": "step_other_action", "label": "default", "desc": "默认分支" }
|
|
773
|
+
]
|
|
774
|
+
},
|
|
775
|
+
"next": null,
|
|
776
|
+
"data": {
|
|
777
|
+
"classes": [
|
|
778
|
+
{
|
|
779
|
+
"name": "Bug",
|
|
780
|
+
"desc": "功能报错、异常、崩溃、无法使用或结果错误"
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
"name": "功能建议",
|
|
784
|
+
"desc": "希望新增能力或改变产品行为"
|
|
785
|
+
}
|
|
786
|
+
],
|
|
787
|
+
"content": [
|
|
788
|
+
{ "value_type": "ref", "value": "$.step_trigger.fldFeedbackDetail" }
|
|
789
|
+
],
|
|
790
|
+
"classification_rule": "有明确故障现象时优先归入 Bug;同时包含多个诉求时,以最影响用户完成任务的问题为准;信息不足时进入默认分支。"
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"id": "step_bug_action",
|
|
795
|
+
"type": "SetRecordAction",
|
|
796
|
+
"title": "标记为 Bug",
|
|
797
|
+
"next": null,
|
|
798
|
+
"data": {
|
|
799
|
+
"table_name": "用户反馈表",
|
|
800
|
+
"ref_info": { "step_id": "step_trigger" },
|
|
801
|
+
"field_values": [
|
|
802
|
+
{ "field_name": "分类", "value": [{ "value_type": "text", "value": "Bug" }] }
|
|
803
|
+
]
|
|
804
|
+
}
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"id": "step_feature_action",
|
|
808
|
+
"type": "SetRecordAction",
|
|
809
|
+
"title": "标记为功能建议",
|
|
810
|
+
"next": null,
|
|
811
|
+
"data": {
|
|
812
|
+
"table_name": "用户反馈表",
|
|
813
|
+
"ref_info": { "step_id": "step_trigger" },
|
|
814
|
+
"field_values": [
|
|
815
|
+
{ "field_name": "分类", "value": [{ "value_type": "text", "value": "功能建议" }] }
|
|
816
|
+
]
|
|
817
|
+
}
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"id": "step_other_action",
|
|
821
|
+
"type": "SetRecordAction",
|
|
822
|
+
"title": "标记为待人工复核",
|
|
823
|
+
"next": null,
|
|
824
|
+
"data": {
|
|
825
|
+
"table_name": "用户反馈表",
|
|
826
|
+
"ref_info": { "step_id": "step_trigger" },
|
|
827
|
+
"field_values": [
|
|
828
|
+
{ "field_name": "分类", "value": [{ "value_type": "text", "value": "待人工复核" }] }
|
|
829
|
+
]
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
]
|
|
833
|
+
}
|
|
834
|
+
```
|
|
835
|
+
**关键点**:
|
|
836
|
+
- `classes` 按顺序对应 `branch_1`、`branch_2`;`desc` 与分类名一致,`to` 指向已定义的下游 step;
|
|
837
|
+
|
|
838
|
+
---
|
|
839
|
+
|
|
744
840
|
## 构造技巧
|
|
745
841
|
|
|
746
842
|
### Loop 构造要点
|
|
@@ -19,7 +19,7 @@ metadata:
|
|
|
19
19
|
按**日程归属**选身份:
|
|
20
20
|
|
|
21
21
|
- 查看/管理登录用户本人的日程 → `--as user`(默认,绝大多数场景)。
|
|
22
|
-
- 查看/管理 bot 自己创建/拥有的日程 → `--as bot`
|
|
22
|
+
- 查看/管理 bot 自己创建/拥有的日程 → `--as bot`
|
|
23
23
|
|
|
24
24
|
**对话人称映射**:「我」= 登录用户,「你」= 应用(bot);作为字段取值的人称(参会人、会议 owner 等)不参与身份判定,如「你创建日程,邀请我、会议 owner 为我」→ `--as bot` 创建,登录用户仅作参会人与会议 owner。
|
|
25
25
|
|
|
@@ -73,11 +73,15 @@ lark-cli calendar +get --calendar-id <calendar_id> --event-id <event_id>
|
|
|
73
73
|
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
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
`--attendee-ids` 的多值语义:**同类型内为 OR(并集)**——只要日程命中列表中的任意一个同类型 ID,就会返回。
|
|
77
|
+
|
|
78
|
+
- `--attendee-ids "ou_A,ou_B"` = A **或** B 参加的日程(**不是** A 和 B 都参加的)。
|
|
79
|
+
|
|
76
80
|
### `+delete` — 删除日程
|
|
77
81
|
|
|
78
82
|
```bash
|
|
79
83
|
# calendar_id不传,默认primary
|
|
80
|
-
lark-cli calendar +delete --calendar-id <calendar_id> --event-id <event_id> --notify
|
|
84
|
+
lark-cli calendar +delete --calendar-id <calendar_id> --event-id <event_id> --notify=true
|
|
81
85
|
```
|
|
82
86
|
|
|
83
87
|
### `+agenda` — 查看近期日程安排
|
|
@@ -148,7 +152,7 @@ lark-cli calendar +freebusy --start 2026-03-11T09:00:00+08:00 --end 2026-03-11T1
|
|
|
148
152
|
- **会议室(Room)**:"room"不是"房间",是"会议室"。会议室是日程的一种参与人(resource attendee),不能脱离日程单独预定。
|
|
149
153
|
- **日程会议 ID(Meeting ID)**:日程的历史视频会议 ID,在日程上开过视频会议才会有。
|
|
150
154
|
- **日程分享链接 vs 会议链接**:两者是不同事物,不可混用。
|
|
151
|
-
- 日程分享链接:`https://<domain>/calendar/share?token=<token
|
|
155
|
+
- 日程分享链接:`https://<domain>/calendar/share?token=<token>`,指向日程本身,用于分享日程详情。**分享日程给某个人、某个群或粘贴到文档中,需要的都是这个日程分享链接(通过 `calendar events share_info` 获取),不是 applink**;禁止自己拼接 applink 或用 applink 代替。
|
|
152
156
|
- 会议链接:`https://<domain>/j/<number>`,指向视频会议入口;同一重复性日程序列的所有实例共用同一个会议链接。
|
|
153
157
|
|
|
154
158
|
## 术语映射
|
|
@@ -157,15 +161,16 @@ lark-cli calendar +freebusy --start 2026-03-11T09:00:00+08:00 --end 2026-03-11T1
|
|
|
157
161
|
|
|
158
162
|
## 意图路由
|
|
159
163
|
|
|
164
|
+
**日程与会议的关系**:用户口中的「会议」通常不区分日程和视频会议。定义、三种查询意图(当前/未来/过去)的分流规则见 [日程与视频会议的关系](references/lark-calendar-meeting-relation.md)。
|
|
165
|
+
|
|
160
166
|
| 用户意图 | 路由到 |
|
|
161
167
|
|----------|--------|
|
|
162
|
-
| 查询过去的会议("昨天的会议""上周的会"
|
|
163
|
-
|
|
|
164
|
-
| 查询日历/日程或未来时间的会议 | 本 skill |
|
|
168
|
+
| 查询过去的会议("昨天的会议""上周的会")/今天有哪些会议 / 当前正在开的会议 | 先读 [日程与视频会议的关系](references/lark-calendar-meeting-relation.md) |
|
|
169
|
+
| 未来的会议 / 明天/下周的会议 | 本 skill:视频会议不存在于未来,等价于查日程 |
|
|
165
170
|
| 按关键词搜索日程 | 本 skill(`+search-event`) |
|
|
166
|
-
| 从日程获取关联的视频会议 ID 或用户绑定的会议纪要文档 | 本 skill
|
|
171
|
+
| 从日程获取关联的视频会议 ID 或用户绑定的会议纪要文档 | 本 skill([`+meeting`](references/lark-calendar-meeting.md)) |
|
|
167
172
|
| 查看日程的参会人 / 会议室(含 `--type resource` 只看会议室) | 本 skill([`+list-attendees`](references/lark-calendar-list-attendees.md)) |
|
|
168
|
-
| 把日程分享给某人 / 群 | 本 skill:先 `calendar events share_info` 取**日程分享链接**,再走 [lark-im](../lark-im/SKILL.md)
|
|
173
|
+
| 把日程分享给某人 / 群 / 粘贴到文档 | 本 skill:先 `calendar events share_info` 取**日程分享链接**,再走 [lark-im](../lark-im/SKILL.md) 发送或粘贴该链接;**分享日程给某个人、某个群或粘贴到文档中,需要的都是日程分享链接,不是 applink**,不要自己拼接或用 applink 代替 |
|
|
169
174
|
| 从日程进一步拿 AI 智能纪要 / 逐字稿 / 妙记产物 | 先 `+meeting` 取 `meeting_id`,再进入 [`lark-meeting`](../lark-meeting/SKILL.md):[`vc +detail`](../lark-meeting/references/lark-vc-detail.md) → [`note +detail`](../lark-meeting/references/lark-note-detail.md) / [`minutes +detail`](../lark-meeting/references/lark-minutes-detail.md) |
|
|
170
175
|
| 预约/改约日程、调整时间、添加/更换会议室、查会议室 | 先判断新建 vs 编辑,再进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md) |
|
|
171
176
|
| 仅编辑日程字段(标题/描述)或增删参会人(不涉及时间和会议室) | 先定位 `event_id`,再读 [+update](references/lark-calendar-update.md) 执行变更 |
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# 日程与视频会议的关系
|
|
2
|
+
|
|
3
|
+
用户口中的「会议」不区分「日程」和「视频会议」,实际是两类不同实体。本文定义两者关系,并给出「当前 / 未来 / 过去」三种查询意图的执行流程。
|
|
4
|
+
|
|
5
|
+
## 核心概念
|
|
6
|
+
|
|
7
|
+
- **日程(Calendar Event)**:对用户一段时间的预占,到点后可能开视频会议、也可能只是线下会议 / 私人时间块。
|
|
8
|
+
- **视频会议(VC Meeting)**:实际发生过的一次通话,`meeting_id` 只有真正发起后才存在。
|
|
9
|
+
|
|
10
|
+
| 场景 | `event_id` | `meeting_id` | 备注 |
|
|
11
|
+
|------|:---:|:---:|------|
|
|
12
|
+
| 日程发起了视频会议 | ✓ | ✓ | 一个日程可发起多次通话,产出多个 `meeting_id` |
|
|
13
|
+
| 日程未开视频会议 | ✓ | ✗ | 线下会议 / 私人时间块 |
|
|
14
|
+
| 即时视频会议 | ✗ | ✓ | 无日程绑定 |
|
|
15
|
+
|
|
16
|
+
**关键不变量**:视频会议只发生在**当下和过去**,不存在「未来的视频会议」。
|
|
17
|
+
|
|
18
|
+
## 意图 1:查询当前正在开的会议
|
|
19
|
+
|
|
20
|
+
**目标覆盖**:当下时间点用户可能关心的所有活动——正在开的视频会议 + 当前时间的日程(无论有没有开视频)。
|
|
21
|
+
|
|
22
|
+
**执行步骤**:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# 1. 当前时间的日程
|
|
26
|
+
lark-cli calendar +agenda --start <now> --end <now>
|
|
27
|
+
|
|
28
|
+
# 2. 用户已加入的视频会议
|
|
29
|
+
lark-cli vc +meeting-list-active --as user
|
|
30
|
+
|
|
31
|
+
# 3. 步骤 1 每个日程回查关联 meeting_id
|
|
32
|
+
# 输出是 event_id → meeting_id 映射;后续所有交叉都按 meeting_id 匹配
|
|
33
|
+
# (vc +meeting-list-active / vc +detail 结果的 id 字段即 meeting_id,无 event_id)
|
|
34
|
+
lark-cli calendar +meeting --event-ids <event_id1>,<event_id2>
|
|
35
|
+
|
|
36
|
+
# 4. 判定视频会议是否仍在进行
|
|
37
|
+
# 仅对「步骤 3 非空 meeting_id 且不在步骤 2 里」的调用
|
|
38
|
+
# end_time 为空或 <= start_time → 仍在进行;否则已结束
|
|
39
|
+
lark-cli vc +detail --meeting-ids <meeting_id1>,<meeting_id2>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**结果分组呈现**:按下列**四组顺序**归类,每组独立成节,空组可省略。
|
|
43
|
+
|
|
44
|
+
1. **当前用户正在参与的会议**(`meeting_id` 命中步骤 2)
|
|
45
|
+
- **即时会议**(无关联 `event_id`):仅展示视频会议信息。
|
|
46
|
+
- **日程会议**(能与步骤 3 的 `event_id` 关联):展示日程信息 + 视频会议信息。
|
|
47
|
+
2. **当前正在视频会议的日程(用户未加入)**:日程有 `meeting_id`、步骤 4 判定仍在进行、但不在步骤 2 里。展示日程信息 + 视频会议信息。
|
|
48
|
+
3. **当前正在进行中的日程(视频会议已结束)**:日程仍在时间窗内、有 `meeting_id`,但步骤 4 判定已结束。展示日程信息 + 视频会议信息(标注「已结束」)。
|
|
49
|
+
4. **当前正在进行中的日程(未开启视频会议)**:日程仍在时间窗内,步骤 3 回查无 `meeting_id`。仅展示日程信息。
|
|
50
|
+
|
|
51
|
+
## 意图 2:查询未来的会议
|
|
52
|
+
|
|
53
|
+
**只有日程视角**:视频会议只发生在当下和过去,用户说的「未来的会议」等价于「未来的日程」。
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# 二选一:无关键词 → +agenda;有关键词 → +search-event
|
|
57
|
+
lark-cli calendar +agenda --start <future_start> --end <future_end>
|
|
58
|
+
lark-cli calendar +search-event --query <keyword> --start <future_start> --end <future_end>
|
|
59
|
+
|
|
60
|
+
# 禁用:vc +search 对未来返回空,容易被误判「没有会议」
|
|
61
|
+
# lark-cli vc +search --start <future> --end <future> ← 不要这样做
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
若用户明确要求「未来的视频会议」,仍返回日程列表并**主动说明**:视频会议是否真正开要等到时间到达才能确定。
|
|
65
|
+
|
|
66
|
+
## 意图 3:查询过去的会议
|
|
67
|
+
|
|
68
|
+
**目标覆盖**:过去时间段内发生过的视频会议(含即时会议)+ 过去时间段的日程(含未开视频会议的)。
|
|
69
|
+
|
|
70
|
+
**执行步骤**:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# 1. 过去的视频会议(含即时会议——仅查日程会漏掉)
|
|
74
|
+
lark-cli vc +search --start <past_start> --end <past_end>
|
|
75
|
+
|
|
76
|
+
# 2. 过去的日程
|
|
77
|
+
lark-cli calendar +agenda --start <past_start> --end <past_end>
|
|
78
|
+
|
|
79
|
+
# 3. 步骤 2 每个日程回查 meeting_id,构建 meeting_id → event_id 映射
|
|
80
|
+
# 遍历步骤 1 每条结果,用其 id 字段(即 meeting_id)查此映射:
|
|
81
|
+
# 命中 → 日程视频会议;未命中 → 无日程的即时会议
|
|
82
|
+
lark-cli calendar +meeting --event-ids <event_id1>,<event_id2>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**结果分组**:按三组顺序呈现。
|
|
86
|
+
|
|
87
|
+
1. **无日程的即时视频会议**:步骤 1 里找不到关联 `event_id`。仅展示视频会议信息。
|
|
88
|
+
2. **日程视频会议**:日程 + 关联 `meeting_id`。同时展示日程信息和视频会议信息。
|
|
89
|
+
3. **未开视频会议的日程**:日程存在但步骤 3 回查无 `meeting_id`。仅展示日程信息。
|
|
90
|
+
|
|
91
|
+
## 常见判断路径
|
|
92
|
+
|
|
93
|
+
| 用户输入 | 动作 |
|
|
94
|
+
|----------|------|
|
|
95
|
+
| 只给了「会议标题」 | 不确定是日程标题还是即时会议标题,**同时**查 `calendar +search-event --query <标题>` 与 [`lark-meeting`](../../lark-meeting/SKILL.md) 的 `vc +search --query <标题>`,交叉后按上述意图分流 |
|
|
96
|
+
| 直接给了 `meeting_id` | 直接进入 [`lark-meeting`](../../lark-meeting/SKILL.md),跳过日程 |
|
|
97
|
+
| 相对锚点(「今天下午 3 点那个会」) | 先 `+agenda` 定位日程,再按意图 1 或 3 判断 |
|
|
98
|
+
| 过去锚点(「昨天开的会」) | **禁止只查 `+agenda`**——必须同时查 `vc +search`,否则漏掉即时会议 |
|
|
99
|
+
| 未来锚点(「明天下午的会」) | 只查日程,不查 `vc +search`(未来永远返回空) |
|
|
@@ -37,4 +37,4 @@ lark-cli minutes +detail --minute-tokens <minute_token> --summary --todo --chapt
|
|
|
37
37
|
|
|
38
38
|
# 3. 任意文档 token(meeting_note / note_doc_token / verbatim_doc_token / shared_doc_token)→ 正文
|
|
39
39
|
lark-cli docs +fetch --api-version v2 --doc <doc_token> --doc-format markdown
|
|
40
|
-
```
|
|
40
|
+
```
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
- `lark-cli calendar +delete` — 删除日程;重复性日程/例外必须传 `--apply-to`。
|
|
6
6
|
- `lark-cli calendar +update` — 更新日程;重复性日程/例外必须传 `--apply-to`。
|
|
7
7
|
|
|
8
|
-
>
|
|
8
|
+
> **破坏性操作闸(Destructive Confirmation Gate):** 用户未明确操作范围时,必须先向用户确认。`+delete`、以及 `+update` 中会通知参会人或不可逆的写操作执行前,**即使目标 event_id 和 `--apply-to` 都已明确,Agent 也必须等待用户确认**。
|
|
9
|
+
>
|
|
10
|
+
> 只有用户在同一轮对话中明说「直接删 / 不用问 / 已确认 / 别再确认 / just do it」等等价意思时才可跳过。跳过时须在最终回复里注明「已按用户显式免确认执行」,方便回溯。
|
|
9
11
|
|
|
10
12
|
## `--apply-to` 与日程类型的匹配矩阵
|
|
11
13
|
|
package/skills/lark-doc/SKILL.md
CHANGED
|
@@ -16,7 +16,7 @@ metadata:
|
|
|
16
16
|
|
|
17
17
|
**身份:文档操作推荐显式指定 `--as user`。**
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
**本地文件引用统一遵循文件访问权限:CWD 内优先使用 `@./相对路径`,其他目录使用 `@绝对路径`。XML 内的相对资源路径先查 CWD;仅文件不存在时再查源 XML 文件所在目录,同名文件以 CWD 为准。内联内容、stdin、在线文档没有源文件目录,不执行回退。**
|
|
20
20
|
|
|
21
21
|
### 文档内容
|
|
22
22
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
下表文件均位于当前 Skill 的 `references/genres/` 目录。
|
|
26
26
|
|
|
27
|
-
- 路由表仅用于选择候选,不代替 contract。高置信命中后必须读取对应 Profile / Adapter,并按其中的路由与消歧规则复核;未读取不得确定该值或进入 Step 3
|
|
27
|
+
- 路由表仅用于选择候选,不代替 contract。高置信命中后必须读取对应 Profile / Adapter,并按其中的路由与消歧规则复核;未读取不得确定该值或进入 Step 3。确认后记录固定短名,最多各读取一个;未命中时可省略 `genre_contract` 和 `adapter`。
|
|
28
28
|
- contract 决定内容任务、证据和体裁边界;adapter 只调整与所选 contract 兼容的平台结构、写作风格和组件约束。
|
|
29
29
|
|
|
30
30
|
| Content Profile | 独特专业任务 |
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
### Step 3:收集资料并扫描表达机会。
|
|
47
47
|
|
|
48
48
|
1. 强制扫描事实、数据、案例、引用和图片等资源缺口;内容需要而现有材料不足时必须检索或生成,判断需要图片且用户未提供素材时必须搜索图片。
|
|
49
|
-
2. 根据用户要求、contract / adapter
|
|
49
|
+
2. 根据用户要求、contract / adapter 限制和内容需要选择表达方式;可用 `presentation_mode` 记录视觉策略,不因字段存在就机械使用组件。
|
|
50
50
|
|
|
51
51
|
| 信息关系 | 候选表达 |
|
|
52
52
|
|-|-|
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
| 简单并列、步骤或连续论述 | 列表或段落 |
|
|
60
60
|
|
|
61
61
|
3. 按全篇、章节、block 三个尺度构图:相关内容相邻,同类关系保持相同顺序与对齐;正文可以是主表达,不要求每节都有 presentation block。
|
|
62
|
-
4. 在写正文前确定计划使用的 block
|
|
62
|
+
4. 在写正文前确定计划使用的 block。Presentation Decision 的 `visual_plan.blocks` 只记录确需最低数量约束的 `whiteboard`、`img`、`html5-block`。三类均无硬性数量要求时写 `"blocks": []`。
|
|
63
63
|
|
|
64
64
|
`presentation_mode` 只表示模型采用的视觉策略;只有用户要求、contract / adapter 限制互相冲突时才询问用户:
|
|
65
65
|
|
|
@@ -93,23 +93,21 @@
|
|
|
93
93
|
lark-cli docs +script --command init-draft --presentation-decision '<上方完整 JSON>' --format json
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- 保持当前工作目录不变;将 `data.workspace` 原样记为 `work_dir`,将 `data.draft_path` 原样记为 `draft_path`;遵循 `data.tip`,后续始终使用 `@./<draft_path>`。
|
|
99
|
-
- CLI 会创建独占的 `work_dir` 并保存 `.presentation-decision.json` 作为固定基线,**但不会创建 `draft_path` 指向的 XML**。`draft_path` 是当前任务可直接写入的新文件路径;要求、资料或 contract 实质变化时,提交新决策并重新初始化,不得直接改基线。
|
|
96
|
+
- 返回的 `data` 字段包含 cwd、workspace、draft_path,后续 CLI 在 `data.cwd` 下执行;将 `data.workspace` 记为 `work_dir`、`data.draft_path` 记为 `draft_path`(已含工作区前缀)。
|
|
97
|
+
- CLI 会创建独占的 `work_dir` 并保存 `.presentation-decision.json` 作为固定基线,**但不会创建 `draft_path` 指向的 XML**。`draft_path` 是当前任务可直接写入的新文件路径;
|
|
100
98
|
|
|
101
99
|
### Step 5:生成 release candidate。
|
|
102
100
|
|
|
103
101
|
读取 [`lark-doc-xml.md`](lark-doc-xml.md),并结合 Presentation Decision、适用 contract 和 Philosophy 生成完整 XML。使用扩展标签时按需读取 [`拓展标签`](lark-doc-xml-extended-blocks.md)。
|
|
104
102
|
|
|
105
|
-
1. 公开网络图片使用 `<img href="URL"/>`;已有本地图片使用 `<img path="@./
|
|
106
|
-
2. 直接在
|
|
103
|
+
1. 公开网络图片使用 `<img href="URL"/>`;已有本地图片使用 `<img path="@./downloads/image.png"/>`;画板使用 `<whiteboard type="svg" path="@./<work_dir>/diagram.svg"/>` 并遵循[`画板工作流`](lark-doc-whiteboard.md);HTML 使用 `<html5-block path="@./<work_dir>/widget.html"/>` 并遵循[`拓展标签`](lark-doc-xml-extended-blocks.md)。
|
|
104
|
+
2. 直接在 `<data.cwd>/<draft_path>` 创建并写入完整 release candidate。新建资源建议放 `<data.cwd>/<work_dir>`,已有资源可原地复用;CWD 内优先用相对路径,其他位置用允许访问的绝对路径。XML 内相对资源先查 CWD,仅文件不存在时回退到 XML 所在目录。
|
|
107
105
|
3. 首次写入后,发现 XML 语法问题时只修复最小范围,不无故重写正确内容。
|
|
108
106
|
|
|
109
107
|
### Step 6:执行 Draft Profile Check。
|
|
110
108
|
|
|
111
109
|
1. 执行 `lark-cli docs +script --command parse --content "@./<draft_path>" --format json`。顶层 `ok` 仅表示命令执行成功,是否通过看 `data.assessment.status`。失败时按 `data.diagnostics[]` 局部修复;只有草稿为空、截断或结构无效时才全文重建。`parse` 不替代 XML 规则或服务端校验。
|
|
112
|
-
2.
|
|
110
|
+
2. `passed` 只覆盖已启用的检查;先对照用户要求确认应声明的约束已完整填写,再按 [`lark-doc-xml.md`](lark-doc-xml.md) 复查标签、属性和值,并依据 Philosophy 检查事实与来源、用户硬约束、适用 contract / adapter 以及 `visual_plan`。最终 XML 能否写入以 `docs +create` 的服务端结果为准。
|
|
113
111
|
|
|
114
112
|
### Step 7:创建文档并处理局部失败。
|
|
115
113
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
# docs +media-download(下载文档素材/画板缩略图)
|
|
3
3
|
|
|
4
|
-
> **前置条件:** 先阅读 [
|
|
4
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
5
|
|
|
6
6
|
下载文档中的图片/文件素材(`file_token`),或下载画板缩略图(`whiteboard_id`)。当 `--output` 不带扩展名时,会根据响应的 `Content-Type` 自动补全扩展名。
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
# docs +media-insert(文档末尾插入图片/文件)
|
|
3
3
|
|
|
4
|
-
> **前置条件:** 先阅读 [
|
|
4
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
5
|
|
|
6
6
|
把"创建空 block → 上传文件 → 设置 token"三步合并成一个命令,在**文档末尾**插入本地图片或文件。
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
# docs +media-preview(预览文档素材)
|
|
3
3
|
|
|
4
|
-
> **前置条件:** 先阅读 [
|
|
4
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
5
|
|
|
6
6
|
优先用于查看、预览文档中的图片或文件素材(`file_token`)。命令会把素材保存到本地路径,便于后续打开查看内容。
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# docs +resource-*(Docx 封面图资源)
|
|
2
2
|
|
|
3
|
-
> **前置条件:** 先阅读 [
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
5
|
Docx 封面图不是正文里的 `<img token="...">` 素材块。读取、更新、删除文档封面图时,使用 `docs +resource-download/+resource-update/+resource-delete --type cover`,不要使用 `+media-insert` 或 `+media-download --token <cover.token>` 让用户手动拼步骤。
|
|
6
6
|
|