CtrlK
BlogDocsLog inGet started
Tessl Logo

canvas

Canvas integration. Manage Canvases. Use when the user wants to interact with Canvas data.

55

Quality

63%

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

The content is highly actionable with copy-paste-ready Membrane CLI commands and a well-sequenced connection state machine, but it over-explains what Canvas is, repeats empty descriptions in the action table, and lacks validation/verification steps for the destructive create/update/delete operations it enables.

Suggestions

Remove or condense the opening paragraph defining what Canvas is — Claude already knows this — to recover token budget.

Add a validation/verification checkpoint after destructive actions (create/update/delete), e.g. re-fetch the resource with `membrane action run get-course` or check the response `output` for errors before reporting success.

Trim the 'Popular actions' table of its repeated 'No description' column, or move the full action catalog to a separate reference file and keep only key examples inline.

DimensionReasoningScore

Conciseness

Most of the body is lean executable commands, but the opening "Canvas is a learning management system used by educational institutions..." explains a concept Claude already knows, and the 20-row "Popular actions" table repeats "No description" twenty times — both are tightening candidates. This matches the score-3 anchor 'Mostly efficient but includes some unnecessary explanation or could be tightened'; not a 4 due to these specific padded spots, not a 2 because the bulk is command-driven and useful.

3 / 5

Actionability

The body provides copy-paste-ready commands throughout — `npm install -g @membranehq/cli@latest`, `membrane connection ensure "..." --json`, `membrane action run <actionId> --input '{...}'`, plus a documented proxy flag table — covering install, auth, connection, search, run, and proxy. This matches the score-5 anchor 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'; not a 4 because the common cases are concretely covered with explained parameters.

5 / 5

Workflow Clarity

The connect-to-Canvas flow is well sequenced with a state machine (READY/BUILDING/CLIENT_ACTION_REQUIRED/CONFIGURATION_ERROR) and polling feedback loops, but the skill facilitates destructive operations (create-course, update-user, DELETE via proxy) with no validation or verification step taught. Per the rubric guideline, a destructive/batch workflow missing validation is capped at 3; it is not a 2 because the sequence and checkpoints for connection setup are clearly present, and not a 4 because the cap applies.

3 / 5

Progressive Disclosure

The body is a single well-organized file with clear section headers (Overview, Working with Canvas, Install, Authentication, Connecting, Searching, Popular actions, Running actions, Proxy, Best practices) and no nested/2+-level references — bundle directories do not exist. This matches the score-4 anchor 'Good structure; most content is appropriately placed; references mostly clear; minor organization gaps'; not a 5 because the inlined 20-row action table and clientAction detail could arguably live in a separate reference file, not a 3 because organization is clean and one level deep.

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 names the Canvas niche and includes an explicit 'Use when' trigger, but the capability statement is generic ('Manage Canvases') and lacks concrete actions and natural synonyms (courses, assignments, grades). It is distinct yet under-specified.

Suggestions

Replace the generic 'Manage Canvases' with concrete actions, e.g. 'List and create courses, assignments, modules, and submissions; manage enrollments and grades.'

Expand the trigger clause with natural user phrases: 'Use when the user wants to manage Canvas courses, assignments, grades, modules, or submissions.'

Add file/extension or entity synonyms (courses, assignments, Canvas LMS) to broaden trigger-term coverage.

DimensionReasoningScore

Specificity

Quotes "Canvas integration. Manage Canvases." name the domain but the actions are minimal and generic ("Manage"), matching the score-2 anchor 'Names the domain but actions are minimal or generic'. It is not a 1 because a concrete domain is named, and not a 3 because no concrete operations (list courses, submit assignments, etc.) are listed.

2 / 5

Completeness

It states a (vague) what ("Canvas integration. Manage Canvases.") and an explicit when ("Use when the user wants to interact with Canvas data."), fitting the score-4 anchor 'Has both what and when; when could be more explicit'. It is not a 5 because the what is generic and lacks concrete trigger phrases, and not a 3 because an explicit 'Use when' clause is present (which the guideline says avoids the cap at 3).

4 / 5

Trigger Term Quality

The phrase "Use when the user wants to interact with Canvas data" supplies the natural keyword "Canvas", but it misses common variations and synonyms users would say (courses, assignments, grades, submissions). This matches the score-3 anchor 'Some relevant keywords but missing common variations or synonyms'; not a 4 because coverage is thin, not a 2 because "Canvas" is a genuine natural term rather than pure jargon.

3 / 5

Distinctiveness Conflict Risk

"Canvas" is a specific product niche with a distinct trigger ("interact with Canvas data"), so conflict risk with other skills is low, matching the score-4 anchor 'Mostly distinct; minor overlap risk'. It is not a 5 because the trigger phrasing is somewhat generic ("Canvas data") rather than crisply scoped to LMS tasks.

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.

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