SuperAPI AI Directory

lark-workflow-meeting-summary

Office & productivity

View repository

Updated 10-15 08:33

About this skill

Meeting Minutes Compilation Workflow

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 (usually YYYY-MM-DD or 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.
  • --end isinclusive of the current daydate (i.e., when querying "today", fill in today for both start and end)
  • --format json outputs JSON format, and you are better at parsing JSON data.
  • --page-size 30 has a maximum of 30 items per page.
  • When there is page_token , you must continue paging and collect all id fields (meeting-id)

Step 3: Get minutes metadata

  1. 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-id collected 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_id or return the error no notes available,Do not directly mark as "no minutes": first check whether vc +detail returned minute_token; if so, use the Minutes fallback path below;note_id and minute_token only 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) and verbatim_doc_token(transcript document Token).

Minutes fallback path (no note_id, but has minute_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 user

The 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, use verbatim_doc_token。
  • unified: transcriptis not a standalone document, there is no shareable transcript document link; when transcript content is needed, use note +transcript --note-id <note_id>(lark-meeting) to fetch it locally, and in the report just mark it as "unified meeting notes".
  1. 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 (unified meeting notes have no transcript link, mark as "unified meeting notes, transcript requires note +transcript fetch").
  • 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