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, withdocs +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-vcorlark-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.
- Docs / Wiki text:
- 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 userfor personal docs, Drive, calendar, mail, IM history, wiki spaces, and most user-owned resources. - Use
--as botonly 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 ....
- Use
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/, orNotes/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 (
userorbot) when it matters. - Mention missing permissions, unread embedded resources, or skipped high-risk actions.
- If
lark-clisuggests an update, finish the current task first, then tell the user the update is available.