CtrlK
BlogDocsLog inGet started
Tessl Logo

canvas

Canvas LMS integration — fetch enrolled courses and assignments using API token authentication.

64

Quality

78%

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 ./optional-skills/productivity/canvas/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

100%

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 exemplar of a simple, single-purpose skill: concise, fully actionable with copy-paste commands and exact output formats, a clear setup-to-troubleshoot workflow with a validation checkpoint, and a clean one-level-deep split with the bundled script. No changes needed.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — no padding explaining what Canvas or API tokens are — and every section (setup, usage, output format, troubleshooting) earns its place, matching the level-3 anchor.

3 / 3

Actionability

Provides fully executable, copy-paste-ready commands ('$CANVAS list_courses --enrollment-state active'), concrete curl examples with real headers, and exact JSON output schemas, satisfying the level-3 anchor.

3 / 3

Workflow Clarity

Setup is a clear numbered sequence with an explicit validation checkpoint ('verify auth by running $CANVAS list_courses — if it fails with 401...') and a troubleshooting table giving error-to-fix feedback loops, matching the level-3 anchor.

3 / 3

Progressive Disclosure

SKILL.md is a well-organized overview referencing a single real bundle file (scripts/canvas_api.py) that holds implementation detail — a clean one-level-deep split appropriate for a simple skill, matching the level-3 anchor.

3 / 3

Total

12

/

12

Passed

Description

57%

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 is specific and clearly niched to Canvas LMS, but it omits any explicit 'when to use' trigger guidance and only lists two capabilities, leaving it at the middle tier for specificity and completeness. Adding a 'Use when...' clause and a few more natural trigger terms would lift the weaker dimensions.

Suggestions

Add an explicit 'Use when...' clause, e.g. 'Use when the user needs to see their Canvas courses, assignments, or due dates.'

Broaden trigger-term coverage with natural phrasings like 'homework', 'due dates', 'syllabus', or 'Canvas assignments'.

Mention one or two more concrete capabilities (e.g. filtering by enrollment state, ordering assignments by due date) to strengthen specificity.

DimensionReasoningScore

Specificity

Names the Canvas LMS domain and two concrete actions ('fetch enrolled courses and assignments') plus auth method, but only two actions falls short of the 'multiple specific concrete actions' expected at level 3.

2 / 3

Completeness

It clearly states what the skill does, but there is no 'Use when...' or equivalent explicit trigger guidance for when Claude should invoke it, which per the guidelines caps completeness at 2.

2 / 3

Trigger Term Quality

'Canvas LMS', 'courses', and 'assignments' are natural user terms, but coverage stops there — common variations like 'homework', 'due dates', or 'syllabus' are missing, so it does not reach full level-3 coverage.

2 / 3

Distinctiveness Conflict Risk

'Canvas LMS integration' carves out a clear niche with distinct triggers (Canvas, courses, assignments) that are unlikely to overlap with other skills.

3 / 3

Total

9

/

12

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository
NousResearch/hermes-agent
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.