CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

attio

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

Quality

74%

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

Quality

Content

68%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.

A well-structured, command-driven reference that is largely executable and token-efficient, covering connection lifecycle, action discovery/execution, and proxy fallback with real copy-paste commands. Its main weaknesses are a dangling 'Step 2' cross-reference, absent validation guidance for destructive actions (delete-record/delete-task), and placeholder-only examples for running actions.

Suggestions

Fix the dangling cross-reference: replace "skip to **Step 2**" with the actual section name (e.g. "skip to **Searching for actions**") and number the workflow steps consistently.

Add a pre-deletion validation step for destructive actions (e.g. run get-record first to confirm the ID, or confirm with the user before delete-record/delete-task) to satisfy the destructive-operations feedback-loop requirement.

Include one worked example of running an action with a real action ID and concrete input JSON (e.g. creating a note on a person record) instead of only placeholder forms.

DimensionReasoningScore

Conciseness

The body is dominated by executable commands, code blocks, and tables with little padding. Minor trimmable content remains: the "Attio is a CRM platform that allows users to build custom workspaces…" intro explains the domain, and the 'Attio Overview' section (bare bullets plus "Use action names and parameters as needed.") adds near-zero value — matching anchor 4 ('minor instances of over-explanation that could be trimmed') rather than anchor 5.

4 / 5

Actionability

Concrete copy-paste commands throughout: `npm install -g @membranehq/cli@latest`, `membrane login complete <code>`, `membrane connection ensure "https://attio.com/" --json`, `membrane action run <actionId> --connectionId=... --input '{...}'`, plus a flag table for proxy requests. It stops short of anchor 5 because there is no worked example with a real action ID and real input JSON (the intent 'QUERY' and CONNECTION_ID remain placeholders), leaving a small gap for common cases.

4 / 5

Workflow Clarity

The install → login → connection → search → run sequence is present, with a decent feedback loop for connection states (poll after CLIENT_ACTION_REQUIRED, check error on CONFIGURATION_ERROR). But the instruction "skip to **Step 2**" references a step that is never labeled, and the skill covers destructive operations (delete-record, delete-task) with no validation/verification guidance before executing — the destructive-operations cap of 3 applies. Not anchor 2 because the sequence and state-handling checkpoints are otherwise reasonably defined.

3 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/ directories exist), so this scores the single-file structure: clear section headers (Install, Authentication, Connecting, Searching, Popular actions, Running, Proxy, Best practices) and a 20-row actions table that serves as a reasonable inline quick-reference. The file is over the ~50-line simple-skill range and the full actions table could arguably live in a separate reference file, which keeps it at anchor 4 ('minor organization gaps') rather than 5.

4 / 5

Total

15

/

20

Passed

Description

70%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 the essential structure — a named domain, an explicit 'Use when…' trigger clause, and a distinctive app name — but its capability verbs are generic ('manage', 'interact') and it lacks the concrete actions and entity-level trigger terms (records, deals, contacts, tasks) that would make it comprehensive. It is serviceable but noticeably above only the vague-baseline tier.

Suggestions

Replace the generic verb 'Manage' with concrete actions, e.g. "Create, update, list, and delete records, list entries, tasks, and notes in Attio" to lift specificity.

Add entity-level trigger terms users naturally say in a CRM context — contacts, companies, deals, leads, notes, tasks — to the 'Use when' clause.

Broaden the when clause beyond 'interact with Attio data' to concrete triggers, e.g. "Use when the user mentions Attio, or wants to work with CRM records, deals, contacts, or companies."

DimensionReasoningScore

Specificity

"Manage crm data, records, and workflows" names the domain (Attio/CRM) and several capability objects, but the action verbs "manage" and "interact" are generic rather than concrete (no create/update/list/delete style actions). This sits between anchor 2 ("actions are minimal or generic") and anchor 3 ("1-2 concrete actions") — the enumerated objects give it slightly more substance than a bare 'Processes PDF files', so it lands just above the 2/3 midpoint.

3 / 5

Completeness

Both parts are explicitly present: the what ("Manage crm data, records, and workflows") and the when ("Use when the user wants to interact with Attio data"). The when clause is somewhat narrow and repetitive of the what ("interact with Attio data" vs. concrete triggers like create/update/delete records), matching anchor 4 rather than the comprehensive concrete trigger phrases of anchor 5.

4 / 5

Trigger Term Quality

Natural keywords "Attio", "crm", "records", and "workflows" are present and a user needing this skill would plausibly say them. It falls short of anchor 5 because common entity synonyms users say in a CRM context (contacts, deals, companies, leads, notes, tasks) are missing — though more than just "a few" are absent, the distinctive "Attio" trigger plus the category term make this noticeably above the 3/4 midpoint.

4 / 5

Distinctiveness Conflict Risk

"Attio integration" establishes a clear niche with the distinctive "Attio" trigger, keeping conflict risk low. However, the generic "Manage crm data" phrasing leaves minor overlap risk with other CRM-related skills (Salesforce, HubSpot, generic CRM skills) on broad CRM queries, so anchor 4 ("minor overlap risk with closely related skills") fits better than anchor 5.

4 / 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/attio/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.