CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

2chat

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

Quality

69%

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/2chat/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 body delivers strong operational content: copy-paste-ready CLI commands, a well-handled connection state machine with polling and error branches, and a sensible proxy fallback for uncovered use cases. Its weaknesses are a dangling "Step 2" reference, a "Popular actions" section with no actual actions, and filler in the Overview section — all easy fixes that hold it just below the top anchors.

Suggestions

Fix the broken cross-reference: "If the returned connection has `state: "READY"`, skip to **Step 2**" points to a step that is never defined — either number the subsequent sections (Step 1a/1b/2...) or link directly to "Searching for actions".

Fill or remove the "## Popular actions" section: it currently contains only the generic discovery command duplicated from the previous section — list a few concrete 2Chat actions (e.g., send message, list conversations) with example input.

Tighten the "## 2Chat Overview" section: replace the bare Conversation/Message/User bullets and "Use action names and parameters as needed" with a one-line capability summary or delete the section.

DimensionReasoningScore

Conciseness

The body is mostly lean, command-focused content, but it includes real filler: the "## 2Chat Overview" section reduces to "Use action names and parameters as needed" with three content-free bullets, and "## Popular actions" repeats the discovery command already shown in "Searching for actions". Not 2 (the bulk is executable commands, not padded explanation), not 4 (the trimming needed goes beyond minor).

3 / 5

Actionability

Concrete, executable commands throughout — `npm install -g @membranehq/cli@latest`, `membrane connection ensure "https://www.2chat.co/" --json`, `membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json` — plus a complete proxy flag table. Not 5: the "Popular actions" heading promises examples but delivers none, and there is no worked example of a real action invocation or response.

4 / 5

Workflow Clarity

A clear sequence exists (install → login → connection ensure → poll state → search actions → run → proxy fallback) with a genuine feedback loop for connection states (CLIENT_ACTION_REQUIRED → poll again until READY; CONFIGURATION_ERROR → check error field). Not 5: "skip to **Step 2**" references a step label that does not exist anywhere in the document, and there is no guidance on handling failed action runs.

4 / 5

Progressive Disclosure

No bundle files exist and the ~150-line body is appropriately kept inline with well-organized sections (Install, Authentication, Connecting, Searching, Running, Proxy, Best practices); the proxy flags table is small enough to stay inline. Not 5: the document exceeds the simple-skill threshold and the empty "Popular actions"/"Overview" stub sections slightly impede navigation.

4 / 5

Total

15

/

20

Passed

Description

57%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 follows the what/when structure with an explicit 'Use when...' clause and a distinctive app name as its trigger. However, its capability statement is generic template language — "Manage data, records, and automate workflows" could describe almost any integration — and it omits the concrete 2Chat concepts (live chat, chatbot, conversations, messages, customer support) that would give users natural trigger terms.

Suggestions

Replace the generic "Manage data, records, and automate workflows" with concrete 2Chat capabilities, e.g., "Send and manage chat messages, read and reply to conversations, and manage chatbot users/contacts via the 2Chat API."

Broaden the trigger clause to include natural user phrasings: "Use when the user mentions 2Chat, live chat, chatbot conversations, or website visitor messages."

Remove the vague filler "records" and "automate workflows" — they describe the Membrane mechanism, not what the user gets from the 2Chat integration.

DimensionReasoningScore

Specificity

"2Chat integration" names the domain, but the stated actions — "Manage data, records, and automate workflows" — are entirely generic with no concrete 2Chat operations (e.g., send messages, list conversations, manage visitors). Matches anchor 2 ("Names the domain but actions are minimal or generic"); not 3 because no concrete action is enumerated.

2 / 5

Completeness

Both parts are present: 'what' ("2Chat integration. Manage data, records, and automate workflows") and an explicit 'when' ("Use when the user wants to interact with 2Chat data"). Not 5 because the 'what' is generic and the 'when' lacks concrete trigger variations; not 3 because the 'when' clause is explicit, not weakly implied.

4 / 5

Trigger Term Quality

"2Chat" and "interact with 2Chat data" are relevant keywords, but natural phrases users would say — live chat, chatbot, conversations, messages, customer support — are missing. Stronger than the fully-generic anchor 2, weaker than the good-coverage anchor 4.

3 / 5

Distinctiveness Conflict Risk

"2Chat" is a distinct, niche app name giving a clear trigger, but the surrounding boilerplate ("Manage data, records, and automate workflows") is template language shared with any integration skill. Matches anchor 4 ("Mostly distinct; minor overlap risk with closely related skills"); not 5 since the trigger phrasing is narrow and the capabilities are non-distinguishing.

4 / 5

Total

13

/

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/2chat/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.