@amaster.ai/pi-lark 0.1.2-beta.55 → 0.1.2-beta.57

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 (63) hide show
  1. package/package.json +2 -2
  2. package/skills/lark-apps/SKILL.md +2 -0
  3. package/skills/lark-apps/references/lark-apps-db.md +130 -2
  4. package/skills/lark-apps/references/lark-apps-user-id-convert.md +63 -0
  5. package/skills/lark-base/SKILL.md +22 -34
  6. package/skills/lark-base/references/lark-base-cell-value.md +19 -7
  7. package/skills/lark-base/references/lark-base-data-analysis-cloud.md +145 -0
  8. package/skills/lark-base/references/lark-base-data-analysis-pandas.md +93 -0
  9. package/skills/lark-base/references/lark-base-data-analysis-python-stdlib.md +120 -0
  10. package/skills/lark-base/references/lark-base-data-analysis-sop.md +176 -162
  11. package/skills/lark-base/references/lark-base-data-query-guide.md +1 -3
  12. package/skills/lark-base/references/lark-base-data-query.md +6 -9
  13. package/skills/lark-base/references/lark-base-field-json.md +2 -2
  14. package/skills/lark-base/references/lark-base-filter-condition.md +19 -3
  15. package/skills/lark-base/references/lark-base-record-upsert.md +2 -2
  16. package/skills/lark-calendar/SKILL.md +2 -0
  17. package/skills/lark-calendar/references/lark-calendar-create.md +1 -0
  18. package/skills/lark-doc/SKILL.md +1 -1
  19. package/skills/lark-drive/SKILL.md +4 -2
  20. package/skills/lark-drive/references/lark-drive-export.md +1 -0
  21. package/skills/lark-drive/references/lark-drive-member-remove.md +59 -0
  22. package/skills/lark-drive/references/lark-drive-push.md +5 -1
  23. package/skills/lark-drive/references/lark-drive-search.md +2 -0
  24. package/skills/lark-minutes/SKILL.md +11 -5
  25. package/skills/lark-minutes/references/lark-minutes-apply-permission.md +95 -0
  26. package/skills/lark-minutes/references/lark-minutes-detail.md +7 -6
  27. package/skills/lark-minutes/references/lark-minutes-download.md +4 -2
  28. package/skills/lark-note/SKILL.md +11 -9
  29. package/skills/lark-note/references/lark-note-detail.md +5 -2
  30. package/skills/lark-note/references/lark-note-transcript.md +2 -0
  31. package/skills/lark-shared/SKILL.md +36 -0
  32. package/skills/lark-slides/SKILL.md +14 -14
  33. package/skills/lark-slides/references/{xml → cli}/lark-slides-add-slide.md +1 -1
  34. package/skills/lark-slides/references/cli/lark-slides-create.md +5 -5
  35. package/skills/lark-slides/references/{xml → cli}/lark-slides-delete-slide.md +2 -2
  36. package/skills/lark-slides/references/cli/lark-slides-media-upload.md +4 -5
  37. package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +10 -9
  38. package/skills/lark-slides/references/{lark-slides-update-slide.md → cli/lark-slides-update-slide.md} +3 -3
  39. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +3 -3
  40. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +2 -2
  41. package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +2 -2
  42. package/skills/lark-slides/references/lark-slides-add-slide.md +1 -1
  43. package/skills/lark-slides/references/lark-slides-delete-slide.md +1 -1
  44. package/skills/lark-slides/references/lark-slides-edit-workflows.md +1 -1
  45. package/skills/lark-slides/references/workflow/error-handling.md +1 -1
  46. package/skills/lark-slides/references/workflow/{slides_editing.md → slides-editing.md} +4 -4
  47. package/skills/lark-slides/references/workflow/validation-xml.md +1 -1
  48. package/skills/lark-task/SKILL.md +12 -0
  49. package/skills/lark-task/references/lark-task-create.md +3 -1
  50. package/skills/lark-vc/SKILL.md +13 -5
  51. package/skills/lark-vc/references/lark-vc-detail.md +11 -6
  52. package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-events.md → lark-vc/references/lark-vc-meeting-events.md} +121 -20
  53. package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-list-active.md → lark-vc/references/lark-vc-meeting-list-active.md} +2 -2
  54. package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-message-send.md → lark-vc/references/lark-vc-meeting-message-send.md} +3 -3
  55. package/skills/lark-vc/references/lark-vc-recording.md +8 -6
  56. package/skills/lark-vc/references/vc-domain-boundaries.md +6 -1
  57. package/skills/lark-vc-agent/SKILL.md +24 -9
  58. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +2 -2
  59. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +2 -2
  60. package/skills/lark-wiki/references/lark-wiki-node-create.md +19 -2
  61. package/skills/lark-wiki/references/lark-wiki-node-get.md +11 -0
  62. package/skills/lark-wiki/references/lark-wiki-node-list.md +1 -1
  63. package/skills/lark-slides/references/cli/lark-slides-replace-pages.md +0 -97
@@ -12,8 +12,8 @@
12
12
  | 场景 | 推荐方式 |
13
13
  |------|----------|
14
14
  | 不超过 10 页 | 每页存一个 XML 文件,`slides +create --slide @page-01.xml --slide @page-02.xml ...` 一步创建 |
15
- | 超过 10 页 | **两步创建**:先 `slides +create` 创建空白 PPT,再用 [`+add-slide`](../xml/lark-slides-add-slide.md) 逐页添加 |
16
- | 已有 PPT 继续追加或插入页面 | 使用 [`+add-slide`](../xml/lark-slides-add-slide.md),必要时配合 `--before-slide-id` |
15
+ | 超过 10 页 | **两步创建**:先 `slides +create` 创建空白 PPT,再用 [`+add-slide`](lark-slides-add-slide.md) 逐页添加 |
16
+ | 已有 PPT 继续追加或插入页面 | 使用 [`+add-slide`](lark-slides-add-slide.md),必要时配合 `--before-slide-id` |
17
17
 
18
18
  > [!IMPORTANT]
19
19
  > `slides +create` 带页面时底层会逐页创建,不是原子操作。中途失败时先记录 `xml_presentation_id`,回读确认当前状态,再继续修复或追加。
@@ -56,7 +56,7 @@ lark-cli slides +create --title "项目汇报" --slide @./slide-01.xml --dry-run
56
56
  - **`permission_grant`**(object,可选):仅 `--as bot` 时返回,说明是否已自动为当前 CLI 用户授予可管理权限
