CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

asana

Asana integration. Manage project management and ticketing data, records, and workflows. Use when the user wants to interact with Asana data.

Quality

66%

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

Quality

Content

61%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 strongly actionable — real commands, a popular-actions table with keys, and a well-handled connection state machine with polling and error states. Its weaknesses are instructional padding (the Asana intro and overview sections), a dangling 'Step 2' reference, and no validation or confirmation guidance around destructive operations (delete-task, delete-project), which caps workflow clarity.

Suggestions

Add verification/confirmation guidance around destructive operations (delete-task, delete-project): e.g. get the task by GID first, confirm with the user, then delete, and check the output for success — the current skill runs deletes with no checkpoint.

Remove the concept-explanation padding: the 'Asana is a project management tool...' intro paragraph, the bare 'Asana Overview' object list, and the filler line 'Use action names and parameters as needed' add nothing Claude does not already know.

Fix the dangling 'skip to **Step 2**' reference by labeling the actual steps (there is a '1b' heading but no Step 2), and add one worked example resolving placeholders — e.g. `membrane action run create-task --connectionId=... --input '{"name": "Fix login bug", "projects": "120"}' --json`.

DimensionReasoningScore

Conciseness

The body is dominated by executable commands and tables (good), but contains unnecessary padding Claude does not need: the opening paragraph explaining what Asana is ('Asana is a project management tool that helps teams organize, track, and manage their work...'), a bare 'Asana Overview' object list with no purpose, the filler line 'Use action names and parameters as needed', and verbose best-practice prose (including the typo 'This will burn less tokens'). This matches anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened'); not 2 because the padding is limited to a few short sections, not 4 because those sections are clearly trimmable.

3 / 5

Actionability

Concrete, copy-paste-ready commands cover the whole flow: `npm install -g @membranehq/cli@latest`, `membrane login --tenant --clientName=<agentType>`, `membrane connection ensure "https://app.asana.com/" --json`, `membrane action run <actionId> --connectionId=... --input '{...}'`, plus a proxy flag table and a popular-actions table with real keys (list-tasks, create-task, delete-project). It falls short of anchor 5 only because parameter examples are generic — the sole `--input` example is placeholder `'{"key": "value"}'` and no real payload (e.g. creating a task with name/projects) is shown, and `<actionId>`/`CONNECTION_ID` placeholders are never resolved with a worked example. Not 3 because everything shown is executable, not pseudocode.

4 / 5

Workflow Clarity

The setup sequence is present and well-branched (install → login with headless fallback → connection ensure → poll on BUILDING → interpret READY / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR with the `error` field), which approaches anchor 4. However, the skill includes destructive operations (delete-task, delete-project) with no verification or confirmation guidance around them, which per the rubric caps workflow clarity at 3. Additional gaps reinforce 3: the text says 'skip to **Step 2**' but no Step 2 is ever labeled or defined (only a '1b' heading exists), and running actions has no error-handling or output-validation checkpoint. Not 2 because the connection-state polling and state-machine interpretation are genuine, well-defined checkpoints.

3 / 5

Progressive Disclosure

There are no bundle files, so structure rests on the single SKILL.md, which is a reasonable length (~165 lines) with clear section headers (Install, Authentication, Connecting, Searching, Popular actions, Running actions, Proxy requests, Best practices) and no nested references. This matches anchor 4 ('good structure; most content is appropriately placed; minor organization gaps'). Not 5 because the content exceeds the under-50-lines simple-skill exception and includes minor organization flaws — the pointless 'Asana Overview' object list, the dangling 'Step 2' reference, and slight redundancy between the 'Popular actions' table and 'Best practices' section. Not 3 because nothing is buried and no content that clearly belongs in a separate file is inlined at harmful scale.

4 / 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 correctly follows the what/when structure with third-person voice and a clear niche, but the capability statement is generic. It never names a concrete operation (create/update/delete tasks or projects), relying on vague verbs like 'Manage', and the trigger clause is circular rather than listing natural user phrases.

Suggestions

Replace the generic 'Manage project management and ticketing data, records, and workflows' with concrete actions, e.g. 'Create, update, and delete tasks, projects, sections, and tags; list workspaces, users, and task comments'.

Expand the 'Use when' clause with natural trigger phrases users would actually say, e.g. 'Use when the user mentions Asana, tasks, tickets, projects, or wants to manage project/ticketing data in Asana'.

Avoid the circular phrasing where the 'when' clause ('interact with Asana data') merely restates the 'what' ('Asana integration') without adding trigger vocabulary.

DimensionReasoningScore

Specificity

The description names the domain ('Asana integration', 'project management and ticketing') but the actions are purely generic — 'Manage project management and ticketing data, records, and workflows' names no concrete operation such as creating tasks, listing projects, or updating tickets. This matches anchor 2 ('names the domain but actions are minimal or generic'); it is above 1 because the domain is clearly identified, and below 3 because no specific concrete action is listed.

2 / 5

Completeness

Both parts are explicit: the 'what' ('Manage project management and ticketing data, records, and workflows') and the 'when' ('Use when the user wants to interact with Asana data'). This matches anchor 4 ('has both what and when; when could be more explicit or specific') — the when clause is explicit but circular, essentially restating 'Asana integration' rather than giving concrete trigger phrases. Not 5 because neither part offers the concrete trigger phrasing of the anchor-5 example; not 3 because the 'when' is explicitly stated, not merely implied.

4 / 5

Trigger Term Quality

Relevant keywords are present ('Asana', 'project management', 'ticketing', 'data', 'records'), and a user would plausibly say 'Asana'. However, common natural variations users actually say are missing — 'tasks', 'projects', 'tickets', 'to-dos', 'subtasks' — matching anchor 3 ('some relevant keywords but missing common variations or synonyms'). Not 4 because the everyday vocabulary of the tool (tasks, tickets) is absent; not 2 because the primary trigger word 'Asana' plus the domain terms are present.

3 / 5

Distinctiveness Conflict Risk

The description leads with the tool name and the trigger clause is scoped to 'Asana data', giving a clear niche trigger. It matches anchor 4 ('mostly distinct; minor overlap risk with closely related skills') rather than 5, because the generic 'project management and ticketing' vocabulary overlaps with closely related ticketing/PM skills (Jira, Trello, Linear) whose descriptions cover the same generic terms. Not 3 because the explicit, repeated 'Asana' naming makes wrong-skill triggering unlikely.

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