CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

amlbot

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

Quality

59%

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

Quality

Content

63%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 gives genuinely executable Membrane integration guidance with a well-checked connection lifecycle, but it never reaches AMLBot specifics — no named actions, no example wallet or transaction check — and duplicates/filler pad the token cost. Organization is decent for a single file, though generic connector material should be split into a reference. Fixing the dangling "Step 2" references and adding one concrete end-to-end AMLBot example would lift it substantially.

Suggestions

Delete the duplicate "Popular actions" section (it repeats the `action list` command verbatim) and either list 3–5 real AMLBot actionIds with example inputs, or fold it into "Searching for actions".

Fix the broken step numbering: the text says "skip to Step 2" twice but no Step 2 heading exists — either label the sections (Step 1: connect, Step 2: discover/run actions) or drop the references.

Move the generic Membrane proxy flag table and clientAction state semantics into a shared reference file (e.g. references/membrane-cli.md) and keep SKILL.md as the AMLBot-specific overview, which would also improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is mostly command-driven, but the "Popular actions" section repeats the `action list` command already shown verbatim, the resource tree (Transaction/Account/Balance/...) adds no instruction, and the malformed "Agent Types : claude, openclaw..." sentence is padded filler. Matches anchor 3 (mostly efficient but could be tightened); not 4 because the duplication and filler are noticeable rather than minor.

3 / 5

Actionability

Commands are concrete and executable throughout — install (`npm install -g @membranehq/cli@latest`), auth (`membrane login complete <code>`), connection (`membrane connection ensure "https://amlbot.com/" --json`), action execution with `--input` JSON, and a full proxy flag table. Matches anchor 4 (mostly executable, minor gaps); not 5 because no real AMLBot example (an actual actionId or wallet-check walkthrough) covers the common use case.

4 / 5

Workflow Clarity

The sequence install → login → connection ensure → poll state → run action → proxy fallback is clear, and connection-state handling is an explicit checkpoint loop (poll while BUILDING, act on CLIENT_ACTION_REQUIRED then re-poll, check `error` on CONFIGURATION_ERROR/SETUP_FAILED). Matches anchor 4; not 5 because the text twice says "skip to Step 2" yet no Step 2 heading exists, and not 3 because the checkpoints are explicit rather than implicit.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent) and everything is inline in a ~140-line file: the generic Membrane proxy flag table and clientAction semantics are reference-grade material that belongs in a separate file, and nothing signals where deeper detail lives. Matches anchor 3 (content that should be separate is inline); not 2 because sections are well organized and navigation within the file is easy.

3 / 5

Total

14

/

20

Passed

Description

37%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 names the target app but describes it in boilerplate integration language that could apply to any connector. It has a "Use when" clause, but both the capability list and the trigger are generic/circular, so it neither tells Claude what AMLBot concretely does nor when it should fire. Rewriting it around AMLBot's actual purpose (crypto wallet/transaction AML risk screening) would fix all four dimensions at once.

Suggestions

State concrete capabilities instead of "Manage data, records, and automate workflows" — e.g. "Check cryptocurrency wallet and transaction risk scores, screen addresses for AML/sanctions exposure, and review account balances and alerts."

Replace the circular trigger "Use when the user wants to interact with AMLBot data" with concrete trigger phrases: "Use when the user mentions AML checks, crypto wallet risk, transaction screening, sanctions exposure, or AMLBot."

Add the natural synonyms users actually say (AML, anti-money laundering, crypto wallet, risk score, screening) so the skill triggers without the user naming AMLBot explicitly.

DimensionReasoningScore

Specificity

"Manage data, records, and automate workflows" names the domain but offers only generic actions — no concrete AMLBot capability (wallet risk check, transaction screening, compliance report) is stated. It is not 3 because zero domain-specific concrete actions are listed, and not 1 because the domain and action areas are named.

2 / 5

Completeness

A "Use when..." clause is present, ruling out anchor 3's missing-when, but the "what" ("Manage data, records, and automate workflows") is vague and the "when" is circular ("interact with AMLBot data" restates the domain instead of giving triggers). It falls between anchors 3 and 4, and the vagueness of both halves keeps it at 3.

3 / 5

Trigger Term Quality

The only keywords are the app name plus generic "data", "records", "workflows"; natural phrases users would say ("wallet", "AML check", "risk score", "crypto", "transaction screening") are all missing. It sits at anchor 2 (one or two generic keywords, missing the natural phrases) rather than 3, which still requires some relevant domain keywords.

2 / 5

Distinctiveness Conflict Risk

The AMLBot name is distinct, but the generic middle sentence ("Manage data, records, and automate workflows") overlaps with virtually any data or integration skill. Matches anchor 3 (somewhat specific but could still overlap); not 4 because only the app name, not the trigger phrasing, disambiguates.

3 / 5

Total

10

/

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