CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

activecampaign

ActiveCampaign integration. Manage Users, Organizations, Leads, Projects, Goals, Filters. Use when the user wants to interact with ActiveCampaign 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/activecampaign/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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 solid, command-first integration guide with concrete CLI invocations, a useful action catalog, and good error-state handling for the connection workflow. Its main flaws are moderate verbosity in the intro and best-practices prose, and a broken step-numbering scheme ('skip to Step 2' with no Step 2; '1b' with no 1a) that muddies an otherwise clear sequence.

Suggestions

Fix the workflow numbering: label the sections as Steps 1/1a/1b/2 (or drop the '1b' and 'skip to Step 2' references) so the cross-references resolve.

Trim background prose — drop the 'ActiveCampaign is a marketing automation platform...' intro paragraph and tighten the Agent Types and Best practices wording to bare instructions.

Add one worked end-to-end example (e.g. a real create-contact command with actual --input values) to close the gap between the action catalog and the templated run command.

DimensionReasoningScore

Conciseness

The body is mostly command-driven, but includes unnecessary background and padded prose: "ActiveCampaign is a marketing automation platform used by small to mid-sized businesses. It helps users automate email marketing, sales processes..." explains a concept Claude already knows, "This will burn less tokens and make communication more secure" is wordy, and the rambling "Agent Types" line ("claude, openclaw, codex, warp, windsurf, etc. Those will be used to adjust tooling to be used best with your harness") could be tightened. This matches anchor 3 ('mostly efficient but includes some unnecessary explanation'); it is above 2 because padding is scattered, not pervasive.

3 / 5

Actionability

Nearly every step has a copy-paste command: "npm install -g @membranehq/cli@latest", "membrane connection ensure \"https://activecampaign.com\" --json", "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}' --json", plus a concrete proxy flag table and a 20-row action catalog. It stops short of anchor 5 because there is no worked end-to-end example (e.g. an actual create-contact invocation with real parameter values), leaving a minor gap between the action table's 'Key' column and the 'actionId' the run command expects.

4 / 5

Workflow Clarity

A rough sequence exists (install → login → connect → poll state → search → run → proxy) and the state machine is well handled (READY / CLIENT_ACTION_REQUIRED with clientAction fields / CONFIGURATION_ERROR with error checking and re-polling), but the step structure is broken: "skip to **Step 2**" is referenced twice yet no Step 2 is labeled, and "#### 1b. Wait for the connection to be ready" appears without a 1a or any numbered siblings. That fits anchor 3 — sequence present but with gaps and implicit checkpoints; it is not 4 because the dangling cross-references make the intended order genuinely ambiguous at the connection step.

3 / 5

Progressive Disclosure

No bundle files exist, so all content is inline in a single, well-sectioned file (Install, Authentication, Connecting, Searching, Popular actions, Running, Proxy, Best practices) with the action catalog reasonably placed as an inline quick reference for a CLI-driven skill. This matches anchor 4 ('good structure; most content appropriately placed; minor organization gaps') — it is not 5 because the broken step numbering (Step 2 / 1b) slightly impairs navigation and the skill sits well over the ~50-line threshold where structure alone earns top marks.

4 / 5

Total

14

/

20

Passed

Description

71%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 is well-formed: it names the platform, lists concrete managed entities, uses third person, and includes an explicit 'Use when...' clause. Its weaknesses are keyword coverage and accuracy — it omits the platform's central entities (contacts, deals) that the skill actually documents, while naming entities (Organizations, Leads, Projects, Goals, Filters) that the body's overview and action table do not support.

Suggestions

Align the entity list with the skill's actual documented capabilities — e.g. 'Manage contacts, deals, accounts, tags, lists, and automations' — so the description neither over-claims (Projects, Goals, Filters) nor omits core objects (contacts, deals).

Add natural trigger terms users would say, such as 'contacts', 'deals', 'email marketing', or 'marketing automation', to the 'Use when...' clause.

DimensionReasoningScore

Specificity

"Manage Users, Organizations, Leads, Projects, Goals, Filters" enumerates several concrete entities rather than generic language, matching the anchor 'lists several specific actions; minor gaps in coverage'. It sits below 5 because a single generic verb ("Manage") carries all six objects, and the enumeration is not fully aligned with the skill's documented entities (contacts, deals, tags are absent while projects/goals/filters are not covered in the body).

4 / 5

Completeness

Both parts are explicit: the 'what' in "ActiveCampaign integration. Manage Users, Organizations, Leads, Projects, Goals, Filters" and the 'when' in "Use when the user wants to interact with ActiveCampaign data". It matches anchor 4 ('when' could be more explicit) rather than 5 because the when-clause is circular — 'interact with ActiveCampaign data' restates the domain instead of giving concrete trigger phrases.

4 / 5

Trigger Term Quality

The dominant trigger "ActiveCampaign" is present, but the natural terms a user would actually say for this platform — "contacts", "deals", "campaigns", "email marketing" — are missing from "Use when the user wants to interact with ActiveCampaign data", fitting 'some relevant keywords but missing common variations or synonyms'. It is not 4 because the omitted terms include the platform's core object (contacts), not just a few synonyms.

3 / 5

Distinctiveness Conflict Risk

"ActiveCampaign integration" and "interact with ActiveCampaign data" name a specific commercial platform, giving a clear niche with distinct triggers and minimal risk of firing for the wrong skill — matching anchor 5. The platform name is far more distinctive than anchor 4's 'PDF and Word document files' example, so no drift downward.

5 / 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/activecampaign/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.