CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

web-workers

Web Worker patterns used throughout the Lichtblick codebase: Comlink integration, ComlinkWrap lifecycle, transfer handlers, OffscreenCanvas, SharedWorker isolation, and testing utilities.

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./.github/skills/web-workers/SKILL.md
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 content is a well-organized, codebase-specific pattern reference with executable examples and a useful inventory table mapping each Worker location to its pattern. Weaknesses are minor: the FinalizationRegistry snippet is fragmentary, and no validation/verification guidance exists for lifecycle-sensitive operations (e.g., confirming a worker was actually disposed).

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — no space is spent explaining what a Web Worker is, and rationale lines like "SharedWorker chosen for memory efficiency" carry codebase-specific value. A few redundant comments ("// Use the remote API", "// Cleanup when done") and a slightly padded Performance section keep it at anchor 4 ("minor instances of over-explanation that could be trimmed") rather than 5.

4 / 5

Actionability

Most patterns ship executable TypeScript snippets with correct import paths ("@lichtblick/den/worker", "@lichtblick/comlink-transfer-handlers"), plus critical sequencing notes like "Register BEFORE any Comlink communication". The FinalizationRegistry section is fragmentary ("// In constructor: registry.register(this, dispose)") rather than copy-paste ready, which holds it below anchor 5.

4 / 5

Workflow Clarity

As a pattern-reference skill, sequences are clear within each pattern (create → use remote → dispose; register handlers → communicate), and testing guidance is concrete. There are no explicit validation checkpoints or feedback loops, so it fits anchor 4 ("clear sequence with most checkpoints present; minor validation gaps") — though no destructive/batch operations require them.

4 / 5

Progressive Disclosure

The skill is a single well-sectioned file with no bundle files; sections are logically ordered (standard pattern → cleanup → transfer handlers → variants → testing → inventory), and key-file pointers like "packages/den/worker/ComlinkWrap.ts" and "packages/den/testing/makeComlinkWorkerMock.ts" give clear navigation into the codebase. It sits above anchor 3 (content is appropriately placed, not a dump that belongs elsewhere) but below anchor 5 since everything is inline in a 156-line body with no split for deeper material.

4 / 5

Total

16

/

20

Passed

Description

70%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 is specific and clearly scoped to a distinct niche (Lichtblick Web Workers with Comlink), with good natural keywords. Its main weakness is the absence of an explicit "Use when..." trigger clause, which caps completeness and limits its discoverability.

Suggestions

Add an explicit trigger clause, e.g., "Use when creating, debugging, or testing Worker/SharedWorker code in Lichtblick, or when touching files under packages/den/worker or any *.worker.ts module."

Include a few more natural phrasing variations users might say, such as "postMessage", "worker thread", or ".worker.ts files", to broaden trigger coverage.

Phrase capabilities as actions where possible (e.g., "Implements and tests Web Workers...") rather than listing pattern nouns alone.

DimensionReasoningScore

Specificity

The description lists several concrete, specific pattern areas: "Comlink integration, ComlinkWrap lifecycle, transfer handlers, OffscreenCanvas, SharedWorker isolation, and testing utilities". These are named capabilities rather than concrete actions, so it sits just below the anchor-5 "multiple specific concrete actions; comprehensive coverage".

4 / 5

Completeness

The "what" is clear (Web Worker patterns enumerated), but there is no "Use when..." clause or equivalent explicit trigger guidance — "used throughout the Lichtblick codebase" only weakly implies when. This matches anchor 3 (clear what, weak/missing when) and is capped at 3 by the judging guideline.

3 / 5

Trigger Term Quality

Strong natural keywords a user would say: "Web Worker", "Comlink", "SharedWorker", "OffscreenCanvas", "testing utilities". A few natural terms are missing (e.g., "postMessage", "worker thread", ".worker.ts" naming), so it matches the anchor-4 "good keyword coverage; a few natural terms missing" rather than comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche: Web Worker patterns specifically in the Lichtblick codebase using Comlink/ComlinkWrap. Such specific technology and codebase scoping means minimal overlap with other skills, matching anchor 5.

5 / 5

Total

16

/

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

lichtblick-suite/lichtblick

Path

.github/skills/web-workers/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.