Klaviyo email/SMS marketing - profiles, events, flows, segmentation
38
37%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/klaviyo/SKILL.mdQuality
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 key feature areas, which provides some useful context. However, it reads as a noun list rather than describing concrete actions, and critically lacks any 'Use when...' guidance to help Claude know when to select this skill. Adding action verbs and explicit trigger conditions would significantly improve its effectiveness.
Suggestions
Add a 'Use when...' clause with trigger terms like 'Use when the user asks about Klaviyo, email campaigns, SMS marketing, marketing automation, or customer segmentation in Klaviyo'.
Convert the noun list into concrete actions, e.g., 'Manages Klaviyo email/SMS marketing: creates and edits flows, builds audience segments, tracks customer events, and manages subscriber profiles'.
Include additional natural trigger terms users might say, such as 'campaign', 'automation', 'subscriber list', 'newsletter', or 'Klaviyo API'.
| Dimension | Reasoning | Score |
|---|---|---|
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 has no 'when' clause or explicit trigger guidance. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' is also weak (just listing nouns), so this scores a 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', or 'newsletter'. | 2 / 3 |
Distinctiveness Conflict Risk | The mention of 'Klaviyo' specifically is distinctive and narrows the niche, but 'email/SMS marketing' could overlap with other marketing or email-related skills. The platform-specific mention helps but the broad marketing terms reduce distinctiveness. | 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.
The skill provides highly actionable, executable code examples covering the full Klaviyo API surface area, which is its primary strength. However, it is excessively verbose — including marketing-style feature tables, redundant multi-language examples, and explanations Claude doesn't need — consuming far more tokens than necessary. The monolithic structure with no progressive disclosure and missing validation checkpoints in workflows significantly reduce its effectiveness as a skill file.
Suggestions
Cut the 'Why Klaviyo' table, API Key Scopes table, and setup checklist entirely — these don't help Claude execute tasks. Reduce to one primary language (TypeScript) with a brief note that Python SDK exists.
Split into multiple files: keep SKILL.md as a concise overview with core setup + profile/event basics, then reference separate files like EVENTS.md (e-commerce event catalog), WEBHOOKS.md, and PATTERNS.md (integration patterns).
Add explicit validation steps to the integration patterns — e.g., after syncing an order, verify the event appears via GET /events, and handle cases where profile upsert fails before tracking the event.
Remove the common e-commerce events catalog (Viewed Product, Added to Cart, etc.) or move it to a reference file — the pattern is clear from one example, and Claude can generalize.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~600+ lines. It includes a 'Why Klaviyo' marketing table Claude doesn't need, explains API key scopes, provides redundant Python + TypeScript + HTTP examples for the same operations, lists common flow triggers Claude already knows, and includes a setup checklist that's not actionable guidance. Much of this could be cut by 60%+ without losing utility. | 1 / 3 |
Actionability | The code examples are concrete, executable, and copy-paste ready across TypeScript, Python, and client-side JavaScript. Functions include proper request bodies with JSON:API format, error handling, rate limit retry logic, pagination, and webhook signature verification — all directly usable. | 3 / 3 |
Workflow Clarity | The 'E-Commerce Order Sync' pattern shows a clear 3-step sequence (upsert profile → update properties → track event), but there are no validation checkpoints or error recovery steps. For batch operations like syncing orders or bulk profile updates, there's no guidance on verifying success, handling partial failures, or rollback strategies. | 2 / 3 |
Progressive Disclosure | Everything is in a single monolithic file with no references to supporting files despite the content being long enough to warrant splitting (e.g., event tracking examples, webhook setup, and integration patterns could each be separate files). No bundle files exist, and the skill doesn't organize content into overview vs. detail layers. | 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.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (810 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 | |
65efb33
Table of Contents
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.