万象-矢量图标体系生成

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

先立构造法,再由参数化生成器派生整套矢量标识,可作著作权与商标基础。

一句话选型结论

按资料字段整理

万象-矢量图标体系生成是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_de2353f3/omni-vector-icon
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_de2353f3仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791671822
正文体量38.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
万象-矢量图标体系生成当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

38.4 KB
模型实际读到的说明书原文,来自技能仓库

> 作者 @zzzzzzzp(立意 · 判据 · 取舍) · 协作 多多 · AI 助手(检索 · 编码 · 核查)
> 版权 著作权归 @zzzzzzzp 所有(All Rights Reserved) · 版本 v1.3.0

万象-矢量图标体系生成

先立一条构造法,再由参数化生成器派生整套矢量标识,可作著作权与商标基础。

  • 做什么:派生母标、等级、域符与成员图标,产出可登记的独立矢量源文件。
  • 何时用:要为一系列产品或技能设计成体系、需可无限延展的图标系统时。
  • 不做什么:不做单张手绘插画或海报;不做位图素材的修图抠图。

数据边界与外部连接(必读)

  • 文档处理全在本机:所有读写只发生在你显式指定的文件上。
  • 不采集、不上传用户的任何内容;不扫描目录、不常驻后台、不联网轮询。
  • 唯一的外部连接:技能自带的按量付费组件(a2m/)会与支付宝发生支付校验与履约回执,
    该链路只传订单号与金额,不含你的文件内容;本地服务仅监听 127.0.0.1。
  • 凭据:作服务端使用时,商户私钥从你的本机环境变量读取,不落盘、不进包。
  • 回流组件默认未启用:包内不含任何收件地址,也不自动注册任何钩子;是否启用完全由你决定。

何时用

  • 用户要为一批对象(技能、模块、产品线、目录体系)设计图标,且要求"成体系""原创""能登记版权"。
  • 需要图标能在任意等级/任意域别下延展,而不是交付一堆互不相干的图。
  • 需要交付矢量源文件(著作权登记的图样以矢量提交最有利:边界清晰、无分辨率争议)。

不适用:单张插画、海报主视觉、写实图形 —— 那些走生成式图像路径。


铁律:宿主(Ardot)渲染三条约束

这三条是实测踩出来的,违反任一条都会静默失败或出错图。

1. 缩放必须交给 viewBox,不能用 <g transform="scale()">

宿主解析器按未缩放的包围盒比对画框尺寸。当画框小于 SVG 原始坐标范围时,判
degenerate geometry: vector is empty (0×0) or out of frame bounds,并整棵丢弃矢量。

实测:原始坐标 25–115,画框 24/32/48/64/96px 全部失败,128px 通过(115 < 128)。

# ✗ 错:小尺寸必然失败
&#x27;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;g transform=&quot;scale(0.1714)&quot;&gt;%s&lt;/g&gt;&lt;/svg&gt;&#x27;
# ✓ 对:viewBox 恒定,只改 width/height
&#x27;&lt;svg width=&quot;%d&quot; height=&quot;%d&quot; viewBox=&quot;0 0 140 140&quot;&gt;%s&lt;/svg&gt;&#x27; % (disp, disp, inner)

2. &lt;text&gt; 的 text-anchor 会被丢弃

坐标随即被当作文字左边缘使用 → 居中标注整体右移半个字身,贴边的会被 clipsContent 裁掉。

# ✗ 错:x=506 是&quot;中心&quot;,导入后变成左边缘,506+15=521 越出 520 面板被裁
&#x27;&lt;text x=&quot;506&quot; y=&quot;265&quot; text-anchor=&quot;middle&quot;&gt;卯&lt;/text&gt;&#x27;
# ✓ 对:把居中量烘焙进 x(半字身 7.5)
&#x27;&lt;text x=&quot;%.1f&quot; y=&quot;%d&quot;&gt;卯&lt;/text&gt;&#x27; % (506 - 7.5, 265)

3. 纯水平/垂直直线段会报 ZERO_SIZE —— 但这是保守告警,不用修

导入后每段直线是一个矢量节点,纯水平线高度为 0、纯垂直线宽度为 0,宿主报
zero size; node will be invisible。实测描边正常渲染(已用 128px 图形与竖线图形截图确认)。

→ 不要为此把直线改写成矩形或加微偏移,那是白做工。


铁律:同一文件的多处改动必须串行

并行对同一文件提交多个 Edit 会静默丢失改动。 各次 Edit 都以「原始内容」为基线做替换后整体写回,
后写者覆盖前写者;而报告全是「成功」,无从察觉。

实际症状(本项目实测):3 处文案改动全部报成功,重跑生成器后输出仍是旧文案;
而同批的几何改动(落在别的函数里)却保留了 —— 因为覆盖只吃掉同一次写回里没被包含的部分。
半对半错,最具欺骗性。

