CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

constant-contact

Constant Contact integration. Manage Contacts, Campaigns, Libraries. Use when the user wants to interact with Constant Contact data.

Quality

68%

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

Quality

Content

57%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 provides concrete, executable CLI guidance with a sensible connection lifecycle and state-handling, which makes it genuinely actionable. Its weaknesses are padding (platform intro, filler lines, a "No description" table), a broken "Step 2" reference with no validation for create/update operations, and inline reference-style material with no progressive disclosure.

Suggestions

Fix the broken internal references: either label the connection section "Step 1" and add a "Step 2" heading (search/run actions), or remove the "skip to Step 2" wording.

Trim padding: drop the platform-intro paragraph and the "Use action names and parameters as needed" filler, and remove or replace the Description column that repeats "No description" twenty times.

Add a validation checkpoint after write operations, e.g. re-fetch a created/updated contact with get-contact to confirm the change, and show one worked example of running an action with real input JSON.

DimensionReasoningScore

Conciseness

The body is mostly command-dense, but includes unnecessary padding: the introductory paragraph explaining what Constant Contact is ("Constant Contact is an email marketing platform used by small businesses and nonprofits..."), the filler line "Use action names and parameters as needed.", and a 20-row actions table whose Description column repeats "No description" in every row. This matches anchor 3 — mostly efficient with some unnecessary explanation — rather than anchor 4's minor trims.

3 / 5

Actionability

Concrete executable membrane commands cover install, login (including headless completion), connection setup with polling, action search/run, and proxy requests with a full flag table — mostly copy-paste ready. It falls short of anchor 5 because there is no worked example of a common case (the parameter example is only '{"key": "value"}') and the relationship between the table's "Key" column and the "<actionId>" used in run commands is left implicit.

4 / 5

Workflow Clarity

A clear sequence exists (install → login → connection → search actions → run → proxy) with state-based branching (READY, BUILDING, CLIENT_ACTION_REQUIRED, CONFIGURATION_ERROR) and re-polling loops. However, the text twice says "skip to **Step 2**" while no Step 1/Step 2 headings exist — a broken internal reference — and workflows involving create/update operations include no verification step, which caps workflow clarity at 3 per the rubric.

3 / 5

Progressive Disclosure

This is a single 160-line SKILL.md with no bundle files and reasonable headers, but content such as the 20-row actions table and the proxy flag reference is inline clutter that could be trimmed or moved to a reference file. It exceeds the rubric's under-50-line exception, so it fits anchor 3 — some structure but could be better organized — rather than anchor 4's appropriately placed content.

3 / 5

Total

13

/

20

Passed

Description

66%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 clear niche, an explicit when-clause, and named resource areas, making it distinct and reasonably complete. Its main weaknesses are the generic verb "Manage" (low action specificity) and missing natural trigger synonyms like "email marketing" and "newsletter".

Suggestions

Replace the generic verb "Manage" with concrete actions, e.g. "Create and update contacts, build email campaigns, and manage contact lists and templates."

Add natural trigger synonyms to the when-clause, e.g. "Use when the user mentions Constant Contact, email marketing, newsletters, or mailing lists."

Drop or sharpen the vague opening "Constant Contact integration." in favor of what the skill actually enables.

DimensionReasoningScore

Specificity

"Manage Contacts, Campaigns, Libraries" names the domain and three resource areas but relies on the single generic verb "Manage" rather than concrete actions (e.g. create contacts, send campaigns), matching the anchor for naming a domain with limited concrete actions. It sits above anchor 2 because three specific object categories are enumerated, and below anchor 4 because no specific action verbs are given.

3 / 5

Completeness

"Manage Contacts, Campaigns, Libraries" answers the what and "Use when the user wants to interact with Constant Contact data" is an explicit when-clause, satisfying anchor 4. It is not 5 because the when is a single generic clause without concrete trigger phrases (e.g. "when the user mentions newsletters or mailing lists").

4 / 5

Trigger Term Quality

Triggers include "Constant Contact", "Contacts", "Campaigns", and "Libraries", but common natural phrases users would say — "email marketing", "newsletter", "mailing list", "contact list" — are absent. This matches the anchor for some relevant keywords missing common variations, rather than anchor 4 where only a few natural terms are missing.

3 / 5

Distinctiveness Conflict Risk

"Constant Contact" is a distinct named platform with a clear niche (contacts, campaigns, libraries), making false-trigger risk against other skills minimal — matching the anchor for a clear niche with distinct triggers.

5 / 5

Total

15

/

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/constant-contact/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.