CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

canvas

Display and control HTML content on connected Bitterbot nodes (Mac, iOS, Android) via the canvas host server. Use when presenting games, visualizations, dashboards, or interactive demos on a connected device, navigating canvas URLs, capturing canvas snapshots, or debugging canvas connectivity.

69

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

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

A highly actionable, well-structured skill document whose commands and examples are copy-paste ready, backed by a genuinely useful debugging section. The main improvements are trimming minor conversational padding and adding an explicit post-present verification step to the workflow.

Suggestions

Add a verification checkpoint to the workflow after step 4 (e.g., '5. Verify: capture a snapshot with canvas action:snapshot node:<node-id> and confirm the content rendered') so the happy path includes its own validation instead of deferring all checks to the Debugging section.

Trim conversational filler such as 'Great for development!', 'Live reload makes development fast - just save and it updates!', and the 'Great for:' bullet list that duplicates the frontmatter description, to raise token efficiency.

Consider moving the architecture internals (bridge/Tailscale derivation details) or the debugging recipes into a single reference file to keep SKILL.md as a leaner overview, which would also improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is dominated by useful artifacts (ASCII architecture diagram, bind-mode table, config JSON, bash commands, real example invocations) rather than explanations of known concepts. It is not 5 because of a few conversational tokens that earn no place ('Great for development!', 'Live reload makes development fast - just save and it updates!', 'Great for:' list that restates the description).

4 / 5

Actionability

Every step ships copy-paste-ready commands: the heredoc for creating HTML, 'cat ~/.bitterbot/bitterbot.json | jq', 'tailscale status --json | jq -r', 'bitterbot nodes list', 'lsof -i :18793', a curl test, and a fully concrete 'canvas action:present node:... target:...' example with a realistic hostname. This matches the fully-executable anchor covering the common cases.

5 / 5

Workflow Clarity

The numbered workflow (create content → find host URL → find nodes → present → navigate/snapshot/hide) is clearly sequenced with concrete commands, and the Debugging section provides error-recovery paths for white-screen, node-required, and stale-content failures. It is not 5 because the happy-path workflow lacks an explicit validation checkpoint after 'present' (e.g., verify the canvas rendered or check the snapshot) — checkpoints live only in the troubleshooting section.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent) and the body makes no dangling file references, so all content is inline and self-contained. Section organization (How It Works, Actions, Configuration, Workflow, Debugging, URL Path Structure, Tips) is clear, but at ~205 lines with separable material (architecture internals, debugging recipes) it matches the 'good structure, minor organization gaps' anchor rather than the well-split 5 anchor.

4 / 5

Total

17

/

20

Passed

Description

88%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 that clearly states both capability and explicit trigger conditions in third person, with concrete action verbs and domain-specific terminology. The only weaknesses are minor: no synonym coverage for trigger terms and slightly generic visualization/dashboard triggers that are disambiguated only by the 'connected device' qualifier.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions covering the skill's full surface: 'Display and control HTML content', 'presenting games, visualizations, dashboards', 'navigating canvas URLs, capturing canvas snapshots, or debugging canvas connectivity'. This matches the anchor for multiple specific concrete actions with comprehensive coverage; it is not score 4 because there are no noticeable coverage gaps relative to the skill's documented action set (present, hide, navigate, eval, snapshot).

5 / 5

Completeness

It explicitly answers 'what' ('Display and control HTML content on connected Bitterbot nodes (Mac, iOS, Android) via the canvas host server') and 'when' with a concrete 'Use when...' clause enumerating trigger scenarios. This matches the 5 anchor; score 4 would require the 'when' to be less explicit, which it is not.

5 / 5

Trigger Term Quality

Natural trigger phrases like 'presenting games', 'visualizations', 'dashboards', 'interactive demos', 'capturing canvas snapshots', and 'debugging canvas connectivity' give good keyword coverage. It falls short of the 5 anchor because it lacks synonym variations users might naturally say (e.g., 'show HTML', 'screenshot the canvas', 'display on my Mac').

4 / 5

Distinctiveness Conflict Risk

The Bitterbot/canvas-specific terms ('connected Bitterbot nodes', 'canvas host server', 'canvas snapshots', 'canvas connectivity') establish a clear niche with minimal conflict risk. However, the generic lead-in triggers 'presenting games, visualizations, dashboards, or interactive demos' carry minor overlap risk with general visualization/presentation skills until qualified by 'on a connected device', matching the 4 anchor rather than 5.

4 / 5

Total

18

/

20

Passed

Validation

87%

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

Validation — 14 / 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

Total

14

/

16

Passed

Repository

Bitterbot-AI/bitterbot-desktop

Path

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