CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

anymail-finder

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

Quality

65%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/anymail-finder/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.

The content is a solid, executable runbook: every phase has concrete CLI commands, the connection state machine is handled with explicit polling and error paths, and the structure is easy to navigate. Main weaknesses are padding (a content-free overview tree, empty table cells, marketing background), an undefined 'Step 2' reference, and no per-action parameter guidance.

Suggestions

Fix the dangling 'skip to Step 2' references (lines 68 and 82) by either numbering the sections or replacing with 'skip to Searching for actions'.

Delete the 'Anymail Finder Overview' stub tree and the marketing sentence, and either fill the actions table's Description column (e.g. input hints for find-email-by-linkedin-url) or drop the column.

Trim the garbled 'Agent Types' aside to one line, e.g. 'Use --clientName matching your harness (claude, codex, warp, windsurf) so tooling is tuned to it.'

DimensionReasoningScore

Conciseness

The bulk of the body is command-dense and efficient, but it carries several unnecessary elements: the 'Anymail Finder Overview' stub tree ('Search / Search Result / Account') with no content, a marketing-style background sentence ('It's used by sales teams, marketers, and recruiters'), six 'Popular actions' rows with an empty Description column, and a rambling 'Agent Types' aside. This fits anchor 3 ('mostly efficient but includes some unnecessary explanation') better than 4, where over-explanation would be isolated and minor.

3 / 5

Actionability

Concrete, copy-paste-ready commands cover every phase: 'npm install -g @membranehq/cli@latest', 'membrane connection ensure "https://anymailfinder.com/" --json', 'membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json', plus a flag table for proxy requests. Minor gaps keep it at anchor 4 rather than 5: the 'Popular actions' table's empty Description column leaves the agent without parameter details (mitigated only by the pointer to 'inputSchema' from action list), and 'membrane login --tenant --clientName=<agentType>' is never explained.

4 / 5

Workflow Clarity

The setup sequence (install → login → connection ensure → poll states → action list → action run) is clearly laid out with real checkpoints: '--wait' long-polling until state leaves BUILDING, explicit handling of CLIENT_ACTION_ERROR states with clientAction fields, and re-polling after user action. It is not 5 because 'If the returned connection has state: "READY", skip to Step 2' references a 'Step 2' that is never defined anywhere in the document, breaking the sequence's navigation.

4 / 5

Progressive Disclosure

The body (~145 lines, no bundle files present) is organized into clearly headed sections (Install, Authentication, Connecting, Searching, Running, Proxy, Best practices) with a single one-level-deep external pointer (official docs URL) and no nested references. It is not 5 because the ~145-line single file inlines reference-style material (the full proxy flag table and the actions table) that could live in separate files, and the empty overview tree is not a useful navigation aid.

4 / 5

Total

15

/

20

Passed

Description

48%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 app and includes a 'Use when...' clause, but the capability statement is generic filler that omits the skill's actual purpose (finding and verifying email addresses) and its natural trigger terms. It would rarely be selected by a user asking for email finding or verification unless they named the tool.

Suggestions

State the concrete capabilities in the description, e.g. 'Find verified email addresses by name and company, verify emails, and find decision-maker contacts via the Anymail Finder API'.

Add natural trigger terms users would say: 'Use when the user wants to find someone's email address, verify an email, find contacts for a company, or extract an email from a LinkedIn profile.'

Remove the generic 'Manage data, records, and automate workflows' filler, which over-claims overlap with unrelated data-management skills.

DimensionReasoningScore

Specificity

The description names the domain ('Anymail Finder integration') but the actions are pure filler — 'Manage data, records, and automate workflows' describes virtually any integration and never mentions the actual capabilities (finding, verifying, or enriching email addresses). It sits at anchor 2 ('names the domain but actions are minimal or generic'), not 3, because no concrete domain-specific action is stated.

2 / 5

Completeness

The 'when' is explicit ('Use when the user wants to interact with Anymail Finder data') but circular — it only triggers for users who already know the tool — and the 'what' is vague ('Manage data, records, and automate workflows'), so neither side is fully strong. This matches anchor 3's one-good-one-weak profile rather than anchor 4, which requires both 'what' and 'when' to be present with only the 'when' improvable.

3 / 5

Trigger Term Quality

'Anymail Finder' and 'data' are the only keywords; the natural phrases a user would actually say — 'find email', 'verify email', 'email address', 'contact', 'lead' — are entirely absent, so common variations and synonyms are missing (anchor 3, e.g. 'Works with PDF files'). It is above anchor 2 because the app name itself is a genuinely relevant, non-generic keyword.

3 / 5

Distinctiveness Conflict Risk

'Anymail Finder' is a distinct niche app name, so the trigger is unlikely to fire for unrelated skills, matching anchor 4 ('mostly distinct; minor overlap risk'). Not 5 because the generic middle sentence ('Manage data, records, and automate workflows') overlaps with any data-management or automation skill's trigger space.

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/anymail-finder/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.