CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

baselinker

BaseLinker integration. Manage Products, Orders, Shops, Users. Use when the user wants to interact with BaseLinker data.

Quality

76%

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/baselinker/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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.

A largely executable, well-sequenced CLI integration guide with a genuinely useful connection-state feedback loop. Its weaknesses are repetition of the auth-handling point, filler phrases, a broken "Step 2" cross-reference, an empty Description column in the actions table, and no verification guidance for destructive order/stock mutations.

Suggestions

State the "Membrane handles auth/credentials" point once and cut the repetitions in 'Working with BaseLinker', 'Proxy requests', and 'Best practices', plus filler like "This is the fastest way to get a connection" and "This will burn less tokens".

Fix the workflow numbering: label the steps consistently (the text says "skip to Step 2" but no Step 2 heading exists, and "1b" has no "1a"), and add a verification step for destructive/batch actions (e.g., re-fetch the order or stock after 'Set Order Status' / 'Update Inventory Products Stock' to confirm the change).

Fill the empty Description column of the Popular actions table (or drop it) and add one concrete proxy example, e.g., "membrane request CONNECTION_ID /orders.json --query 'get_unconfirmed_orders=true'".

DimensionReasoningScore

Conciseness

The bulk is efficient (commands, flags table, state-machine bullets), but there is repeated and padded material: the "Membrane handles authentication" point appears three times ("Membrane handles authentication and credentials refresh automatically", "transparent credential refresh if they expire", "Let Membrane handle credentials"), plus filler like "This is the fastest way to get a connection" and "This will burn less tokens and make communication more secure" — fitting anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') rather than the minor-trim level of anchor 4.

3 / 5

Actionability

Guidance is largely copy-paste ready — "npm install -g @membranehq/cli@latest", "membrane connection ensure \"https://baselinker.com/\" --json", "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}'" — but there are minor gaps: the Popular actions table has an entirely empty Description column, and the proxy example "membrane request CONNECTION_ID /path/to/endpoint" is a template with no concrete BaseLinker endpoint example, matching anchor 4 ('concrete code or commands with minor gaps') rather than anchor 5.

4 / 5

Workflow Clarity

The install → login (with headless fallback "membrane login complete <code>") → connection → poll → search → run → proxy sequence is clear, and the connection-state branching (READY / CLIENT_ACTION_REQUIRED with clientAction fields / CONFIGURATION_ERROR with an error field) forms an explicit validation loop with re-polling after user action — matching anchor 4's 'clear sequence with most checkpoints present'. It falls short of anchor 5 because the numbered flow is incoherent in places: "skip to Step 2" references a Step 2 that is never labeled, "1b. Wait for the connection to be ready" appears without a 1a heading, and destructive/batch actions (Set Order Status, Update Inventory Products Stock) have no verification step.

4 / 5

Progressive Disclosure

The body (~160 lines) is a single well-sectioned file (Overview, Install, Authentication, Connecting, Searching, Running, Proxy, Best practices) with an official-docs link (https://api.baselinker.com) as a one-level-deep external pointer and no nested internal references — good structure with content appropriately placed, matching anchor 4. It is not anchor 5 because the 12-row actions table and proxy flag reference sit inline where a references/ file could keep SKILL.md leaner, and no bundle files exist to offload detail.

4 / 5

Total

15

/

20

Passed

Description

75%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.

A solid description with explicit what/when structure and a distinctive domain name. Its main weaknesses are the single generic verb "Manage" instead of concrete actions and a trigger clause that mostly restates the domain rather than adding varied natural trigger phrases.

Suggestions

Replace the generic verb with concrete actions, e.g., 'Get orders, add and update inventory products, set order statuses, manage shops and warehouses' — this moves specificity from listing objects to listing what the skill actually does.

Expand the 'when' clause with varied natural triggers, e.g., 'Use when the user mentions BaseLinker, orders, inventory, stock levels, or their marketplace listings'.

DimensionReasoningScore

Specificity

"Manage Products, Orders, Shops, Users" lists several concrete capability areas, which goes beyond the anchor-3 example of only 1-2 actions, but the single generic verb "Manage" keeps it short of the anchor-5 standard of multiple specific concrete actions (e.g., 'get orders', 'update product stock', 'add products').

4 / 5

Completeness

It answers both: what ("BaseLinker integration. Manage Products, Orders, Shops, Users.") and when ("Use when the user wants to interact with BaseLinker data"), but the 'when' clause is somewhat circular — it restates the domain rather than giving concrete trigger phrases like 'when the user mentions orders, inventory, or their BaseLinker store', so it matches anchor 4 ('when' could be more explicit or specific), not anchor 5.

4 / 5

Trigger Term Quality

"BaseLinker", "Products", "Orders", "Shops", and "Users" are natural terms a user with this need would say, and "Use when the user wants to interact with BaseLinker data" is an explicit trigger, but common variations like "inventory", "listings", "marketplace", or "e-commerce" are missing — good coverage with a few natural terms absent, matching anchor 4 rather than the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

"BaseLinker" is a distinct platform name used twice, giving a clear niche with minimal wrong-skill risk, but the generic e-commerce nouns "Products, Orders, Shops, Users" carry minor overlap risk with other e-commerce skills (Shopify, inventory tools), placing it at anchor 4 rather than the minimal-conflict anchor 5.

4 / 5

Total

16

/

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/baselinker/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.