→ 改动的落点超过一处时,一律写一次性脚本,串行 str.replace、逐项打印命中状态,最后一次写盘:

import io, os, sys
s = io.open(P, encoding=&quot;utf-8&quot;).read()
miss = 0
for i, (old, new) in enumerate(SUBS, 1):
    if old not in s:
        print(&quot;MISS [%d]&quot; % i); miss += 1; continue
    s = s.replace(old, new, 1); print(&quot;OK [%d]&quot; % i)
if miss: sys.exit(1)                      # 有未命中就不写盘,避免半套状态
io.open(P, &quot;w&quot;, encoding=&quot;utf-8&quot;).write(s)
os.remove(os.path.abspath(__file__))      # 一次性脚本用完即删,别留在 tools/ 里

要点:未命中即中止(不写盘)、写完即删脚本、逐项打印命中状态。
生成器这类「唯一真相源」尤其如此 —— 改了没落盘,全量重生成会静默退回旧版,而产物看起来完好无损。
验证手段:重生成后核对产物新鲜度(所有 SVG 的 mtime 不早于生成器)。


铁律:别用 bash 双引号包裹含反引号的文本写文件

用 python -c &quot;...&quot; 或 echo &quot;...&quot; 在 bash 里写含 Markdown 行内代码(反引号)的文本时,
反引号会被 shell 当作命令替换执行,输出为空 → 内容被静默吃掉,且退出码仍是 0,
报错信息还混在一堆无关噪声里,极难察觉。实测:一整节记忆文档里所有行内代码标记全被清空。

→ 含反引号/$/! 的长文本,一律先用 Write 工具落成临时文件,再用 Python 读进来拼接,
最后删掉临时文件。不要走 shell 字符串。

s = io.open(MAIN, encoding=&quot;utf-8&quot;).read()
i = s.find(MARKER)                                  # 先回退到干净边界,再拼接
s = s[:s.rfind(&quot;\n---\n&quot;, 0, i)].rstrip() + &quot;\n&quot;
io.open(MAIN, &quot;w&quot;, encoding=&quot;utf-8&quot;).write(s + io.open(TEMP, encoding=&quot;utf-8&quot;).read())
os.remove(TEMP)

> 附带教训:若已写坏,先回退再重写(按小节标题定位并截断),不要试图在损坏的文本上打补丁。


五步工作流

第 1 步:立构造法(先定派生维度,再画一笔)

不要先画图。先把"一个图形如何派生出全部图形"定下来。成熟范式是四层:

层 作用 变化方式
母版(外环/外框) 声明"属于本体系" 恒定不动
度量层(刻度/分格) 表达位次、序数、等级 只改"亮几格"
加法层(外围增减) 表达大等级 只在外围加减,不动内核
内核位(中心符位 + 上位功能位) 表达域别与具体成员 换符不换结构

关键性质:等级是加法,不是改图案。 同一成员在任何等级下图案骨架完全一致,等级只在外围增减。
只有做到这一点,"不同等级对应相同图案"才是几何保证而非人为约定 —— 也才让整套图能作为
系列作品整案登记,而不是 N 件独立作品。

设计时要给出封闭的元件表,并且把容量封顶。

域数不要靠"再想一个符号"来扩,要靠一个穷尽机制把它锁死。 最省事的穷尽机制是三爻成卦:
阳爻一线、阴爻中分,自下而上,2³ = 8 域。先天八卦序:乾111 兑110 離101 震100 巽011 坎010 艮001 坤000。
器物之象(符节/封函/色轮/圭表……)退为文字注解,不再各绘一图 ——
「每域手绘一枚器物符」正是体系失控的根因:每加一域就要新创一个图形。

再配一张固定的元件字母表(如 点·横·斜·勾·环·方·角·交 八种,如军衔的衔级符号),
成员数 = 域数 × 元件数 就成了硬顶:8 × 8 = 64 位。

维度 取值数 来源
域 8 三爻成卦穷尽(2³)
元件 8 固定字母表,不再增加
位格总数 64 8 × 8

超容策略要写进构造法,否则"封顶"只是口号:64 位用尽则另开一套域色盘(类比军衔之陆海空军),
位格不变。于是"后续成员会增加"这件事不再动摇几何 —— 添成员不动几何,只占新位。

> 用户说「像军衔那样固定模式组合搭配、避免内容无限制膨胀」时,要的是这一整套:
> 穷尽机制锁域数 + 固定字母表锁元件 + 超容策略兜上限。三者缺一,"封顶"就不成立。

度量层范式:周天二十四山(用户要「复古/历史感/中国传统」时用)

不要临摹罗盘的样子,要用它的构造。周天 360° 分二十四等分、每山 15°:

