CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

abstract

Abstract integration. Manage data, records, and automate workflows. Use when the user wants to interact with Abstract 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

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/abstract/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 is a solid, executable integration guide: real commands, a well-handled connection state machine with polling and user-action branches, and a sensible proxy fallback. Its main weaknesses are padded marketing/overview filler, a missing worked Abstract-specific example, and broken step numbering ("Step 2" references with no Step 2).

Suggestions

Cut the marketing intro ("It helps teams manage, version, and document their design files... streamline their workflow") and the empty Abstract Overview bullets down to one or two lines of domain context.

Fix the dangling navigation: define explicit Step 1/Step 2 headers (or drop the "skip to Step 2" references and the orphan "1b" numbering) and move "Proxy requests" out from under "Popular actions".

Add one worked Abstract example, e.g. `membrane action list --intent="create a task in a project" ...` followed by the corresponding `action run` with a real action id and input, so the placeholders QUERY/<actionId> have a concrete model to follow.

DimensionReasoningScore

Conciseness

The CLI guidance is mostly efficient, but the marketing-flavored intro ("streamline their workflow and improve collaboration"), the vacuous Abstract Overview section ("Use action names and parameters as needed"), and the same action-list command repeated under both "Searching for actions" and "Popular actions" are unnecessary padding. This is 'mostly efficient but includes some unnecessary explanation', not 4, because there are several — not minor — spots to trim.

3 / 5

Actionability

Concrete, executable commands throughout: `npm install -g @membranehq/cli@latest`, `membrane connection ensure "https://www.abstract.com/" --json`, `membrane action run <actionId> --input '{"key": "value"}' --json`, and a complete proxy flag table. It is not 5 because every Abstract-specific example is a placeholder (`QUERY`, `<actionId>`, `/path/to/endpoint`) with no worked example of a real task/project/comment operation.

4 / 5

Workflow Clarity

The connection flow has a real sequence with checkpoints: poll with `--wait`, branch on `CLIENT_ACTION_REQUIRED` (show `uiUrl`, follow `agentInstructions`), re-poll after the user acts, and check `error` on `CONFIGURATION_ERROR`/`SETUP_FAILED`. It is not 5 because both "skip to **Step 2**" references dangle (no Step 2 section exists and "1b" has no "1a"), and `action run` failures have no error-handling guidance.

4 / 5

Progressive Disclosure

A single ~140-line file with clear section headers and no nested references, so navigation is easy; the clientAction state detail and proxy flag table are reasonably placed inline. It is not 5 because the file exceeds the simple-skill threshold and has hierarchy quirks: "Proxy requests" is nested under "Popular actions", and the broken step numbering makes section relationships harder to follow.

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 has the right structural shape — domain named, both a what and an explicit 'Use when' trigger — but the capability statement is generic boilerplate that could describe any integration. Its real distinctiveness rests entirely on the app name, which also happens to be a common programming keyword.

Suggestions

Replace "Manage data, records, and automate workflows" with concrete Abstract operations, e.g. "Create and manage tasks, projects, sections, and comments in Abstract".

Expand the trigger clause with natural user phrases, e.g. "Use when the user mentions Abstract, tasks or projects in Abstract, or wants to read or update Abstract design data".

Disambiguate from the programming keyword by anchoring the trigger to the product context (e.g. "the Abstract design platform") so it does not fire on requests about abstract classes or abstract concepts.

DimensionReasoningScore

Specificity

"Manage data, records, and automate workflows" names the domain but the actions are generic template boilerplate — no concrete Abstract operations (tasks, projects, comments, collections) are stated, matching the anchor 'Names the domain but actions are minimal or generic'. It is not a 3 because no specific concrete action is actually enumerated.

2 / 5

Completeness

Both parts are present: a what ("Manage data, records, and automate workflows") and an explicit when ("Use when the user wants to interact with Abstract data"). It is not 5 because neither clause is concrete (no specific actions or trigger phrases beyond 'interact with Abstract data'), and not 3 because the 'Use when' trigger is explicit rather than implied.

4 / 5

Trigger Term Quality

The app name "Abstract" is a natural trigger a user would say, but coverage stops there — no common variations or synonyms (task, project, comment, design file, version) appear. It is above 2 (the keyword is specific, not generic) but below 4 (keyword coverage is thin).

3 / 5

Distinctiveness Conflict Risk

It is tied to a specific SaaS platform, making it mostly distinct, but "abstract" is a ubiquitous programming term (abstract classes/methods) that could fire this skill on unrelated requests, and "Manage data, records, and automate workflows" overlaps with virtually any generic integration skill. Minor overlap risk, matching anchor 4; not 5 due to these collisions.

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