CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chatbot-builder

Chatbot Builder integration. Manage data, records, and automate workflows. Use when the user wants to interact with Chatbot Builder 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/chatbot-builder/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 an actionable, command-first guide with a genuinely strong connection state-handling workflow, but coherence is undermined by a dangling 'Step 2' reference and inconsistent CLI invocation. Splitting the action catalog and detailed state/proxy material into reference files would improve both conciseness and progressive disclosure.

Suggestions

Fix the dangling reference: 'If the returned connection has state: "READY", skip to **Step 2**' points to a step that is never labeled — number the workflow sections or replace it with the section name ('Searching for actions').

Use one consistent CLI invocation — 'membrane connection get <id> --wait --json' vs 'npx @membranehq/cli connection get <id> --wait --json' mix two forms for the same command in adjacent steps.

Add validation guidance for destructive actions (delete-opportunity, delete-tag) such as reading the record first and confirming with the user before deletion, and move the 20-row action catalog into a references/ file to slim the overview.

Include one worked end-to-end example with real parameter names (e.g. create-contact with an actual --input payload drawn from an action's inputSchema).

DimensionReasoningScore

Conciseness

The body is mostly lean, command-driven prose ('Install the Membrane CLI so you can run membrane from the terminal', direct command blocks), with only minor trimmable content such as the opening paragraph about marketers and customer support teams and the flat overview term list. It is efficient with minor over-explanation (anchor 4), not anchor 3, since the padding is incidental rather than a systematic problem.

4 / 5

Actionability

Concrete, copy-paste-ready commands appear throughout (npm install, membrane login, connection ensure with a real URL, action list/run with flags, a proxy options table) plus a 20-row action catalog. It falls short of anchor 5 because the --input example is generic placeholder JSON ('{"key": "value"}'), there is no worked end-to-end example with real parameter names, and 'skip to **Step 2**' points to a step label that does not exist.

4 / 5

Workflow Clarity

The install → login → connection → state handling → search → run sequence is present with a good feedback loop for connections (poll BUILDING, handle CLIENT_ACTION_REQUIRED, re-poll, inspect error states). However, the dangling 'Step 2' reference, the inconsistent CLI invocation ('membrane connection get' vs 'npx @membranehq/cli connection get'), and the absence of any validation/confirmation guidance for destructive actions (delete-opportunity, delete-tag) leave real gaps, and the rubric caps workflow clarity at 3 for destructive operations without validation.

3 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so everything is inlined in a single ~175-line file. Sections are clearly headered, but the 20-row action catalog, the detailed clientAction state handling, and the proxy options table are content that could live in separate reference files. This matches 'some structure but could be better organized', not anchor 4, since a sizable action catalog is inlined in the overview file.

3 / 5

Total

14

/

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 has an explicit and correctly third-person 'Use when' clause tied to a distinctive product name, but the capability statement is generic. Replacing vague verbs with the skill's actual concrete operations (flows, contacts, messages, opportunities) would raise both specificity and trigger term quality.

Suggestions

Replace the generic 'Manage data, records, and automate workflows' with concrete operations the skill actually supports, e.g. 'List, create, and update opportunities, contacts, and tags, send text messages and flows'.

Add natural trigger terms and synonyms users would say, such as 'chatbot', 'flows', 'contacts', 'messages', or 'tickets', to the 'Use when' clause.

Make the trigger clause more specific than the circular 'interact with Chatbot Builder data', e.g. 'Use when the user wants to manage chatbot contacts, send flows, or work with opportunities/tickets in Chatbot Builder'.

DimensionReasoningScore

Specificity

"Manage data, records, and automate workflows" names the domain (Chatbot Builder) but the actions are generic verbs with no concrete capabilities like flows, contacts, messages, or opportunities. It matches the anchor 'Names the domain but actions are minimal or generic' rather than anchor 3, which requires 1-2 concrete actions.

2 / 5

Completeness

Both parts are explicit: what ('Manage data, records, and automate workflows') and when ('Use when the user wants to interact with Chatbot Builder data'). The 'when' clause is present and explicit, so this is above anchor 3, but it is circular and lacks concrete trigger phrases, so it falls short of anchor 5.

4 / 5

Trigger Term Quality

The product name 'Chatbot Builder' plus 'data', 'records', 'workflows' gives some relevant keywords, but common natural variations users would say (chatbot, flows, contacts, messages, tickets) are missing. It does not reach anchor 4 because keyword coverage beyond the product name is thin.

3 / 5

Distinctiveness Conflict Risk

The 'Chatbot Builder' product name gives a clear niche trigger with minimal conflict risk. Minor overlap remains with generic data/records-management skills because the 'what' clause ('Manage data, records, and automate workflows') is generic on its own, keeping it just below anchor 5.

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/chatbot-builder/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.