CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

lark-im

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-engineered CLI skill body: highly actionable, oriented around a shortcut layer with per-command reference docs, mandatory prerequisite reads, and documented failure semantics for batch operations. Its costs are repetition — identity/scope boilerplate restated per method and again in the permission table — and a two-level card reference hierarchy.

Suggestions

Deduplicate the per-method identity boilerplate into the existing identity reference (references/lark-im-chat-identity.md) and state the shared rules once, keeping only per-method exceptions in the API listing.

Collapse the standalone permission table into the API listing rows (or vice versa) — the two sections currently restate overlapping scope facts.

Add an index or one-line map at the top of the card section (or in card-create.md) that enumerates references/card/components/ and references/card/resource/ so the second-level files are discoverable from the body in one hop.

DimensionReasoningScore

Conciseness

The body is dense and CLI-specific with almost no explanation of concepts Claude already knows — it is nearly all parameter shapes, identity constraints, and limits. Anchor 5 ('every token earns its place') is blocked by repeated per-method boilerplate ("Identity: supports `user` and `bot`; the caller must be in the target chat…" appears verbatim across many API entries) and the permission table partially duplicating identity/scope facts already stated in the API listing.

4 / 5

Actionability

Fully executable guidance throughout: concrete command forms (`lark-cli schema im.<resource>.<method>`, `lark-cli im files folder --recursive --file-key <folder_key> --srctype message --srcid <message_id>`, the AppLink template), a shortcuts table where every command links to a per-command reference doc, and exact numeric limits (batch 10, max 50 message IDs, 30 KB, 14 days).

5 / 5

Workflow Clarity

Sequencing is explicit where it matters (MUST read lark-shared/SKILL.md first, MUST read card-create.md before any interactive send/patch, run `schema` before raw API calls), and batch/destructive operations document failure signals ("exit 0 does not mean every item succeeded", "ok:false ledger", "has_more=true means the result is incomplete"). It falls short of anchor 5 because most multi-step flows delegate their validate/fix/retry checkpoints to referenced files rather than presenting explicit validation steps with error-recovery loops in the body itself.

4 / 5

Progressive Disclosure

SKILL.md works well as an overview: every shortcut and Must-read link points to a real file in the bundle (all referenced paths verified to exist), and links are clearly signaled in tables. Anchor 5 requires strictly one-level-deep references, but the card material nests two levels (card-create.md → references/card/components/*.md and references/card/resource/*.md), and the 30+-row permission/API catalogs are borderline inline reference bulk — anchor 4's 'minor organization gaps' is the best fit.

4 / 5

Total

17

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: dense, concrete, third-person, with explicit and wide-ranging use-when triggers that map nearly one-to-one onto the capability list. The only weakness is modest synonym coverage — English product-name variants (Lark, IM) and a reactions trigger are absent.

Suggestions

Add English trigger synonyms (Lark, IM, instant message) so the skill also fires when the user refers to the product in English rather than 飞书.

Include reactions in the when-clause (e.g. 添加/删除表情回复) so that trigger matches the reaction-management capability already stated in the what-clause.

DimensionReasoningScore

Specificity

The description enumerates many concrete actions — "发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片、监听卡片按钮回调" — giving comprehensive coverage of the skill's capabilities. Anchor 4 ('minor gaps in coverage') does not fit: no meaningful capability area is missing from the action list.

5 / 5

Completeness

It explicitly answers both halves: a detailed "what" (the action list) followed by a concrete "当用户需要…时使用" trigger clause enumerating ten specific scenarios. Both are explicit and concrete, matching anchor 5 rather than anchor 4's 'when could be more specific'.

5 / 5

Trigger Term Quality

The when-clause uses many natural user phrases ("发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、处理卡片回调") plus technical anchors ("card.action.trigger"). A few natural terms are missing — no English "Lark"/"IM" synonyms, and reactions appear in the what-clause but not the when-clause — which is exactly anchor 4, short of anchor 5's synonym-and-extension-level comprehensiveness.

4 / 5

Distinctiveness Conflict Risk

"飞书即时通讯" carves out a clear niche with domain-specific triggers (chat_id-level operations, 群聊/话题群, Feed 置顶, 卡片回调) that no other skill would claim. Voice is third-person descriptive, so no specificity penalty applies.

5 / 5

Total

19

/

20

Passed

Validation

68%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 11 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 2 deeper-than-1-level, 1 suspicious

Warning

referenced_paths_exist

Referenced path issues: 3 deeper-than-1-level

Warning

Total

11

/

16

Passed

Repository

larksuite/cli

Path

skills/lark-im/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.