CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

brevo

Brevo integration. Manage Persons, Organizations, Deals, Leads, Pipelines, Users and more. Use when the user wants to interact with Brevo data.

Quality

72%

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/brevo/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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 strongly actionable CLI guide with a genuinely well-handled connection-state workflow (polling, client-action branching, error states), but it spends tokens on background Brevo marketing copy and provides zero validation guidance for the destructive CRM operations it exposes. Trimming the intro and adding pre-flight checks for deletes/updates would move it from good to excellent.

Suggestions

Add a validation checkpoint before destructive actions (e.g., 'Before delete-contact or update-*, run the corresponding get-* action and confirm the target with the user'), which would also lift the workflow-clarity cap.

Cut the opening paragraph explaining what Brevo is and who uses it — Claude already knows this — and delete the filler line 'Use action names and parameters as needed.' along with the redundant nested overview list.

Show one complete end-to-end example that maps a table key to a real invocation, e.g. `membrane action run list-contacts --connectionId=... --input '{"limit": 50}' --json`, so the key → actionId relationship is unambiguous.

DimensionReasoningScore

Conciseness

Mostly efficient CLI-focused instructions, but it includes unnecessary explanation Claude already knows ("Brevo is a marketing automation and CRM platform. It's used by businesses, especially small to medium-sized ones..."), filler like "Use action names and parameters as needed", and a redundant nested overview list duplicating "Email Campaigns / Email Campaign". This matches 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than 4's 'minor instances'.

3 / 5

Actionability

Concrete, executable commands throughout — "npm install -g @membranehq/cli@latest", "membrane connection ensure \"https://app.brevo.com/\" --json", "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}'" — plus a flag table for proxy requests. It falls short of 5 because no example shows a real end-to-end invocation using an action from the table (the key vs. actionId relationship is never demonstrated), and it is above 3 since everything given is executable, not pseudocode.

4 / 5

Workflow Clarity

The connection workflow is well sequenced with explicit checkpoints (poll until state leaves BUILDING; branch on READY/CLIENT_ACTION_REQUIRED/CONFIGURATION_ERROR with the error field checked), but the skill covers destructive and batch operations (delete-contact, update, delete on live CRM data) with no validation or confirmation steps anywhere. Per the rubric's cap, missing validation for destructive/batch operations caps workflow clarity at 3.

3 / 5

Progressive Disclosure

No bundle files exist, and the single SKILL.md is well-sectioned (Install, Authentication, Connecting, Searching, Popular actions, Running, Proxy, Best practices) at a reasonable length, with the bulk action catalog delegated to runtime discovery via "membrane action list --intent" instead of being inlined. Minor organization gaps — the disordered duplicated overview list and the dangling "Use action names and parameters as needed" line — keep it below 5.

4 / 5

Total

14

/

20

Passed

Description

71%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 answers both what and when explicitly and occupies a clearly distinct niche (Brevo), but its trigger vocabulary is thin: it names entities that are not Brevo's actual terms (Persons, Organizations, Pipelines, Users) while omitting the words users actually say (contacts, companies, CRM, email marketing). Tightening the trigger clause to Brevo-native terminology would lift completeness and trigger quality.

Suggestions

Replace 'Persons, Organizations' with Brevo's actual object names — 'Contacts, Companies' — so the description matches both what users say and what the skill's actions (list-contacts, get-company) actually expose.

Expand the 'Use when' clause with concrete trigger phrases: 'Use when the user wants to manage Brevo contacts, companies, deals, tasks, email/SMS campaigns, or other CRM data'.

Remove the trailing 'and more' filler; either list the remaining capabilities concretely or end after the named ones.

DimensionReasoningScore

Specificity

"Manage Persons, Organizations, Deals, Leads, Pipelines, Users and more" lists several specific capabilities alongside the named domain (Brevo), matching the 'lists several specific actions; minor gaps' anchor. It falls short of 5 because 'Manage' is one generic verb applied to object nouns, and 'and more' is padding; it does not fit 3 since coverage goes well beyond 1-2 actions.

4 / 5

Completeness

Both parts are explicit: the 'what' is "Brevo integration. Manage Persons, Organizations, Deals..." and the 'when' is "Use when the user wants to interact with Brevo data." It is not 5 because the trigger clause is generic ('interact with Brevo data') and omits concrete trigger phrases like CRM, contacts, or email campaigns.

4 / 5

Trigger Term Quality

"Brevo", "Deals", "Leads" are relevant keywords, but the description misses the natural terms users would actually say for this skill — "contacts", "companies", "CRM", "email marketing", "SMS" — and "Persons"/"Organizations" are not Brevo's own terminology. This matches 'some relevant keywords but missing common variations or synonyms' rather than 4's 'good keyword coverage'.

3 / 5

Distinctiveness Conflict Risk

"Brevo integration" plus "Use when the user wants to interact with Brevo data" establishes a clear niche around a named SaaS app with distinct triggers, so conflict risk with other skills is minimal.

5 / 5

Total

16

/

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.

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

Path

skills/brevo/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.