Data visualization Skill for AI Agents, turning data into polished, interactive HTML charts. 面向 AI Agents 的数据可视化 Skill,将数据快速生成精致、可交互的 HTML 图表。
# Add to your Claude Code skills
git clone https://github.com/larashero3-dotcom/lieflat-chartsGuides for using ai agents skills like lieflat-charts.
Last scanned: 7/25/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-07-25T06:18:28.974Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}lieflat-charts is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by larashero3-dotcom. Data visualization Skill for AI Agents, turning data into polished, interactive HTML charts. 面向 AI Agents 的数据可视化 Skill,将数据快速生成精致、可交互的 HTML 图表。. It has 1,171 GitHub stars.
Yes. lieflat-charts passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/larashero3-dotcom/lieflat-charts" and add it to your Claude Code skills directory (see the Installation section above). lieflat-charts ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
lieflat-charts is primarily written in HTML. It is open-source under larashero3-dotcom on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh lieflat-charts against similar tools.
No comments yet. Be the first to share your thoughts!
Lieflat Charts 是一套遵循 Agent Skills 格式的数据可视化与报告生成 skill,以 Mono 灰阶为保底,也会在数据语义和使用场景明确适配时自动选择一套彩色预设。它支持 Lupi 编辑叙事型、Glance 快速判断型、Basics 基础编辑型、Interactive 交互大图,以及 report-catalog.md 中的 12 套中英文整页报告模板。用户给你数据和场合,可以得到一个无需构建、双击可打开的单文件 HTML 图表或 HTML 报告。纯 SVG 图可离线运行;使用 Chart.js、ECharts 或在线字体的图,在未内联依赖时需要联网。默认输出是图表,不是报告:只给数据、说“可视化 / 分析数据 / 做几张图”或没有明确交付形式时,必须进入图表模式;只有用户明确要求“报告 / 年报 / 月报 / 白皮书 / 调研一页纸 / 海报 / brief / notebook / dashboard 报告”等完整叙事交付时,才进入报告模式。
颜色无需用户显式触发。按第六点五节在 Mono 与 color-presets.js 的三套内置方案之间自动判断;用户明确给出品牌色或自定义色值时,可以建立一套交付内的 custom 色板。同一份 HTML 或同一组交付只能锁定一种色彩系统,不得混用。换肤样张在 templates/color/。
怎么查一张图的参考代码:catalog 查到图型 → 打开对应 gallery 文件 → 按卡内标题找到 <div class="card"> 块看结构 → 在 <script> 里搜同名 // ════ 注释块拿渲染代码。不要整页照抄——gallery 是多卡合页,交付给用户的永远是按第九节骨架组装的单图文件。
目标用户是非程序员(写作者、运营、做 PPT 的人)。他们说人话("帮我把这季度转化画一下,发公众号用"),不说图型名。你的职责是把人话翻译成正确的图,而且好看到能直接发出去。
report-catalog.md,按报告类型、内容结构、版心、密度、阅读速度和语言选择一个 R01–R12。目录里的场景只是召回线索,不是对模板的限制。catalog.md 和本文件的图表规则。.zh.html 与 .en.html 两个版本。用户没有指定语言时,跟随输入语言;中英文内容不能混在同一版本中。以下规则不是建议,违反任意一条都必须返工:
catalog.md 锁定图型编号,再打开对应 gallery 的真实实现:Lupi 使用 templates/lupi-gallery.html,基础型使用 templates/basics-gallery.html,Glance 使用 templates/glance-gallery.html,交互大图使用 templates/big-*.html。彩色图仍以这些原版模板为结构正本,templates/color/ 只用于查配色。<div class="card"> 和同名 // ════ 图型名 ════ 注释块出发,保留其核心 SVG / Canvas / ECharts 结构、数据编码方式、比例关系和动画节奏。允许替换数据、标题、旁注、来源与必要布局;禁止脱离模板另画一张“看起来差不多”的图,禁止拼接多个模板造混合图型,禁止退回图表库默认样式。report-catalog.md,至少比较 3 个报告候选并记录淘汰理由。按内容结构、信息密度、版心和阅读速度选模板,不把模板名称当成行业限制;例如“旅行手记”也可以承载运动或个人生活数据,“月度运营”也可以承载财报或业务数据报告。catalog.md 选型,优先复用 Lupi / Basics 的真实实现;报告模板的布局不能成为绕过图表数据契约的理由。图的数量由独立结论数决定,不由“有多少数据列”决定,也不固定要求 5 张或 6 张:
| 请求类型 | 默认成品数量 | 规则 |
|---|---|---|
| 单个问题 / 单张表 / 一个指标 | 1 | 只交付最强的一张,不为了展示模板而扩展 |
| 两到三个明确结论 | 2–3 | 每张图承担一个不同结论,可共享同一数据源 |
| 一篇文章、论文或完整案例 | 4–6 | 覆盖总览、构成、比较、关系或变化等不同数据形状 |
| 用户明确要求数量 | 按用户要求 | 仍然删除重复图;不足以支撑时说明并少做 |
默认引用 mono-tokens.js(开源分发时把内容内联进 HTML)。与 token 冲突的取值一律以 token 为准。走彩色时只替换颜色 token,字体、圆角、布局和动画仍以 mono-tokens.js 为准。
颜色
#F0EFEB 和炭黑 #1C1C1A 两极,中间 7 级灰阶 ladder。彩色例外按第六点五节从预设起步。.card.dark)只给两种图:必须暗底衬托的形(花瓣、发光感丝线/网络)。默认浅卡;每屏(4 卡)最多 1 张暗卡。排版
· 分隔)+ 图 + 来源行(全大写、加字距)。形状
动画
quarticOut 快进快停,不弹跳(波浪入场可用 elasticOut)。点阵 stagger 8–15ms/个,条形 80–130ms/根。obsReveal,带 timer 清理)。prefers-reduced-motion 降级(token 的 CSS 已含)。数据
rnd(i,k) 确定性伪随机,禁用 Math.random()——刷新必须长一样。Math.sqrt(v) 换算半径,不许拿数值直接当半径。同一份 mono 色板下有两种世界观,选哪个看场合和读者愿意花几秒:
| Glance 系(18 张) | Lupi 系(细读,15 张) | |
|---|---|---|
| 基本单元 | 形状(粗柱、大弧、色块) | 记录(一个点 = 一条数据) |
| 线条 | 2px+,理直气壮 | 0.5–0.7px 发丝 |
| 聚合 | 提前聚合好,给结论 | 拒绝聚合,摊开原材料 |
| 读法 | 扫一眼(<10s) | 凑近读(30s+) |
| 场合 | 周报、dashboard、随手贴 | 年报、对外故事页、海报 |
| 引擎 | Chart.js / ECharts | 手写 SVG |
默认策略:Lupi Editorial → Lupi Basics → Glance。 没有明确场合时,禁止默认 Glance。放年报、公众号长文、海报、开源 README、作品集时先选 Lupi Editorial;数据较少或适合熟悉图型时再选 Lupi Basics。只有前两组都没有合适模板,或用户明确要 dashboard、监控、周报、三秒快读时,才进入 Glance 候选池。
全量候选审计不是“把所有图都做一遍”。 先用数据形状筛出能编码同一本体的候选,再把候选分成:
最终选择是三项的交集,不是“哪个模板文件最容易复制”。默认审计先在 Lupi Editorial 与 Lupi Basics 内完成;只有两组都失败才扩展到 Glance。若同一批要做多张图,再对候选做一次全局分配:模板不重复,形状轮换,最多一张暗卡,避免整页变成六张相似的环或横条。
数据少(只有几个百分比)不等于只能 Glance。 Lupi 化的正道是单位分解:把聚合数摊回可数单位(1 点 = 1 人 / 1 百分点),密度来自单位而不是记录数。单位含义写进副标题,只摊诚实单位(占比加总 100 → 100 个点),不编造不存在的个体记录。取整时如果加总不足 100(如 49.0+27.4+13.9+5.0+3.2 → 98),在底注写明「另外 N 人被四舍五入吃掉了」,不凑假单位。
小数据走 Lupi 的路径优先级(经多轮案例验证):
templates/basics-gallery.html)是稀疏数据的 Lupi 词汇:柱/折线/面积/环形/横条/分组/堆叠/散点/瀑布/热力/进度/哑铃/矩形树图;编辑型 L1–L15 则提供逐记录、单位分解、关系与旁注语法。不要因为 basics-gallery.html 里有现成代码就直接选 F 图。同一批产出(一页多图)里模板不重复。 15 张 Lupi 系够轮换;同一数据能被多个模板承接时,选这一批里还没用过的。
编号对应 catalog.md。这些只是候选召回表,箭头和书写顺序不代表优先级。实际选择必须遵守:先检查全部 Lupi Editorial 与 Lupi Basics 候选,确认无合适模板后,才允许采用 Glance 候选。
nodeClick:false,避免误触改变视图。HERO。area = ...,使用彩色时再写清 color = ...。按顺序问:
templates/big-threads.html:可见线下垫 9px 透明孪生线当热区,hover 单线亮整条路径、hover 标签拉整束、点击钉住。用户要的图不在 49 张里(或发来一张参考图)时,不是做不了,是现场造句。流程四步,第一步不许跳:
mono-tokens.js 拿,不许发明新颜色新字号。产出必须和库里的图"一眼一家人"。走彩色时颜色改从 color-presets.js 的单一预设中取,其他 token 仍以 mono-tokens.js 为准。参考图翻译的附加规则:识别参考图属于哪个流派(Glance or 编辑部),编辑部风格的密度、旁注、手绘感(blob)是本体的一部分,别做收敛了——almanac 曾因"不敢挤"返工。
Mono 是保底方案,不是未触发彩色时的强制答案。 用户没有提颜色时也要根据数据语义、类目数量、阅读场景和内容气质评估是否适合彩色;适配关系不明确,或颜色没有带来真实信息价值时,回到 Mono。
彩色初稿从三套预设中选择一套,色值在 color-presets.js,样张在 templates/color/。预设用于快速得到稳定、统一的第一版,不是锁死的色板。用户要求"这个蓝再深一点"时,在当前色系内继续调整;用户明确给出品牌色、色值或完整色板时,按下方规则建立 custom 色板。调整后必须重新检查对比度、视觉主次和数据语义。
同一份 HTML 或同一组交付必须先锁定一个全局色彩系统:Mono、porcelain、palm、wire 或一套 custom。 所有图共享该选择。若其中某张图不支持已选系统,不得单独换色;改选一套全局兼容的系统,或整组退回 Mono。
结构正本永远是原版 gallery。 查渲染代码去 templates/ 根目录的 gallery,templates/color/ 只查配色。先按第零节选定结构,再决定是否换肤。
按以下优先级判断:
彩色不是升级版,而是 Agent 可以主动选择的语义工具。交付时用一句话说明所选色系及其承担的数据含义。
Agent 不得自行发明第五套默认审美。只有用户给出明确色值、品牌色、品牌规范或"沿用这张参考图的配色"时,才建立 custom 色板;仅说"好看一点"仍从三套内置预设选择。
BG、TXT、MUT、GRID、DATA;需要重点时再定义 HERO,有序数据定义 RAMP,分类数据定义 CAT。成品内联一个 CUSTOM 对象,所有图从角色取色。CAT。超过 6 个先合并类目、改用位置/标签,或退回 Mono。BG 混合,深色由用户色与 TXT 混合;不得借用 porcelain、palm、wire 的色值补齐 custom。CUSTOM。除非用户明确要求把品牌色固化为项目级预设,否则 custom 只内联在当前成品,不回写 color-presets.js。用户后续要求"再深一点"、"背景暖一点"或替换某个色值时,修改对应角色并重新检查整套对比度和语义映射,不只改被点名的那一个元素。
| 数据形状 | 允许 | 原因 |
|---|---|---|
| 有序 / 单序列(进度、热力、时间序列、单指标、排名) | porcelain、wire | 明度即数据的契约仍然成立 |
| 无序类目 ≤4 | palm | 色相对应类目 |
| 无序类目 5–6 | palm(勉强) | 依靠明度和饱和度辅助区分 |
| 类目 >6 | Mono 灰阶 | 彩色预设容量不足 |
| 需要克制但要一个视线落点 | wire | 灰阶承载数据,橙色只标主角 |
| 用户会说 | 预设 | 气质 |
|---|---|---|
| 蓝、冷、学术、理性、严肃、科技感 | porcelain | 单色相蓝阶 |
| 绿、暖、自然、温柔、复古、莫兰迪 | palm | 绿黄低饱和,琥珀点睛 |
| 黑白、克制、杂志感、编辑部 | wire | 黑灰加一点荧光橙 |
color-presets.js 的一套预设,或一套用户明确要求的 custom。禁止预设彼此混用,也禁止 custom 借用内置预设补色。dot heat 除外。DARK 块。big-circular / big-force / big-threads 只有 porcelain 和 palm;wire 使用原版 Mono 大图。DATA 和 HERO 必须不同。 琥珀和橄榄明度接近,不要把两者当作平等类目色。敢拒绝比什么都接更可信。以下情况不做,并给替代:
CUSTOM 角色取色并通过对比度检查?rnd 确定性的?刷新两次长得一样?node --check 过语法(把 <script> 内容抽出来查)。<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Mono — {图名}</title>
<!-- 需要 ECharts 时: -->
<script src="https://cdn.jsdelivr.net/npm/echarts@6/dist/echarts.min.js"></script>
<!-- 需要 Chart.js 时(G1 / G3): -->
<!-- <script src="https://cdn.jsdelivr.net/npm/chart.js@4/dist/chart.umd.min.js"></script> -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="{MONO.FONT.link}" rel="stylesheet">
<style>/* 内联 MONO.CARD_CSS */</style>
</head>
<body>
<div class="grid2">
<div class="card"><!-- 或 card dark / card wide -->
<h2>{结论式标题}</h2>
<div class="sub">{说明} · {图例} · {时间范围}</div>
<!-- 图容器按引擎三选一: -->
<div class="ch" id="ch"></div><!-- ECharts -->
<!-- 手写 SVG: <svg id="ch" viewBox="0 0 400 320"></svg> -->
<!-- Chart.js(G1/G3): <div class="wrap"><canvas id="ch"></canvas></div>,配 .wrap{position:relative;height:320px} -->
<!-- ⚠️ Chart.js 必须挂 <canvas>,套 <div class="ch"> 会报 can't acquire context -->
<div class="src">{图型名} · {系列} · {数据来源}</div>
</div>
</div>
<script>
// 内联 mono-tokens.js 全文
// ── 数据(用户只需要改这里)──
const DATA = [ /* ... */ ];
// ── 渲染 ──
MONO.obsReveal('ch', el => { /* ... */ });
</script>
</body>
</html>
report-catalog.md # 先按场景选 R01–R12
templates/reports/report-NN.zh.html # 中文整页正本
templates/reports/report-NN.en.html # English full-page source
templates/reports/index.html # 本地可打开的模板索引
docs/assets/reports/report-NN.png # 中文版静态预览
报告交付仍然是单文件 HTML;templates/reports/ 中的文件是可复制的起始骨架,不是需要逐字照抄的内容样例。模板内的演示数据只用于展示结构,生成最终报告时必须全部替换。
中文 | English
Lieflat Charts 是一套遵循 Agent Skills 格式的数据可视化与报告生成 skill,可供 moxt、Claude Code、Codex 及其他兼容 SKILL.md 的 AI agent 使用。本 skill 在 moxt.ai 制作,默认把数据做成有编辑感的图表;只有用户明确要求报告、年报、月报、白皮书、海报或 brief 时,才从 12 套中英文整页模板生成可发布的 HTML 报告。
它以统一的字体、留白、线条和动效建立自己的视觉语法,包括以下几种视觉风格:
此外还提供网络、路径和多段流向等独立交互大图。每张图都尽量保留数据的真实单位,同时让标题、旁注、来源和页面结构参与表达。
Mono 黑白灰是稳定的保底方案,同时也有彩色模式,目前支持青瓷蓝、椰林绿和编辑部红三种彩色色系,方便适配各种场景的数据可视化。Agent 会根据数据结构和使用场景,在 Mono、青瓷蓝、椰林绿或编辑部红之间自动选择;适配关系不明确时使用 Mono。用户明确提供品牌色或色值时,也可以建立一套 custom 色板。同一份 HTML 或同一组图只使用一种色彩系统,生成后仍可继续调色,同时保持图型结构、比例、对比度和数据契约。
以下是几类模板的实际预览。
细读、逐记录、编辑感。精选 15 张编辑叙事型模板中的代表图型。
快读、聚合、结论先行。精选 18 张快速判断型模板中的代表图型。
动态预览:
更多动态预览:
常见图型与可数单位的结合。13 张模板覆盖柱、线、面积、环形、散点、矩形树图等基础数据形状。
用于网络、路径与高密度关系数据。
动态预览:
图表可以根据数据结构和使用场景自动选择 Mono 或一套彩色预设,不要求用户先说“要彩色”。有序单序列可使用青瓷蓝,少量无序类目可使用椰林绿,需要一个受控视线落点时可使用编辑部红;适配关系不明确时回到 Mono。用户明确给出品牌色或色值时,可以建立一套 custom 色板。同一份 HTML 或同一组图只使用一种色彩系统;调整时需重新检查对比度、视觉主次和颜色所表达的数据含义。
单色相明度阶,适合有序数据和单序列。
低饱和绿黄色系,用色相区分少量无序类目。
黑灰阶加一个荧光橙视线落点。
现在可以在单张图表之外,直接从 12 套整页报告模板生成 HTML 报告。每套模板都提供中文版和英文版,覆盖调研报告、研究简报、业务数据报告、财报与金融经济分析、产品记录、dashboard、海报,以及运动、旅行和年度生活数据记录等从工作到个人的需求。模板名称代表版式性格,不是使用场景的限制;同一套模板可以根据数据结构迁移到不同类型的报告。
Lieflat Charts 在 Moxt 中完成设计、测试和持续迭代。它的设计规则、模板结构与文件工作流,都是围绕 Moxt 的 Agent 协作方式反复打磨的。
因此,在 Moxt 中使用时,Agent 能更顺畅地读取完整的设计规范、理解 Lieflat Charts 的视觉语言、调用对应模板,并在同一个工作区中持续预览和修改结果,更稳定地执行这套设计。
| Lieflat Charts 的工作环节 | 普通的一问一答方式 | 在 Moxt 中 |
|---|---|---|
| 理解设计语言 | 需要从 Skill 文件重新建立理解 | Skill 已在相同的 Agent 工作环境中完成设计和验证 |
| 读取规则、模板和数据 | 通常需要反复上传文件或提供路径 | 规则、模板、数据和成品可以保留在同一个工作区 |
| 多轮选择和修改图表 | 更换对话后可能需要重新说明背景 | Agent 可以沿用工作区中的文件和上下文继续修改 |
| 生成最终结果 | 结果可能停留在对话或临时目录中 | HTML 成品可以和数据、模板一起留在工作区继续完善 |
Lieflat Charts 仍然可以安装到其他支持 Agent Skills 的工具中;Moxt 是它的原生制作环境,也是目前更完整、步骤更短的推荐使用方式。
一条命令安装:
npx skills add https://github.com/larashero3-dotcom/lieflat-charts --skill lieflat-charts
也可以直接把这段话发给有 shell 权限的 AI Agent:
帮我安装 lieflat-charts。请把 https://github.com/larashero3-dotcom/lieflat-charts
克隆到 ~/.claude/skills/lieflat-charts,安装完成后检查 SKILL.md、templates/、
catalog.md 和 mono-tokens.js 是否存在。
使用 Codex 时,将安装路径换成 ~/.codex/skills/lieflat-charts。
已经安装过的话,用这段话更新:
帮我更新 lieflat-charts。请进入 ~/.claude/skills/lieflat-charts 执行 git pull,
然后告诉我当前最新 commit。
安装后直接对 Agent 说:
把这份调研数据做成适合公众号长文的 5 张中文版图表。
默认先比较 Lupi Editorial 和 Lupi Basics 候选;两组都不适配时,再使用 Glance。
也可以试这些请求:
帮我用 lieflat charts 给这些数据做个彩色风格的图表。
读这篇论文,找出最值得讲的几个数据结论,做成一页完整的 HTML 图表。
这是一份周报数据,要求 10 秒内看懂排名、变化和异常。
把这个 CSV 做成一张适合放进汇报里的 Glance 图表。
用 Lupi 风格重新设计这组数据,保留每条真实记录,并加入必要的旁注。
用青瓷蓝预设重做这张图,用明度深浅表示数值大小,不改变原图的结构。
图数由独立结论决定:单个问题通常 1 张,两个到三个结论 2–3 张,完整文章或论文 4–6 张,单页默认最多 6 张。用户明确指定数量时会遵守,但不会为了凑数重复表达同一个结论。
| 类型 | 数量 | 适合什么 | 实现 |
|---|---|---|---|
| Lupi Editorial | 15 | 年报、论文、公众号、海报、作品集;读者愿意停下来细看 | 手写 SVG |
| Lupi Basics | 13 | 柱、折线、面积、环形、散点、瀑布、热力、进度、矩形树图等基础数据形状 | 手写 SVG / ECharts |
| Glance | 18 | 周报、dashboard、监控、汇报;需要快速排序和比较 | Chart.js / ECharts |
| Interactive | 3 | 网络、路径、多段流向和高密度关系数据 | ECharts / SVG |
| Color Presets | 3 套 / 15 个样张 | 需要颜色区分数据维度,或为 Mono 加一个受控视线落点 | 基于原模板换肤 |
| Report Templates | 12 套 / 中英双版 | 调研、年报、月报、仪表盘、海报、简报和个人记录等完整整页报告 | 单文件 HTML |
把一个点、一根线或一条旁注尽量对应到真实数据单位。它不急着把数据聚合成一个结论,而是把原材料摊开,让读者看到结构、分布和例外。视觉上使用发丝线、留白、账本式导轨、旁注和低对比灰阶,阅读时间通常在 30 秒以上。
保留常见图表的剪影,