CtrlK
BlogDocsLog inGet started
Tessl Logo

sendgrid-automation

Automate SendGrid email operations including sending emails, managing contacts/lists, sender identities, templates, and analytics via Rube MCP (Composio). Always search tools first for current schemas.

79

1.86x
Quality

70%

Does it follow best practices?

Impact

97%

1.86x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./plugins/all-skills/skills/sendgrid-automation/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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 strong, information-dense skill body with concrete MCP tool guidance, clear sequenced workflows, and genuine validation coverage for async/batch/destructive operations. Its main weaknesses are inlined reference-grade content in a single long file and noticeable duplication between workflow pitfalls and the Known Pitfalls/Common Patterns sections.

Suggestions

Split the Quick Reference table and per-workflow parameter/pitfall detail into one-level-deep reference files (e.g., references/tools.md, references/pitfalls.md) so SKILL.md stays a lean overview.

Deduplicate content repeated across sections — async 202/job_id behavior, UUID list IDs, send_at quirk, legacy-API warning, and CSV rate limit each appear two to three times.

Inline the validation checkpoints into the workflow sequences (e.g., add a numbered 'verify with SENDGRID_GET_CONTACTS_BY_EMAILS after ~20s' step after contact upserts) instead of relegating them to Pitfalls.

DimensionReasoningScore

Conciseness

The body is dense and operational — tool slugs, exact parameter names, limits, and pitfalls with essentially no explanation of concepts Claude already knows. It is not a 5 because of real duplication: the async 202/job_id behavior, UUID list IDs, the send_at quirk, the legacy-API warning, and the CSV 12-hour limit each appear in both a workflow's Pitfalls and again in Common Patterns / Known Pitfalls.

4 / 5

Actionability

Guidance is concrete throughout: exact tool slugs, double-underscore parameter notation ('email__config__subject'), formats (UUID example, YYYY-MM-DD dates), limits (30,000 contacts / 6MB, limit 1-1000), and a SQL-like query example. It stops short of fully executable because no complete example argument payloads or a worked call are shown, and the instruction to 'Always call RUBE_SEARCH_TOOLS first' defers actual schemas rather than demonstrating one call.

4 / 5

Workflow Clarity

Each of the five workflows has a numbered tool sequence tagged [Required]/[Optional]/[Prerequisite], setup includes a confirmation checkpoint ('Confirm connection status shows ACTIVE before running any workflows'), and the batch contact operations do have verification steps (wait 10-30 seconds, verify with GET_CONTACTS_BY_EMAILS, confirm via GET_LIST_CONTACT_COUNT), so the batch-operations cap at 3 does not apply. It is not a 5 because validation lives in Pitfalls/Common Patterns rather than inline in the sequences, and error-recovery loops are thin (e.g., 429 handling is just 'respect Retry-After headers').

4 / 5

Progressive Disclosure

The single file is well-sectioned with clear headers, but at ~225 lines everything is inlined in SKILL.md: a 24-row quick-reference table, per-workflow parameter references, and a duplicated Known Pitfalls section — content that clearly belongs in one-level-deep reference files (e.g., tools.md, pitfalls.md). This matches the 'some structure but content that should be separate is inline' anchor rather than the good-placement anchor.

3 / 5

Total

15

/

20

Passed

Description

70%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 specific, well-scoped description with strong domain keywords and minimal conflict risk, but it omits any 'when to use this' trigger guidance, which both caps completeness and limits its discoverability. Adding an explicit 'Use when...' clause with natural trigger phrases would move it into the top tier.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user wants to send emails or manage contacts, lists, sender identities, templates, or analytics in SendGrid.'

Include the natural synonyms users actually say — 'marketing campaign', 'Single Send', 'email blast', 'unsubscribe/suppression groups' — to improve trigger-term coverage.

Use a non-exhaustive capability list that also nods to compliance/suppression management, which is a key body workflow currently absent from the description.

DimensionReasoningScore

Specificity

The description enumerates several concrete capability areas — 'sending emails, managing contacts/lists, sender identities, templates, and analytics' — and names the mechanism ('via Rube MCP (Composio)'). It falls just below the comprehensive anchor because capabilities covered in the body (campaigns/Single Sends, suppressions/unsubscribe groups, scheduling, domain authentication) are absent, leaving minor coverage gaps.

4 / 5

Completeness

The 'what' is clearly stated ('Automate SendGrid email operations including...'), but there is no 'Use when...' clause or equivalent trigger guidance; the closing sentence 'Always search tools first for current schemas' is an instruction, not a usage trigger. Per the rubric guideline, a missing explicit 'when' caps completeness at 3.

3 / 5

Trigger Term Quality

Natural terms users would say are well represented: 'SendGrid', 'email', 'contacts', 'lists', 'templates', 'analytics', 'sending emails'. A few common phrasings are missing — 'campaign', 'marketing email', 'unsubscribe/suppression group' — which keeps it below the comprehensive-synonyms anchor.

4 / 5

Distinctiveness Conflict Risk

The description occupies a clear niche anchored on 'SendGrid' and 'Rube MCP (Composio)', so it is unlikely to trigger for any other skill. It matches the distinct-triggers anchor; no neighboring anchor fits better since the domain is unambiguous.

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
davepoon/buildwithclaude
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.