| name | lark-cli-workflow |
| description | Coordinate Lark/Feishu CLI tasks from Codex. Use when a request involves Feishu/Lark docs, wiki, Drive files, Sheets, Base, Calendar, Minutes, IM, Mail, Tasks, Contacts, Slides, whiteboards, approvals, attendance, or when a Lark URL/token must be read, edited, summarized, routed, or turned into a real work artifact. |
Lark CLI Workflow
This is a thin routing skill. Prefer the official lark-* skills and lark-cli shortcuts for domain details; use this skill to choose the right path, identity, safety level, and final artifact shape.
Default Route
- Classify the object and action.
- Docs / Wiki text:
lark-doc, with docs +fetch --api-version v2.
- Wiki hierarchy / members:
lark-wiki.
- Drive files, file permissions, comments, import/export:
lark-drive.
- Sheets:
lark-sheets.
- Base / Bitable:
lark-base.
- Calendar / meeting-room scheduling:
lark-calendar.
- Past meetings and transcripts:
lark-vc or lark-minutes.
- IM messages, groups, files in chats:
lark-im.
- Mail:
lark-mail.
- Contacts / people resolution:
lark-contact.
- Tasks, OKR, approval, attendance, slides, whiteboard: use the matching
lark-* skill.
- For any Lark URL or opaque token, inspect or unwrap it before acting.
- Wiki URLs often point to a node wrapper; resolve the real object token before document fetch/update.
- Do not assume a docx token, sheet token, bitable token, wiki node token, and drive file token are interchangeable.
- Pick identity deliberately.
- Use
--as user for personal docs, Drive, calendar, mail, IM history, wiki spaces, and most user-owned resources.
- Use
--as bot only for app-owned resources or when the user explicitly wants an app identity.
- If a command returns missing scopes, follow the CLI hint and request the minimum needed
auth login --scope ....
Read Pattern
- Start narrow: outline, keyword, section, or metadata before full document fetch.
- For Docx v2, always pass
--api-version v2.
- Use JSON output when the result will feed another command.
- If a document contains embedded sheets, bitables, synced blocks, media, or whiteboards, extract the referenced token and switch to the matching skill instead of summarizing the tag itself.
- Treat internal links, auth URLs, media URLs, access tokens, user IDs, and chat IDs as private unless the user explicitly asks for them in chat.
Write Pattern
- Prefer real work artifacts: create or update the Lark doc, Base record, Sheet range, task, calendar event, email draft, or IM message instead of only producing copy-paste text.
- Before writing, identify the intended object, block/range/record, and command.
- Prefer block-level or section-level updates over whole-document overwrite.
- Preserve comments, highlights, citations, permissions, reviewer-visible formatting, and document structure unless the user asks to replace them.
- High-risk actions need explicit intent or a dry run first: delete, overwrite, permission change, bulk send, group membership change, task closeout, or external sharing.
Repo Safety
- Do not write internal Lark URLs, temporary media/auth URLs, access tokens, chat IDs, internal people/team details, or non-public implementation details into tracked repository files.
- If an internal source has reusable public lessons, write only the generalized lesson and cite public/open sources when available, such as the Lark CLI public repository: https://github.com/larksuite/cli
- Put private source notes, exact internal links, and sensitive judgments under
.local/ when a local record is useful.
- For CS-Notes tasks, update
AGENTS.md, .trae/, .codex/skills/, or Notes/ only when the result improves the durable workflow; avoid demo-only files.
Completion Check
- Say which Lark object was read or changed, using a safe title or type when links are sensitive.
- Report identity used (
user or bot) when it matters.
- Mention missing permissions, unread embedded resources, or skipped high-risk actions.
- If
lark-cli suggests an update, finish the current task first, then tell the user the update is available.