CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

websocket-connection

Deep WebSocket connection knowledge: FoxgloveWebSocketPlayer state machine, WorkerSocketAdapter postMessage protocol, the Foxglove WebSocket protocol handshake, RAF-based state emission, and reconnection.

Quality

70%

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/websocket-connection/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

60%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 well-organized, information-dense reference that accurately maps the WebSocket data path with exact file locations and protocol operations. Its main weaknesses are duplicated content between the component sections and 'Performance Notes', and the absence of any instructive guidance — it describes the system but never tells Claude how to act on the knowledge.

Suggestions

Remove the duplicated points from 'Performance Notes' (main-thread deserialization, RAF flush, zero-copy transfer are each already covered in their own sections) or delete the earlier duplicates and keep a single consolidated section.

Add a short actionable section, e.g., 'Common tasks: to trace a dropped-message bug, start at worker.ts frame transfer → WorkerSocketAdapter postMessage → FoxgloveWebSocketPlayer parsedMessages flush; to change subscription behavior, edit ...'.

Merge 'Connection Lifecycle' and 'Key Operations' (both enumerate serverInfo/advertise/subscribe) into one protocol section to eliminate the repeated operation list.

DimensionReasoningScore

Conciseness

The body is mostly efficient — dense tables and bullet lists with no padding about concepts Claude already knows — but several points are stated twice: main-thread deserialization, RAF-based queue flushing, and zero-copy ArrayBuffer transfer each appear both in their own section and again under 'Performance Notes', and 'serverInfo'/'advertise' are listed in both 'Connection Lifecycle' and 'Key Operations'. That systematic duplication is more than the 'minor instances' of a 4, but well short of the verbosity of a 2.

3 / 5

Actionability

There is some concrete guidance — exact file paths ('packages/suite-base/src/players/FoxgloveWebSocketPlayer/index.ts'), the 5-step protocol lifecycle, and specific behavioral facts like 'subscription changes are sent immediately (no debounce)'. But the body is descriptive architecture documentation with no instructive guidance: it never tells Claude what to do with this knowledge (e.g., how to trace a bug, where to add a capability), which keeps it below 4.

3 / 5

Workflow Clarity

The 'Connection Lifecycle' section gives a clear, correctly ordered 5-step sequence (serverInfo → advertise → subscribe → messageData → publish), and the message-processing flow (binary frames → parsedMessages queue → RAF flush → pipeline) is clearly sequenced. No validation checkpoints are needed for this read-only knowledge skill, and no destructive or batch operations are involved, so the cap does not apply; it sits below 5 only because there is no guidance on verifying changes or common failure modes when acting on this knowledge.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so all content is appropriately self-contained in a well-sectioned ~85-line document with a table for core files, and the 'Skills Reference' section points one level deep to sibling skills ('web-workers', 'deserialization') with clear labels. It falls short of 5 because those skill cross-references are named without paths, and the Key Operations protocol listing is the kind of detail that could live in a reference file if the skill grows.

4 / 5

Total

14

/

20

Passed

Description

66%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 specific, jargon-accurate description that clearly identifies the skill's domain and components, but it reads as a table of contents rather than a capability statement and omits any 'when to use this skill' trigger guidance. Adding a 'Use when...' clause would raise completeness and distinctiveness.

Suggestions

Add an explicit trigger clause, e.g., 'Use when modifying, debugging, or reviewing Foxglove WebSocket connections, the WebSocket player, or the socket worker in suite-base.'

Lead with concrete actions rather than 'knowledge of' (e.g., 'Debugs and modifies the WebSocket connection path: ...') so the description states capabilities, not just topics.

Include user-facing synonyms such as 'real-time data', 'live streaming', or 'Foxglove server connection' to broaden natural trigger coverage.

DimensionReasoningScore

Specificity

The description lists several concrete, named topics: 'FoxgloveWebSocketPlayer state machine, WorkerSocketAdapter postMessage protocol, the Foxglove WebSocket protocol handshake, RAF-based state emission, and reconnection' — comprehensive coverage of the skill's subject matter. It falls short of a 5 because it enumerates knowledge topics rather than concrete actions the skill performs (no verbs like analyze, modify, or debug).

4 / 5

Completeness

The 'what' is clear — deep knowledge of the listed WebSocket connection components — but there is no 'when' clause: no 'Use when...' or equivalent trigger guidance, so it only weakly implies when the skill applies. Per the rubric, a missing 'Use when...' clause caps completeness at 3; it is above 2 because the 'what' is specific and unambiguous.

3 / 5

Trigger Term Quality

Good natural-keyword coverage: 'WebSocket connection', 'handshake', 'reconnection', and the product-specific 'Foxglove WebSocket protocol' are phrases a user working in this codebase would plausibly say. A few natural variations are missing (e.g., 'real-time data', 'live data stream'), and terms like 'RAF-based state emission' are internal jargon users would not say, keeping it below 5.

4 / 5

Distinctiveness Conflict Risk

The Foxglove-specific component names (FoxgloveWebSocketPlayer, WorkerSocketAdapter) carve out a clear niche with minimal conflict risk against generic skills. Minor overlap remains with a hypothetical generic 'websocket' or 'web-workers' skill, keeping it below 5.

4 / 5

Total

15

/

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/websocket-connection/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.