Implement Customer.io webhook and reporting event handling. Use when processing email delivery events, click/open tracking, bounce handling, or streaming to a data warehouse. Trigger: "customer.io webhook", "customer.io events", "customer.io delivery status", "customer.io bounces", "customer.io open tracking".
84
82%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
100%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 strong skill description that clearly identifies the specific platform (Customer.io), lists concrete actions (webhook handling, bounce handling, click/open tracking, data warehouse streaming), and provides explicit trigger guidance with natural user terms. It follows the recommended pattern of 'what it does' + 'Use when' + trigger terms, making it easy for Claude to select appropriately.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: webhook handling, reporting event handling, email delivery events, click/open tracking, bounce handling, and streaming to a data warehouse. | 3 / 3 |
Completeness | Clearly answers both 'what' (implement Customer.io webhook and reporting event handling) and 'when' (explicit 'Use when' clause with specific scenarios plus a 'Trigger' list of terms). | 3 / 3 |
Trigger Term Quality | Includes explicit, natural trigger terms that users would actually say: 'customer.io webhook', 'customer.io events', 'customer.io delivery status', 'customer.io bounces', 'customer.io open tracking'. These cover common variations of how users would phrase requests. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive due to the specific 'Customer.io' branding and the narrow focus on webhook/event handling for that platform. Unlikely to conflict with generic webhook or email skills due to the explicit Customer.io scoping. | 3 / 3 |
Total | 12 / 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 is a solid, actionable skill with complete executable TypeScript code covering the full Customer.io webhook pipeline. Its main weaknesses are length/verbosity (all implementation details inline rather than progressively disclosed) and missing explicit validation checkpoints for verifying the webhook setup works end-to-end. The deduplication cleanup code is also incomplete/buggy, which undermines reliability.
Suggestions
Add an explicit verification step (e.g., 'Step 6: Test your webhook by sending a test event from the Customer.io dashboard and confirming a 200 response with valid signature') to improve workflow clarity.
Move detailed handler implementations and warehouse streaming code to referenced files (e.g., HANDLERS.md, WAREHOUSE.md) and keep SKILL.md as a concise overview with the core webhook receiver pattern.
Fix or remove the broken deduplication set cleanup code (the iterator loop doesn't actually delete entries) — either show a correct implementation or just note 'use Redis with TTL in production' without the broken in-memory example.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly well-structured but includes some unnecessary verbosity: inline comments explaining obvious things (e.g., '// Unix seconds', '// Recipient info'), the ASCII diagram adds marginal value, and the type comments for each CioMetric value are things Claude already knows. The deduplication set cleanup code is incomplete/broken which wastes tokens without being useful. | 2 / 3 |
Actionability | The skill provides fully executable TypeScript code across all steps — type definitions, signature verification, event routing, Express server setup, and BigQuery streaming. Code is copy-paste ready with real library imports, environment variable references, and concrete API calls. | 3 / 3 |
Workflow Clarity | The 5-step sequence is clearly laid out and logically ordered, but there are no explicit validation checkpoints. There's no step to verify the webhook is receiving events correctly, no test/verification step after deployment, and no feedback loop for debugging signature failures beyond a troubleshooting table. For a webhook setup involving production event processing, explicit verification steps would be expected. | 2 / 3 |
Progressive Disclosure | The skill is quite long (~250 lines of content) with all code inline. The type definitions, warehouse streaming, and individual handlers could be referenced as separate files. The Resources section links to external docs which is good, but the main body could benefit from splitting detailed implementations into referenced files while keeping the SKILL.md as an overview. | 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.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
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 | |
70e9fa4
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.