CtrlK
BlogDocsLog inGet started
Tessl Logo

rich-messaging

在当前 Chat 直接交付可看、可听或可操作产物(语音、图片、截图、HTML/demo、卡片、清单、diff、交互选择),无需用户说“富文本”;纯文字与讨论/修改 HTML 源码不使用,复杂 localhost 应用用 browser-preview。

68

Quality

83%

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

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 highly actionable, lean skill body: complete JSON examples for all eight rich block kinds, exact MCP tool invocations, a decision table for routing deliverables, and a practical error table. The workflow is well sequenced with good error-recovery notes, held back only by minor redundancy, a few implicit validation checkpoints, and a bundle-external reference path for detailed specs.

Suggestions

Consolidate the video//uploads publishing guidance so it appears once (发送方式) and is only cross-referenced from the 常见错误 table, trimming duplicated detail.

Add an explicit post-publish verification checkpoint (e.g. 'after manual copy to uploadDir, confirm the /uploads/... URL resolves before sending the block') to close the workflow's validation gap.

Move the detailed field-spec reference into a bundled references/ file (or make the ../.cat-cafe-shared-refs path resolvable) so progressive disclosure does not depend on an external shared directory.

DimensionReasoningScore

Conciseness

The body is dense and decision-oriented — routing tables, one-line JSON examples, an error table — with essentially no explanation of concepts Claude already knows. Minor trimmable redundancy remains (the '不只是打字!' intro flourish, video//uploads guidance repeated across 发送方式 and 常见错误, and slight overlap between the 八种 Rich Block table and the per-kind examples), so it sits at the 'efficient with minor over-explanation' anchor rather than 5.

4 / 5

Actionability

Every one of the eight block kinds gets a complete copy-paste JSON example, and the guidance names exact tools, parameters, and paths ('cat_cafe_create_rich_block', 'publishGeneratedImage({ sourcePath, mimeType, ... })', '/uploads/...', mimeType video/ inline playback, 'kind' not 'type'), including a concrete do/don't pair for the DOMPurify on*-attribute stripping pitfall. Fully executable and covering the common cases.

5 / 5

Workflow Clarity

A clear sequence is present — fetch 'get_rich_block_rules' on first use per session, route deliverable to the right surface via the decision table, write a 1-2 sentence summary, then send the block — with error-recovery guidance (async podcast timeout: 'MCP 120s 超时 ≠ 任务失败… 用 signal_list_studies 检查 artifact 状态'). Not 5 because a few checkpoints are implicit rather than explicit, e.g. no stated verification step after manual image/video publishing; the destructive/batch cap does not apply as this is a delivery skill.

4 / 5

Progressive Disclosure

Sections are well organized and detail is deliberately deferred one level deep — '细则在 MCP 工具里' plus a 参考 section pointing to '../.cat-cafe-shared-refs/rich-blocks.md'. Not 5 because the markdown reference lives outside the skill bundle (no references/ directory exists and the ../ path does not resolve from the skill directory), so navigation depends on an external shared location; the live-MCP deferral partially compensates.

4 / 5

Total

17

/

20

Passed

Description

83%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, concrete description that names the full artifact inventory and gives explicit negative boundaries against plain-text discussion and the browser-preview skill. Its main weaknesses are the absence of natural colloquial trigger phrases and of a positive 'Use when...' clause, leaving the 'when' partly implicit through exclusions.

Suggestions

Add a positive trigger clause with concrete phrases users would naturally say, e.g. 'Use when the user asks to 发语音/发图/发卡片/show me/发清单 or wants to see, hear, or interact with results in Chat.'

Fold one or two natural synonyms or spoken variants (e.g. 'voice', 'show me', 'screenshot', '发日志') into the description so trigger matching does not depend solely on the frontmatter triggers list.

DimensionReasoningScore

Specificity

The description enumerates the complete artifact inventory — '语音、图片、截图、HTML/demo、卡片、清单、diff、交互选择' (voice, images, screenshots, HTML/demo, cards, checklists, diff, interactive selection) — matching the comprehensive multi-action anchor. It is not 4 because coverage of the deliverable kinds is complete rather than having minor gaps.

5 / 5

Completeness

Both 'what' (deliver visible/audible/operable artifacts directly in the current Chat) and 'when' (delivery intent itself, '无需用户说"富文本"', plus explicit exclusions for plain text and source-code discussion and a browser-preview boundary for complex localhost apps) are present. Not 5 because there is no positive 'Use when...'-style clause with concrete trigger phrases — the 'when' is partly conveyed through negative boundaries; not 3 because the trigger condition is explicitly stated rather than merely implied.

4 / 5

Trigger Term Quality

Good keyword coverage of the domain terms users reference ('语音', '图片', '截图', '卡片', '清单', '交互选择', 'browser-preview'), but common natural spoken variants users would actually say ('发语音', '发图', 'show me', '发日志') are absent from the description itself. Not 5 because synonyms and colloquial trigger phrasings are missing; not 3 because the relevant keyword set is broad and on-target.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche (in-Chat rich block delivery) and explicitly disambiguates adjacent cases — '纯文字与讨论/修改 HTML 源码不使用' and '复杂 localhost 应用用 browser-preview' — minimizing overlap with other skills. Matches the clear-niche anchor with distinct triggers.

5 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
zts212653/clowder-ai
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.