57
57
 
58
58
  > [!IMPORTANT]
59
- > 不带页面参数时,`slides +create` 只创建空白演示文稿。创建后用 [`+add-slide`](../xml/lark-slides-add-slide.md) 逐页添加 slide 内容。
59
+ > 不带页面参数时,`slides +create` 只创建空白演示文稿。创建后用 [`+add-slide`](lark-slides-add-slide.md) 逐页添加 slide 内容。
60
60
  >
61
61
  > 带了页面时,CLI 先创建空白演示文稿,再逐页调用 slide 创建接口添加页面。如果某一页添加失败,CLI 会停止并报错,已创建的演示文稿和已添加的页面会保留。
62
62
  >
@@ -77,7 +77,7 @@ lark-cli slides +create --title "项目汇报" --slide @./slide-01.xml --dry-run
77
77
  | `--slide` | 否 | 一页 `<slide>` XML,或 `@路径`;可重复,最多 10 次。格式见[页面输入形式](#页面输入形式) |
78
78
  | `--slides` | 否 | 页面 XML 的 JSON 字符串数组,最多 10 个;支持 `@文件` 和 `-`(stdin)。格式见[页面输入形式](#页面输入形式) |
79
79
 
80
- 10 页是 CLI 的上限,服务端每次只接收一页。超过 10 页时先用 `+create` 创建空白 PPT,再用 [`+add-slide`](../xml/lark-slides-add-slide.md) 逐页添加。
80
+ 10 页是 CLI 的上限,服务端每次只接收一页。超过 10 页时先用 `+create` 创建空白 PPT,再用 [`+add-slide`](lark-slides-add-slide.md) 逐页添加。
81
81
 
82
82
  两种形式的每一页都会在发请求前校验成「单个完整的 `<slide>` 文档」。不合格的页在创建演示文稿之前报错并指出页序号,不会留下空壳演示文稿。
83
83
 
@@ -172,5 +172,5 @@ lark-cli slides +add-slide --as user \
172
172
 
173
173
  ## 相关命令
174
174
 
175
- - [slides +add-slide](../xml/lark-slides-add-slide.md) — 追加/插入单页(两步创建的第二步)
175
+ - [slides +add-slide](lark-slides-add-slide.md) — 追加/插入单页(两步创建的第二步)
176
176
  - [slides +xml-get](lark-slides-xml-presentations-get.md) — 读取 PPT 内容并保存到本地文件
@@ -1,6 +1,6 @@
1
1
  # slides +delete-slide(按 slide_id 删除单页)
2
2
 
3
- 从演示文稿删除**一页**,按 `slide_id` 指定。只改一页里的局部内容用 [`+replace-slide`](../cli/lark-slides-replace-slide.md),不要删了重建。
3
+ 从演示文稿删除**一页**,按 `slide_id` 指定。只改一页里的局部内容用 [`+replace-slide`](lark-slides-replace-slide.md),不要删了重建。
4
4
 
5
5
  `--presentation` 接受 token / `/slides/` URL / `/wiki/` URL,ID 是普通 flag 而不是 `--params` JSON 串。
6
6
 
@@ -54,7 +54,7 @@ lark-cli slides +delete-slide --presentation "$PID" --slide-id "$SID" --dry-run
54
54
 
55
55
  ## 删错了怎么办
56
56
 
57
- 删除在原地不可撤销,但可以走历史版本回滚:`+history-list` 找 `history_version_id` → `+history-revert`(只接受 `history_version_id`,不能传 `revision_id`)→ `+history-revert-status` 轮询。命令用法见 [lark-slides-history.md](../cli/lark-slides-history.md)。
57
+ 删除在原地不可撤销,但可以走历史版本回滚:`+history-list` 找 `history_version_id` → `+history-revert`(只接受 `history_version_id`,不能传 `revision_id`)→ `+history-revert-status` 轮询。命令用法见 [lark-slides-history.md](lark-slides-history.md)。
58
58
 
59
59
  ## 常见错误
60
60
 
@@ -1,4 +1,3 @@
1
-
2
1
  # slides +media-upload(上传本地图片到飞书幻灯片)
3
2
 
4
3
  把本地图片上传到指定演示文稿的 drive 媒体库,返回 `file_token`。**返回的 token 作为 `<img src="...">` 的值塞进 slide XML 即可显示图片。**
@@ -44,7 +43,7 @@ lark-cli slides +media-upload --file ./pic.png --presentation $PRES_ID --dry-run
44
43
 
45
44
  | 参数 | 必填 | 说明 |
46
45
  |------|------|------|
47
- | `--file` | 是 | 本地图片路径,**必须是 CWD 内的相对路径**(如 `./pic.png`)。**最大 20 MB**(slides upload API 不支持分片上传) |
46
+ | `--file` | 是 | 本地图片路径,**必须是 CWD 内的相对路径**(如 `./pic.png`)。**最大 20 MB**(slides upload API 不支持分片上传)。**仅支持 png / jpeg / gif / bmp / tiff / webp** |
48
47
  | `--presentation` | 是 | `xml_presentation_id`、`/slides/<token>` URL,或 `/wiki/<token>` URL |
49
48
 
50
49
  > [!IMPORTANT]
@@ -52,7 +51,7 @@ lark-cli slides +media-upload --file ./pic.png --presentation $PRES_ID --dry-run
52
51
 
53
52
  ## 使用流程
54
53
 
55
- > 新建 PPT([`+create --slides`](lark-slides-create.md))或给已有 PPT 加新页([`+add-slide`](../xml/lark-slides-add-slide.md))都不需要单独上传:XML 里把 `<img src>` 写成 `@<本地路径>`,CLI 会自动上传并替换成 `file_token`。
54
+ > 新建 PPT([`+create --slides`](lark-slides-create.md))或给已有 PPT 加新页([`+add-slide`](lark-slides-add-slide.md))都不需要单独上传:XML 里把 `<img src>` 写成 `@<本地路径>`,CLI 会自动上传并替换成 `file_token`。
56
55
  > 本命令用于往**已有页**里加图,或需要自己拿着 `file_token` 拼 XML 的场景。
57
56
 
58
57
  ### 给已有 PPT 的已有页加图
@@ -65,7 +64,7 @@ SID=yyy # 要加图的那一页
65
64
 
66
65
  # 1) 上传图片拿 file_token
67
66
  TOKEN=$(lark-cli slides +media-upload --as user \
68
- --file ./pic.png --presentation $PRES_ID | jq -r '.data.file_token')
67
+ --file ./pic.png --presentation $PRES_ID --jq '.data.file_token')
69
68
 
70
69
  # 2) block_insert 到页末(或用 insert_before_block_id 指定插入位置)
71
70
  lark-cli slides +replace-slide --as user \
@@ -101,4 +100,4 @@ lark-cli slides +replace-slide --as user \
101
100
 
102
101
  - [+create](lark-slides-create.md) — 新建 PPT(支持 `@` 占位符自动上传图片)
103
102
  - [+replace-slide](lark-slides-replace-slide.md) — 给已有页加图 / 换图(`block_insert` / `block_replace`)
104
- - [+add-slide](../xml/lark-slides-add-slide.md) — 追加/插入单页(同样支持 `@` 占位符自动上传)
103
+ - [+add-slide](lark-slides-add-slide.md) — 追加/插入单页(同样支持 `@` 占位符自动上传)
@@ -2,7 +2,7 @@
2
2
 
3
3
  对指定 slide 做块级替换或插入。编辑已有 PPT 的主路径——`slide_id` 不变、页序不动、只影响被指定的块。
4
4
 
5
- > **`--parts` 字段名是硬约束**:装 XML 片段的字段,`block_replace` 只认 `replacement`,`block_insert` 只认 `insertion`(都是字符串)。`content` / `xml` / `new_xml` / `block_xml` / `block` / `element` / `data` 这些写法,以及任何其他字段名,**一律被 CLI 直接拒绝**——常见的错法会直接告诉你该用哪个字段(`unknown field "content"; did you mean "replacement"?`),其余只列出该 action 的合法字段集。`<content>` 是 `<shape>` 的**子元素**,不是 part 的字段名——这是最常见的搞混点。
5
+ > **编写 `--parts` 时只使用标准 action 和字段**:`block_replace` 使用 `block_id` + `replacement`,`block_insert` 使用 `insertion`(可选 `insert_before_block_id`)。不要根据其他 API 或自然语言猜 action、字段名;具体结构以本文表格为准。
6
6
 
7
7
  相比直接调 `xml_presentation.slide.replace`,这个 shortcut 的四个额外价值:
8
8
 
@@ -76,13 +76,12 @@ lark-cli slides +replace-slide --as user \
76
76
 
77
77
  ### 错误字段名(CLI 直接拒绝)
78
78
 
79
- part 里出现上表以外的字段一律报错,不会被静默忽略。报错总会点名写错的那个字段,并按情况给出下一步:能对上正确字段时直接建议它(`did you mean "replacement"?`),字段属于另一个 action 时说明归属(`it belongs to block_insert`),都对不上时列出该 action 的合法字段集。无论哪种,**要改的是字段名,不是字段值**。
79
+ 编写 part 时只使用上表中的标准字段。CLI 返回 unknown field 时会点名写错的字段,并按情况给出下一步:能对上正确字段时直接建议它(`did you mean \"replacement\"?`),字段属于另一个 action 时说明归属(`it belongs to block_insert`),都对不上时列出该 action 的合法字段集。无论哪种,**要改的是字段名,不是字段值**。
80
80
 
81
81
  ```jsonc
82
82
  // ❌ 全部被拒
83
- [{"action":"block_replace","block_id":"bUn","content":"<p>...</p>"}] // unknown field "content"; did you mean "replacement"?
84
- [{"action":"block_replace","block_id":"bUn","xml":"<shape.../>"}] // 同上(new_xml / block_xml / element / data 一样)
85
- [{"action":"block_replace","block_id":"bUn","block":{"content":"..."}}] // 不能把内容嵌一层 block
83
+ [{"action":"block_replace","block_id":"bUn","xml":"<shape.../>"}] // unknown field "xml"; did you mean "replacement"?
84
+ [{"action":"block_replace","block_id":"bUn","data":"<shape.../>"}] // data 不是标准字段
86
85
  [{"action":"block_replace","block_id":"bUn","insertion":"<shape/>"}] // insertion 属于 block_insert
87
86
  [{"action":"block_replace","block_id":"bUn","replacement":{"type":"..."}}] // replacement 必须是字符串,报 .replacement must be a string
88
87
 
@@ -186,7 +185,7 @@ SID=yyy
186
185
 
187
186
  # 1) 上传图片
188
187
  TOKEN=$(lark-cli slides +media-upload --as user \
189
- --file ./pic.png --presentation "$PID" | jq -r '.data.file_token')
188
+ --file ./pic.png --presentation "$PID" --jq '.data.file_token')
190
189
 
191
190
  # 2) block_insert 到页末
192
191
  lark-cli slides +replace-slide --as user \
@@ -227,7 +226,7 @@ lark-cli slides +replace-slide --as user \
227
226
  # 读时记录 revision_id
228
227
  REV=$(lark-cli slides xml_presentation.slide get --as user \
229
228
  --params "{\"xml_presentation_id\":\"$PID\",\"slide_id\":\"$SID\"}" \
230
- | jq '.data.revision_id')
229
+ --jq '.data.revision_id')
231
230
 
232
231
  # 写时传 --revision-id;传不存在的版本号(超过当前 revision)返回 3350002
233
232
  lark-cli slides +replace-slide --as user \
@@ -241,9 +240,11 @@ lark-cli slides +replace-slide --as user \
241
240
  |------|------|------|
242
241
  | 3350001 + hint "block_id not found" | `parts[i].block_id` 在当前页不存在 | 重新 `slide.get` 拿最新 XML,按里面的 short ID 再填 |
243
242
  | 3350002 not found | `--revision-id` 传了不存在的版本号(超过当前 revision) | 用 `-1` 或用 `slide.get` 拿到的有效 `revision_id` |
243
+ | `--parts invalid JSON` | JSON 本身不完整,或被 shell 引号/转义破坏 | 将数组写入 `parts.json` 后传 `--parts @parts.json`,或通过 stdin 传给 `--parts -` |
244
244
  | `--parts[i] action "str_replace" is not supported` | CLI 不暴露 `str_replace` | 把替换需求改写成 `block_replace` / `block_insert` |
245
+ | `--parts[i] action "page_replace" / "slide_replace" means whole-page replacement` | 把整页更新意图传给了块级 shortcut | 改用 [`slides +update-slide`](lark-slides-update-slide.md) 整页原地写回 |
245
246
  | `--parts contains N items, exceeds maximum of 200` | 一次提交 parts 太多 | 拆多次调用 |
246
- | `--parts[i] unknown field "content"; did you mean "replacement"?` | XML 塞进了不存在的字段名(`content` / `xml` / `block` / `data` 等) | 只改字段名:`block_replace` 用 `replacement`,`block_insert` 用 `insertion`;报错自带一行正确写法的 hint |
247
+ | `--parts[i] unknown field "xml"; did you mean "replacement"?` | XML 塞进了未支持的字段名(如 `xml` / `new_xml` / `data`) | 使用标准字段:`block_replace` 用 `replacement`,`block_insert` 用 `insertion` |
247
248
  | `--parts[i] unknown field "insertion"; it belongs to block_insert` | 字段和 `action` 不配对 | 按 action 取字段:`block_replace` = `block_id` + `replacement`;`block_insert` = `insertion` (+ `insert_before_block_id`) |
248
249
  | `--parts[i] (block_replace) requires non-empty block_id` / `replacement` | 字段名对,但值缺失或是空串 | 按 parts 元素结构补齐值 |
249
250
  | `<img>` 不显示 / 显示破图 | `src` 写了外链 URL | 换成通过 [`+media-upload`](lark-slides-media-upload.md) 拿到的 `file_token` |
@@ -255,4 +256,4 @@ lark-cli slides +replace-slide --as user \
255
256
  - [xml_presentation.slide get](lark-slides-xml-presentation-slide-get.md) — 读原页拿 `block_id` / `revision_id`
256
257
  - [xml_presentation.slide replace](lark-slides-xml-presentation-slide-replace.md) — 底层 replace API 参考
257
258
  - [+media-upload](lark-slides-media-upload.md) — 上传图片拿 `file_token`
258
- - [lark-slides-edit-workflows.md](../workflow/slides_editing.md) — 读-改-写闭环 + 决策树
259
+ - [slides-editing.md](../workflow/slides-editing.md) — 读-改-写闭环 + 决策树
@@ -88,7 +88,7 @@ lark-cli slides +update-slide --as user \
88
88
 
89
89
  ## 什么时候不要用它
90
90
 
91
- - **只改一个元素** → 用 [`+replace-slide`](cli/lark-slides-replace-slide.md),一条 `block_replace` part 更省,也不用带上整页
91
+ - **只改一个元素** → 用 [`+replace-slide`](lark-slides-replace-slide.md),一条 `block_replace` part 更省,也不用带上整页
92
92
  - **要改多个页面** → 对每一页各跑一次本命令
93
93
  - **要新建页面** → `slides +create` 或 `xml_presentation.slide create`
94
94
 
@@ -109,7 +109,7 @@ lark-cli slides +xml-get --as user \
109
109
  --presentation "$PRES" --output readback.xml
110
110
  ```
111
111
 
112
- 按当前已加载 `lark-slides/SKILL.md` 指向的 [validation-xml.md](workflow/validation-xml.md) 完成验证:核对总页数、目标页和关键元素(包括需要保留的 ID、文本、背景与备注),并对回读 XML 运行同一版式 lint;发现差异时先停止后续写入并重新基于最新版处理。
112
+ 按当前已加载 `lark-slides/SKILL.md` 指向的 [validation-xml.md](../workflow/validation-xml.md) 完成验证:核对总页数、目标页和关键元素(包括需要保留的 ID、文本、背景与备注),并对回读 XML 运行同一版式 lint;发现差异时先停止后续写入并重新基于最新版处理。
113
113
 
114
114
  ## 成功输出
115
115
 
@@ -141,6 +141,6 @@ lark-cli slides +xml-get --as user \
141
141
  | 现象 | 原因 | 解决 |
142
142
  |------|------|------|
143
143
  | 3350001,原因包含 `not found` | `--presentation` 不匹配,或 `--slide-id` 对应的页面已被删除 | 检查 `--presentation` 和 `--slide-id`,再用 `slides +xml-get` 回读当前页面 ID |
144
- | 3350001,其他 invalid param | `--content` 的 XML 结构有问题(如 `<shape>` 缺 `<content/>`、包含服务端不支持的元素) | 按 [error-handling.md](workflow/error-handling.md) 检查 `--content` 的 XML 结构 |
144
+ | 3350001,其他 invalid param | `--content` 的 XML 结构有问题(如 `<shape>` 缺 `<content/>`、包含服务端不支持的元素) | 按 [error-handling.md](../workflow/error-handling.md) 检查 `--content` 的 XML 结构 |
145
145
  | 3350002 not found | `--revision-id` 传了不存在的版本号 | 用 `-1` 或真实存在的 `revision_id` |
146
146
  | 1061004 / 403 | 当前身份对这份 PPT 没有编辑权限 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope;wiki 链接另需 `wiki:node:read`;`--as bot` 还要求该 bot 对目标 PPT 有编辑权限 |
@@ -48,7 +48,7 @@ lark-cli slides xml_presentation.slide get --as user --params '{
48
48
  ```bash
49
49
  lark-cli slides xml_presentation.slide get --as user \
50
50
  --params '{"xml_presentation_id":"slides_example_presentation_id","slide_id":"slide_example_id"}' \
51
- | jq -r '.data.slide.content'
51
+ --jq '.data.slide.content'
52
52
  ```
53
53
 
54
54
  ### 读指定历史版本
@@ -99,7 +99,7 @@ lark-cli slides xml_presentation.slide get --as user --params '{
99
99
  ```bash
100
100
  lark-cli slides xml_presentation.slide get --as user \
101
101
  --params "{\"xml_presentation_id\":\"$PID\",\"slide_id\":\"$SID\"}" \
102
- | jq -r '.data.slide.content' | grep -oE 'id="[^"]+"' | sed 's/id="//;s/"//'
102
+ --jq '.data.slide.content' | grep -oE 'id="[^"]+"' | sed 's/id="//;s/"//'
103
103
  ```
104
104
 
105
105
  ## 相关命令
@@ -107,4 +107,4 @@ lark-cli slides xml_presentation.slide get --as user --params '{
107
107
  - [slides +replace-slide](lark-slides-replace-slide.md) — 块级替换 shortcut(推荐)
108
108
  - [xml_presentation.slide replace](lark-slides-xml-presentation-slide-replace.md) — 底层 replace API 参考
109
109
  - [slides +xml-get](lark-slides-xml-presentations-get.md) — 读整个 PPT 并保存到本地文件
110
- - [lark-slides-edit-workflows.md](../workflow/slides_editing.md) — 读-改-写闭环
110
+ - [slides-editing.md](../workflow/slides-editing.md) — 读-改-写闭环
@@ -95,7 +95,7 @@ lark-cli slides xml_presentation.slide replace --as user --params '{
95
95
 
96
96
  ```bash
97
97
  # 先拿 file_token
98
- TOKEN=$(lark-cli slides +media-upload --file ./pic.png --presentation "$PID" --as user | jq -r '.data.file_token')
98
+ TOKEN=$(lark-cli slides +media-upload --file ./pic.png --presentation "$PID" --as user --jq '.data.file_token')
99
99
 
100
100
  lark-cli slides xml_presentation.slide replace --as user --params "{
101
101
  \"xml_presentation_id\": \"$PID\",
@@ -185,4 +185,4 @@ lark-cli slides xml_presentation.slide replace --as user --params '{
185
185
  - [slides +replace-slide](lark-slides-replace-slide.md) — 块级替换 shortcut(推荐,自动注入 id)
186
186
  - [xml_presentation.slide get](lark-slides-xml-presentation-slide-get.md) — 读原页拿 block short ID
187
187
  - [slides +media-upload](lark-slides-media-upload.md) — 上传图片拿 file_token
188
- - [lark-slides-edit-workflows.md](../workflow/slides_editing.md) — 读-改-写闭环 + 决策树
188
+ - [slides-editing.md](../workflow/slides-editing.md) — 读-改-写闭环 + 决策树
@@ -153,5 +153,5 @@ lark-cli slides xml_presentations get --as user --params '<json_params>'
153
153
  ## 相关命令
154
154
 
155
155
  - [slides +create](lark-slides-create.md) - 创建空白 PPT
156
- - [slides +add-slide](../xml/lark-slides-add-slide.md) - 添加幻灯片页面
157
- - [slides +delete-slide](../xml/lark-slides-delete-slide.md) - 删除幻灯片页面
156
+ - [slides +add-slide](lark-slides-add-slide.md) - 添加幻灯片页面
157
+ - [slides +delete-slide](lark-slides-delete-slide.md) - 删除幻灯片页面
@@ -1,5 +1,5 @@
1
1
  # slides +add-slide(兼容入口)
2
2
 
3
- 本文档已迁移至 [`xml/lark-slides-add-slide.md`](xml/lark-slides-add-slide.md)。
3
+ 本文档已迁移至 [`cli/lark-slides-add-slide.md`](cli/lark-slides-add-slide.md)。
4
4
 
5
5
  此文件仅保留旧路径兼容性;后续引用请使用新路径。
@@ -1,5 +1,5 @@
1
1
  # slides +delete-slide(兼容入口)
2
2
 
3
- 本文档已迁移至 [`xml/lark-slides-delete-slide.md`](xml/lark-slides-delete-slide.md)。
3
+ 本文档已迁移至 [`cli/lark-slides-delete-slide.md`](cli/lark-slides-delete-slide.md)。
4
4
 
5
5
  此文件仅保留旧路径兼容性;后续引用请使用新路径。
@@ -1,5 +1,5 @@
1
1
  # 编辑已有 PPT:读-改-写闭环(兼容入口)
2
2
 
3
- 本文档已迁移至 [`workflow/slides_editing.md`](workflow/slides_editing.md)。
3
+ 本文档已迁移至 [`workflow/slides-editing.md`](workflow/slides-editing.md)。
4
4
 
5
5
  此文件仅保留旧路径兼容性;后续引用请使用新路径。
@@ -59,4 +59,4 @@
59
59
 
60
60
  - 图片上传、`@path` 占位符、`file_token`:见 [lark-slides-media-upload.md](../cli/lark-slides-media-upload.md) 和 [lark-slides-create.md](../cli/lark-slides-create.md)。
61
61
  - 块级替换、`block_id`、3350001 replace 细节:见 [lark-slides-replace-slide.md](../cli/lark-slides-replace-slide.md)。
62
- - 追加/插入单页、`--before-slide-id` 和 `--slide @file` 绕开转义:见 [lark-slides-add-slide.md](../xml/lark-slides-add-slide.md)。
62
+ - 追加/插入单页、`--before-slide-id` 和 `--slide @file` 绕开转义:见 [lark-slides-add-slide.md](../cli/lark-slides-add-slide.md)。
@@ -1,6 +1,6 @@
1
1
  # 编辑已有 PPT:读-改-写闭环
2
2
 
3
- 局部编辑走 **shortcut [`+replace-slide`](../cli/lark-slides-replace-slide.md)**(块级替换 / 插入),配合 `xml_presentation.slide.get` 读原页拿 `block_id`。整页重建走 **[`+update-slide`](../lark-slides-update-slide.md)**,多页就每页各跑一次 —— 它原地覆盖并保留 `slide_id` 和页序;只有写进 `--content` 且带原 id 的元素才会保留元素 id,遗漏的元素会被删除。
3
+ 局部编辑走 **shortcut [`+replace-slide`](../cli/lark-slides-replace-slide.md)**(块级替换 / 插入),配合 `xml_presentation.slide.get` 读原页拿 `block_id`。整页重建走 **[`+update-slide`](../cli/lark-slides-update-slide.md)**,多页就每页各跑一次 —— 它原地覆盖并保留 `slide_id` 和页序;只有写进 `--content` 且带原 id 的元素才会保留元素 id,遗漏的元素会被删除。
4
4
 
5
5
  > 生成 XML 前**必读** [xml-schema-quick-ref.md](../xml/xml-schema-quick-ref.md)。
6
6
 
@@ -33,7 +33,7 @@ lark-cli slides +replace-slide --as user \
33
33
 
34
34
  `slide_id` / 页序不会变。`block_replace` 的 `replacement` 根元素 `id` 会自动注入为 `block_id`,用户手写 XML 时不需要自己加。
35
35
 
36
- > **part 的字段名是 `block_id` + `replacement`(XML 字符串)**:写成 `content` / `xml` / `block` 会被 CLI 拒绝(报 `unknown field "content"; did you mean "replacement"?`)。收到这个报错时改字段名,不要改字段值。
36
+ > **编写 `--parts` 时只使用标准字段**:`block_replace` 使用 `action` + `block_id` + `replacement`(XML 字符串),`block_insert` 使用 `action` + `insertion`(可选 `insert_before_block_id`)。收到 unknown field 报错时应按上述结构修改字段名,而不是修改字段值。
37
37
 
38
38
  ## `revision_id` 参数
39
39
 
@@ -43,7 +43,7 @@ lark-cli slides +replace-slide --as user \
43
43
  # 读时拿当前 revision_id
44
44
  REV=$(lark-cli slides xml_presentation.slide get --as user \
45
45
  --params "{\"xml_presentation_id\":\"$PID\",\"slide_id\":\"$SID\"}" \
46
- | jq '.data.revision_id')
46
+ --jq '.data.revision_id')
47
47
 
48
48
  # 写时传该版本号,服务端以此为 base
49
49
  lark-cli slides +replace-slide --as user \
@@ -136,7 +136,7 @@ cat parts.json | lark-cli slides +replace-slide --as user --presentation "$PID"
136
136
  ## 相关文档
137
137
 
138
138
  - [lark-slides-replace-slide.md](../cli/lark-slides-replace-slide.md) — +replace-slide shortcut 参数详情
139
- - [lark-slides-update-slide.md](../lark-slides-update-slide.md) — +update-slide shortcut 参数详情(整页覆盖)
139
+ - [lark-slides-update-slide.md](../cli/lark-slides-update-slide.md) — +update-slide shortcut 参数详情(整页覆盖)
140
140
  - [lark-slides-xml-presentation-slide-get.md](../cli/lark-slides-xml-presentation-slide-get.md) — slide.get 参考(拿 `block_id` / `revision_id`)
141
141
  - [lark-slides-xml-presentation-slide-replace.md](../cli/lark-slides-xml-presentation-slide-replace.md) — 底层 replace API 参考(一般直接用 shortcut 即可)
142
142
  - [lark-slides-media-upload.md](../cli/lark-slides-media-upload.md) — 上传图片拿 file_token
@@ -1,6 +1,6 @@
1
1
  # Validation Checklist
2
2
 
3
- 创建、大幅改写演示文稿或每次通过 `slides +update-slide` 整页写回后,必须做一次显式验证。目标是发现空白页、XML 损坏、内容截断、明显溢出、弱视觉层级和未验证输出。
3
+ 创建、大幅改写演示文稿或整页写回后,必须做一次显式验证。目标是发现空白页、XML 损坏、内容截断、明显溢出、弱视觉层级和未验证输出。
4
4
 
5
5
  小型已有页编辑也要做对应范围的验证:至少读取被改页面或全文 XML,确认目标元素已更新且未破坏周边结构。
6
6
 
@@ -12,6 +12,18 @@ metadata:
12
12
 
13
13
  **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**
14
14
 
15
+ ## 命令选择与渐进式发现(必读)
16
+
17
+ 执行任何 Task 命令前,必须先确认能力真实存在,禁止根据用户意图自行拼接或猜测 `+<verb>`:
18
+
19
+ 1. 先将用户意图与下方 Shortcut 表精确匹配。只有表中明确列出的 shortcut 才可直接选择;参数不确定时读取对应 reference 或运行该 shortcut 的 `--help`。
20
+ 2. 没有精确匹配、或无法确认当前版本是否支持时,先运行 `lark-cli task --help`,以当前 CLI 输出的命令列表为准。
21
+ 3. help 中存在匹配 shortcut 时,使用 help 列出的完整 shortcut token(例如 `+create`)运行 `lark-cli task <shortcut> --help`,再按真实 flag 执行。
22
+ 4. help 中没有匹配 shortcut 时,不得尝试相似的 `+<verb>`;从 help 中选择原生 resource,运行 `lark-cli task <resource> --help` 确认 method,再运行 `lark-cli schema task.<resource>.<method>` 获取参数结构,最后调用 `lark-cli task <resource> <method> ...`。
23
+ 5. 遇到 `unknown_subcommand` 时必须停止猜测或尝试变体,回到第 2 步重新发现能力。
24
+
25
+ shortcut 名称只能来自本 Skill 的 Shortcut 表或 `lark-cli task --help`;原生 resource/method 以逐级 help 为准,参数名、类型和嵌套结构以 method schema 为准。
26
+
15
27
  > **任务搜索技巧**:先区分用户是否**特地指定使用搜索 skill**,以及是否真的提供了**查询关键字**(例如任务名称、关键词、片段描述)。如果用户特地指定使用搜索 skill,或明确给出了任务查询关键字,则目标是**任务**时优先使用 `+search`。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“今年以来”“已完成”“由我创建”“我关注的”),并且使用 `+search` 与 `+get-related-tasks` / `+get-my-tasks` 都能达到目的时,应优先使用列表型能力,而不是搜索型能力。其中,“与我相关 / 我关注的 / 由我创建”等优先考虑 `+get-related-tasks`;“我负责的 / 分配给我”的列表优先考虑 `+get-my-tasks`。不要把时间范围词(例如“今年以来”)本身误当成 `query` 去走搜索。
16
28
  > **任务搜索相关性提示**:`+search` 当前不会自动判断搜索结果与搜索发起人的相关性。如果用户明确要求搜索“与我相关”的任务,必须先识别具体关系,获取当前用户的 `open_id`,并显式传入对应的 `--assignee`(负责人)、`--creator`(创建人)或 `--follower`(关注人)过滤条件;不能只依赖 `query` 期待自动返回与当前用户相关的任务。
17
29
  > **任务清单搜索技巧**:任务清单也遵循同样的判断逻辑。先区分用户是否**特地指定使用搜索 skill**,以及是否真的提供了**清单查询关键字**(例如清单名称、关键词、片段描述)。如果用户特地指定使用搜索 skill,或明确给出了清单查询关键字,则优先使用 `+tasklist-search`。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“由我创建的任务清单”“今年以来创建的清单”),并且使用搜索或原生列取清单都能达到目的时,应优先使用原生 `tasklists.list` 接口列取清单(先 `schema task.tasklists.list`,再 `lark-cli task tasklists list --as user ...`),再按 `creator`、`created_at` 等字段做本地筛选和分页控制。
@@ -48,7 +48,9 @@ lark-cli task +create --summary "Test Task" --dry-run
48
48
  | `--data <json>` | No | JSON object merged into the task create request for API fields without dedicated flags, such as `{"is_milestone":true}`. Explicit named flags override same-named fields in this object. |
49
49
  | `--dry-run` | No | Preview the API call (JSON payload) without actually creating the task. |
50
50
 
51
- Use `lark-cli schema task.tasks.create` to confirm that an extra field is supported before passing it through `--data`. Prefer this shortcut over the raw `tasks create` command when `--data` can express the request. Do not assume that other shortcuts support `--data`; check each shortcut's `--help` output first.
51
+ > **Required:** If `task +create` has no dedicated flag for a field requested by the user, first inspect `lark-cli schema task.tasks.create`, then add that field to `--data` using the exact field name, type, and nesting from the Meta API request-body schema. Do not omit requested fields or guess their JSON shape. Keep fields already supplied through dedicated flags out of `--data`.
52
+
53
+ Prefer this shortcut over the raw `tasks create` command when `--data` can express the request. Do not assume that other shortcuts support `--data`; check each shortcut's `--help` output first.
52
54
 
53
55
  ## Workflow
54
56
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lark-vc
3
3
  version: 1.0.0
4
- description: "飞书视频会议:搜索历史会议记录、查询会议纪要(总结/待办/章节/逐字稿)、查询参会人快照。当用户查询已结束的会议、获取会议产物(纪要/妙记)、查看参会人时使用;查询未来日程走 lark-calendar。不负责:Agent 真实入会/离会、会中实时事件(走 lark-vc-agent)。"
4
+ description: "飞书视频会议:查询进行中的会议列表(含会议 ID)、读取会中实时内容(发言、聊天、共享等)、发送会中消息,以及搜索历史会议、查询会议纪要(总结/待办/章节/逐字稿)和参会人快照。Agent 真实入会/离会走 lark-vc-agent;查询未来日程走 lark-calendar。"
5
5
  metadata:
6
6
  requires:
7
7
  bins: ["lark-cli"]
@@ -20,7 +20,9 @@ metadata:
20
20
 
21
21
  ## 身份
22
22
 
23
- 所有 vc 命令默认使用 `--as user`。`+search` 和 `meeting get` 也支持 `--as bot`。
23
+ 身份是跨命令工作流的状态,不是单条命令的局部参数:一旦某个 ID(如 `note_id`、`minute_token`)由某个身份取得,后续消费它的命令(包括跨到 lark-minutes / lark-note / lark-doc)必须显式沿用相同 `--as`;不要依赖 profile 默认身份,也不要为绕过权限错误切换身份。完整规则见 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 的「身份延续」。
24
+
25
+ 本 skill 默认使用 `--as user`。`+detail`、`+recording`、`meeting get`、`+meeting-list-active`、`+meeting-events` 和 `+meeting-message-send` 也支持 `--as bot`;`+meeting-events` 和 `+meeting-message-send` 必须沿用 `meeting_id` 的来源身份。`+search` 仅支持 `--as user`。
24
26
 
25
27
  ```bash
26
28
  # BAD — 查昨天的会议用 calendar,会漏掉即时会议
@@ -37,6 +39,9 @@ lark-cli vc +search --query "站会" --start <start_time> --end <end_time>
37
39
  | [`+search`](references/lark-vc-search.md) | 搜索历史会议记录(需至关键词、时间范围、组织者、参与者、会议室少一个筛选条件) |
38
40
  | [`+detail`](references/lark-vc-detail.md) | 通过 meeting-ids 获取会议详情,包括 note_id 和 minute_token |
39
41
  | [`+recording`](references/lark-vc-recording.md) | 通过 meeting-ids 或 calendar-event-ids 查询 minute_token |
42
+ | [`+meeting-list-active`](references/lark-vc-meeting-list-active.md) | 查询当前身份可见的进行中会议并获取 `meeting_id` |
43
+ | [`+meeting-events`](references/lark-vc-meeting-events.md) | 读取当前身份可见的会中事件 |
44
+ | [`+meeting-message-send`](references/lark-vc-meeting-message-send.md) | 发送会中文本或 reaction |
40
45
 
41
46
  - 使用任何 Shortcut 前,必须先读其对应 reference 文档。
42
47
 
@@ -47,8 +52,10 @@ lark-cli vc +search --query "站会" --start <start_time> --end <end_time>
47
52
  | 查"昨天的会议""上周的会""已结束的会议" | 本 skill(`+search`,含即时会议) |
48
53
  | 查日历/日程或未来时间的会议 | [lark-calendar](../lark-calendar/SKILL.md) |
49
54
  | 查"今天有哪些会议" | `vc +search`(已结束)+ lark-calendar(未开始),合并展示 |
55
+ | 查询进行中的会议、会中事件或发送会中消息 | 本 skill 的 `+meeting-list-active` / `+meeting-events` / `+meeting-message-send`,也可由 [lark-vc-agent](../lark-vc-agent/SKILL.md) 编排 |
56
+ | 用户询问会议内容,但未提供 `meeting_id`,也未明确指向已结束会议 | 先用 `+meeting-list-active` 查询进行中的会议;无结果时,再用 `+search` 查询当天最近结束的会议;仍无结果时询问会议时间、主题或会议号,不自行扩大时间范围 |
50
57
  | 只按自然语言标题查"xx 纪要的逐字稿 / 原始记录 / 谁说了什么" | 先到 [lark-drive](../lark-drive/SKILL.md) / [lark-doc](../lark-doc/SKILL.md);仅在已拿到 `note_id` / `vc-node-id` 后再到 [lark-note](../lark-note/SKILL.md) |
51
- | Agent 真实入会/离会、会中实时事件 | [lark-vc-agent](../lark-vc-agent/SKILL.md) |
58
+ | Agent 真实入会/离会 | [lark-vc-agent](../lark-vc-agent/SKILL.md) |
52
59
  | 妙记信息/时长/封面/链接 | 先走 `vc +detail` 或 `vc +recording` 获取 `minute_token`,再用 [lark-minutes](../lark-minutes/SKILL.md) 的 `minutes get` |
53
60
  | 本地音视频文件转纪要/逐字稿 | 先走 [lark-minutes](../lark-minutes/SKILL.md) 上传,再用 `minutes +detail --minute-tokens` |
54
61
 
@@ -142,7 +149,7 @@ lark-cli vc meeting get --params '{"meeting_id":"<meeting_id>","with_participant
142
149
  |---------|---------|--------|
143
150
  | 参会人快照(谁参加过、何时入/离会,任意时点)| `vc meeting get --with-participants` | 本 skill |
144
151
  | 已结束会议的发言内容 | 优先:`vc +detail` 取 `note_id` 再 `note +detail` 取 `verbatim_doc_token` 后 `docs +fetch`;备选:`vc +detail` 取 `minute_token` 再 `minutes +detail --transcript` | [lark-note](../lark-note/SKILL.md) / [lark-minutes](../lark-minutes/SKILL.md) |
145
- | **进行中会议**的实时事件流(转写、聊天、共享、会中加入/离开)| `vc +meeting-events` | [`lark-vc-agent`](../lark-vc-agent/SKILL.md) |
152
+ | **进行中会议**的实时事件流(转写、聊天、共享、会中加入/离开)| `vc +meeting-events` | 本 skill / [`lark-vc-agent`](../lark-vc-agent/SKILL.md) |
146
153
  | **Agent 真实入会 / 离会** | `vc +meeting-join` / `vc +meeting-leave` | [`lark-vc-agent`](../lark-vc-agent/SKILL.md) |
147
154
 
148
155
  ## 资源关系
@@ -173,6 +180,7 @@ Meeting (视频会议)
173
180
  > - 已有 `doc_token` 且目标是读正文 → [lark-doc](../lark-doc/SKILL.md)。
174
181
  > - 只有自然语言纪要标题 → 文档搜索 / Docx 正文读取;有显式 `vc-node-id` 才进入 [lark-note](../lark-note/SKILL.md)。
175
182
  > - 从日程出发(只有 `event_id`)→ 先走 [`calendar +meeting`](../lark-calendar/references/lark-calendar-meeting.md) 拿到 `meeting_id` 或 `meeting_note`,再按上述路径继续。
183
+ > - **跨到 lark-minutes / lark-note / lark-doc 时必须沿用来源身份**:例如 `vc +detail --as bot` 拿到的 `note_id`,下一步 `note +detail --note-id <note_id>` 也要显式加 `--as bot`;不要省略 `--as` 让身份被 profile 默认值悄悄换成 user(或反过来)。`note +transcript` 目前仅支持 `--as user`——如果 `note +detail --as bot` 返回 `note_display_type=unified`,停在这一步向用户说明"该纪要的逐字稿只能以 user 身份读取",只有用户明确同意才切到 `--as user`,不要静默切换。
176
184
 
177
185
  ## API Resources
178
186
 
@@ -199,7 +207,7 @@ lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>", "with_participa
199
207
  ## 不在本 skill 范围
200
208
 
201
209
  - 查询未来的会议日程 → [lark-calendar](../lark-calendar/SKILL.md)
202
- - Agent 真实入会/离会、会中实时事件 → [lark-vc-agent](../lark-vc-agent/SKILL.md)
210
+ - Agent 真实入会/离会 → [lark-vc-agent](../lark-vc-agent/SKILL.md)
203
211
  - 只有纪要文档标题的逐字稿查询 → 文档搜索 / Docx 正文读取;有显式 `vc-node-id` 才进入 [lark-note](../lark-note/SKILL.md)
204
212
  - 本地音视频文件转纪要/逐字稿、妙记搜索/下载/上传/重命名/替换说话人 → [lark-minutes](../lark-minutes/SKILL.md)
205
213
  - 通过 `note_id` 取纪要文档 Token → [lark-note](../lark-note/SKILL.md)
@@ -1,13 +1,16 @@
1
1
 
2
2
  # vc +detail
3
3
 
4
- 通过会议 ID 获取会议详情,包括基本信息、关联的纪要 ID(`note_id`)和妙记 Token(`minute_token`)。只读。
4
+ 通过会议 ID 获取会议详情,包括基本信息、关联的纪要 ID(`note_id`)和妙记 Token(`minute_token`)。只读,支持 `--as user` / `--as bot`。
5
5
 
6
6
  ## 命令
7
7
 
8
8
  ```bash
9
9
  # 单个 / 批量(逗号分隔,最多 50 个)
10
10
  lark-cli vc +detail --meeting-ids <meeting_id1>,<meeting_id2>
11
+
12
+ # bot 身份(只能查 bot 有权限的会议)
13
+ lark-cli vc +detail --meeting-ids <meeting_id1>,<meeting_id2> --as bot
11
14
  ```
12
15
 
13
16
  ## 输出字段
@@ -26,19 +29,21 @@ lark-cli vc +detail --meeting-ids <meeting_id1>,<meeting_id2>
26
29
 
27
30
  ### 场景 1:获取会议的纪要和妙记关联
28
31
 
29
- `vc +detail` 只能拿到 `note_id` 和 `minute_token`,不直接返回纪要文档 token 与妙记产物内容。要获取实际产物,需根据用户诉求继续调用 `note +detail` 或 `minutes +detail`:
32
+ `vc +detail` 只能拿到 `note_id` 和 `minute_token`,不直接返回纪要文档 token 与妙记产物内容。要获取实际产物,需根据用户诉求继续调用 `note +detail` 或 `minutes +detail`,**并沿用第 1 步同一个 `--as`**(完整规则见 [lark-shared](../../lark-shared/SKILL.md) 的「身份延续」):
30
33
 
31
34
  ```bash
32
35
  # 1. 获取会议详情,拿到 note_id 和 minute_token
33
- lark-cli vc +detail --meeting-ids <meeting_id>
36
+ lark-cli vc +detail --meeting-ids <meeting_id> --as bot
34
37
 
35
38
  # 2. 用 note_id 获取纪要文档 Token(note_doc_token / verbatim_doc_token / shared_doc_tokens)
36
- lark-cli note +detail --note-id <note_id>
39
+ # 显式沿用第 1 步的身份,不要省略 --as
40
+ lark-cli note +detail --note-id <note_id> --as bot
37
41
 
38
- # 3. 用 minute_token 获取妙记产物
42
+ # 3. 用 minute_token 获取妙记产物(同样沿用第 1 步的身份)
39
43
  # ⚠️ 必须显式指定 --summary / --todo / --chapter / --keyword / --transcript 中至少一个 flag,
40
44
  # 不传任何 flag 则不会返回任何产物内容。
41
- lark-cli minutes +detail --minute-tokens <minute_token> --todo --transcript
45
+ lark-cli minutes +detail --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --todo --transcript --as bot
42
46
  ```
43
47
 
44
48
  > **路由建议**:当用户未明确指定使用妙记时,**优先**走 `note +detail` 链路(纪要文档信息更完整、含逐字稿原文),仅在 `note_id` 为空或用户要求妙记产物时才走 `minutes +detail`。
49
+ > **身份边界**:`note +transcript` 目前仅支持 `--as user`。若上面第 2 步用 `--as bot` 拿到 `note_display_type=unified`,停下来向用户说明该纪要逐字稿只能以 user 身份读取,只有用户明确同意才切换身份重试。