CtrlK
BlogDocsLog inGet started
Tessl Logo

recipe-send-personalized-emails

Read recipient data from Google Sheets and send personalized Gmail messages to each row.

Install with Tessl CLI

npx tessl i github:googleworkspace/cli --skill recipe-send-personalized-emails
What are skills?

61

Does it follow best practices?

Validation for skill structure

SKILL.md
Review
Evals

Discovery

50%

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 clearly explains the specific capability of reading from Google Sheets and sending personalized Gmail messages, with good distinctiveness. However, it critically lacks explicit trigger guidance ('Use when...') which would help Claude know when to select this skill, and could benefit from additional natural trigger terms users might say when needing mail merge functionality.

Suggestions

Add a 'Use when...' clause with trigger scenarios like 'Use when the user wants to send bulk emails, mail merge, mass personalized messages, or email campaigns using spreadsheet data.'

Include additional natural trigger terms users might say: 'mail merge', 'bulk email', 'mass email', 'email blast', 'send emails from spreadsheet'.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions: 'Read recipient data from Google Sheets' and 'send personalized Gmail messages to each row'. Uses third person voice correctly.

3 / 3

Completeness

Describes what the skill does but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill.

1 / 3

Trigger Term Quality

Includes good keywords like 'Google Sheets', 'Gmail', 'personalized', and 'messages', but missing common variations users might say like 'mail merge', 'bulk email', 'mass email', or 'email campaign'.

2 / 3

Distinctiveness Conflict Risk

Clear niche combining Google Sheets + Gmail + mail merge functionality. The specific combination of reading from Sheets and sending via Gmail is distinctive and unlikely to conflict with general email or spreadsheet skills.

3 / 3

Total

9

/

12

Passed

Implementation

60%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This skill is admirably concise and well-structured for a simple recipe, but critically lacks the workflow safety measures needed for a batch email operation. The personalization mechanism is described abstractly rather than concretely demonstrated, and there's no validation or dry-run step before sending potentially many emails.

Suggestions

Add explicit loop syntax showing how to substitute row values (e.g., row[0], row[1]) into the email command

Add a validation checkpoint: verify row count and preview first email before batch send

Include a dry-run or confirmation step since this is a destructive batch operation that cannot be undone

Show error handling for common failures (invalid email addresses, API rate limits)

DimensionReasoningScore

Conciseness

Very lean and efficient - no unnecessary explanations about what Gmail or Sheets are, assumes Claude's competence, every line serves a purpose.

3 / 3

Actionability

Provides concrete CLI commands but the personalization loop is incomplete - shows static placeholder values ('Name', 'recipient@example.com') rather than demonstrating how to actually substitute row data into the template.

2 / 3

Workflow Clarity

Missing critical workflow elements: no validation of sheet data before sending, no error handling for failed sends, no confirmation/dry-run step before batch email operation, and the loop mechanism is implied but not explicit.

1 / 3

Progressive Disclosure

Appropriate for a simple recipe - clear prerequisite callout pointing to dependent skills, concise structure with no need for external references given the scope.

3 / 3

Total

9

/

12

Passed

Validation

72%

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

Validation8 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

8

/

11

Passed

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.