CtrlK
BlogDocsLog inGet started
Tessl Logo

zulip

Zulip integration. Manage data, records, and automate workflows. Use when the user wants to interact with Zulip data.

49

Quality

54%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/zulip/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.

The body is a strong, executable guide to driving Zulip through the Membrane CLI, with a clear connection state machine and concrete commands throughout. Its main weaknesses are a padded intro that over-explains Zulip and some redundancy in the actions sections.

Suggestions

Trim the opening paragraph that explains what Zulip is and the 'auth plumbing' commentary; Claude already knows this and the context window is better spent on commands.

Consolidate the 'Searching for actions' and 'Popular actions' sections, which both instruct running action list with --intent, to remove redundancy.

Add a brief validation note before running mutating actions (e.g. dry-run or confirm on destructive operations) to strengthen the workflow's feedback loop.

DimensionReasoningScore

Conciseness

The body is mostly efficient with executable commands, but includes avoidable padding such as the introductory paragraph explaining what Zulip is and phrasing like 'so you can focus on the integration logic rather than auth plumbing'.

3 / 5

Actionability

It provides concrete, copy-pasteable commands for install, login, connection, action discovery, action runs, and proxy requests, plus a complete options table; minor gaps are the generic 'Popular actions' section that restates discovery.

4 / 5

Workflow Clarity

The install -> auth -> connect -> poll-for-ready -> search -> run sequence is clear, with a state-machine branch (READY, BUILDING, CLIENT_ACTION_REQUIRED, CONFIGURATION_ERROR) and a polling checkpoint; only minor validation gaps before running actions.

4 / 5

Progressive Disclosure

Content is well organized into clearly headed sections in a single self-contained file with no nested references and a signaled official-docs link, though some reference material (e.g. proxy options) is inlined rather than split out.

4 / 5

Total

15

/

20

Passed

Description

41%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 correctly names the target app and includes an explicit trigger clause, but its capability description is generic and it lacks the natural vocabulary (streams, topics, messages) users would employ. It is serviceable but below the bar set by the good examples.

Suggestions

Replace generic verbs with concrete Zulip actions, e.g. 'Send and read messages, manage streams and topics, and look up users'.

Add natural trigger terms users actually say, such as 'Zulip messages', 'streams', 'topics', or 'team chat'.

Tighten the 'when' clause to specific intents, e.g. 'Use when the user wants to send or search Zulip messages or manage streams and topics.'

DimensionReasoningScore

Specificity

The description names the Zulip domain but the actions ('Manage data, records, and automate workflows') are minimal and generic rather than concrete operations like sending messages or managing streams.

2 / 5

Completeness

It states both a 'what' and an explicit 'Use when...' trigger, but the 'what' is vague ('manage data, records, and automate workflows') which keeps it from a 4.

3 / 5

Trigger Term Quality

Only the bare keyword 'Zulip' and the generic term 'data' appear; natural phrases users would actually say (messages, streams, topics, chat) are missing.

2 / 5

Distinctiveness Conflict Risk

Tying the trigger to the named app Zulip gives it a clear niche with low conflict risk, though the generic 'interact with Zulip data' phrasing leaves minor overlap.

4 / 5

Total

11

/

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
membranedev/application-skills
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.