Copper integration via Apideck's CRM unified API — same methods work across every connector in CRM, switch by changing `serviceId`. Use when the user wants to read, write, or search contacts, companies, leads, opportunities, activities, and pipelines in Copper. Routes through Apideck with serviceId "copper".
87
86%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
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 CRM platform (Copper), the integration mechanism (Apideck unified API), concrete actions (read, write, search), and the specific entities supported. It includes an explicit 'Use when' clause with natural trigger terms and is highly distinctive from other potential CRM skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions and entities: 'read, write, or search contacts, companies, leads, opportunities, activities, and pipelines in Copper.' Also mentions the integration mechanism (Apideck's CRM unified API, serviceId). | 3 / 3 |
Completeness | Clearly answers both 'what' (Copper integration via Apideck CRM unified API for reading, writing, searching CRM entities) and 'when' ('Use when the user wants to read, write, or search contacts, companies, leads, opportunities, activities, and pipelines in Copper'). | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'Copper', 'contacts', 'companies', 'leads', 'opportunities', 'activities', 'pipelines', 'CRM', and 'Apideck'. These cover the domain well and match how users would naturally refer to CRM tasks. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive — specifies 'Copper' as the CRM and 'Apideck' as the integration layer with serviceId 'copper'. This clearly distinguishes it from other CRM integrations (e.g., Salesforce, HubSpot) that might use the same Apideck unified API pattern. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
72%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured connector skill with strong actionability and excellent progressive disclosure to related skills. Its main weaknesses are moderate verbosity from marketing-style content about Apideck's portability advantages and a lack of explicit workflow sequencing with validation checkpoints. Trimming the sales pitch and adding a clearer step-by-step workflow would elevate it significantly.
Suggestions
Remove or significantly condense the 'Portable across 21 CRM connectors' section — the portability point is already made in the intro and the code example alone suffices.
Add an explicit numbered workflow for the common use case: 1) verify coverage, 2) make the API call, 3) handle UnsupportedOperationError by falling back to proxy — with a clear feedback loop.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill contains some unnecessary verbosity — the 'Portable across 21 CRM connectors' section repeats the marketing pitch from the intro, and explanations like 'This is the compounding advantage of using Apideck over integrating Copper directly' are sales copy that Claude doesn't need. The authentication section explains Vault concepts that could be left to the referenced best-practices skill. However, the quick facts and examples are reasonably tight. | 2 / 3 |
Actionability | The skill provides fully executable TypeScript code for listing contacts, a concrete curl command for verifying coverage, and a complete proxy API curl example with all required headers. The serviceId, auth setup, and SDK initialization are all copy-paste ready. | 3 / 3 |
Workflow Clarity | There's an implicit workflow (set up auth → list contacts → verify coverage → use proxy if needed), but it's not explicitly sequenced. The coverage verification step is presented as a standalone section rather than integrated into a workflow with validation checkpoints. For operations that might fail (unsupported methods), there's no explicit error-handling feedback loop — it just references another skill. | 2 / 3 |
Progressive Disclosure | Excellent progressive disclosure — the skill provides a concise overview with well-signaled one-level-deep references to SDK skills, best practices, connector coverage, and the OpenAPI spec. The 'See also' section is well-organized and references are clearly labeled with their purpose. | 3 / 3 |
Total | 10 / 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 |
|---|---|---|
metadata_field | 'metadata' should map string keys to string values | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
9e04d86
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.