CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

message-path

Deep knowledge about the message-path package: path syntax, parsing grammar, data extraction from nested messages, and React hook integration. Shared across Plot, RawMessages, StateTransitions, and general panel agents.

Quality

71%

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/message-path/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%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, lean reference for the message-path package with concrete types and executable usage snippets. Its main weakness is workflow clarity: the usage flow is implied rather than presented as an explicit sequenced workflow.

Suggestions

Add an explicit step-by-step usage workflow (e.g. 1. parse/confirm path string, 2. call useCachedGetMessagePathDataItems(paths), 3. consume the returned MessagePathDataItem[]) so the flow is sequenced rather than implied.

Split the heavier reference material (full MessagePath/MessagePathPart type details and the per-panel usage table) into a references file and link to it from SKILL.md to exercise one-level-deep progressive disclosure.

Tighten the Performance Characteristics and Performance Tips sections to remove the overlap about memoization and hot-path costs.

DimensionReasoningScore

Conciseness

The body is lean and package-specific with no padding of concepts Claude already knows, though the Performance Characteristics and Performance Tips sections partially overlap and could be tightened. Not 5 because of that minor redundancy; not 3 because there is no unnecessary explanation of general concepts.

4 / 5

Actionability

Provides concrete type definitions, real function signatures, and executable usage snippets (config.paths assignment and useCachedGetMessagePathDataItems call). Not 5 because some signatures lack bodies and edge-case examples are absent; not 3 because the guidance is mostly executable rather than pseudocode.

4 / 5

Workflow Clarity

The usage flow (configure paths, call the cached hook, receive extracted items) is discernible from Common Patterns but is not presented as an explicit sequenced workflow with checkpoints. No destructive or batch operations are involved, so no validation cap applies. Not 4 because there is no explicit numbered sequence; not 2 because the flow is not absent.

3 / 5

Progressive Disclosure

A single self-contained file with no bundle directories, organized into clear, navigable sections (Overview, Path Syntax, Parsing, Data Extraction, React Integration, Usage by Panels, Common Patterns, Performance Tips). Not 5 because at ~115 lines there is no one-level-deep external reference structure to signal; not 3 because the structure is good and not buried.

4 / 5

Total

15

/

20

Passed

Description

58%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 clearly communicates the skill's niche and concrete capabilities but omits an explicit 'Use when...' trigger clause, capping completeness at 3. Trigger terms are codebase-specific jargon rather than natural user phrasings with synonyms.

Suggestions

Add an explicit 'Use when...' clause stating when Claude should load this skill, e.g. when working with message-path syntax, parsing, or data extraction in Plot/RawMessages/StateTransitions panels.

Broaden trigger terms with natural synonyms a user might actually say (e.g. 'Foxglove message paths', 'ROS message field access', 'panel path queries') alongside the package name.

Reframe capabilities as concrete actions (e.g. 'Parses message-path strings, extracts data items from nested messages, caches results via React hooks') to lift specificity toward 5.

DimensionReasoningScore

Specificity

Lists several concrete capabilities ('path syntax, parsing grammar, data extraction from nested messages, and React hook integration') rather than vague language, though framed as knowledge domains instead of verb-actions. Not 5 because it lacks a comprehensive verb-action list; not 3 because it enumerates more than 1-2 concrete items.

4 / 5

Completeness

A clear 'what' is present (deep knowledge plus enumerated capabilities), but there is no explicit 'Use when...' clause; 'when' is only weakly implied via 'Shared across Plot, RawMessages, StateTransitions, and general panel agents'. Per the rubric guideline, a missing explicit trigger caps completeness at 3.

3 / 5

Trigger Term Quality

Relevant keywords ('message-path', 'Plot', 'RawMessages', 'StateTransitions', 'panel agents') are natural for this codebase but are technical jargon with no common-phrase synonyms or variations. Not 4 because natural variations are missing; not 2 because the terms are more than generic.

3 / 5

Distinctiveness Conflict Risk

Targets a clear niche (a specific package plus named panels) with distinct triggers and minimal conflict risk, though 'general panel agents' introduces minor overlap with related skills. Not 5 because of that residual overlap risk; not 3 because it is mostly distinct.

4 / 5

Total

14

/

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/message-path/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.