CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

canvas-ops-skill

Triggered when the user wants lifecycle management of OpenLoaf canvases / whiteboards: create, open, filter, duplicate, delete, rename, or change ownership. Typical phrases: "open a whiteboard", "create an architecture diagram canvas", "clean up unused whiteboards". **Not for**: data-driven chart visualization (→visualization-ops-skill), AI image or video generation (→cloud-media-skill), editing nodes inside an already-open canvas (handled by the canvas sub-agent).

72

Quality

90%

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

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 well-organized, actionable guide: a tool roster, an intent-to-tool decision map, three sequenced workflows with explicit confirmation checkpoints for destructive operations, and sound rationale for the delete defaults. It falls just short of top marks on conciseness (filler in the Key Decisions section) and error-recovery guidance, and its illustrative call style is a step short of copy-paste ready.

Suggestions

Trim the Key Decisions prose (drop the email analogy and 'Users change their minds all the time') and keep the boardId warning to its concrete failure consequences — the same caution in half the tokens.

Show one concrete end-to-end call example with realistic values (e.g. BoardMutate(action: "create", title: "Auth flow", projectId: "p_123") → boardId: "b_456") so the invocation format is unambiguous.

Add a brief failure-handling note to the workflows (what to do when BoardMutate returns an error or the boardId is not found) to close the feedback-loop gap.

DimensionReasoningScore

Conciseness

The tool roster table, intent-mapping block, and workflows are lean and assume competence, but the Key Decisions prose has trimmable filler ("Users change their minds all the time", the confirming-recipients-before-email analogy) alongside the domain-critical boardId warning. Not 5 because minor over-explanation remains; not 3 because padding is localized rather than a pattern.

4 / 5

Actionability

Concrete, parameterized tool calls (BoardMutate action: create with title/projectId, BoardQuery mode: list with unboundOnly: true) plus the deferred-tool activation step make guidance mostly executable; not 5 because the calls are illustrative pseudo-invocations rather than exact copy-paste payloads (e.g. title: "...") and no real example call is shown end-to-end.

4 / 5

Workflow Clarity

Three numbered workflows with explicit human-in-the-loop checkpoints (report and propose before mutating, list-and-confirm before delete/hard-delete/clear-unbound) satisfy the destructive-operation validation requirement; not 5 because there are no error-recovery feedback loops (e.g. what to do when a call fails), and not 3 because validation is explicit, not implicit.

4 / 5

Progressive Disclosure

The single file is well-sectioned (roster, intent map, workflows, decisions) with no buried references, but at ~90 lines with no bundle files it exceeds the under-50-line simple-skill exception, and the Key Decisions rationale prose is the kind of content that could be trimmed or split. Not 5 because structure could be tighter for its length; not 3 because organization is genuinely good with nothing clearly misplaced.

4 / 5

Total

16

/

20

Passed

Description

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

A strong description: it names the domain and every concrete lifecycle action, gives natural trigger phrases with synonyms, and closes with an explicit negative-scope clause that cleanly separates it from adjacent skills. No issues found.

DimensionReasoningScore

Specificity

The description lists seven concrete lifecycle actions ("create, open, filter, duplicate, delete, rename, or change ownership") for the OpenLoaf canvas domain, matching the comprehensive multi-action anchor; not 4 because coverage of the lifecycle domain is complete rather than having minor gaps.

5 / 5

Completeness

Both what ("lifecycle management of OpenLoaf canvases / whiteboards" with the enumerated actions) and when ("Triggered when..." plus "Typical phrases") are explicit and concrete; not 4 because the when-clause is fully explicit with trigger phrases, not merely present.

5 / 5

Trigger Term Quality

Natural user phrases are given verbatim ("open a whiteboard", "create an architecture diagram canvas", "clean up unused whiteboards") and the synonym pair "canvases / whiteboards" is covered, satisfying comprehensive natural-term coverage; not 4 because no commonly said variation for this domain is missing.

5 / 5

Distinctiveness Conflict Risk

An explicit "**Not for**:" boundary redirects chart visualization, media generation, and node editing to sibling skills/sub-agent, giving a clear niche with minimal conflict risk; not 4 because the disambiguation is active and specific rather than just a distinct trigger set.

5 / 5

Total

20

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

itsablabla/openloaf-web

Path

apps/server/src/ai/builtin-skills/canvas-ops/en/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.