组 根数 角度 占位 画法
主刻度 12 每 30° 四正(子卯午酉)+ 八地支 r=38→45,主墨色,等距尺
次刻度 12 错开 15° 四维(艮巽坤乾)+ 八天干 r=41.5→45,淡色,短

四正与四维恰好落在 30° 网格的两个互补子集里,所以长短必然相间 —— 这是几何推出的,不是排出来的。
再叠两层「分圈列位」:中环 r=41.5 以淡色横切刻度、断出「格」;外环 r=45 作天盘线封住刻度冠。
内层只走长刻度(疏)、外层长短相间(密),复古感即由此而来,不靠做旧纹理。

配套两处线质:刻度起收用方头 stroke-linecap=&quot;butt&quot;(径向线严格落在 r 区间内,是版刻线质);
构造网格图上把八山(子卯午酉艮巽坤乾)直接标注出来,用于解释而非印刷。

> 改造既有体系时守住不变式:只在度量层/圈层动刀,lit(亮几格)与加法层的语义一动不动,
> 母版环半径不变。这样「等级=外围加法」的原始保证不被破坏,改造才不算推倒重来。

尺寸降级规则要在构造法里就定死,不要等出图后再补 —— 写清哪一层可以省、省了不算降级:

fine = disp &gt;= 48   # 24/32px 不绘细节圈层:1.4 坐标单位折合不足半个像素,会糊成灰雾

省略图层 ≠ 改变等级。 母版环与内核位永远保留(它们才是最小可辨单元),省的只是装饰性圈层。

四条造型戒律(用户要「厚重/有历史感/大象无形」时用)

用户说"图标太简化、要加厚"时,最容易做错的是加装饰。 正确方向是加层数。

① 加层不加饰。 传统器物(罗盘、浑仪、圭表)的繁复不是画上去的,是每圈一个数理基数算出来的 ——
太极1 → 两仪2 → 四象4 → 八卦8 → 二十四山24 → 六十四卦64。要"厚重",就多插几圈有数理依据的圈:
外圈刻度内侧再加一层"界环"、中央立"心位"圈,而非叠加云纹、回纹、做旧噪点。
「厚度来自圈层数,不来自纹样」——此即「大象无形」。
取其法,不取其符 —— 上列数理序列只用来定"该加几圈",序列中的传统符号本身不得入图。

② 旧符不入核心位(权利洁净)。 用户要求「原创、可作版权/商标」时,任何民俗、宗教、公有领域的既有符号
(太极、八卦、四象、祥云、回纹、万字纹……)都不得进入核心识别位
。它们任何主体都可无偿使用,
无从作为独创性主张的落点 —— 画得再精细,也只是替公共素材做美容。
核心识别位(母标中心、域符位、主图形、字标)必须是自己构造出来的语言。
> 真实案例(2026-09-19):母标中心曾用太极双旋 —— "不偏属于任何一域"很贴切,线刻质感也好。
> 但它使母标最要紧的那一点失去可版权性,最终整段撤除,中心改为空置。这不是审美取舍,是权利取舍。

③ 若中心确需图形,用线刻不用实填。 细密图样若用实填,在透明底上会失形(深底浅底各坏一半)。
线刻(描边)则浅底深底皆可读,也与刻度冠的线质统一。

④ 大方无隅:方而没有隅,不是方而缺掉四段。 方城/方形外框不要画成硬角实边,但也不要把四隅敞开 ——
四隅敞开会让城垣断成四条互不相连的直边,挂在圆外就成了「外挂的四只括号」。
正解是四隅抹角(四十五度斜截):城垣合围不断,隅以斜截去了。

> ⚠️ 教训一:改造型前先看清"突兀"来自哪一处。
> 用户说「方域有点突兀,稍微表达融合点」,先判为「半宽差两个单位、中间留了一层空档」,
> 遂把 half 由 54 收到 52 —— 折合不到两个像素,改与不改看不出分别。
> 真病灶是四隅敞开导致的断垣。诊断错一步,整轮白做。

> ⚠️ 教训二:这里有一个几何上的"不可能三角"。
> 设方城半宽 H、抹角切量 C,要求八根辐条等长且八端皆落在城垣之上,则
> 当且仅当 C = H(2−√2) —— 此时方城退化为正八边形。
> ⇒ 要"辐等长且皆着"就只能正八边形;要"方仍是方"就必须允许辐条长短相间(四正止于四边中点、
> 四隅延至抹角中点)。两者不可兼得,必须向用户明说取舍,不要偷偷做成八边形。
> 另:圆角(弧)解决不了这个问题 —— 圆角离心的极点在 |center|+ρ,永远够不到辐条外端;
> 只有直斜截能把隅拉进来。

