CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

api2cart

API2Cart integration. Manage data, records, and automate workflows. Use when the user wants to interact with API2Cart data.

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/api2cart/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

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

The content is a strong, executable guide: concrete CLI commands cover setup, auth (including headless flows), connection state handling, action discovery/execution, and raw proxy fallback, with explicit error-recovery checkpoints. Its main defects are navigational rather than substantive — a dangling "skip to Step 2" reference with no Step 2, a "1b" heading with no "1a", and a "Popular actions" section that promises actions but contains only a generic discovery command.

Suggestions

Fix the broken step numbering: replace the dangling "skip to **Step 2**" references and the orphaned "#### 1b" heading with a consistent numbered sequence (or plain descriptive headings) so the connection-readiness flow is navigable.

Either populate "Popular actions" with 3-5 real API2Cart action examples (e.g. product.list, order.list) or remove the stub heading, since the section currently only duplicates the "Searching for actions" command.

Trim the marketing-style intro sentence ("This eliminates the need to develop and maintain individual integrations for each platform") and either annotate the "API2Cart Overview" entity tree with what each entity is used for or drop it.

DimensionReasoningScore

Conciseness

The body is command-driven with concrete bash blocks for every operation. Only minor trimmable material exists: the value-proposition prose ("This eliminates the need to develop and maintain individual integrations for each platform"), the information-free "API2Cart Overview" bullet tree (Cart/Product/Category/Customer/Order with no guidance), and the duplicated discovery command under "Popular actions". This fits 'Efficient; minor instances of over-explanation that could be trimmed' — the brief API2Cart intro itself is justified since it is a niche API Claude may not know.

4 / 5

Actionability

Every core flow has copy-paste-ready commands: "npm install -g @membranehq/cli@latest", "membrane login complete <code>" for headless auth, "membrane connection ensure \"https://api2cart.com/\" --json", "npx @membranehq/cli connection get <id> --wait --json", "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}' --json", plus a complete proxy flag table. Placeholders (CONNECTION_ID, QUERY) are introduced by the preceding discovery steps, matching 'Fully executable; copy-paste ready commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

There is a clear sequence (install → login → connection ensure → poll state → discover actions → run → proxy) with explicit checkpoints: --wait long-polling, a fully spelled-out clientAction state machine, and error handling for CONFIGURATION_ERROR/SETUP_FAILED. However, "If the returned connection has state: \"READY\", skip to **Step 2**" references a step that does not exist (the only numbered heading is an orphaned "1b"), and "Popular actions" is a stub heading with no actions. This fits 'Clear sequence with most checkpoints present; minor validation gaps' rather than level 5.

4 / 5

Progressive Disclosure

No bundle files exist and none are claimed; the single-file body is appropriately sectioned (Install, Authentication, Connecting, Searching, Running actions, Proxy requests, Best practices) with no nested or dead references — everything is one level deep and inline content is reasonably sized for a CLI-driven skill. Minor organization gaps (the stub "Popular actions" section and the empty Overview tree) keep it at 'Good structure; most content is appropriately placed; minor organization gaps' rather than 5.

4 / 5

Total

17

/

20

Passed

Description

57%Weight 40%Scale 1-5

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 has a properly structured 'what + Use when...' form and benefits from a distinctive brand name, but its substance is thin: the capabilities described are generic data-management verbs that could apply to any integration skill, and the trigger offers no synonyms or concrete user scenarios. It reads closer to the bad example 'Processes data' padded with a brand name than to the good examples that enumerate concrete operations.

Suggestions

Replace "Manage data, records, and automate workflows" with concrete API2Cart operations, e.g. "Sync products, orders, customers, and categories across shopping platforms (Shopify, Magento, WooCommerce) through a single unified API."

Add natural trigger terms users would actually say, e.g. "Use when the user mentions API2Cart, connecting to a shopping cart or marketplace, or syncing products/orders/customers from Shopify, Magento, or WooCommerce."

Make the 'when' clause non-circular by tying it to user goals (pulling order data from multiple carts, migrating e-commerce data, querying store records) instead of restating "interact with API2Cart data".

DimensionReasoningScore

Specificity

The description names the domain ("API2Cart integration") but the actions are purely generic — "Manage data, records, and automate workflows" — with no concrete API2Cart operation (no 'sync products', 'fetch orders', 'list customers'). This matches the anchor 'Names the domain but actions are minimal or generic' and falls below the level-3 anchor, which requires 1-2 concrete actions.

2 / 5

Completeness

Both parts are explicitly present: 'what' = "API2Cart integration. Manage data, records, and automate workflows" and 'when' = "Use when the user wants to interact with API2Cart data". However the 'when' clause is circular — it restates the domain name instead of giving concrete trigger phrases — so it fits 'Has both what and when; when could be more explicit or specific' rather than the level-5 anchor requiring concrete triggers.

4 / 5

Trigger Term Quality

"API2Cart" is a strong, relevant domain keyword, but it is essentially the only one — the natural phrases a user would say (shopping platforms, e-commerce integration, Shopify, Magento, WooCommerce, syncing orders/products) are all missing. This matches 'Some relevant keywords but missing common variations or synonyms'; it is above level 2 because the keyword present is the domain's own name rather than generic filler like 'Works with files'.

3 / 5

Distinctiveness Conflict Risk

The API2Cart brand name carves out a clear niche and the trigger is keyed to it, giving minimal conflict risk. It is not level 5 because the descriptive half ("Manage data, records, and automate workflows") is generic enough to overlap with broad data-management skills, fitting 'Mostly distinct; minor overlap risk with closely related skills'.

4 / 5

Total

13

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

membranedev/application-skills

Path

skills/api2cart/SKILL.md

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.