CtrlK
BlogDocsLog inGet started
Tessl Logo

dingtalk-contact

钉钉通讯录精确查询。Use when 已有 userId 后查详情、部门、职位或邮箱,按完整手机号反查用户,或查询自己、部门成员及角色。姓名模糊搜索、工号、职责、上下级走 dingtalk-aisearch,拿到 userId 后用本 skill 补详情。命令前缀:dws contact。

74

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a strong operational skill file: exact dws commands everywhere, SOPs with explicit triggers, disambiguation checkpoints, and error-recovery rules, with bulk detail correctly pushed into reference files. Its main weaknesses are mild — rule duplication between the SOPs and the 高频硬约束 section, and reference navigation spread across several locations instead of one consolidated map.

DimensionReasoningScore

Conciseness

The body is dense and operational — shortcut tables, SOP steps with exact commands, and guardrails, with no explanation of concepts Claude already knows. It falls short of level 5 because of duplication: the "高频硬约束" section restates rules already given in SOP-1/SOP-2/SOP-3 (aisearch routing, search-mobile exception, batch disambiguation), and the Shortcuts preamble's schema-probing rules are heavily compressed but partially overlapping with the SOPs' command guidance.

4 / 5

Actionability

Every instruction is a copy-paste-ready command with flags and placeholders, e.g. `dws contact user get --ids <userId1>,<userId2>,... --format json`, `dws contact user search-mobile --mobile "<完整手机号>" --format json`, and `python scripts/contact_dept_members.py --query "<部门名>"`, plus a 13-row shortcut table and schema-introspection command with exact --jq expressions. This matches the fully-executable, common-cases-covered anchor; level 4 would require minor gaps, and none are evident.

5 / 5

Workflow Clarity

Each SOP has explicit triggers, strictly numbered steps, and feedback loops: ambiguous name matches "必须列候选请用户确认" (never default to the first), SOP-4 normalizes the `deptId=-1` sentinel to `deptId=1` before follow-up calls, and the Shortcuts section prescribes error recovery for `unknown flag`/`unknown command` (one Help retry, then drift reporting). These are read-only flows, so user-confirmation and sentinel normalization checkpoints satisfy the validation anchor; level 4 would require missing checkpoints, which is not the case.

5 / 5

Progressive Disclosure

Structure is good: the 595-line command reference lives in references/contact.md, playbooks and disambiguation guides are in references/ (08-directory.md, intent-guide.md, lite-recipes.md), and all paths referenced in the body exist in the bundle. It stops short of level 5 because navigation is scattered across three places (the 前置条件 blockquote, the bottom 局部意图 section, and inside 08-directory.md, which is the only route to recipes/conventions.md, putting that file two hops from SKILL.md) rather than a consolidated, clearly-signaled reference map.

4 / 5

Total

18

/

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.

The description is exemplary: a one-line domain statement, an explicit 'Use when' clause with enumerated concrete triggers, and an explicit boundary against the sibling aisearch skill for fuzzy searches. It follows third-person, trigger-phrase-driven best practice with no padding or over-claims.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "已有 userId 后查详情、部门、职位或邮箱,按完整手机号反查用户,或查询自己、部门成员及角色" — comprehensively covering the contact-lookup domain with no vague filler. This matches the anchor for multiple specific concrete actions with comprehensive coverage; the level-4 anchor ('minor gaps in coverage') would understate it since detail/dept/title/email/mobile/self/role queries are all enumerated.

5 / 5

Completeness

It explicitly answers both: what ("钉钉通讯录精确查询" plus enumerated actions) and when (explicit "Use when 已有 userId 后查详情…按完整手机号反查用户,或查询自己、部门成员及角色") with concrete trigger phrases. The level-4 anchor requires a 'when' that could be more explicit; here the triggers are enumerated and concrete, matching the level-5 example structure.

5 / 5

Trigger Term Quality

Natural user phrasings are comprehensively covered including synonyms: userId, 部门, 职位, 邮箱, 完整手机号, 姓名, 工号, 职责, 上下级, 部门成员, 角色 — terms a DingTalk user would actually say. The level-4 anchor ('a few natural terms missing') fits less well because both the trigger set and its delegated counterparts (姓名模糊搜索→aisearch) are named.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche and actively disambiguates against the sibling skill: "姓名模糊搜索、工号、职责、上下级走 dingtalk-aisearch,拿到 userId 后用本 skill 补详情" plus the command prefix "dws contact". Conflict risk is minimal because the fuzzy-vs-exact boundary is stated explicitly; level 4 would imply unresolved overlap with closely related skills.

5 / 5

Total

20

/

20

Passed

Validation

81%

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

Validation — 13 / 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

relative_links

Relative link issues: 1 suspicious

Warning

Total

13

/

16

Passed

Repository
DingTalk-Real-AI/dingtalk-workspace-cli
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.