⑤ 计数型标记以中为轴:自中而生,不是自左排起。 凡是用 N 个点/格表示"第几级/第几候/进度几成"的标记,
最容易写成「自左向右依次数点亮」。一旦这样,只有一个点时它落在最左、两个点时占左边两个 ——
点数越少越偏左,看着像没放正。正解是以中为轴:一候居中一点、二候分居两侧、三候三点齐具,
间距恒定、点数变而轴线不移,标记组的中心永远压在主轴线上。

xs = {0: [], 1: [70], 2: [66, 74], 3: [62, 70, 78]}   # 间距恒为 8,cx=70

> ⚠️ 验收必须用像素检测,不能凭缩略图目视。 周围同心环的弧线会带偏视觉重心 ——
> 明明数值上完全居中,缩略图里看着也像偏左(本轮真实踩坑:先疑心没改对,实测偏差才 0.00 单位)。
> 检测法:取点带所在行,扫描水平方向的连续暗段 —— 宽度 5~8px 的是点,宽度 2~3px 的是同心环的弧;
> 各取中值比对点团中心与图标中心。此法不需要 numpy,纯 PIL 逐像素即可。
> 注意逐行扫:点与环在同一 y 带上重叠,若只看某一行的 bbox,会把环的弧当成点。

> ⚠️ 教训三(典故陷阱):曾按《考工记》「匠人营国,方九里,旁三门」在方城每边开三门,生成 16 段短划 ——
> 实测与刻度冠的疏密语汇撞车,读者会把它当成第二圈刻度,而不是一座城。依「大象无形」之义删繁就简,
> 改回四边连续。文化注脚让位于表意准确。有典故不等于该画出来。

层级叠加的两条构造律(用户问「图标能不能和等级挂钩」时用)

① 两层几何必须互不相交。
身份与等级分居内外两圈:身份在内(域爻+元件,r≤30),等级在外(刻度冠+加法层,r=38→52)。
两层不相交 ⇒ 同一技能可挂任意等级而身份图分毫不动,等级进阶亦不动母版。
这是"挂钩"的几何依据,不是人为约定。
→ 答完"能不能"不要只给文字论证 —— 在规范书里加一节实物对照(同一技能挂 N 个等级状态并排),
论证与凭据分开写:论证说服,凭据证明。

② 一套体系只留一个进度语汇 —— 身份不预支进度。
最容易犯、也最难自查的错:身份图亮满刻度,而等级最高档只亮九格。满格数在任何一档里都不存在,
身份图遂停在一个体系里没有定义的档位上,等级无位可挂。
> 挂钩的实质障碍往往不是几何,是语汇冲突。
→ 定规:刻度是全套唯一的进度语汇;母标、域符、技能身份图一律一格不亮(刻度尽作淡色引导),
只有等级图独占刻度。改这条时要全局搜一遍"亮几格"的默认值(母标、域符、身份图、尺寸样本、
容量示例页都是同一个 lit 常量传下来的),只改技能图必漏。

撤除既有符号时:空必须有据

被要求撤掉一个符号时,最容易犯的错是"删了就完事"。中心留一个空白圆盘,会被读成"没画完"。
⇒ 空的合法性必须来自体系自身的逻辑,并且把这条依据写进文案 —— 母标副题、构造法条目、
相关节的行题,三处都要写。只改图不改文案,等于让读者自己猜。

可用的推理样式(一句话自洽):
- 中心符位只放域爻 → 母标不偏属于任何一域 → 母标无域即无爻 → 中心自然为空。
- 表述:「中心只放域爻,母标无域即无爻。此空非未画,是有据之空。」

撤除会带来一个红利:被撤符号若原是"母标区别于最高等级"的唯一凭据,撤掉后要另找区分点。
上例中,母标(中心空)与最高等级(中心有域爻)反而因此获得更干净的辨别度 ——
靠"有域/无域",而非靠一个外来符号。

副作用(必须主动告知用户):中心空白在观感上偏"未完成"。执行完毕后应备好转补方案供选
(留空/置原创"源点"/其他原创心符),不要替用户默默补一个。

规范图必须与实物同源

规范书里那张"构造网格图"(画着所有半径、圈层、骨架的说明图)不许硬编码尺寸。
一旦它用另一套数字,规范书与实物就会各说各话,且没人会发现 —— 两边都"看起来对"。

→ 让它由与实物同一批常量推导。常用手法:给网格图一个统一缩放系数 K
(如 520 面板 = 140 视框的 2 倍,K=2),所有半径一律 ×K:

