CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

visualization-ops-skill

**Required for visualized output.** When the prompt involves news/briefings/market updates/rankings/reports/summaries/analyses/comparisons/selection/recommendations/roundups/retrospectives, or is expected to return 3+ structurable items, **this skill must be loaded before (or in the same turn as) the data-fetching tool**. Once loaded, **do not finish with plain markdown text**—you must render via JsxCreate or ChartRender. Typical examples: "search the latest news about Iran", "compare Obsidian/Notion/Logseq", "recommend a few books", "how is the stock market recently". **Not for**: single-fact Q&A, pure code output, adding/removing nodes inside the canvas (handled by the canvas sub-agent).

62

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 ./apps/server/src/ai/builtin-skills/visualization-ops/en/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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 body delivers strong environment-specific operational knowledge — deferred tool activation, the silent-render-channel discipline with a concrete anti-pattern, executable ECharts and JSX examples, and precise styling/token rules. Its main weaknesses are local redundancy (ECharts primer text, duplicate decision guidance) and a direct internal contradiction in JsxCreate failure-recovery instructions, which undermines both workflow clarity and actionability.

Suggestions

Resolve the contradictory failure-recovery guidance: pick one policy (e.g. 'prefer re-calling JsxCreate with fully corrected content; use Edit only for isolated character-level fixes') and delete the conflicting 'do not call JsxCreate again' bullet from the Validation and correction list.

Delete the ECharts primer sentences Claude already knows ("Complete ECharts option structure including xAxis/yAxis/series", the twice-repeated chart-type enumeration) and keep only the parameter list, examples, and environment-specific notes (theme adaptation, tooltip/legend recommendation).

Merge the "When to use ChartRender vs JsxCreate" table into the Decision Tree section (or replace one with the other) and compress the quoted anti-pattern transcript to a single example line, cutting redundant tokens without losing the lesson.

DimensionReasoningScore

Conciseness

Most content is genuinely environment-specific and earns its tokens (silent render channel, `ol-*` color tokens, component whitelist, no-IIFE rule), but there is unnecessary re-teaching of what Claude already knows: "Complete ECharts option structure including `xAxis`/`yAxis`/`series` etc." and the ECharts chart-type list stated twice ("ECharts chart rendering (line / bar / pie / scatter / radar / heatmap / map)" then "Supports all ECharts chart types: line, bar, pie, scatter, radar, heatmap, treemap..."). The 5-line quoted anti-pattern transcript is also padding that could be compressed to one example line. This fits anchor 3 (mostly efficient but includes some unnecessary explanation or could be tightened), not anchor 4, because the redundant passages are more than minor.

3 / 5

Actionability

Guidance is mostly copy-paste ready: complete executable ECharts JSON examples with parameters, a wrong-vs-correct JSX example, a tool-selection decision tree, and concrete class-token color conventions. The gap that keeps it below anchor 5 is the failure-recovery guidance: "Prefer re-calling JsxCreate with a full corrected content" directly conflicts with "After a failure, fix via `Edit`—do not call JsxCreate again", so the correct action on validation failure is ambiguous. This matches anchor 4 (mostly executable guidance, concrete code with minor gaps).

4 / 5

Workflow Clarity

A clear sequence exists — activate deferred tools via `ToolSearch`, select via the decision tree, render, handle validation failure — but the error-recovery checkpoint is self-contradictory ("Prefer re-calling JsxCreate with a full corrected content... a complete rewrite is less error-prone than a partial Edit" vs. "After a failure, fix via `Edit`—do not call JsxCreate again"), leaving the feedback loop incoherent rather than merely implicit. This matches anchor 3 (steps listed but validation/checkpoint gaps) rather than anchor 4, whose 'most checkpoints present' requires the existing checkpoints to be consistent.

3 / 5

Progressive Disclosure

The skill is a single self-contained file with no bundle directories and no nested references, organized under clear headers with tables (Tool Inventory, decision tree, color tokens, scenario table) — good structure with most content appropriately placed. The minor organization gaps that keep it below anchor 5 are the redundancy between the Decision Tree section and the "When to use ChartRender vs JsxCreate" table, and long inline inventories (the component whitelist) that could live in a reference file if the bundle grew. This fits anchor 4 (good structure; minor organization gaps).

4 / 5

Total

14

/

20

Passed

Description

86%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 a strong, highly triggerable specification: it answers both what (render structured output via JsxCreate/ChartRender) and when (a broad natural-language trigger list plus concrete example prompts and a 3+ item rule), and adds explicit not-for boundaries. Its main deductions are the second-person voice ("you must render") and trigger breadth ("reports/summaries") that risks overlap with non-visual summarization skills.

Suggestions

Rewrite in third person to match skill-description conventions: e.g. "Renders structured output via JsxCreate or ChartRender; must be loaded before the data-fetching tool" instead of "you must render via JsxCreate or ChartRender".

Tighten the trigger list so "reports/summaries/analyses" only fire when visualized/structured output is expected (e.g. "reports or summaries expected to return 3+ structurable items"), reducing overlap with plain text-summarization skills.

DimensionReasoningScore

Specificity

Concrete, tool-named actions are present — "this skill must be loaded before (or in the same turn as) the data-fetching tool", "render via JsxCreate or ChartRender" — which is a base fit for anchor 4 (several specific actions, minor gaps such as no mention of chart/card types). However, the second-person phrasing "you must render via JsxCreate or ChartRender" violates the third-person-voice rule, reducing the score by 1 to 3, matching anchor 3 (names domain and 1-2 concrete actions, not comprehensive).

3 / 5

Completeness

Both questions are explicitly answered: what — "render via JsxCreate or ChartRender", i.e. visualized output instead of "plain markdown text"; when — the explicit trigger list, the "3+ structurable items" condition, and four concrete example trigger phrases. This matches anchor 5 (clearly and explicitly answers both what AND when with concrete trigger phrases); anchor 4 would require the 'when' to be less explicit or specific, which is not the case.

5 / 5

Trigger Term Quality

The description lists a comprehensive set of natural trigger terms with synonyms — "news/briefings/market updates/rankings/reports/summaries/analyses/comparisons/selection/recommendations/roundups/retrospectives" and "3+ structurable items" — plus concrete example prompts users would actually say: "search the latest news about Iran", "compare Obsidian/Notion/Logseq", "recommend a few books", "how is the stock market recently". This matches anchor 5 (comprehensive coverage of natural terms including synonyms); it is not anchor 4, which requires a few natural terms to be missing.

5 / 5

Distinctiveness Conflict Risk

The explicit exclusion clause "**Not for**: single-fact Q&A, pure code output, adding/removing nodes inside the canvas (handled by the canvas sub-agent)" gives a clear niche with minimal overlap for those cases, but the very broad triggers "reports/summaries/analyses" would also fire for any plain summarization or report-writing request, creating minor overlap risk with closely related skills. This fits anchor 4 (mostly distinct; minor overlap risk) rather than anchor 5, which requires minimal conflict risk across the board.

4 / 5

Total

17

/

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

itsablabla/openloaf-web

Path

apps/server/src/ai/builtin-skills/visualization-ops/en/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.