CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

feishu-notify

Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify. Use when user says "发飞书", "notify feishu", or other skills need to send status updates.

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./skills/feishu-notify/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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-structured, highly actionable single-file skill with concrete curl commands, complete config format, mode-specific workflows, and explicit fallback/verification behavior. Its two weaknesses are repetition of the fail-open/zero-impact rules across four sections, and placeholder-laden payloads that never show how $WEBHOOK_URL or card content is actually assembled from the config.

Suggestions

Consolidate the fail-open/zero-impact rules: state 'config absent or mode off = silent no-op' once (e.g., in Configuration) and let Step 1 and Key Rules reference it, cutting 3–4 redundant restatements.

Move the Event Catalog table (a cross-skill contract for ten other skills) and the 'Helper Function' markdown template into a references/ file (e.g., references/events.md) and link to them from SKILL.md.

Replace literal TITLE/COLOR/BODY/$WEBHOOK_URL placeholders with one fully-resolved worked example showing how values are read from ~/.claude/feishu.json and substituted into the curl payload.

DimensionReasoningScore

Conciseness

The body is mostly efficient — dense tables for modes, card templates, and the event catalog, with no explanation of concepts Claude already knows — but the fail-open behavior is repeated in at least four places ("Zero-impact guarantee" in the Overview, the Configuration section, Step 1, the Helper Function note, and three Key Rules bullets), and the "Helper Function (for other skills)" markdown template is meta-content that duplicates the Workflow. This fits 'Mostly efficient but includes some unnecessary explanation or could be tightened'; it is not 2 because each individual section is lean and nothing is concept-explainer padding, and not 4 because the repetition is a real trimming opportunity.

3 / 5

Actionability

Concrete, near-copy-paste guidance throughout: the `cat ~/.claude/feishu.json 2>/dev/null` read, full webhook curl with exact interactive-card JSON, the bridge `/send` and `/poll?timeout=` endpoints with example reply payloads, and a per-event table specifying title/color/body. Not 5 because the curl payloads embed literal placeholders (TITLE, COLOR, BODY, EVENT_TYPE, $WEBHOOK_URL, $BRIDGE_URL) without showing how values are extracted from the config or how body content is composed (e.g., building the "Results table, delta vs baseline"); those gaps keep it short of fully copy-paste ready.

4 / 5

Workflow Clarity

Steps 1–4 are clearly sequenced with mode branching (absent/off → return; push → Step 2; interactive → Step 3), explicit verification (Step 4 checks curl exit code and bridge reachability), and error-recovery fallbacks (timeout → AUTO_PROCEED, bridge unreachable → push or skip). This matches 'Clear sequence with most checkpoints present; minor validation gaps' — the gap being no validate/fix/retry loop for a failed webhook send (it just logs a warning) and no instruction for handling a malformed poll response. The destructive/batch cap does not apply since notification sending is neither.

4 / 5

Progressive Disclosure

This is a single-file skill (no references/, scripts/, or assets/ exist), so there are no broken or nested references to penalize, and the body is organized into clear sections (Overview, Configuration, Modes, Workflow, Helper Function, Event Catalog, Key Rules). It exceeds the <50-line simple-skill exception (~157 lines), and the Event Catalog table — a cross-skill contract documenting ten other skills' events — plus the Helper Function template are content that could live in a separate reference file; that minor inlining keeps it at 'Good structure; most content is appropriately placed' rather than 5.

4 / 5

Total

15

/

20

Passed

Description

82%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 a strong, honest one-liner with an explicit 'Use when' trigger clause covering both Chinese and English phrases and both invocation paths (internal utility and manual slash command). Its only weakness is thin capability coverage — the push/interactive distinction and event types live only in the body, not the description.

DimensionReasoningScore

Specificity

"Send notifications to Feishu/Lark" names the domain plus one concrete action, and "Internal utility used by other skills, or manually via /feishu-notify" adds invocation modes, but it omits what the skill actually varies (push cards vs. interactive approve/reject, event types). This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive'; it is not score 4 because several capabilities (bidirectional replies, event catalog) are never surfaced, and not score 2 because the action stated is concrete rather than generic.

3 / 5

Completeness

Clearly answers "what" ("Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify") and "when" with an explicit "Use when user says \"发飞书\", \"notify feishu\", or other skills need to send status updates" clause containing concrete trigger phrases, matching the top anchor exactly. Voice is third person, so no voice penalty applies.

5 / 5

Trigger Term Quality

Includes natural trigger phrases "发飞书", "notify feishu", "Feishu/Lark", and "/feishu-notify", giving good bilingual and synonym coverage. Not 5 because common variations like "send a Lark message", "ping me on Feishu", or "飞书通知" are missing; not 3 because the phrases present are ones a user would naturally say and are not merely technical jargon.

4 / 5

Distinctiveness Conflict Risk

Feishu/Lark notification is a clear niche with distinct, product-specific triggers ("发飞书", "/feishu-notify") and an explicit dual-audience scope (other skills vs. manual), so it is unlikely to fire for the wrong skill. This fits 'Clear niche with distinct triggers; minimal conflict risk'; no neighboring anchor fits better.

5 / 5

Total

17

/

20

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.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

wanshuiyin/Auto-claude-code-research-in-sleep

Path

skills/feishu-notify/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.