def geometry():
    K = 2                                  # 520 面板 = 140 视框的 2 倍
    def p2i(r, deg):                       # 极坐标 → 面板整数点
        a = math.radians(deg)
        return (int(round(260 + r*K*math.sin(a))), int(round(260 - r*K*math.cos(a))))
    for r in RINGS:                        # RINGS 与实物共用同一个常量
        e.append(&#x27;&lt;circle cx=&quot;260&quot; cy=&quot;260&quot; r=&quot;%g&quot;/&gt;&#x27; % (r*K))
    # 方城也按同一组 half / corner 计算,不写死矩形坐标

自检方法:打印网格图里各元素的实际数值,与实物常量逐一比对(如半径应输出 30/46/60/76/83/90,
即 15/23/30/38/41.5/45 各乘 2)。数对不上,就是同源没做干净。

传统色谱:四正 · 三间 · 承载(用户要「中国传统色彩」时用)

> 完整色系(34 色位,含 HSV/明度/彩度与权威核验)见
> references/传统色谱-字源界.md 与 references/传统色谱-字源界.json。
> 那是「字源界」项目的同步副本,源头在项目内 tools/color_system.json;
> 副本带 sha256 与同步时间,改色请改源头再重跑同步,别直接改副本。
> 本表只留最常用的骨架。

组 色 参考值 用法 权威核验
四正 青(花青)· 赤(朱砂)· 黄(秋香)· 黑(玄青) #003472 #E54A4A #D9B611 #3D3B4F 各主一域 花青/秋香/玄青 ✅ 一致;朱砂为柔化版(权威 #FF461F)
三间 绿(竹青)· 紫(藤紫)· 碧(孔雀绿) #789262 #8B2671 #00A381 其余域 竹青/藤紫 ✅ 一致;孔雀绿非谱系色名(近邻:碧色 #1BD1A5)
承载 赭(赭石) #955539 收束位/末域 ⚠ 名实错配一格:权威「赭色」=#955539、「赭石」=#845A33
纸色 缟 #F2ECDE 底色(不列域色) ✅ 一致
次文 黎 #75664D 副题、注解 ✅ 一致
未点亮 苍 #C7C0AF 灰刻度、虚线环 本体系自定(谱系苍色 #75878A 偏冷,未采用)
补位 蟹壳青 · 青碧 #BBCDC5 #48C0A3 青灰瓦面/中明度水面 ✅ 均一致

三条从实测换来的收紧判据(改用色前先过这三条):

  1. 「描边禁纯黑」的判据是「明度<60 且 彩度<0.40」 —— 只判明度会把高饱和的语义暗红
    #7A1B16(S=0.82)误伤;它不是黑,是必要的暗部语义。
  2. 同族内色相漂移 ≤ 4° —— 这是「阴影留在同色相内」的可量化判据
    (实测:苔族 2°、木族 3°、土石族 4°、墙族 3°)。
  3. 色名 ↔ 色值严格一一对应:同名必同值、同值必同名。同一色名要两个深度时,
    拆成两个色位两个名字(如「水色」#5F9FC4 与「青碧」#48C0A3),不许一名两值。

白不列域色 —— 白为纸色,纸即底色,不与墨争。这条不是省事,是配色逻辑:
底色若也去占一个域色名额,主识别就会从形滑向色,单色印刷时多域立刻不可辨。

> 配色只作辅助识别,主识别永远是形(卦形/器形)。交付说明里要把这句话写死,
> 否则使用者会拿颜色当唯一区分依据。

用户反馈"图标太简化"时的排查顺序

  1. 先问:是圈层不够,还是纹样不够? 答案是前者时用「加层不加饰」;
  2. 再按「有据之空」判定中心:能由体系自身推得该空(如"域符只放域爻、母标无域即无爻")就留空,并把依据写进文案;确需补符则补体系自造的符,不得用太极等公有领域旧符(见「旧符不入核心位」)。同时把域符从"画器物"改成"三爻成卦";
  3. 最后才考虑线宽/线质(版刻方头 butt vs 圆头 round)。

先结构、后笔墨。 反过来做就是加装饰,越加越像贴图。

第 2 步:写参数化生成器(唯一真相源)

绝不手写 SVG。 写一个零依赖 Python 脚本,一次派生全部产物:

tools/gen_icons.py
  ├─ 几何常量      CX=CY=70.0、环半径、刻度冠、加法层尺寸、字位坐标
  ├─ 路径编码器    pol_i(r,deg) 取极坐标整数点;_enc(a,b) 输出 M/H/V/L 段
  │                ticks_d(i0,i1) / spokes_d(n) / wall_d(half,gates) 把上百个
  │                线段压成单个 &lt;path&gt;(字符量降 ~68%,且人工可读)
  ├─ build(...)    组装:加法层 + 刻度 + 母版环 + 功能元件 + 域符 + 候点
  ├─ DOMAINS[]     域名 / 色值 / 域符函数 / 符名
  ├─ LEVELS[]      等级码 / 名 / 亮几格 / 三阶位 / 注释
  ├─ SKILLS[]      成员 → (域, 功能元件) 映射
  └─ emit()        同时输出 ①svg/&lt;类&gt;/&lt;名&gt;.svg ②ops/NN_*.txt ③manifest.json ④layout.json

要点:
- 路径编码器是性价比最高的一步。把几十上百个 &lt;line&gt; 合成一个 &lt;path&gt;,既压缩字符量(避免超长行被截断),又让源文件可人工审阅。
- 坐标取整(round())后再编码,避免浮点噪声导致相邻节点像素级错位。
- 颜色/字体名做成顶部常量,改主题只动一处。
- 生成器里写清注释:每条铁律为什么这么写。后人(包括未来的自己)才不会再踩。

第 3 步:分批落到画布

  • 每个 batch_edit ≤25 个操作,按逻辑节切分(一节 = 一个 batch_edit)。
  • 一行一个操作、行内绑定名唯一。同一 batch_edit 内绑定名重复赋值会静默残留空容器(前一个节点仍存在、只是失去引用),不报错 —— 写完生成器后 grep 一遍有无同一个 xxx_g= 出现两次。
  • 节与节之间手动指定 x/y(layout:&quot;none&quot; 的绝对定位顶层容器),否则会互相覆盖。
  • 失败即整批回滚,所以每批之后核对返回里的 potentialIssues。
  • 一节超过 25 ops 要拆批时:绑定名只在同一次 batch_edit 调用内有效。 跨批引用父节点,
    必须用上一次调用回传的节点 ID,不能用绑定名。拆法是让第一批把顶层容器 + 前几个子项建完,
    后续批次用回传 ID 续挂。实测一节 55 ops,拆 17 / 12 / 14 / 12 四批顺利落位。
  • U() 只改属性,改不动 SVG 图元的内容。 实测:
    U(id, {strokes, strokeWeight, content}) 有效;
    U(id, {svg}) 不重建子节点树(旧刻度仍在、子节点 ID 不变);U(id, {d}) 返回空对象、路径不变。
    → 要改图元本身(几何变了要重画),须 I 新建 + M 移到原位 + D 删旧,三步替换整枚节点。
    省下的量很可观:同一轮里"改描边"48 处各 1 op,"重画图元"5 处才各 3 op。
  • 改完必须回读生成物核对。 补丁脚本命中数全对,不等于改对了 ——
    old-string 若只覆盖到 docstring 结尾,函数体不会跟着改。实测:wall_d 的签名与文档都改了、
    函数体漏改,命中数报告一片绿,是靠比对生成出来的 d 属性才发现。
    ⇒ 补丁后必读生成物(把关键 path/@d 打印出来眼看一遍)。

第 4 步:校验与告警判读

先本地渲染,再动画布截图。 造型问题("这个造型对不对/哪个方案更好")几乎不可能靠一次截图判定,
而 capture_screenshot 是稀缺资源(一个修复批次 ≤2 次)。故先建一台最小本地渲染机:

scripts/preview_svg.py   —— 把生成的 SVG 直接画成位图(**本技能已内置,可直接拷到项目的 tools/ 下用**)
  ① 所有图元(rect/circle/line/path)先降为折线,再统一描边 —— 一套代码吃下全部图元
  ② path 支持 M L H V Z Q T C 各态(含相对指令)、stroke-dasharray、round cap
  ③ 超采样 4× 再 LANCZOS 缩小 = 免费抗锯齿
  ④ sheet(items, size, cols) 把 N 个方案并排成一张对比图
用法:python preview_svg.py out.png a.svg b.svg c.svg

这台机子的价值:本轮"方城融合"试了 12 个变体,全部零成本并排比对;
若走画布截图,配额连两个变体都不够。并排看是判造型的唯一办法 —— 单看一个方案,
大脑会自动为它找理由。

> ⚠️ 预览器只求"看得出关系",不求像素级还原(不画字体、不画滤镜)。它是判案工具,不是交付物。
> 拿它确认的是"结构关系对不对",最终仍要回画布截图确认宿主渲染无误。

用 capture_layout(problemsOnly:true),parentId 不能传 page 节点(报 Root node must be a container, not a page),要传顶层 frame。

告警 判读
ZERO_SIZE 不是缺陷 —— 纯轴线直线段,描边正常渲染
overlaps 同心构造图(环/辐/框叠放)属预期
LARGE_EMPTY_AREA wrap 网格末行余量,不是缺陷
OUTSIDE_PARENT 真缺陷 —— 被 clipsContent 裁切,必须修

capture_screenshot 配额:一个修复批次最多 2 次,先取全部证据、全部修完,再拍确认图。
小块图形截图比整页截图更有用(能看清 1px 级偏移)。

第 5 步:交付

  • export_nodes(format:&quot;pdf&quot;, nodeIds:[全部 frame]) → 合并成单一 PDF(按上→下、左→右排序),
    即整版规范书,可直接作登记说明书。
  • 把 svg/ 打包成 zip,一次性提交。
  • 附一份说明文档:体系构成 + 权利路径 + 使用规范 + 维护铁律。

权利路径(用户问"能不能申请专利"时必答)

图标属平面美术作品,不适用"专利"。三条正路:

路径 保护对象 主管 参考周期
① 美术作品著作权登记 图形本身 中国版权保护中心/省级版权局 1–3 个月
② 图形商标注册 作为商标使用的图形 国家知识产权局商标局 9–12 个月
③ 外观设计专利 仅当图形附着于实体产品外形 国家知识产权局 ~6 个月

系列作品整案登记:共享同一母版几何与构造规则的 N 个图形,可作为一件系列作品申报。
申报时须在说明书中写明母版几何参数、构造规则、各件之间的派生关系。

登记前必查:核心识别位上有没有公有领域符号

这是最容易被忽略、也最致命的一条。著作权登记保护"独创性表达"、商标注册要求"显著性" ——
两者都不会因为你把太极画得比别人精细就给你独占权。公有领域的符号画得再好,也是公共素材。

⇒ 交付前逐个核心识别位过一遍:母标中心、域符位、主图形、字标。凡属民俗/宗教/公有领域者,
一律撤换为体系自造的等价物。
⇒ 撤换后若原位置留空,须给出"为何该空"的体系内依据(见「撤除既有符号时:空必须有据」),不能只是删掉。


常见误用与常见问题(FAQ)

常见误用(反模式)

误用 后果 正解
把缩放写在 transform=&quot;scale(...)&quot; 里 小尺寸必然失败(实测原始坐标 25–115 时,24/32/48/64/96px 全部失败,128px 才通过) 缩放必须交给 viewBox
用 bash 双引号包裹含反引号的长文本写文件 反引号被当作命令替换执行,内容被静默吃掉,且退出码仍是 0 含反引号/$/! 的长文本先用 Write 落成临时文件,再用 Python 读入拼接,最后删掉临时文件
在已写坏的文本上打补丁 越修越乱 先回退再重写(按小节标题定位并截断)
同一文件多处改动并行 互相覆盖 同一文件的多处改动必须串行
为绕 ZERO_SIZE 把直线改写成矩形或加微偏移 白做工 纯水平/垂直直线段会报 ZERO_SIZE,不要为此改写法
先画图,再回头想构造法 交付一堆互不相干的图 不要先画图 —— 先定「一个图形如何派生出全部图形」(成熟范式是四层)
靠「再想一个符号」来扩域数 内容无限制膨胀 用穷尽机制锁域数(如三爻成卦 2³ = 8 域)+ 固定字母表锁元件 + 超容策略兜上限,三者缺一「封顶」不成立
把民俗/宗教/公有领域符号画进核心识别位 无从作为独创性主张的落点(画得再精细也只是替公共素材做美容) 旧符不入核心位:太极、八卦、四象、祥云、回纹、万字纹等不得进入核心识别位
临摹罗盘的「样子」 只是复刻外形 用它的构造(周天 360° 分二十四等分、每山 15°)——取其法,不取其符
把「方而没有隅」画成「方而缺掉四段」 四隅敞开会让城垣断成四条互不相连的直边,成了「外挂的四只括号」 不画硬角实边,但也不要把四隅敞开
偷偷把「辐等长且皆着」做成八边形 与用户诉求不符 两者不可兼得时必须向用户明说取舍
尺寸降级规则等到出图后再补 降级无依据 降级规则要在构造法里就定死,写清哪一层可以省、省了不算降级

常见问题

  • Q:什么时候该用本技能? A:需要图标能在任意等级/任意域别下延展,且需要交付矢量源文件时(著作权登记的图样以矢量提交最有利:边界清晰、无分辨率争议)。
  • Q:什么时候不该用? A:不适用单张插画、海报主视觉、写实图形 —— 那些走生成式图像路径。
  • Q:用户反馈「图标太简化」怎么办? A:按「用户反馈『图标太简化』时的排查顺序」逐级排查,不要直接加装饰。
  • Q:用户问「能不能申请专利/登记」怎么答? A:走「权利路径」一节;并登记前必查核心识别位上有没有公有领域符号。
  • Q:撤除既有符号时怎么处理? A:空必须有据;规范图必须与实物同源。
  • Q:圆角(弧)能解决方城四隅的问题吗? A:不能 —— 圆角离心的极点在 |center|+ρ,永远够不到辐条外端。
  • Q:多尺寸要怎么落? A:缩放交给 viewBox;先用参数化生成器(唯一真相源),再分批落到画布。

自检清单

  • [ ] 构造法能一句话说清派生关系,且"等级=外围加法"成立
  • [ ] 全部产物由生成器派生,无手写 SVG
  • [ ] 每个 SVG 恒用 viewBox(无 transform=&quot;scale()&quot;)
  • [ ] 无 text-anchor,居中量已烘焙进 x
  • [ ] 无重复绑定名
  • [ ] 改动用串行脚本落盘,脚本已删,命中数 = 预期数
  • [ ] 重生成后核对产物新鲜度(所有 SVG 的 mtime 不早于生成器)
  • [ ] 每批 ops ≤25,potentialIssues 为空
  • [ ] capture_layout 无 OUTSIDE_PARENT
  • [ ] 容量已封顶:域数有穷尽机制、元件是固定字母表、超容策略已写明
  • [ ] 核心识别位上无公有领域符号(太极/八卦/祥云/回纹等不得占据母标中心与域符位)
  • [ ] 凡"空"处,体系内能一句话说明为何该空(有据之空,非"没画完")
  • [ ] 规范图的每个数值都与实物常量同源(已打印数值逐一比对)
  • [ ] 中心符为线刻而非实填;方框四隅已抹角、城垣合围不断(不是四隅敞开)
  • [ ] 计数型标记(候点/进度格)以中为轴,且已用像素检测验证点团中心 = 图标中心
  • [ ] 若改了图元几何:生成物已回读核对(path/@d 眼看一遍),不是只看补丁命中数
  • [ ] 身份与等级分居内外两层、几何不相交;规范书里有一节实物对照(同一技能挂 N 个等级)
  • [ ] 进度语汇唯一:母标/域符/身份图一格不亮,只有等级图独占刻度
  • [ ] 造型方案做过并排比对(本地预览器),不是单看一个方案就定
  • [ ] 长文本经 Write 落文件写入,未走 shell 反引号路径
  • [ ] 已导出整版 PDF + SVG 打包 + 说明文档

附 · 付费与授权

§〇 · 本技能定位为付费技能(Pay Skill)

项 内容
定位 付费版(Pay Skill 通道)
计费形态 按次
已接入的服务 serviceId API_13DCD6D650224B51 | 服务地址 https://wb-workbase.app.workbuddy.host/demo/a2m/resource(无凭证时返回 402 + Payment-Needed 账单)| 单价 0.25 元/次
🔴 单价须与注册价一致 平台明确警告:实际支付价与注册标价不一致会导致用户无法支付 ⇒ 向导里单价填 0.25,不要凭手感改
这条服务是复用的 服务名称为通用的「万象skill」,属同一作者、同一 appId ⇒ 与「万象-支付宝AI付接入」「万象-SkillHub自动上架」共用同一条已注册服务,不另注册
标识 付费技能加一道金色光圈(GOLD = #C8A02C)—— 判据=该技能被调用时按次收费

> 🔴 付费技能一律走完整付费路径 —— 是付费定位,就照着付费通道做完:
> 随包实现 402 链路(见 §〇·2)、接入相应服务、按注册价填单价、走 Pay Skill 向导。

§〇·2 · 随包提供的 402 付费链路实现(平台「付费改造」检测就看这个)

平台在提交时会做一次「支付宝付费改造」检测,判据是技能包内是否存在 402 支付链路的实现,
缺失项会逐条列出:402账单下发 / 携带凭证重试 / 验付调用 / 履约确认 / 订单持久化与幂等。
该检查不阻断提交,但审核阶段会重做一次,不合规即拒。

⇒ 本包自带该实现(目录 a2m/,零密钥、可直接 npm install &amp;&amp; npm start):

平台检测项 本包对应实现 位置
402 账单下发 无凭证 ⇒ HTTP 402 + Payment-Needed(Base64URL 账单,商户本地 RSA2 签名) a2m/a2m.js buildPaymentRequired();路由在 a2m/server.js
携带凭证重试 解析 Payment-Proof 头并重放同一资源请求 a2m/a2m.js decodePaymentProof()
验付调用 查询交易并逐项严格比对(trade_no / 金额 / 资源 ID / 订单状态与时效) a2m/a2m.js verifyPayment()
履约确认 交付后调履约确认;失败可重试且不重复生成资源 a2m/a2m.js confirmFulfillment()
订单持久化与幂等 SQLite 事务 + 唯一约束(非内存订单);重复交付不重复扣费 a2m/orderRepository.js prepareFulfillment()

配置边界:配置缺失即明确失败(资源路由返回 503),不构造 SDK、不使用占位密钥、不提供任何跳过验付的路径。
密钥只走运行环境变量或本地配置文件,永不入包。

cd a2m &amp;&amp; npm install &amp;&amp; npm run smoke   # 冒烟:账单结构 / RSA2 签名 / 幂等边界
npm start                                # 默认 http://localhost:3000/demo/a2m/resource

常见问题

5 问
答案由本站依据条目字段整理
万象-矢量图标体系生成怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_de2353f3/omni-vector-icon。安装方式为未标注。装完刷新技能列表或重开客户端。

万象-矢量图标体系生成支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

万象-矢量图标体系生成权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

万象-矢量图标体系生成收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

万象-矢量图标体系生成用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。