Optimize Customer.io costs and usage efficiency. Use when reducing profile count, cleaning inactive users, deduplicating events, or right-sizing your plan. Trigger: "customer.io cost", "reduce customer.io spend", "customer.io billing", "customer.io pricing", "customer.io cleanup".
74
70%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/saas-packs/customerio-pack/skills/customerio-cost-tuning/SKILL.mdQuality
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 the platform (Customer.io), the goal (cost optimization), and provides explicit trigger terms. The main area for improvement is adding more specific concrete actions beyond the somewhat general terms like 'right-sizing your plan'.
Suggestions
Add more specific concrete actions such as 'archive dormant profiles', 'consolidate duplicate event schemas', or 'analyze usage tiers against actual send volume' to improve specificity.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Customer.io costs) and some actions (reducing profile count, cleaning inactive users, deduplicating events, right-sizing plan), but these are somewhat high-level and could be more concrete about specific techniques or outputs. | 2 / 3 |
Completeness | Clearly answers both 'what' (optimize Customer.io costs via profile cleanup, deduplication, plan right-sizing) and 'when' (explicit 'Use when' clause plus explicit trigger terms). Both components are well-defined. | 3 / 3 |
Trigger Term Quality | Includes explicit, natural trigger terms that users would actually say: 'customer.io cost', 'reduce customer.io spend', 'customer.io billing', 'customer.io pricing', 'customer.io cleanup'. Good coverage of variations a user might use. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive due to the specific platform (Customer.io) and the specific focus on cost optimization and billing. Very unlikely to conflict with other skills given the narrow, well-defined niche. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides a structured approach to Customer.io cost optimization with concrete TypeScript examples and a useful cost savings table. However, it suffers from code examples that are more illustrative than truly executable (Step 1 just prints rules, cleanup requires external data), excessive inline code that could be referenced externally, and missing validation checkpoints after destructive operations like profile deletion.
Suggestions
Make Step 1 actually query the Customer.io API (e.g., using the App API to list/filter people) rather than just printing audit rules as strings.
Add explicit validation steps after bulk deletion—e.g., 'Verify profile count in dashboard decreased by expected amount' or an API call to confirm deletion.
Move the longer code examples into referenced script files (e.g., 'See scripts/cio-cleanup-inactive.ts') and keep only the key function signatures and usage patterns inline.
Remove or condense the UsageMonitor class (Step 5) which is generic counter boilerplate—replace with guidance on using Customer.io's built-in usage dashboard or API endpoints for monitoring.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill includes some unnecessary verbosity—the pricing table explains concepts Claude could infer, and the usage monitor class is boilerplate that doesn't add unique value. The code examples are longer than needed, with comments explaining obvious things. However, it's not egregiously padded. | 2 / 3 |
Actionability | The code is mostly executable TypeScript, but the profile audit script (Step 1) is essentially just printing strings rather than performing actual auditing. The cleanup script requires an externally-built target list (commented-out SQL), and the usage monitor is a standalone counter class with no integration into actual Customer.io API calls. Key actions like querying the Customer.io API for inactive profiles are missing. | 2 / 3 |
Workflow Clarity | Steps are numbered and sequenced logically, and the cleanup script includes a dry-run mode which is good. However, there's no explicit validation checkpoint after deletion (e.g., verify profile count decreased), no feedback loop for the overall process, and the steps are somewhat independent modules rather than a cohesive workflow with verification gates. | 2 / 3 |
Progressive Disclosure | The skill has reasonable section structure with a checklist and resource links, and references a next-step skill. However, the inline code examples are quite lengthy (200+ lines total) and could be split into referenced script files. The cost savings table and checklist are well-placed, but the overall document is monolithic. | 2 / 3 |
Total | 8 / 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.