CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

lark-contact

飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名,以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。

Quality

95%

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

93%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-crafted skill body: lean, fully executable CLI guidance organized by user intent, with details properly pushed into three clearly-signaled reference files and explicit cross-skill boundaries. The only minor gap is the absence of a result-verification step for the batch profile query workflow.

DimensionReasoningScore

Conciseness

The body is lean and table-driven: an intent-to-command table, two compact example blocks, and terse notes on error codes, cross-tenant users, and ID types. No concept Claude already knows is explained, and every section carries actionable information, matching the 'every token earns its place' anchor.

5 / 5

Actionability

Commands are copy-paste ready and cover the common cases: `lark-cli contact +search-user --query "张三" --has-chatted --as user`, the schema-first batch query invocation with concrete JSON params, and `+search-bot` single/multi-keyword forms. Specific flags (--user-id-type, --queries, --as) and the concrete 41050 error code make the guidance fully executable.

5 / 5

Workflow Clarity

The main sequence is explicit with checkpoints: search → confirm open_id → act, plus the instruction to list candidates for the user when multiple hits precede a side-effectful action ("不要擅自选第一条") and a schema pre-check before the batch query. It is not 5 because the batch `user_profiles batch_query` workflow lacks a result-verification step and error recovery is delegated to lark-shared rather than an inline feedback loop; not 3 because the risky (side-effectful) path does have an explicit confirmation checkpoint and the batch query is read-only with a pre-flight parameter check.

4 / 5

Progressive Disclosure

The body is a true overview: a command-selection table linking each intent to one of three one-level-deep reference files (all verified to exist, none containing nested references), with flag tables and parameter details correctly deferred to them. Scope boundaries point to sibling skills, making navigation easy.

5 / 5

Total

19

/

20

Passed

Description

100%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.

An exemplary description: concrete bidirectional lookup capabilities plus bot search, explicit and natural trigger conditions, bilingual synonyms, and a clearly stated scope boundary that steers overlapping requests elsewhere. No fluff, over-claims, or padding.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions: "按姓名 / 邮箱解析成 open_id", "按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名", and "按关键词搜索…机器人 / 智能体(agent)", covering both lookup directions plus bot search comprehensively. It is not below 4 because coverage is complete rather than having minor gaps, and there is no vagueness that would place it lower.

5 / 5

Completeness

It explicitly answers both what (three concrete capability sets) and when ("当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用") with concrete trigger phrases, plus an explicit out-of-scope statement. Not 4 because the 'when' clause is already specific and concrete, not merely present.

5 / 5

Trigger Term Quality

Natural user-facing terms are comprehensively covered with synonyms: 飞书/Lark, 姓名 / 邮箱, open_id, 机器人 / 智能体 (agent), and trigger phrasings like "当用户提到一个名字要下一步发消息 / 排日程". It fits the 5 anchor because both Chinese and English synonyms are present and no common phrasing a user would say is missing.

5 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (Feishu/Lark contact directory resolution) with an explicit boundary — "不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI" — minimizing conflict with sibling skills. It does not fall to 4 because the mentions of messaging/scheduling are framed as downstream purposes for name resolution, not competing triggers.

5 / 5

Total

20

/

20

Passed

Validation

75%

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

Validation — 12 / 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: 6 suspicious

Warning

Total

12

/

16

Passed

Repository

larksuite/cli

Path

skills/lark-contact/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.