CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

campayn

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

Quality

72%

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/campayn/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 body is a strong, execution-focused guide: every step comes with copy-paste CLI commands, connection state handling includes explicit error branches and a re-poll loop, and bulk API detail is deferred to runtime discovery. Remaining weaknesses are small: a dangling "Step 2" reference, a couple of padded intro sentences, and a popular-actions table that could live in a reference file.

DimensionReasoningScore

Conciseness

The body is dominated by copy-paste commands and compact tables, with only minor over-explanation that could be trimmed — the two-sentence intro on what Campayn is and the rambling "Agent Types : claude, openclaw, codex, warp, windsurf, etc." line. Matches anchor 4 (efficient, minor instances of over-explanation); not 5 because these padded passages exist and "This is the fastest way to get a connection..." explains more than strictly needed.

4 / 5

Actionability

Fully executable bash throughout: "npm install -g @membranehq/cli@latest", "membrane connection ensure \"https://www.campayn.com\" --json", "npx @membranehq/cli connection get <id> --wait --json", and "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}' --json", plus a proxy flags table. Covers the common cases (search, run, proxy); no gaps, matching anchor 5.

5 / 5

Workflow Clarity

Clear sequence (install → login with headless fallback "membrane login complete <code>" → connection ensure → poll --wait) with explicit state-based branching (READY / CLIENT_ACTION_REQUIRED with uiUrl and agentInstructions, CONFIGURATION_ERROR / SETUP_FAILED with error-field checks) and a re-poll feedback loop after the user completes an action. Matches anchor 4; not 5 because "skip to **Step 2**" references a step that is never labeled, and no guidance covers a failed action run.

4 / 5

Progressive Disclosure

No bundle files exist; the single file is well-sectioned (Install, Authentication, Connecting, Searching, Popular actions, Running, Proxy, Best practices) and defers bulk API detail to the live "membrane action list" discovery mechanism rather than inlining it. Matches anchor 4 (good structure, minor gaps); not 5 because the file exceeds 50 lines and the 10-row actions table plus clientAction schema detail are candidates for a reference file.

4 / 5

Total

17

/

20

Passed

Description

50%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 correctly names the target app and includes an explicit 'Use when' clause, so it is complete in form, but it is weak in substance. The capability list is generic boilerplate indistinguishable from any other app-integration skill, and it omits the natural trigger vocabulary of the email-marketing domain.

Suggestions

Replace "Manage data, records, and automate workflows" with concrete Campayn capabilities, e.g. "Create and send email campaigns, manage contact lists and custom fields, add/update/unsubscribe contacts, track email reports, and handle signup forms".

Add natural trigger terms users would actually say, such as "email marketing", "newsletters", "mailing lists", "email campaigns", or "subscribers", alongside "Campayn".

Sharpen the 'Use when' clause to name the concrete objects, e.g. "Use when the user wants to manage Campayn email campaigns, contact lists, contacts, or signup forms".

DimensionReasoningScore

Specificity

"Campayn integration" names the domain, but the only actions offered are the generic "Manage data, records, and automate workflows" — no concrete operations like creating contacts or sending email campaigns. This matches anchor 2 ("Names the domain but actions are minimal or generic"); it is not 3 because no concrete, app-specific action is listed.

2 / 5

Completeness

It has both a 'what' ("Campayn integration. Manage data, records, and automate workflows") and an explicit 'when' ("Use when the user wants to interact with Campayn data"), but the 'when' is vague — comparable to the anchor-4 example "Use when working with PDF files". Not 5 because the trigger phrase lacks concrete, specific terms.

4 / 5

Trigger Term Quality

The only keywords are the brand name "Campayn" and generic terms ("data", "records", "workflows"); the natural phrases a user would say for this domain — email marketing, newsletters, mailing lists, campaigns, subscribers — are absent. Matches anchor 2 (one or two generic keywords, missing the natural phrases users say).

2 / 5

Distinctiveness Conflict Risk

"Campayn" is a distinct brand name, so the trigger is unlikely to fire for unrelated skills. Minor overlap risk remains with sibling Membrane app-integration skills that share the identical template wording ("Manage data, records, and automate workflows. Use when the user wants to interact with X data"), which matches anchor 4.

4 / 5

Total

12

/

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