CtrlK
BlogDocsLog inGet started
Tessl Logo

recipe-send-personalized-emails

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

74

3.84x
Quality

63%

Does it follow best practices?

Impact

100%

3.84x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/recipe-send-personalized-emails/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

67%

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 articulates a specific mail-merge workflow combining Google Sheets and Gmail with good specificity and distinctiveness. However, it lacks explicit trigger guidance ('Use when...') and could benefit from additional natural keywords users might say when requesting this functionality.

Suggestions

Add a 'Use when...' clause with trigger terms like 'mail merge', 'bulk email', 'send emails from spreadsheet', or 'mass personalized messages'

Include common variations users might say: 'bulk email', 'mail merge', 'email blast', 'send to list'

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

Clearly answers 'what' (read from Sheets, send personalized Gmail), but lacks an explicit 'Use when...' clause or trigger guidance for when Claude should select this skill.

2 / 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 'spreadsheet'.

2 / 3

Distinctiveness Conflict Risk

Very specific niche combining Google Sheets AND Gmail for mail merge functionality. The combination of both services plus 'personalized messages to each row' creates a distinct trigger unlikely to conflict with general Sheets or Gmail skills.

3 / 3

Total

10

/

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/dry-run step before sending: preview first N emails or confirm recipient count

Include error handling guidance: what to do if a send fails mid-batch, how to track which emails succeeded

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

Repository
googleworkspace/cli
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.