Agent skill

Visualization Ops Skill

by OpenLoaf in OpenLoaf/OpenLoaf

输出可视化,必加载。当 prompt 涉及新闻/资讯/行情/排行/报告/总结/分析/对比/选型/推荐/盘点/复盘,或预计返回 3 条以上可结构化条目时,必须先于(或同轮于)数据获取工具加载本 skill。加载后禁止用纯 markdown 文本收尾——必须用 JsxCreate 或 ChartRender 渲染。典型:"搜最新伊朗新闻"、"对比…

AGPL-3.0Auto-check passedKnowledge Management

Install Visualization Ops Skill

skills CLI
$ npx skills add OpenLoaf/OpenLoaf --skill visualization-ops-skill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OpenLoaf/OpenLoaf visualization-ops-skill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/visualization-ops .claude/skills/visualization-ops-skill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
visualization-ops-skill
GitHub stars
108
Token cost
~1.4k tokens
SKILL.md length
303 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
AGPL-3.0

At a glance

输出可视化,必加载。当 prompt 涉及新闻/资讯/行情/排行/报告/总结/分析/对比/选型/推荐/盘点/复盘,或预计返回 3 条以上可结构化条目时,必须先于(或同轮于)数据获取工具加载本 skill。加载后禁止用纯 markdown 文本收尾——必须用 JsxCreate 或 ChartRender 渲染。典型:"搜最新伊朗新闻"、"对比…

  • Works in 6 steps: 只写 JSX 片段,顶层必须是一个或多个元素节点,不要写… → 禁止 IIFE:不能用 {() => { ... return (...)… → 需要构造数据用行内表达式:{[{name:'A'},{name:'B'}].map… → …
  • Tasks that involve React components
  • SKILL.md covers 工具清单, 静默渲染通道(读完再动手), 决策树 and ChartRender — ECharts 图表渲染, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Visualization Ops Skill is an agent skill from OpenLoaf/OpenLoaf. 输出可视化,必加载。当 prompt 涉及新闻/资讯/行情/排行/报告/总结/分析/对比/选型/推荐/盘点/复盘,或预计返回 3 条以上可结构化条目时,必须先于(或同轮于)数据获取工具加载本 skill。加载后禁止用纯 markdown 文本收尾——必须用 JsxCreate 或 ChartRender 渲染。典型:"搜最新伊朗新闻"、"对比 Obsidian/Notion/Logseq"、"推荐几本书"、"最近股市怎么样"。不用于:单句事实问答、纯代码输出、在画布里增删节点(由画布子 Agent 处理)。

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Knowledge Management, covering React components. It works with Obsidian and Notion. The repository describes itself as: 🍞Open-source, local-first AI workspace with Agents, multi-model chat (GPT/Claude/Gemini/DeepSeek), Notion-like docs, AI image & video generation, email, calendar & terminal…. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve React components

Example prompts

  • “搜最新伊朗新闻”
  • “对比 Obsidian/Notion/Logseq”
  • “最近股市怎么样”
  • “/visualization-ops-skill”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. 只写 JSX 片段,顶层必须是一个或多个元素节点,不要写 import/export/const/let/function/函数定义
  2. 禁止 IIFE:不能用 {() => { ... return (...) }()} 或 {(function(){...})()} 把整体内容包在立即执行函数里——校验器会拒绝,这是 MiniMax 等模型最常见的反模式
  3. 需要构造数据用行内表达式:{[{name:'A'},{name:'B'}].map(x => {x.name})}
  4. 允许 {} 表达式、map、条件渲染、style={{...}}
  5. 不支持 {...props} 展开语法
  6. 每条回复只调用一次 JsxCreate

What it can do on your machine

Read from SKILL.md and the folder at commit f7eccf6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json and javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Visualization Ops Skill loads about 1.4k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 303 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OpenLoaf/OpenLoaf at commit f7eccf6, republished under its AGPL-3.0 licence (© OpenLoaf). 303 words, ~1,417 tokens.

Download SKILL.mdSave it as .claude/skills/visualization-ops-skill/SKILL.md (or your agent's skills folder).
name
visualization-ops-skill
description
**输出可视化,必加载**。当 prompt 涉及新闻/资讯/行情/排行/报告/总结/分析/对比/选型/推荐/盘点/复盘,或预计返回 3 条以上可结构化条目时,**必须先于(或同轮于)数据获取工具加载本 skill**。加载后**禁止用纯 markdown 文本收尾**——必须用 JsxCreate 或 ChartRender 渲染。典型:"搜最新伊朗新闻"、"对比 Obsidian/Notion/Logseq"、"推荐几本书"、"最近股市怎么样"。**不用于**:单句事实问答、纯代码输出、在画布里增删节点(由画布子 Agent 处理)。
tools
JsxCreate, ChartRender

可视化渲染

工具清单

工具职责只读
JsxCreateJSX 组件实时渲染(卡片 / 列表 / 表格 / 富文本等结构化输出)否
ChartRenderECharts 图表渲染(折线 / 柱状 / 饼图 / 散点 / 雷达 / 热力图 / 地图)是

加载:全部为 deferred 工具,调用前须先 ToolSearch(names: "JsxCreate,ChartRender") 激活 schema。

静默渲染通道(读完再动手)

把你的输出想成两条平行通道:

  • text 通道:你写的 markdown,按顺序插在对话里
  • 渲染通道:JsxCreate / ChartRender 的输出作为独立气泡在聊天里直接呈现给用户

用户同时看到这两条通道。所以像一个人写完信不会补一句"我刚把信写完了"一样——调用这两个工具之前不要预告("让我先整理数据 / 我将创建一个折线图 / 现在让我再做一个汇总卡片"),之后也不要总结("图表已渲染 / 卡片已生成")。用户早就看见了,这些话只是噪音。

对应地,你的 step 级 text 在大多数情况下应该是空的,直到最后一次工具调用之后,才一次性写一段总结性 text——而且仅在以下任意一种情况才写:

  • 真正需要补充的数据解读:结论、异常、趋势含义、下一步建议
  • 气泡里看不到但用户需要的上下文:数据来源、覆盖范围、置信度、时效性

如果这些都没有,不写 text 也完全可以——工具气泡本身就是答案。

反例(这是实际会话里出现过的、应该避免的流水账):

step 2: "搜索结果返回了一些股市行情相关的信息,但主要是行情中心的入口页面,缺少具体的股市数据。让我再搜索更具体的…" step 3: "很好,现在我有了一些具体的股市数据。让我整理一下最近一周的股市行情数据…" step 4: "现在我已经加载了 ChartRender 和 JsxCreate 工具。让我创建一个折线图…" step 5: "图表已渲染。现在让我用 JsxCreate 创建一个汇总卡片…" step 6: "已完成。我用 ChartRender 渲染了 … 并用 JsxCreate 创建了 …"

这 5 段 text 全部应该删掉,只在最后保留"从数据来看,最近一周 A 股整体震荡上行…"那段真正的解读。

决策树

需要可视化输出
├── 数据图表(折线/柱状/饼图/散点/雷达/热力图/地图)?
│   └── ChartRender(ECharts option)
├── 自定义卡片/面板/布局/状态展示/信息汇总?
│   └── JsxCreate(JSX 组件)
└── 不确定?
    ├── 有数值趋势/对比/分布数据 → ChartRender
    └── 其他结构化信息展示 → JsxCreate

ChartRender — ECharts 图表渲染

提交 ECharts option 在消息中渲染图表。前端使用 ECharts 库渲染,支持 ECharts 全部图表类型。

参数:

  • option(必填):完整的 ECharts option 对象或 JSON 字符串
  • title(可选):图表标题
  • height(可选):图表高度(像素)

ECharts option 编写要点:

  • 完整的 ECharts option 结构,包含 xAxis/yAxis/series 等
  • 支持所有 ECharts 图表类型:line、bar、pie、scatter、radar、heatmap、treemap、sunburst、sankey、gauge 等
  • 建议设置 tooltip、legend 提升可读性
  • 配色会自动适配 light/dark 主题

示例:

柱状图:

json
{
  "option": {
    "xAxis": { "type": "category", "data": ["Mon", "Tue", "Wed", "Thu", "Fri"] },
    "yAxis": { "type": "value" },
    "series": [{ "type": "bar", "data": [120, 200, 150, 80, 70] }],
    "tooltip": { "trigger": "axis" }
  },
  "title": "Weekly Data"
}

饼图:

json
{
  "option": {
    "series": [{
      "type": "pie",
      "radius": "60%",
      "data": [
        { "value": 335, "name": "Direct" },
        { "value": 234, "name": "Email" },
        { "value": 154, "name": "Search" }
      ]
    }],
    "tooltip": { "trigger": "item" },
    "legend": { "orient": "vertical", "left": "left" }
  }
}

JsxCreate — JSX 组件渲染

在聊天界面中实时渲染 JSX 组件。适合展示自定义卡片、状态面板、信息汇总等结构化内容。

参数:

  • content(必填):JSX 字符串

核心规则:

  1. 只写 JSX 片段,顶层必须是一个或多个元素节点,不要写 import/export/const/let/function/函数定义
  2. 禁止 IIFE:不能用 {() => { ... return (...) }()} 或 {(function(){...})()} 把整体内容包在立即执行函数里——校验器会拒绝,这是 MiniMax 等模型最常见的反模式
  3. 需要构造数据用行内表达式:{[{name:'A'},{name:'B'}].map(x => <div key={x.name}>{x.name}</div>)}
  4. 允许 {} 表达式、map、条件渲染、style={{...}}
  5. 不支持 {...props} 展开语法
  6. 每条回复只调用一次 JsxCreate

错误示范 vs 正确示范:

jsx
// ❌ 错:顶层是函数,校验失败
{() => {
  const items = [{title: 'A'}, {title: 'B'}]
  return <div>{items.map(i => <p>{i.title}</p>)}</div>
}()}

// ✅ 对:顶层是元素,数据写成行内表达式
<div className="flex flex-col gap-2 p-3">
  {[{title: 'A'}, {title: 'B'}].map((item, i) => (
    <div key={i} className="rounded-lg bg-card p-2 text-sm">{item.title}</div>
  ))}
</div>

校验失败后:工具会返回绝对路径和错误原因。优先重新调用 JsxCreate 提交完整修正内容(整体重写比 Edit 局部修改更不易出错);只有在明确是个别字符问题时才用 Edit 改该绝对路径。不要 Glob/Read 去找文件——错误提示里已经给了绝对路径。

配色规范:

OpenLoaf 采用 Apple 扁平色系,所有颜色通过语义 token 适配 light/dark 主题。直接写 bg-white 或 text-gray-800 在深色模式下会变成刺眼的白块或不可见的文字——所以只用语义 token:

基底色:bg-card、bg-muted、text-foreground、text-muted-foreground

语义强调色(低透明度背景 + 扁平文字,在两种主题下都清晰可读):

  • 蓝/信息:bg-ol-blue/10 text-ol-blue
  • 绿/成功:bg-ol-green/10 text-ol-green
  • 黄/警告:bg-ol-amber/10 text-ol-amber
  • 红/错误:bg-ol-red/10 text-ol-red
  • 紫/特殊:bg-ol-purple/10 text-ol-purple

标签/徽章:rounded-full px-2.5 py-0.5 text-xs + 上述扁平色组合

不使用渐变(bg-gradient-*)、阴影(shadow-*)和外框(border/ring)——JSX 组件嵌入在聊天消息流中,这些装饰会让卡片看起来像独立弹窗而非消息的一部分,破坏阅读连贯性。

风格规范:

  • 圆角 rounded-lg/rounded-xl,间距紧凑(p-3p-4、gap-2gap-3)
  • 优先 text-sm/text-xs 小字号、横向宽布局——聊天窗口宽度有限,纵向过长会让用户滚动很久才能看完

可用组件白名单(大小写敏感): Message, MessageContent, Panel, Snippet, SnippetAddon, SnippetText, SnippetInput, SnippetCopyButton, CodeBlock, Checkpoint, Task, TaskTrigger, TaskContent, TaskItem, TaskItemFile, Image, Attachments, Attachment, AudioPlayer, AudioPlayerElement, AudioPlayerControlBar, AudioPlayerPlayButton, AudioPlayerSeekBackwardButton, AudioPlayerSeekForwardButton, AudioPlayerTimeDisplay, AudioPlayerTimeRange, AudioPlayerDurationDisplay, AudioPlayerMuteButton, AudioPlayerVolumeRange, WebPreview, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewUrl, WebPreviewBody, WebPreviewConsole

不建议使用 Message/Panel/Snippet 等带外框的组件作为外层容器。

校验与修正:

  • 服务端会校验 JSX 语法,违规直接报错
  • 校验失败仍会写入文件,错误信息包含 path,用 Edit 修正后刷新预览
  • 失败后必须用 Edit 修正,不要重新调用 JsxCreate

写入位置:[<sessionId>]/asset/jsx/<messageId>.jsx(在 session 的 asset 目录下,可直接用 Edit 局部修改)

交互式表单:需要收集用户输入时直接用文字向用户提问并等待回复,JsxCreate 仅负责展示。

何时用 ChartRender vs JsxCreate

场景推荐工具
数值趋势/对比/分布ChartRender
自定义卡片/面板JsxCreate
统计数据 + 图表混合先 ChartRender 出图表,再 JsxCreate 做汇总卡片
简单数据(2-3 个指标)JsxCreate 即可,无需图表
复杂交互式图表ChartRender(ECharts 自带交互)

© OpenLoaf, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in apps/server/src/ai/builtin-skills/visualization-ops of OpenLoaf/OpenLoaf.

Open the folder on GitHubat commit f7eccf6

Compare with similar skills

Visualization Ops Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Visualization Ops Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Visualization Ops Skill this skillOpenLoaf/OpenLoaf108—~1.4kAutomated safety check: PassAGPL-3.0
LLM Wikinashsu/llm_wiki_skill145—~3.2kAutomated safety check: PassNone
Knowledge Base From Vaultskrun-dev/skrun210—~1.4kAutomated safety check: PassMIT
Obsidian CLIAtmosphere/atmosphere3.8k13 repos~795Automated safety check: PassApache-2.0
Second BrainNicholasSpisak/second-brain7361 repos~1.5kAutomated safety check: NotesNone
Hermes History IngestAr9av/obsidian-wiki3.5k1 repos~2.2kAutomated safety check: NotesMIT

Similar skills

  • LLM Wiki

    nashsu/llm_wiki_skill

    Query the user's LLM Wiki knowledge base (the LLM Wiki desktop app at 127.0.0.1:19828 — NOT Obsidian, Notion, Apple Notes, Logseq, or any other PKM tool).

    145 GitHub stars~3.2k tokensUpdated 4 mo ago
    Knowledge ManagementAuto-check passed
  • Turn a folder of Markdown notes (Obsidian vault, Notion export, plain repo docs) into a navigable static HTML knowledge base bundled as a single .zip file.

    210 GitHub stars~1.4k tokensUpdated 15 days ago
    Knowledge ManagementAuto-check passed
  • Obsidian CLI

    Atmosphere/atmosphere

    Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more.

    3.8k GitHub starsUsed in 13 repos~795 tokens
    Knowledge ManagementAuto-check passed
  • Second Brain

    NicholasSpisak/second-brain

    Set up a new Obsidian knowledge base with the LLM Wiki pattern.

    736 GitHub starsUsed in 1 repo~1.5k tokens
    Knowledge ManagementAuto-check: notes
  • Hermes History Ingest

    Ar9av/obsidian-wiki

    Ingest Hermes agent history into Obsidian as distilled knowledge.

    3.5k GitHub starsUsed in 1 repo~2.2k tokens
    Knowledge ManagementAuto-check: notes
  • LLM Wiki

    lewislulu/llm-wiki-skill

    Build and maintain a Karpathy-style LLM knowledge base — a self-compiling Obsidian markdown wiki where an Agent ingests raw sources, compiles cross-linked concept/entity/summary pages, answers…

    655 GitHub stars~3.7k tokensUpdated 5 mo ago
    Knowledge ManagementAuto-check passed

More from OpenLoaf/OpenLoaf

All 33 skills in this repo
  • Agent Orchestration Skill

    OpenLoaf/OpenLoaf

    Triggers when the master Agent faces a multi-step complex task and is deciding whether / how to outsource sub-tasks to built-in subagents (browser / doc-editor / data-analyst / extractor /…

    108 GitHub stars~1.9k tokensUpdated 4 mo ago
    Auto-check passed
  • Browser Ops Skill

    OpenLoaf/OpenLoaf

    Triggered when the user asks for page-level interaction with a specific webpage: login, form filling, button clicks, pagination scraping, screenshots, downloading page images, handling CAPTCHAs or…

    108 GitHub stars~1.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Canvas Ops Skill

    OpenLoaf/OpenLoaf

    Triggered when the user wants lifecycle management of OpenLoaf canvases / whiteboards: create, open, filter, duplicate, delete, rename, or change ownership.

    108 GitHub stars~1.4k tokensUpdated 4 mo ago
    Auto-check passed
  • Reads, edits, converts and reviews Word documents through three dedicated tools, covering tracked changes, comments, tables, images and format conversion.

    108 GitHub stars~1.9k tokensUpdated 4 mo ago
    Auto-check passed
  • Email Operations

    OpenLoaf/OpenLoaf

    Handles a real email account through query and mutate tools: check the inbox, read, search, reply, forward, compose and organize, with sending always confirmed first.

    108 GitHub stars~1.8k tokensUpdated 4 mo ago
    Auto-check passed
  • macOS Desktop Control

    OpenLoaf/OpenLoaf

    Guides an agent to operate native macOS apps by surveying an app first, acting through intents, menus or keystrokes, and verifying each step, in OpenLoaf Desktop only.

    108 GitHub stars~2.4k tokensUpdated 4 mo ago
    Auto-check passed

Works with

Questions about Visualization Ops Skill

What does Visualization Ops Skill do?

输出可视化,必加载。当 prompt 涉及新闻/资讯/行情/排行/报告/总结/分析/对比/选型/推荐/盘点/复盘,或预计返回 3 条以上可结构化条目时,必须先于(或同轮于)数据获取工具加载本 skill。加载后禁止用纯 markdown 文本收尾——必须用 JsxCreate 或 ChartRender 渲染。典型:"搜最新伊朗新闻"、"对比…. Visualization Ops Skill is an agent skill from OpenLoaf/OpenLoaf.

When should I use Visualization Ops Skill?

Visualization Ops Skill fits situations like: tasks that involve React components.

How do I install Visualization Ops Skill in Claude Code?

Run `npx skills add OpenLoaf/OpenLoaf --skill visualization-ops-skill -a claude-code`. Or copy the skill folder (apps/server/src/ai/builtin-skills/visualization-ops in OpenLoaf/OpenLoaf) into .claude/skills/visualization-ops-skill in your project. Claude Code loads it when a task matches its description.

How do I install Visualization Ops Skill in Codex?

Run `npx skills add OpenLoaf/OpenLoaf --skill visualization-ops-skill -a codex`. Or copy the skill folder (apps/server/src/ai/builtin-skills/visualization-ops in OpenLoaf/OpenLoaf) into .agents/skills/visualization-ops-skill in your project. Codex loads it when a task matches its description.

Can I use Visualization Ops Skill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenLoaf/OpenLoaf --skill visualization-ops-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/visualization-ops-skill, .gemini/skills/visualization-ops-skill, .github/skills/visualization-ops-skill and .opencode/skills/visualization-ops-skill in your project.

What does Visualization Ops Skill need to run?

SKILL.md names no scripts, command-line tools or credentials: Visualization Ops Skill is instructions for the agent only.

Does Visualization Ops Skill access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Visualization Ops Skill safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Visualization Ops Skill use?

Visualization Ops Skill is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Visualization Ops Skill use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Visualization Ops Skill?

Skills that share tags, products or a category with Visualization Ops Skill: LLM Wiki (nashsu/llm_wiki_skill, 145 stars), Knowledge Base From Vault (skrun-dev/skrun, 210 stars), Obsidian CLI (Atmosphere/atmosphere, 3.8k stars) and Second Brain (NicholasSpisak/second-brain, 736 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Visualization Ops Skill?

OpenLoaf (a GitHub organization) maintains it in OpenLoaf/OpenLoaf, which has 108 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on May 14, 2026.

Source: OpenLoaf/OpenLoaf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.