Deep StateTransitions panel knowledge: TimeBasedChart segments, message-path extraction, preloaded-range subscription with 250ms batch flush, block+currentFrame merge, and messagesToDataset.
70%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.github/skills/panel-state-transitions/SKILL.mdA timeline visualization for discrete state changes extracted from messages.
panels/StateTransitions/
├── index.tsx # main panel, TimeBasedChart usage, message-path config
├── messagesToDataset.ts # message → Chart.js dataset (perf-critical)
└── hooks/
├── useDecodedMessageRange.ts # preloaded-range subscription, 250ms batch flush
└── useStateTransitionsData.ts # merges preloaded blocks + current frame/robot/state.mode)useDecodedMessageRange subscribes to preloaded blocks for those pathsmessagesToDataset extracts discrete values and builds chart segmentsuseStateTransitionsData merges block data with live current-frame dataTimeBasedChart renders colored segments on a timelinefunction messagesToDataset(messages: MessageEvent[], path: MessagePath): ChartDataset {
// iterate all messages, extract value at path
// create segment boundaries at state-change points
// return { data: [{ x: startTime, x2: endTime, y: stateLabel }] }
}Runs on every data update — must stay fast for large datasets.
useDecodedMessageRange debounces:
Shared chart component (also used by other panels):
messagesToDataset is O(n) per path — keep n bounded (downsample if needed)packages/suite-base/src/panels/StateTransitions/index.tsxpackages/suite-base/src/panels/StateTransitions/messagesToDataset.tspackages/suite-base/src/panels/StateTransitions/hooks/useDecodedMessageRange.tspackages/suite-base/src/panels/StateTransitions/hooks/useStateTransitionsData.tsmessage-path skilllichtblick-suite/lichtblick
9589f38
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.