CRITICAL — before starting, you MUST first fully read ../lark-shared/SKILL.md and ../lark-meeting/SKILL.md. Authentication, identity, and permissions are governed by lark-shared; the relationship between meetings and artifacts, artifact selection, and transcript routing are governed by lark-meeting.
Applicable Scenarios
- "Help me compile this week's meeting minutes" / "Summarize recent meetings" / "Generate a weekly meeting report"
- "See what meetings were held today" / "Review what meetings were held over the past week"
Prerequisites
Only user identityis supported. Before execution, ensure authorization has been granted:
lark-cli auth login --domain vc # 基础(查询+纪要)
lark-cli auth login --domain vc,drive # 含读取纪要文档正文、生成文档
lark-cli auth login --domain vc,drive,minutes # 含无 note_id 时的妙记备选路径
Workflow
{时间范围} ─► vc +search ──► 会议列表 (meeting_ids)
│
▼
vc +detail ──► 获取 note_id
│
▼
note +detail ──► 纪要文档 tokens
│
▼
drive metas batch_query 纪要元数据
│
▼
结构化报告
Step 1: Determine the time range
Defaultpast 7 days. Inference rules: "today" → the current day, "this week" → this Mondaynow, "last week" → last Mondaylast Sunday, "this month" → the 1st to now.
Note: date conversion must call system commands (such as
date), do not calculate mentally. Time range parameters need to be formatted according to the CLI's actual requirements (usuallyYYYY-MM-DDor ISO 8601).
Step 2: Query meeting records
# page-size 最大为 30
lark-cli vc +search --start "<YYYY-MM-DD>" --end "<YYYY-MM-DD>" --format json --page-size 30
- Time range splitting: the maximum search time range is 1 month. To search for meetings over a longer time range, split into multiple queries with a time range of one month each.
--endisinclusive of the current daydate (i.e., when querying "today", fill in today for both start and end)--format jsonoutputs JSON format, and you are better at parsing JSON data.--page-size 30has a maximum of 30 items per page.- When there is
page_token, you must continue paging and collect allidfields (meeting-id)
Step 3: Get minutes metadata
- Query the minutes information associated with the meeting
# 首先获取 note_id 和 minute_token
lark-cli vc +detail --meeting-ids "id1,id2,...,idN"
# 然后用 note_id 获取文档 tokens(如有多个需分别获取)
lark-cli note +detail --note-id "note_id"
- Query based on the
meeting-idcollected in the previous step. - A maximum of 50 can be queried at a time; if more than 50, batch the calls.
- Some meetings have no
note_idor return the errorno notes available,Do not directly mark as "no minutes": first check whethervc +detailreturnedminute_token; if so, use the Minutes fallback path below;note_idandminute_tokenonly when neither is present should you mark as "no minutes". - Record each minutes'
note_id(minutes ID),note_display_type(display type:unknown/normal/unified)、note_doc_token(minutes document Token) andverbatim_doc_token(transcript document Token).
Minutes fallback path (no
note_id, but hasminute_token): Smart minutes and Minutes are two independent artifact chains; the absence of smart minutes does not mean this meeting has no content.# --minute-tokens 是复数形式(+download 同);--output-dir 只接受相对路径 lark-cli minutes +detail --minute-tokens "<minute_token>" --transcript --output-dir ./transcripts --as userThe transcript will be persisted to disk, for Step 4 to independently extract based on the original speech (do not copy the AI summary). If
No read permission(2091005is returned), first inform the user of the no-permission fact, and after the user explicitly agrees, apply using a singular flag:lark-cli minutes +apply-permission --minute-token "<minute_token>" --perm view --as user; the application can only be retried after the owner approves it on the client. See Query Minutes and associated artifacts based on minute_token。
Transcript routing is determined by
note_display_type.(See Query smart meeting notes and related artifacts by note_id):
normal: The transcript is a standalone document; for links/body, useverbatim_doc_token。unified: transcriptis not a standalone document, there is no shareable transcript document link; when transcript content is needed, usenote +transcript --note-id <note_id>(lark-meeting) to fetch it locally, and in the report just mark it as "unified meeting notes".
- Get meeting notes document and transcript document links
# 学习命令使用方式
lark-cli schema drive.metas.batch_query
# 批量获取纪要文档与逐字稿链接: 一次最多查询 10 个文档
# 仅对 note_doc_token 与 normal 纪要的 verbatim_doc_token 查询链接
lark-cli drive metas batch_query --data '{"request_docs": [{"doc_type": "docx", "doc_token": "<doc_token>"}], "with_url": true}'
Step 4: Organize the meeting notes report
Choose the output format based on the time span:
- Single-day summary("today"/"yesterday"): Use the title "Today's Meeting Overview", and list each meeting's time, topic, meeting notes link, and transcript link (
unifiedmeeting notes have no transcript link, mark as "unified meeting notes, transcript requiresnote +transcriptfetch"). - Multi-day/weekly report("this week"/"past 7 days", etc.): Use the title "Meeting Notes Weekly Report", including overview statistics and per-meeting details.
Step 5: Generate a document (optional, when requested by the user)
Read ../lark-doc/SKILL.md to learn the cloud document skill.
lark-cli docs +create --doc-format markdown --content $'<title>会议纪要汇总 (<start> - <end>)</title>\n<内容>'
# 或追加到已有文档
lark-cli docs +update --doc "<url_or_token>" --command append --doc-format markdown --content $'<内容>'
Reference
- lark-shared — Authentication, permissions (required reading)
- lark-meeting — Unified routing for meetings and artifacts
- Query meetings and meeting artifacts — Search, disambiguation, artifact retrieval, and transcript analysis workflow
- Query Miaoji and related artifacts — When there is no
note_id, the Miaoji fallback path vc +search、vc +detail、note +detail、note +transcript、minutes +detail、minutes +apply-permission— Command details- lark-doc —
+fetch、+create、+updateDetailed usage