CtrlK
BlogDocsLog inGet started
Tessl Logo

klaviyo

Klaviyo email/SMS marketing - profiles, events, flows, segmentation

48

Quality

37%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/klaviyo/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

32%

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 identifies the platform (Klaviyo) and lists feature areas but lacks concrete actions and explicit trigger guidance. It reads more like a tag list than a functional description. Adding specific actions and a 'Use when...' clause would significantly improve skill selection accuracy.

Suggestions

Add a 'Use when...' clause specifying trigger scenarios, e.g., 'Use when the user asks about Klaviyo API integration, building email flows, managing subscriber profiles, or creating audience segments.'

Replace the noun list with concrete actions, e.g., 'Creates and manages Klaviyo email/SMS flows, builds audience segments, tracks customer events, and manages subscriber profiles.'

Include additional natural trigger terms users might say, such as 'campaign', 'automation', 'newsletter', 'drip sequence', 'subscriber list', or 'Klaviyo API'.

DimensionReasoningScore

Specificity

Names the domain (Klaviyo email/SMS marketing) and lists some areas (profiles, events, flows, segmentation), but these are more like feature categories than concrete actions. It doesn't describe what it actually does with these (e.g., 'create flows', 'manage profiles', 'build segments').

2 / 3

Completeness

It partially answers 'what' (Klaviyo email/SMS marketing features) but provides no 'when should Claude use it' guidance. There is no 'Use when...' clause or equivalent explicit trigger guidance, and per the rubric, a missing 'Use when...' clause should cap completeness at 2, but the 'what' is also weak (just listing nouns), so this falls to 1.

1 / 3

Trigger Term Quality

Includes relevant keywords like 'Klaviyo', 'email', 'SMS', 'marketing', 'profiles', 'events', 'flows', 'segmentation' which users might naturally mention. However, it's missing common variations like 'campaign', 'automation', 'subscriber', 'list', 'newsletter', or 'drip'.

2 / 3

Distinctiveness Conflict Risk

The mention of 'Klaviyo' specifically is a strong distinguishing factor that reduces conflict with generic email or marketing skills. However, terms like 'email', 'SMS marketing', 'profiles', and 'segmentation' could overlap with other marketing platform skills.

2 / 3

Total

7

/

12

Passed

Implementation

42%

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

This skill is highly actionable with excellent, executable code examples covering the full Klaviyo API surface area. However, it suffers significantly from verbosity—it's a monolithic reference document rather than a concise skill file, including marketing-style content Claude doesn't need and massive inline code blocks that should be split into separate reference files. The workflow patterns lack explicit validation/error-recovery steps.

Suggestions

Cut the 'Why Klaviyo' table, API Key Scopes table, and any explanatory text that describes what Klaviyo features do rather than how to use them—Claude already understands these concepts.

Extract the detailed code examples (common e-commerce events, webhooks, integration patterns) into separate reference files (e.g., EVENTS.md, WEBHOOKS.md, PATTERNS.md) and link to them from the main skill with one-line summaries.

Add explicit error handling and validation steps to the integration workflows—e.g., verify profile was created before tracking events, check response status codes, and define what to do on partial failures.

Consolidate the three installation approaches (Node SDK, Python SDK, Direct HTTP) into one primary approach with brief notes on alternatives, rather than showing full setup code for all three.

DimensionReasoningScore

Conciseness

The skill is extremely verbose at ~600+ lines, including a 'Why Klaviyo' marketing table Claude doesn't need, explanations of basic concepts (what API keys are, what scopes mean), redundant code examples in multiple languages for the same operations, and a feature/benefit table that adds no actionable value. Much of this could be cut by 60%+.

1 / 3

Actionability

The code examples are concrete, executable, and copy-paste ready across TypeScript, Python, and direct HTTP. Event tracking examples include specific property structures for common e-commerce events, webhook verification includes a complete Express handler, and rate limiting/pagination patterns are fully implemented.

3 / 3

Workflow Clarity

The E-Commerce Order Sync pattern shows a clear 3-step sequence (upsert profile → update metrics → track event), and the checklist provides a good overview. However, there are no explicit validation checkpoints or error recovery steps in the integration workflows—e.g., what happens if the profile upsert fails before tracking the event? The rate limit handler exists but isn't integrated into the workflow patterns.

2 / 3

Progressive Disclosure

Everything is in a single monolithic file with no references to external files for detailed content. The common e-commerce events section alone is ~80 lines that could be a separate reference. API filtering, pagination, webhooks, and integration patterns all inline when they could be split into focused reference files with brief summaries in the main skill.

1 / 3

Total

7

/

12

Passed

Validation

81%

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

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (811 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

9

/

11

Passed

Repository
alinaqi/claude-bootstrap
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.