CRITICAL — Before starting, you MUST first use the Read tool to read ../lark-shared/SKILL.md, which contains authentication and permission handling
Core Concepts
- Video Meeting: A Feishu video meeting instance, identified by meeting_id.
- Meeting Record: A record generated after a video meeting ends, supporting searching meeting rooms by filters such as keywords, time periods, participants, organizers, and meeting rooms.
- Meeting Note: A structured document generated after a video meeting ends, including a note document (containing summaries, to-dos, and chapters) and a verbatim transcript document.
- Minutes: Derived from recording artifacts of Feishu video meetings or audio/video files uploaded by users, supporting transcription and meeting notes for video/audio, identified by minute_token.
- Note Document (MainDoc): The main document of AI smart notes, containing AI-generated summaries and to-dos, corresponding to
note_doc_token。 - User Meeting Notes (MeetingNotes): A note document proactively bound by the user to a meeting, corresponding to
meeting_notes. Only returned through the--calendar-event-idspath. - Verbatim Transcript (VerbatimDoc): A sentence-by-sentence text record of the meeting, including speakers and timestamps.
Core Scenarios
1. Search Meeting Records
- Only supports searching meetings that have already ended. For future meetings that have not yet started, the lark-calendar skill must be used.
- Only supports searching meeting records by filters such as keywords, time periods, participants, organizers, and meeting rooms. For unsupported filters, the user must be prompted.
- When the search results contain multiple entries, be sure to pay attention to paginated data retrieval and do not omit any meeting records.
2. Organize Meeting Notes
- When organizing note documents, by default it is sufficient to provide the note document and verbatim transcript links; there is no need to read the note document or verbatim transcript content.
- Only when the user explicitly needs to obtain the summary, to-dos, and chapter artifacts in the note document should the document be read to obtain the specific content.
- When reading the content of AI smart notes (
note_doc_token), the note document'sfirst<whiteboard>tag is the cover image (an AI-generated visualization of the summary), and it should also be downloaded and displayed to the user:
# 1. 读取纪要内容
lark-cli docs +fetch --doc <note_doc_token>
# 2. 从返回的 markdown 中提取第一个 <whiteboard token="xxx"/> 的 token
# 3. 下载封面图到 artifact 目录(和逐字稿同目录,保持产物归拢)
# 并非所有纪要都有封面画板,没有 <whiteboard> 标签时跳过即可
lark-cli docs +media-download --type whiteboard --token <whiteboard_token> --output ./artifact-<title>/cover
Artifact directory specification: All downloaded artifacts of the same meeting (cover image, verbatim transcript, etc.) should be placed uniformly under the
artifact-<title>/directory, and should not be scattered in the current working directory.
Note-related documents — choose according to user intent:
note_doc_token→ AI smart notes(AI summary + to-dos + chapters)meeting_notes→ User-bound meeting notes(documents proactively associated by the user to a meeting, only returned through the--calendar-event-idspath)verbatim_doc_token→ Verbatim transcript(Full verbatim transcript, including speakers and timestamps) — use this when the user says "verbatim transcript", "full record", "who said what"- When the user says "minutes", "summary", "minutes content", you should return both
note_doc_tokenandmeeting_notes(if any)- When the user's intent is unclear, you should show all document links for the user to choose from, rather than deciding for the user
3. Minutes documents and verbatim transcript links
- Minutes documents, verbatim transcript documents, and associated shared documents are returned using the document Token by default.
- When you only need to obtain basic information such as the document name and URL, use
lark-cli drive metas batch_queryto query
# 学习命令使用方式
lark-cli schema drive.metas.batch_query
# 批量获取文档基本信息: 一次最多查询 10 个文档
lark-cli drive metas batch_query --data '{"request_docs": [{"doc_type": "docx", "doc_token": "<doc_token>"}], "with_url": true}'
- When you need to obtain document content, use
lark-cli docs +fetch。
# 获取文档内容
lark-cli docs +fetch --doc <doc_token>
Resource relationships
Meeting (视频会议)
├── Note (会议纪要)
│ ├── MainDoc (AI 智能纪要文档, note_doc_token)
│ ├── MeetingNotes (用户绑定的会议纪要文档, meeting_notes)
│ ├── VerbatimDoc (逐字稿, verbatim_doc_token)
│ └── SharedDoc (会中共享文档)
└── Minutes (妙记) ← minute_token 标识,+recording 从 meeting_id 获取
├── Transcript (文字记录)
├── Summary (总结)
├── Todos (待办)
└── Chapters (章节)
Note:
+searchcan only query ended historical meetings. To query future schedule arrangements, use lark-calendar。Priority: When the user searches historical meetings, prioritize using
vc +searchrather thancalendar events search. calendar's search targets schedules, while vc's search targets ended meeting records and supports filtering by participants, organizer, meeting room, and other dimensions.Routing rules: If the user is asking "meetings that were held", "which meetings were held today", "what meetings have been attended recently", "ended meetings", "historical meeting records", prioritize using
vc +search. Only prioritize using lark-calendar。Special cases: When the user queries "what meetings are there today", use
vc +searchto query today's meeting records that have been held, and at the same time use the lark-calendar skill to query meetings today that have not yet started, then organize and present them to the user together.
Shortcuts (recommended for priority use)
Shortcut is a high-level encapsulation of common operations (lark-cli vc +<verb> [flags]). Operations that have a Shortcut should prioritize using it.
| Shortcut | Description |
|---|---|
+search |
Search meeting records (requires at least one filter) |
+notes |
Query meeting notes (via meeting-ids, minute-tokens, or calendar-event-ids) |
+recording |
Query minute_token from meeting-ids or calendar-event-ids |
- When using the
+searchcommand, you must read references/lark-vc-search.mdto understand the search parameters and return value structure. - When using the
+notescommand, you must read references/lark-vc-notes.mdto understand the query parameters, artifact types, and return value structure. - When using the
+recordingcommand, you must read references/lark-vc-recording.mdto understand the query parameters and return value structure.
API Resources
lark-cli schema vc.<resource>.<method> # 调用 API 前必须先查看参数结构
lark-cli vc <resource> <method> [flags] # 调用 API
Important: When using the native API, you must first run
schemato view the--data/--paramsparameter structure. Do not guess the field format.
meeting
get— Get meeting details (topic, time, participants, note_id)
# 获取会议基础信息:不包含参会人列表
lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>"}'
# 获取会议基础信息:包含参会人列表
lark-cli vc meeting get --params '{"meeting_id": "<meeting_id>", "with_participants": true}'
minutes (cross-domain, see lark-minutes)
get— Get basic Minutes information (title, duration, cover); to query minutescontentplease use+notes --minute-tokens <minute-token>
Permission table
| Method | Required scope |
|---|---|
+notes --meeting-ids |
vc:meeting.meetingevent:read、vc:note:read |
+notes --minute-tokens |
vc:note:read、minutes:minutes:readonly、minutes:minutes.artifacts:read、minutes:minutes.transcript:export |
+notes --calendar-event-ids |
calendar:calendar:read、calendar:calendar.event:read、vc:meeting.meetingevent:read、vc:note:read |
+recording --meeting-ids |
vc:record:readonly |
+recording --calendar-event-ids |
vc:record:readonly、calendar:calendar:read、calendar:calendar.event:read |
+search |
vc:meeting.search:read |
meeting.get |
vc:meeting.meetingevent:read |