CtrlK
BlogDocsLog inGet started
Tessl Logo

proactive-send

向 awada 客户主动发送消息。在 openclaw 消息处理循环之外直接 POST 到 relay 网关 outbound 端点,无需等待客户发起对话。

60

Quality

71%

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

Fix and improve this skill with Tessl

tessl review fix ./crews/sales-cs/skills/proactive-send/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

85%

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

The body is lean, well-structured, and gives concrete parameters and return-value semantics, with clear workflow clarity for a simple single-task skill. Its main weakness is actionability: the documented `proactive-send` command does not match the bundled `node scripts/send.mjs` entry point, and the referenced contract doc is absent from the bundle.

Suggestions

Align the documented command with the actual entry point — show `node scripts/send.mjs --user-id-external ... --text ...` (or document the `proactive-send` wrapper if one exists) so the example is copy-paste executable.

Either add the missing `docs/AWADA-CLIENT-TRANSPORT.md` to the bundle or remove the dangling reference so referenced paths resolve.

Clarify where `user_id_external` is read from (the params note says '对话上下文 Sender 块的 id 字段' — a one-line pointer to how to obtain it would make the example fully self-contained).

DimensionReasoningScore

Conciseness

The body is lean and well-sectioned (~37 lines) with no padding and no explanation of concepts Claude already knows; every line earns its place, matching 'lean and efficient; assumes Claude's competence.'

3 / 3

Actionability

Params, return values, and the HTTP contract are concrete and a real script (send.mjs) exists, but the headline command `proactive-send ...` is not copy-paste executable — the bundled script's own header invokes `node scripts/send.mjs ...` — so the primary example is incomplete rather than fully executable.

2 / 3

Workflow Clarity

This is a simple single-task skill whose single action is unambiguous, and the return-value section explicitly distinguishes success (exit 0, stream ID) from failure (exit 1, stderr), so the simple-skills carve-out allows a 3 for clear, well-organized workflow.

3 / 3

Progressive Disclosure

At under 50 lines with cleanly organized sections and only a single one-level external pointer, the simple-skill carve-out allows a 3 for well-organized sections; the one pointer (docs/AWADA-CLIENT-TRANSPORT.md) is shallow rather than nested.

3 / 3

Total

11

/

12

Passed

Description

57%

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 concrete and distinct, clearly stating what the skill does and carving out a clear niche, but it omits an explicit 'Use when...' trigger and leans on internal jargon, which weakens trigger-term quality and completeness.

Suggestions

Add an explicit 'Use when...' trigger clause (e.g., 'Use when sales-cs needs to proactively reach out to an awada customer outside the normal conversation flow').

Lead with the user-natural term ('主动给客户发消息') before the technical mechanism to improve trigger-term quality.

Optionally note a complementary trigger variation ('主动联系客户', '主动推送消息') to broaden natural-keyword coverage.

DimensionReasoningScore

Specificity

It names the domain and a concrete action — "向 awada 客户主动发送消息" and "POST 到 relay 网关 outbound 端点" — but describes a single action rather than listing multiple specific concrete actions, so it sits at the anchor 'names domain and some actions' rather than the score-3 'lists multiple specific concrete actions.'

2 / 3

Completeness

The 'what' is explicit (proactively POST to the relay outbound endpoint), but the 'when' is only implied via "无需等待客户发起对话" with no 'Use when...' clause, so per the guideline a missing explicit trigger caps completeness at 2.

2 / 3

Trigger Term Quality

A natural phrase a user would say is present ("主动发送消息", "awada 客户"), but it is wrapped in technical jargon ("openclaw 消息处理循环", "outbound 端点") and lacks common variations, matching 'some relevant keywords but missing common variations.'

2 / 3

Distinctiveness Conflict Risk

The combination of awada + proactive + outbound endpoint outside the openclaw loop is a clear, narrow niche unlikely to overlap with other skills, matching 'clear niche with distinct triggers; unlikely to conflict.'

3 / 3

Total

9

/

12

Passed

Validation

87%

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

Validation14 / 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

Total

14

/

16

Passed

Repository
TeamWiseFlow/xiaobei
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.