CtrlK
BlogDocsLog inGet started
Tessl Logo

customerio-reliability-patterns

Implement Customer.io reliability and fault-tolerance patterns. Use when building circuit breakers, fallback queues, idempotency, or graceful degradation for Customer.io integrations. Trigger: "customer.io reliability", "customer.io resilience", "customer.io circuit breaker", "customer.io fault tolerance".

80

Quality

77%

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 ./plugins/saas-packs/customerio-pack/skills/customerio-reliability-patterns/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

89%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is a well-structured skill description with strong completeness and distinctiveness. It clearly identifies when to use the skill with explicit trigger terms and a 'Use when' clause. The main weakness is that the capabilities are described at the pattern level rather than as concrete actions, making it slightly less specific about what the skill actually produces.

Suggestions

Replace pattern names with concrete actions, e.g., 'Generates circuit breaker wrappers, implements retry logic with exponential backoff, creates fallback queue handlers, and adds idempotency keys for Customer.io API calls.'

DimensionReasoningScore

Specificity

Names the domain (Customer.io reliability) and lists some specific patterns (circuit breakers, fallback queues, idempotency, graceful degradation), but these are more pattern names than concrete actions. It doesn't describe what the skill actually produces or does (e.g., 'generates retry logic', 'implements dead letter queues').

2 / 3

Completeness

Clearly answers both 'what' (implement reliability and fault-tolerance patterns including circuit breakers, fallback queues, idempotency, graceful degradation) and 'when' (explicit 'Use when' clause and 'Trigger' terms). Both components are explicitly stated.

3 / 3

Trigger Term Quality

Includes explicit trigger terms that users would naturally say: 'customer.io reliability', 'customer.io resilience', 'customer.io circuit breaker', 'customer.io fault tolerance'. These cover the main natural language variations a user would use when seeking this functionality.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive due to the narrow niche of Customer.io-specific reliability patterns. The combination of 'Customer.io' with specific fault-tolerance concepts like circuit breakers and idempotency makes it very unlikely to conflict with other skills.

3 / 3

Total

11

/

12

Passed

Implementation

64%

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

This skill excels at actionability with fully executable, production-quality TypeScript code covering all major reliability patterns. However, it's overly long for a single SKILL.md — the six complete code patterns would be better served by a concise overview with references to individual pattern files. The lack of explicit testing/validation workflows for these stateful patterns (circuit breaker state transitions, queue drain verification) is a notable gap.

Suggestions

Split each pattern into its own file (e.g., circuit-breaker.md, retry-jitter.md) and keep SKILL.md as a concise overview with the selection guide table and links to each pattern.

Add validation/testing steps for each pattern — e.g., 'Test circuit breaker: send 5 failing requests, verify state is OPEN, wait 30s, verify HALF_OPEN transition'.

Remove the Prerequisites section's explanation of failure modes (429, 5xx, timeouts) — Claude already knows these concepts.

Add a quick-start section showing the minimal integration (just the ResilientCioClient usage) before diving into individual pattern implementations.

DimensionReasoningScore

Conciseness

The skill provides substantial executable code which is valuable, but is quite long (~250 lines of code). Some patterns could be more concise — e.g., the full CircuitBreaker class with getStatus() method and the complete fallback queue worker setup include boilerplate that an experienced developer (or Claude) could infer. The prerequisites section explaining failure modes Claude already knows is unnecessary padding.

2 / 3

Actionability

Every pattern includes fully executable TypeScript code with proper imports, types, and realistic configurations. The code is copy-paste ready with real library usage (customerio-node, bullmq), concrete defaults (thresholds, timeouts, jitter calculations), and a combined resilient client showing how all patterns integrate.

3 / 3

Workflow Clarity

The Pattern Selection Guide table and Reliability Checklist provide good structure for choosing and verifying patterns. However, there's no explicit validation/verification workflow — no steps for testing the circuit breaker works, no guidance on how to verify the fallback queue is processing correctly, and no feedback loop for confirming reliability patterns are functioning in production. For these fault-tolerance patterns involving queues and state machines, validation checkpoints are important.

2 / 3

Progressive Disclosure

The content is a monolithic wall of code patterns all inline. With 6 patterns totaling ~250 lines of code, this would benefit from splitting each pattern into its own referenced file with the SKILL.md providing a concise overview and selection guide. The reference to 'customerio-load-scale' at the end is good but no bundle files exist to support progressive disclosure.

2 / 3

Total

9

/

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

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

Total

9

/

11

Passed

Repository
jeremylongshore/claude-code-plugins-plus-skills
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.